1. Field of the Invention
The field of the invention relates generally to systems and methods of electronic document comparison.
2. Related Background
An electronic document, or document, may be viewed as a collection of user-input data used with a certain application (such as, Microsoft Word®, Corel WordPerfect® and Microsoft Excel®). In a general sense, a document is the data or information generated when using a computer application.
With the advent of OLE (Object Linking and Embedding), a document may contain data from other applications as well as from the main application. The data from other applications are contained in “objects”, or “document objects.” One example of the use of OLE is when a Word document has a spreadsheet table from Excel embedded within it. In this example the excel spreadsheet is an object within a Word document. Embedded objects may include text, tables, pictures or drawings, or other forms of data. A document with one or more objects from other applications is typically referred to as a “Compound Document”. Unless otherwise specified, an “object” refers to a section of the document that is created from, or edited by, an application other than the application that edits or creates the primary document the object is embedded into.
Single format documents, that is documents not including embedded objects from other applications, are often compared using the well-known algorithm called ‘LCS’ (longest known sequence) or HCS (heaviest common sequence) to determine differences between two documents. There exist specialized adaptations or versions of LCS and HCS specially made to compare Word Documents, Excel Documents, HTML documents and
PDF documents. In addition to LCS, other comparison algorithms include: HCS (heaviest common sequence), LCSS (longest common sub sequence) or MSS (matching similarity sequence). These comparison algorithms are implemented in comparison engines, some of which are integrated into document creation and editing applications (such as Word, Excel, Open Office™, StarOffice™, etc.), and some of which are implemented separately from the document creation and editing applications, as discussed below in connection with
Conventional document management, creation, editing and viewing applications often include the ability to compare documents and output a document which illustrates the differences between two documents. Typically, the output document including indications of the differences between the two input documents is referred to as a “redline” or “redline document.”
Accordingly, a need exists to provide a comparison system and method capable of comparing compound documents.
The present invention provides for a computer based system and method for comparing compound documents. An original compound document and a modified compound document are analyzed to determine and mark the location of embedded objects. A comparison is performed between an original primary document and the modified primary document, ignoring the embedded objects, the output of which is a comparison output document. The embedded objects are compared by copying the contents of the embedded objects to compatible documents, comparing the embedded object from the original compound document and the embedded object from the modified compound document, the output of the comparison is inserted into the comparison output document using the location markers of the embedded objects.
The present invention is described in the context of a specific embodiment. This is done to facilitate the understanding of the features and principles of the present invention and the present invention is not limited to this embodiment. In particular, the present invention is described in the context of a computer system used to compare, edit, view and/or modify electronic documents.
The comparison process compares the text of the primary document type of the input documents, with the results of the comparison output to a primary comparison output document. The comparison of the first embedded object types, the Excel objects, is output to the comparison output document as an Excel object embedded in the primary comparison output document according to the marked location information. The marked location information is used to locate the comparison output of the Excel objects in the comparison output object. Similarly, the comparison of the second embedded object types, the PowerPoint objects, are output to the comparison output document as a PowerPoint object embedded in the comparison output document. The marked location information is used to position the comparison output of the PowerPoint objects in the comparison output document.
While the example input documents only contained two embedded objects, alternate embodiments may contain more or fewer embedded objects. With such input documents, the presently preferred embodiment compares all of the embedded objects of the input documents. However, alternative embodiments may choose to ignore one or more embedded object pairs (an embedded object pair includes an original embedded object from the original input document and the corresponding embedded object from the modified input document), or choose to ignore one ore more embedded object types, from comparison. In yet another alternative embedment, the user may indicate, through a comparison command, or through configuration of a document application implementing an alternative embodiment, that certain objects or certain object types are to be ignored from comparison.
Additionally, input documents may contain multiple embedded objects of the same document type located at different positions within the primary document (for example, a Word document with multiple Excel spreadsheets located at different positions within the Word document). In the presently preferred embodiment, the multiple embedded objects are compared and the results of the comparisons are embedded in objects in the comparison output document, using the marked location information.
At step 606 the OLE objects found at step 602, in one embodiment are copied to a document of the type that created the object to create an object comparison document. That is, if the object contains data which is from a given application, the data of the object is copied to a document of the type of the given application (or to a compatible application document type). As an example, if the OLE object were of the type created by PowerPoint, preferably the data of this object is copied to a PowerPoint comparison document. Similar action is taken for OLE objects from other applications. Step 606 is performed for both the object from the original comparison document and from the modified comparison document, thus resulting in an original OLE object comparison document and a modified OLE object comparison document.
At step 607 a comparison engine of the type to compare documents of the given application is initiated to compare the original OLE object comparison document and the modified OLE object comparison document. Thus, referring again to the example of
Step 609 inserts the comparison output OLE object document (or documents) in the comparison output primary document output from step 605. Referring again to the example of
The insertion of the comparison output OLE object document uses the OLE object marking information from step 601. By using the location markings the comparison output document is able to provide the user with a document that has a similar organization to the original and modified input documents.
If the comparison input documents included additional embedded objects which have not been compared, at step 610 the comparison process returns to step 606 to compare the next embedded object pair. If there are no additional embedded objects which have not been compared (or there are no embedded objects which have not been designated to exempt from comparison).
While the above embodiments and examples compared only two documents, alternate embodiments could compare three or more documents.
The invention has been described with reference to particular embodiments. However, it will be readily apparent to those skilled in the art that it is possible to embody the invention in specific forms other than those of the preferred embodiments described above. This may be done without departing from the spirit of the invention.
Thus, the preferred embodiment is merely illustrative and should not be considered restrictive in any way. The scope of the invention is given by the appended claims, rather than the preceding description, and all variations and equivalents which fall within the range of the claims are intended to be embraced therein.
This patent application is a continuation of Application Ser. No. 11/444,140, filed May 30, 2006, which claims priority to U.S provisional patent application No. 60/763,300, filed Jan. 29, 2006, the disclosures of which are hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
3920895 | Vieri et al. | Nov 1975 | A |
3920896 | Bishop et al. | Nov 1975 | A |
5008853 | Bly et al. | Apr 1991 | A |
5129082 | Tirfing et al. | Jul 1992 | A |
5146552 | Cassorla et al. | Sep 1992 | A |
5204947 | Bernstein et al. | Apr 1993 | A |
5321505 | Leddy | Jun 1994 | A |
5341469 | Rossberg et al. | Aug 1994 | A |
5515491 | Bates et al. | May 1996 | A |
5539871 | Gibson | Jul 1996 | A |
5596700 | Darnell et al. | Jan 1997 | A |
5596705 | Reimer et al. | Jan 1997 | A |
5606609 | Houser et al. | Feb 1997 | A |
5659676 | Redpath | Aug 1997 | A |
5664208 | Pavley et al. | Sep 1997 | A |
5669005 | Curbow et al. | Sep 1997 | A |
5671428 | Muranaga et al. | Sep 1997 | A |
5694544 | Tanigawa et al. | Dec 1997 | A |
5706452 | Ivanov | Jan 1998 | A |
5706502 | Foley et al. | Jan 1998 | A |
5708826 | Ikeda et al. | Jan 1998 | A |
5708845 | Wistendahl et al. | Jan 1998 | A |
5740444 | Frid-Nielsen | Apr 1998 | A |
5752055 | Redpath et al. | May 1998 | A |
5758313 | Shah et al. | May 1998 | A |
5761419 | Schwartz et al. | Jun 1998 | A |
5761499 | Sonderegger | Jun 1998 | A |
5781732 | Adams | Jul 1998 | A |
5781901 | Kuzma | Jul 1998 | A |
5787175 | Carter | Jul 1998 | A |
5799191 | Moriyasu et al. | Aug 1998 | A |
5801702 | Dolan et al. | Sep 1998 | A |
5806078 | Hug et al. | Sep 1998 | A |
5809512 | Kato | Sep 1998 | A |
5860073 | Ferrel et al. | Jan 1999 | A |
5864870 | Guck | Jan 1999 | A |
5870754 | Dimitrova et al. | Feb 1999 | A |
5878421 | Ferrel et al. | Mar 1999 | A |
5890177 | Moody et al. | Mar 1999 | A |
5893126 | Drews et al. | Apr 1999 | A |
5911776 | Guck | Jun 1999 | A |
5931906 | Fidelibus, Jr. et al. | Aug 1999 | A |
5937066 | Gennaro et al. | Aug 1999 | A |
5938724 | Pommier et al. | Aug 1999 | A |
5941944 | Messerly | Aug 1999 | A |
5944785 | Pommier et al. | Aug 1999 | A |
5949413 | Lerissa et al. | Sep 1999 | A |
5950214 | Rivette et al. | Sep 1999 | A |
5956736 | Hanson et al. | Sep 1999 | A |
5958006 | Eggleston et al. | Sep 1999 | A |
5978836 | Ouchi | Nov 1999 | A |
5987469 | Lewis et al. | Nov 1999 | A |
6009462 | Birrell et al. | Dec 1999 | A |
6014135 | Fernandes | Jan 2000 | A |
6029171 | Smiga et al. | Feb 2000 | A |
6061696 | Lee et al. | May 2000 | A |
6064751 | Smithies et al. | May 2000 | A |
6067551 | Brown et al. | May 2000 | A |
6088709 | Watanabe | Jul 2000 | A |
6119147 | Toomey et al. | Sep 2000 | A |
6158903 | Schaeffer et al. | Dec 2000 | A |
6178431 | Douglas | Jan 2001 | B1 |
6182080 | Clements | Jan 2001 | B1 |
6212534 | Lo et al. | Apr 2001 | B1 |
6243722 | Day et al. | Jun 2001 | B1 |
6289460 | Hajmiragha | Sep 2001 | B1 |
6317777 | Skarbo et al. | Nov 2001 | B1 |
6324555 | Sites | Nov 2001 | B1 |
6334141 | Varma et al. | Dec 2001 | B1 |
6336134 | Varma | Jan 2002 | B1 |
6343313 | Salesky et al. | Jan 2002 | B1 |
6360236 | Khan et al. | Mar 2002 | B1 |
6363352 | Dailey et al. | Mar 2002 | B1 |
6411989 | Anupam et al. | Jun 2002 | B1 |
6507858 | Kanerva et al. | Jan 2003 | B1 |
6560620 | Ching | May 2003 | B1 |
6560637 | Dunlap et al. | May 2003 | B1 |
6590584 | Yamaura et al. | Jul 2003 | B1 |
6643663 | Dabney et al. | Nov 2003 | B1 |
6681371 | Devanbu | Jan 2004 | B1 |
6687878 | Eintracht et al. | Feb 2004 | B1 |
6708172 | Wong et al. | Mar 2004 | B1 |
7251680 | DeVos | Jul 2007 | B2 |
7650355 | Davis | Jan 2010 | B1 |
7987444 | Fuller et al. | Jul 2011 | B2 |
20010037367 | Iyer | Nov 2001 | A1 |
20020049786 | Bibliowicz et al. | Apr 2002 | A1 |
20020059342 | Gupta et al. | May 2002 | A1 |
20020059343 | Kurishima et al. | May 2002 | A1 |
20020065848 | Walker et al. | May 2002 | A1 |
20020078088 | Kuruoglu et al. | Jun 2002 | A1 |
20020085030 | Ghani | Jul 2002 | A1 |
20020107886 | Gentner et al. | Aug 2002 | A1 |
20020143691 | Ramaley et al. | Oct 2002 | A1 |
20030023961 | Barsness et al. | Jan 2003 | A1 |
20030112273 | Hadfield et al. | Jun 2003 | A1 |
20030158855 | Farnham et al. | Aug 2003 | A1 |
20030197730 | Kakuta et al. | Oct 2003 | A1 |
20030217336 | Gounares et al. | Nov 2003 | A1 |
20040085354 | Massand | May 2004 | A1 |
20040205653 | Hadfield et al. | Oct 2004 | A1 |
20040230616 | Kruy et al. | Nov 2004 | A1 |
20050108280 | Kagle et al. | May 2005 | A1 |
20050240858 | Croft et al. | Oct 2005 | A1 |
20060167879 | Umeki et al. | Jul 2006 | A1 |
20060253482 | Zellweger et al. | Nov 2006 | A1 |
20060262339 | Jacobs et al. | Nov 2006 | A1 |
20070011211 | Reeves et al. | Jan 2007 | A1 |
20070186157 | Walker et al. | Aug 2007 | A1 |
20070294610 | Ching | Dec 2007 | A1 |
20080104016 | Atmaja | May 2008 | A1 |
20090119578 | Relyea et al. | May 2009 | A1 |
20100049745 | Aebig et al. | Feb 2010 | A1 |
Entry |
---|
Final Office Action dated Jun. 12, 2012, in U.S. Appl. No. 12/350,144. |
Office Action dated May 9, 2012, in U.S. Appl. No. 13/400,848. |
Office Action dated Nov. 23, 2011, in U.S. Appl. No. 12/350,144. |
Final Office Action dated Aug. 11, 2011, in U.S. Appl. No. 12/350,144. |
Office Action dated Mar. 23, 2011, in U.S. Appl. No. 12/350,144. |
Final Office Action dated Oct. 24, 2012, in U.S. Appl. No. 13/400,848. |
Number | Date | Country | |
---|---|---|---|
20100318530 A1 | Dec 2010 | US |
Number | Date | Country | |
---|---|---|---|
60763300 | Jan 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11444140 | May 2006 | US |
Child | 12861000 | US |