Source: http://www.google.com/patents/US20080021916?dq=6,600,481
Timestamp: 2016-12-09 02:07:20
Document Index: 367389723

Matched Legal Cases: ['arts 1001', 'arts 1001', 'art 1001', 'art 1002', 'art 1003', 'art 1004', 'art 1006', 'art 1002', 'art 1004', 'art 1004', 'art 1007', 'art 1002', 'art 1006', 'art 1004', 'art 1003', 'art 1007']

Patent US20080021916 - Maintenance of a markup language document in a database - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA method, an apparatus and a computer program product for converting an XML encoded document into an equivalent SQL table are provided. An arbitrary XML DTD may be converted into an equivalent form by means of which individual node documents stored in the SQL table may be directly accessed. The SQL table...http://www.google.com/patents/US20080021916?utm_source=gb-gplus-sharePatent US20080021916 - Maintenance of a markup language document in a databaseAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS20080021916 A1Publication typeApplicationApplication numberUS 11/892,907Publication dateJan 24, 2008Filing dateAug 28, 2007Priority dateNov 16, 2001Also published asUS7281206, US20030177443Publication number11892907, 892907, US 2008/0021916 A1, US 2008/021916 A1, US 20080021916 A1, US 20080021916A1, US 2008021916 A1, US 2008021916A1, US-A1-20080021916, US-A1-2008021916, US2008/0021916A1, US2008/021916A1, US20080021916 A1, US20080021916A1, US2008021916 A1, US2008021916A1InventorsChristoph Schnelle, Geoffrey NolanOriginal AssigneeTimebase Pty LimitedExport CitationBiBTeX, EndNote, RefManPatent Citations (99), Referenced by (85), Classifications (11), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetMaintenance of a markup language document in a database
during the initial conversion and using these embedded codes to redirect the reconstructed nodes to the appropriate output file. SQL Document Access/Maintenance [0192] The decomposition of a large XML document into independent, smaller sub-documents is simply a means to an end. It is important to be able to access and modify the information in these sub-documents. A method, an apparatus and a computer program product for maintaining an XML document in MALTbase SQL form, without the need for reconverting the document to XML, are described. [0193] A primary use of MALTbase is to store complex XML documents within SQL databases. In general, the node element set is chosen so that each node represents a reasonable portion of the data to retrieve or maintain. Since the converted node content is already in the form of a standalone XML document, any standard XML author/editing tool can be used to examine or modify the content. [0194] MALTbase allows five basic node operations: modify an existing node insert a new node (or sub-tree) delete an existing node (or sub-tree) copy an existing node (or sub-tree) to a new location relocate placeholders within a node In particular, if this standard XML author/editing tool supports an interface with an SQL Application Programming Interface (API), an editing session consists of the following steps: locate the node to be edited (all editing is on a per node basis); activate an edit function which: locks the node for writing, and establishes an edit session in which the editing tool manages the node content; and when the edit session is finished, the updated content is written back into the node record. Modify an Existing Node [0205] Simple modification involves a change to a node which does not affect: the node's DOCTYPE, element any element in the node element set any placeholder This operation is the most straightforward. Simply open the node, update the content, and save. The modify operation is the only operation performed on the target node itself. All other operations are performed on the parent of the node being inserted, deleted, etc. Insert a New Node [0209] To insert a new node, first open the parent of the node to be created. The parent node will have to contain a placeholder for the new node. However, a placeholder cannot be created directly, as placeholder management is a MALTbase system function. Further, there is no current node to which a placeholder can point. [0210] A solution is to enter the new material in situ, just as if editing the original document. For example, to create a new section in an act, open the act and simply key in the new section in the desired location. Use <section> elements and not <MALTbase:section/> in this procedure. Inside the section element, key the content normally. Node elements may be included in this content, where permitted by the DTD. When all the new material has been keyed, save the edited node. [0211] At this point, the MALTbase system takes over. MALTbase routinely examines all updated nodes before saving the updated nodes. If MALTbase detects any node elements within a node, MALTbase will automatically decompose the node elements into as many new sub-nodes as are required, and replace the outermost sub-node with a placeholder. In effect, this is exactly the same process as was used to convert the original document, only limited to the content of a single node. This process cannot affect the validity of the master document, as the editing application will have validated the modified node prior to saving. [0000] Delete an Existing Node [0212] To delete a node, edit the node's parent and delete the appropriate placeholder. The editing application will ensure that such a deletion is valid. When saving the edited parent, the MALTbase system compares the list of child IDs with a list prepared by the system when the parent node was opened. If any placeholders are missing then the corresponding nodes (and any descendants) are deleted from the system. In this way, the validity of the whole document is maintained provided the validity of each individual node is preserved. [0000] Copy an Existing Node [0213] To copy a node, the node ID of the node to be copied must be known. Edit the node that will be the parent of the new copy, and insert a placeholder with an element name and child-id set to the ID of the node to be copied. If the node to be copied is not already a child of the parent, the full child ID is used, rather than just the final segment. The editing application will ensue that such an insertion is valid. When saving the edited parent, the MALTbase system will locate the nodes which have been amended in this way. A duplicate node will be created with identical content to the original, but with a parent ID set to the parent node that was edited. Any descendants will also be copied and be assigned new Ids, as appropriate, based on the parent ID and order amongst the node's existing child nodes. [0214] Note that the child-id entered on the new placeholder must be a valid ID for an existing node somewhere in the master document. [0215] It is not possible to create new nodes using this technique. Either an absolute or relative ID may be used. An absolute ID) begins with “/” and gives a full path down from the root node, whereas a relative ID begins with “./” and relates the child to the current parent. Absolute IDs are typically used except where the node to be copied is already a child of the new parent. The presence of the slash character in the child-id tells the system that an existing child node is not simply being relocated. Whatever form of child-id is used, the copy will be assigned a new regular child ID and the placeholders will be altered to reflect this. [0000] Relocate Child Nodes within a Parent [0216] It is possible to move existing placeholders to any valid location within a node being edited. This is a simple modification (see above) provided that the placeholders remain in the same order with respect to each other. However, if editing does affect the order of the placeholders, then a relocation operation will be triggered when saving the node. [0217] As is the case for deletions, the system detects relocations by comparing a list of placeholders with a list of placeholders constructed before the editing session. The system assigns new child IDs to as many sub-nodes as necessary to ensure that the IDs once again correctly reflect the order of the child nodes within the parent node. These new IDs will also be applied to all descendants of affected nodes. [0000] Database Operation Examples [0218] FIGS. 9 a to 9 d illustrate the results of various database operations. FIG. 9 a shows the result of a simple modifier operation, in which text is inserted into the level-2 “mama” node. As the modification only affects the content of the node and no placeholders are affected, the new text is simply inserted. [0219] FIG. 9 b shows the result of a delete database operation. In this particular example, the level-3 child node is deleted and the “mama” node is now childless. The MALTbase system will automatically remove the deleted node when this “mama” node is saved. [0220] FIG. 9 c shows the result of an insertion of a new level-2 node. The new level-2 node is inserted directly into the perspective parent node, in this case the level-1 “papa” node shown in FIG. 9 c(1). [0221] When the level-1 “papa” node is saved, a new node having an id of “/1/1.5” is created, as shown in FIG. 9 c(2). The text inserted into the level-2 “papa” node is replaced by a placeholder, as shown in FIG. 9 c(3). [0222] FIG. 9 d illustrates the relocation of existing placeholders. FIG. 9 d(1) shows that the “mama” node has been moved and now appears after the “goldilocks” node. On being saved, the MALTbase system modifies the child ids of the sub-nodes of the level-1 “papa” node so that the child ids stay in ascending order. Accordingly, FIG. 9 d(2) shows that the child-id of the “mama” node has been modified and is now “3”. [0000] Document Integrity [0223] The chief value of the MALTbase system is that MALTbase guarantees that the whole master document will remain valid throughout any amount of editing and updating of the node sub-documents. In practice, this guarantee rests on three fundamental principles: 1. Each node document must at all times remain valid against the modified DTD; 2. The integrity of the interrelationships between the nodes, embodied in the database, must be preserved; and 3. The constraints which ensure the successful reassembly of the nodes into a master document must be honoured. The following sections explain these principles in greater detail. Node Validity [0227] Clearly, if the individual node documents are compromised, there is no way that the integrity of the master document can be maintained, let alone guaranteed. Fortunately, any validating XML editor will take care of this, and the MALTbase system will immediately reject any attempt to save an invalid node document. [0000] Database Integrity [0228] This is a much more subtle requirement, and correspondingly harder to police. Part of the requirement is handled by the MALTbase system when it analyses the placeholders of incoming nodes. The system will reject any node which: has a placeholder referring to a nonexistent node; has a placeholder whose element type does not match the corresponding node; or has duplicate placeholders, except for those with child IDs beginning with “/” or “_/” (which imply a copy operation). It should be noted that all of the above constraints can be violated by a “valid” node document. Since MALTbase allows many nodes to be edited simultaneously, it must also prevent inadvertent conflicts between these operations. This is done via the database locking mechanism. [0232] A modern database will typically support both read and write locks at the record (i.e. node) level. A read lock prevents a node from being updated for the duration of the lock, but allows any number of simultaneous read operations. A write lock prevents any access to the locked record for the duration of the lock. [0233] Thus, whenever a first user wishes to edit a node, the system attempts to obtain a write lock on that node. If another user is accessing the node, the attempt to lock will fail and the system will advise the first user that: [0234] The node is currently locked by another user, please try again later. If the lock succeeds, the first user has exclusive access to the node during the editing session. [0235] If a user aborts an editing session without saving, the system releases the lock and frees the node. However, if a user attempts to save the node, and assuming all placeholders are valid, the following actions occur: Simple Modify—the node content field is locked and the lock is released. Insertion—new nodes are created, and the parent node saved, in a single indivisible transaction after which all locks are released. If any part of the operation fails then the state of the database reverts back to what it was immediately prior to the edit session (a process known as rollback). Deletion—write locks are obtained on the node to be deleted, and all descendants of that node. The mass deletion and write-back of the original parent node form a single transaction. Copy—read locks are obtained on the node to be copied, and all descendants of that node. The mass copy, assignment of new IDs, and write-back of the target parent node form a single transaction. Relocation—write locks are obtained on all affected child nodes, and all descendants of that node. Assignment of new IDs, and write-back of the original parent node form a single transaction. The important thins that exclusive access to all the nodes being updated must be obtained before any part of the update can proceed. In this way, the linkage between placeholders and the corresponding node content is maintained and complex operations can proceed in parallel without threatening the integrity of the database. [0241] The successful implementation of the method described above depends on two factors: the XML validity of the whole ‘document’ must be maintained; and the integrity of the database itself must be preserved, so that the various operations (modify, delete, move etc.) must be correctly interlocked with each other by means of suitable database locks and transactions. [0244] The XML validity of the whole document is guaranteed because of the DTD transform through which individual node documents are created. Since each occurrence of a sub-node placeholder in a content model is paired precisely with an occurrence of the original element in that model, it follows that substituting a placeholder for a sub-node (or vice versa) has no effect on the validity of the whole. Thus, provided that a node document remains always valid and every sub-node marker corresponds to a real node document before saving the text in the database, a back conversion into XML always yields a valid document. [0245] The second criterion, preserving database integrity, is a more complex matter and must be enforced by the use of appropriate relational database management system (RDBMS) mechanisms during the implementation. The first precaution is that a write (exclusive) lock must be obtained on a node record before an edit session may commence. This prevents any other user editing the node at the same time, but may leave both descendants and ancestor nodes free for editing (except if someone tries to delete a sub-tree which includes the node of interest). [0246] Such considerations, however, we standard RDBMS practice and familiar to persons skilled in the art. The additional processes accompanying the write-back of a node into the database are of greater interest. To avoid potential confusion, the term principal node denotes the node that was modified and is being saved, and sub-node denotes one of the new or existing sub-nodes of the principal node. A placeholder is an empty MALTbase element that marks the location of a sub-node within the text of the principal node. The main steps involved in saving a modified principal node are as follows. Generate a list of placeholders (if any) in the principal node. If any placeholder a does not correspond with an actual database node, an error arises. Generate a list of existing sub-nodes from the database, and pair off placeholders and sub-nodes. If any sub-node is not matched against a placeholder, that sub-node and all the descendants of that sub-node are deleted from the database; If any placeholder is not matched against a sub-node, either an existing sub-node is being duplicated, or a node elsewhere in the database is being copied. Create the duplicate nodes (including descendants if any) and assign a provisional ID to each duplicate node. The ID consists of: the ID of the principal node, a provisional child ID within the principal node, and the trailing portion of the ID, if is the new node is a descendant of the node being copied. Scan the list of matched placeholders in document order. If any such placeholder has a lower child ID than one or more of its siblings already processed, assign a provisional child ID. If there are any sub-node elements (as opposed to placeholders) present, perform a standard MALTbase XML-to-SQL conversion on each such element and create new SQL records for each. Assign a provisional ID to each new node, assigning a provisional child ID within the principal node. Replace the text of each sub-node element in the principal node with a new placeholder. A principal node now exists in which each placeholder corresponds to a unique new or existing sub-node, and all with provisional child IDs (except for existing sub-nodes which retain the previous ordering). The final step is to assign permanent child IDs to the placeholders, replacing the provisional segment in the ID of each corresponding sub-node (or descendant). The new IDs are normally chosen to evenly fill the range between the previous existing child ID (or “0” if none) and the following existing child ID (or “ffff . . . ”), using as few hex digits as possible. Additional Constraints [0255] There are a few additional constraints required by a MALTbase system that are not directly related either to database integrity or sub-document validity. These constraints are required to ensure that the reverse transform (node set to single XML document) works properly. [0256] The first requirement is that the DTD cannot be freely altered while the document is stored as a node set. If the DTD is to be changed, one of two things must happen: 1. The master document is reassembled prior to the change and the MALTbase version reconstructed after the change; and 2. The whole database is locked for the duration of the change, and every sub-document successfully revalidated before the locks are released. The second requirement is that the DOCTYPE element of a sub-document cannot be freely altered. This is because, while the sub-document itself is validated by the XML editor, the new element type (and hence the new element type's matching placeholder) may not be valid within the parent node's content. If such a change is required, it must be performed as follows: 1. Copy the content of the node to be modified to a temporary holding area; 2. Edit the parent, delete the corresponding placeholder, and insert the stored content in its place; 3. Modify the content to change the element type; 4. If the content contains placeholders of its own, the child-id attributes must be modified from CCC to ./NNN/CCC, where CCC is the current value of the attribute, and NNN is the child-id of the content being edited (i.e. the child-id of the placeholder removed in step 2); and 5. When the parent node is caved, the original child and, the original child's descendants will be deleted. Before this happens, any sub-nodes specified in step 4 (and such sub-nodes' descendants) will be copied. So in effect, an insert is performed, followed by a copy, followed by a delete. The above technique will work even in the unlikely event that the new element type is not itself a node element. Any attempt to alter a node simply by changing the node's DOCTYPE element will be blocked by the system which stores the DOCTYPE of each node before the node is edited. [0264] The final constraint is that the node element set cannot be altered for a MALTbase document. If the node elements do need to be adjusted, then the master document must be reassembled. The master document can tend be decomposed back into MALTbase form using the new node element set. [0265] FIGS. 10 a-10 f show a graphical representation of a SQL node write back. FIG. 10 a shows an exemplary principal node 1000 relating to a chapter 7 that has first, second, third and fourth parts 1001, 1002, 1003 and 1004, respectively, and a note 1005. Each of the first, second, third and fourth parts 1001, 1002, 1003 and 1004 and the note 1005 has an associated child-id. The first part 1001 has a child-id “1”, the second part 1002 has a child-id “4”, the third part 1003 has a child-id “7”, the fourth part 1004 has a child-id “a”, and the note 1005 has a child-id “d”. The additional processes accompanying the write-back procedure of a node into the database are now illustrated using the principal node 1000 of FIG. 10 a. [0266] The write-back procedure is considered in an example in which: (i) a part of the principal node 1000 of FIG. 10 a is replaced with a part from another location; (ii) a part of the principal node 1000 of 10 a is duplicated (perhaps as a preliminary to splitting the material into two new parts); and (iii) a completely new part is inserted into the principal node 1000 of FIG. 10 a. [0267] FIG. 10 b shows the editing of the principal node 1000 to create a modified node 1000 a by moving, inserting and deleting placeholders corresponding to existing nodes. New sub-node elements are inserted to create new nodes. A fifth part 1006 from another location replaces the second part 1002 of FIG. 10 a. The fourth part 1004 of FIG. 10 a is duplicated and the duplicate appears as a new sixth part 1004 a. Further, a completely new part 1007 is inserted into the modified node 1000 a. [0268] The XML editing application being used (for example, XMetal, Epic, XML Spy) ensures that the new modified node 1000 a is valid and the MALTbase strategy ensures that the wider document is also valid. When saving the modified node 1000 a shown in FIG. 10 b, the following steps occur: [0269] 1. Generate a list of placeholders: 1, /8/C/3b/2, a, 7, a, d These placeholders are the child-ids of the parts and the note of the modified node 1000 a; [0270] 2. Generate a list of existing sub-nodes: 1, 4, 7, a, d. These are the child-ids associated with the parts and the note of the node 1000 of FIG. 10 a; [0271] 3. Generate a list of unmatched sub-nodes: 4. Any such sub-node and each such sub-node's associated descendants are deleted. In this case, the second part 1002 of FIG. 10 a, having a child-id of “4”, is deleted, along with any of the second part's descendants; and [0272] 4. Generate a list of unmatched placeholders: /8/c/3b/2, a. Any such nodes having unmatched placeholders are duplicated, along with any associated descendants, and provisional IDs are assigned to the duplicated nodes. [0273] FIG. 10 c shows the further modified node 1000 b in which provisional IDs have been assigned to each of the new fifth part 1006 and fourth part 1004. FIG. 10 d shows the allocation of provisional IDs to any placeholder that is out of order. In this instance, the third part 1003 having a child-id of “7” is deemed to be out of order and a new provisional id of “x3” is assigned. [0274] FIG. 10 e shows the conversion of any sub-node elements and the replacement of placeholders. The new fifth part 1007 is assigned an id of “x4”. [0275] FIG. 10 f shows the next stage in the write-back process, in which new child IDs are allocated to placeholders and corresponding nodes and any descendants. If all steps are successful, all such modified nodes are saved. If any step fails, the procedure rolls back to the previous state. [0276] An analysis of the above process confirms that, provided all the steps are carried out as a single database transaction, the integrity of the database is retained. If any step fails, the whole operation has to be rolled back and the user prompted to abort or try again. Examples of potential failure include child-id attributes that do not correspond to an existing node, failure to obtain read locks on sub-trees being copied etc. However, since the time that any node (other than the principal node) is locked is only a fraction of a second, deadlocks should be rare given the normal access patterns of users within XML text files. Various techniques (such as analyzing child IDs to minimize node ID modifications) can of course be used to increase efficiency. [0000] General [0277] A strategy and software, to be known as “MALTbase”, have been described for converting arbitrary XML data into SQL tables. Unlike conventional object-relational mapping techniques, MALTbase is designed to produce an optimal SQL table set with a minimum of tables and records, but which contains sufficient information for the original XML to be reconstructed on demand. In this way, the performance and management benefits of using SQL are maximized. [0278] MALTbase is a technology which facilitates the storage and maintenance of very large XML documents. It does this by breaking the original (master) document into a large number of nodes, each of which resides in its own sub-document. A MALTbase node is defined to be the content of any of a set of nominated elements (the node element set). The important distinction between a node and an element is that a node does not explicitly contain the content of any sub-node. Instead, the sub-nodes within a node are represented by placeholders, which are empty tags marking the position of a sub-node, and pointing to the relevant sub-node document. [0279] One of the greatest benefits of this system is that the nodes are created in such a way that: if you ensure the validity of each node, then the validity of the entire document is guaranteed. It is difficult to overstate the importance of this point, since this feature allows a user to update a single node in isolation. Provided a user's updates leave the node valid against the DTD (as all good XML editors should), then the user can be confident that the larger document as a whole will also be valid, without having to examine anything outside the scope of the node's being modified. [0280] The method of converting XML data into SQL tables is preferably practised using a general-purpose computer system 1100, such as that shown in FIG. 11 wherein the processes of FIGS. 3 to 10 may be implemented as software, such as an application program executing within the computer system 1100. In particular, the steps of a method of converting XML data into SQL tables are effected by instructions in the software that are carried out by the computer. The instructions may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part performs one or more methods of FIGS. 3 to 10 and a second part manages a user interface between the first part and the user. The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for FIGS. 3 to 10. [0281] The computer system 1100 comprises a computer module 1101, input devices such as a keyboard 1102 and mouse 1103, output devices including a printer 1115 and a display device 1114. A Modulator-Demodulator (Modem) transceiver device 1116 is used by the computer module 1101 for communicating to and from a communications network 1120, for example connectable via a telephone line 1121 or other functional medium. The modem 1116 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN). [0282] The computer module 1101 typically includes at least one processor unit 1105, a memory unit 1106, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output (I/O) interfaces including a video interface 1107, and an I/O interface 1113 for the keyboard 1102 and mouse 1103 and optionally a joystick (not illustrated), and an interface 1108 for the modem 1116. A storage device 1109 is provided and typically includes a hard disk drive 1110 and a floppy disk drive 1111. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 1112 is typically provided as a non-volatile source of data. The components 1105 to 1113 of the computer module 1101 typically communicate via an interconnected bus 1104 and in a manner which results in a conventional mode of operation of the computer system 1100 known to those in the relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom. [0283] Typically, the application program is resident on the hard disk drive 1110 and read and controlled in its execution by the processor 1105. Intermediate storage of the program and any data fetched from the network 1120 may be accomplished using the semiconductor memory 1106, possibly in concert with the hard disk drive 1110. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 1112 or 1111, or alternatively may be read by the user from the network 1120 via the modem device 1116. Still further, the software can also be loaded into the computer system 1100 from other computer readable media. The term “computer readable medium” as used herein refers to any storage or transmission medium that participates in providing instructions and/or data to the computer system 1100 for execution and/or processing. Examples of storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 1101. Examples of transmission media include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including email transmissions and information recorded on websites and the like. [0284] The method of converting XML data into SQL tables may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of FIGS. 3 to 10. Such dedicated hardware may include one or more microprocessors and associated memories. INDUSTRIAL APPLICABILITY [0285] It is apparent from the above that the arrangements described are applicable to any industry that has a need to efficiently access and/or modify XML encoded text-based data, also referred to as document-centric XML. Examples are the electronic publishing industry, document management, publishers and service providers dealing with requirements engineering documents, journal articles, manuals, software and other online help, etc. [0286] The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4558413 *Nov 21, 1983Dec 10, 1985Xerox CorporationSoftware version management systemUS4627019 *Jul 8, 1982Dec 2, 1986At&T Bell LaboratoriesDatabase management system for controlling concurrent access to a databaseUS4714992 *Nov 26, 1985Dec 22, 1987International Business Machines CorporationCommunication for version management in a distributed information serviceUS4853843 *Dec 18, 1987Aug 1, 1989Tektronix, Inc.System for merging virtual partitions of a distributed databaseUS4875159 *Dec 22, 1987Oct 17, 1989Amdahl CorporationVersion management system using plural control fields for synchronizing two versions of files in a multiprocessor systemUS5148154 *Dec 4, 1990Sep 15, 1992Sony Corporation Of AmericaMulti-dimensional user interfaceUS5287496 *Feb 25, 1991Feb 15, 1994International Business Machines CorporationDynamic, finite versioning for concurrent transaction and query processingUS5302660 *Jul 7, 1993Apr 12, 1994Bayer AktiengesellschaftProcess for the production of viscosity-stable, low-gel highly concentrated elastane spinning solutionsUS5307456 *Jan 28, 1992Apr 26, 1994Sony Electronics, Inc.Integrated multi-media production and authoring systemUS5355472 *Nov 19, 1990Oct 11, 1994International Business Machines CorporationSystem for substituting tags for non-editable data sets in hypertext documents and updating web files containing links between data sets corresponding to changes made to the tagsUS5440730 *Aug 9, 1990Aug 8, 1995Bell Communications Research, Inc.Time index access structure for temporal databases having concurrent multiple versionsUS5671428 *Aug 28, 1992Sep 23, 1997Kabushiki Kaisha ToshibaCollaborative document processing system with version and comment managementUS5732257 *Sep 13, 1995Mar 24, 1998Hewlett-Packard Co.Object conversion method from a flat object space to a class structured spaceUS5740425 *Sep 26, 1995Apr 14, 1998Povilus; David S.Data structure and method for publishing electronic and printed product catalogsUS5767854 *Sep 27, 1996Jun 16, 1998Anwar; Mohammed S.Multidimensional data display and manipulation system and methods for using sameUS5801702 *Mar 9, 1995Sep 1, 1998Terrabyte TechnologySystem and method for adding network links in a displayed hierarchyUS5813185 *Apr 29, 1996Sep 29, 1998Jackson; George W.Spacer reciever for a wall form tie rodUS5835087 *Oct 31, 1995Nov 10, 1998Herz; Frederick S. M.System for generation of object profiles for a system for customized electronic identification of desirable objectsUS5877766 *Aug 15, 1997Mar 2, 1999International Business Machines CorporationMulti-node user interface component and method thereof for use in accessing a plurality of linked recordsUS5892513 *Jun 7, 1996Apr 6, 1999Xerox CorporationIntermediate nodes for connecting versioned subtrees in a document management systemUS5935210 *Nov 27, 1996Aug 10, 1999Microsoft CorporationMapping the structure of a collection of computer resourcesUS5963208 *Jul 14, 1998Oct 5, 1999Michael A. DolanIntegrated network access user interface for navigating with a hierarchical graphUS6026388 *Aug 14, 1996Feb 15, 2000Textwise, LlcUser interface and other enhancements for natural language information retrieval system and methodUS6031537 *Jul 14, 1997Feb 29, 2000Natrificial LlcMethod and apparatus for displaying a thought network from a thought's perspectiveUS6047126 *Mar 8, 1996Apr 4, 2000Kabushiki Kaisha ToshibaDocument requesting and providing system using safe and simple document linking schemeUS6061697 *Aug 25, 1997May 9, 2000Fujitsu LimitedSGML type document managing apparatus and managing methodUS6078934 *Jul 9, 1997Jun 20, 2000International Business Machines CorporationManagement of a document database for page retrievalUS6144962 *Apr 11, 1997Nov 7, 2000Mercury Interactive CorporationVisualization of web sites and hierarchical data structuresUS6154213 *May 29, 1998Nov 28, 2000Rennison; Earl F.Immersive movement-based interaction with large complex information structuresUS6185576 *Oct 21, 1998Feb 6, 2001Mcintosh LowrieDefining a uniform subject classification system incorporating document management/records retention functionsUS6189019 *Aug 14, 1996Feb 13, 2001Microsoft CorporationComputer system and computer-implemented process for presenting document connectivityUS6204850 *Apr 7, 1998Mar 20, 2001Daniel R. GreenScaleable camera model for the navigation and display of information structures using nested, bounded 3D coordinate spacesUS6233592 *Jul 1, 1998May 15, 2001Time Base Pty LimitedSystem for electronic publishingUS6366933 *Oct 27, 1995Apr 2, 2002At&T Corp.Method and apparatus for tracking and viewing changes on the webUS6421656 *Jun 2, 1999Jul 16, 2002International Business Machines CorporationMethod and apparatus for creating structure indexes for a data base extenderUS6470490 *Aug 27, 1993Oct 22, 2002Victor E. HansenContextual data representation and retrieval methodUS6502101 *Jul 13, 2000Dec 31, 2002Microsoft CorporationConverting a hierarchical data structure into a flat data structureUS6505191 *Jul 23, 1999Jan 7, 2003Jarg CorporationDistributed computer database system and method employing hypertext linkage analysisUS6529905 *Jan 11, 2000Mar 4, 2003Frontline Solutions, Inc.Method and system for allowing multiple users to edit a hierarchical data structureUS6542911 *Mar 1, 2001Apr 1, 2003Sun Microsystems, Inc.Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cacheUS6581062 *Mar 2, 2000Jun 17, 2003Nimble Technology, Inc.Method and apparatus for storing semi-structured data in a structured mannerUS6584459 *Jun 2, 1999Jun 24, 2003International Business Machines CorporationDatabase extender for storing, querying, and retrieving structured documentsUS6584480 *Oct 30, 2000Jun 24, 2003Microsoft CorporationStructured documents in a publishing systemUS6601065 *Dec 21, 2000Jul 29, 2003Cisco Technology, Inc.Method and apparatus for accessing a database through a networkUS6606653 *Oct 7, 1999Aug 12, 2003International Business Machines CorporationUpdating of embedded links in World Wide Web source pages to have the new URLs of their linked target Web pages after such target Web pages have been movedUS6636845 *Jan 31, 2002Oct 21, 2003International Business Machines CorporationGenerating one or more XML documents from a single SQL queryUS6643633 *Jan 31, 2002Nov 4, 2003International Business Machines CorporationStoring fragmented XML data into a relational database by decomposing XML documents with application specific mappingsUS6708186 *Sep 28, 2000Mar 16, 2004Oracle International CorporationAggregating and manipulating dictionary metadata in a database systemUS6708214 *Apr 21, 2000Mar 16, 2004Openwave Systems Inc.Hypermedia identifier input mode for a mobile communication deviceUS6721727 *Nov 29, 2000Apr 13, 2004International Business Machines CorporationXML documents stored as column dataUS6772139 *Oct 5, 1999Aug 3, 2004Smith, Iii Julius O.Method and apparatus for facilitating use of hypertext links on the world wide webUS6823495 *Sep 14, 2000Nov 23, 2004Microsoft CorporationMapping tool graphical user interfaceUS6826726 *Aug 17, 2001Nov 30, 2004Vaultus Mobile Technologies, Inc.Remote document updating system using XML and DOMUS6832219 *Mar 18, 2002Dec 14, 2004International Business Machines CorporationMethod and system for storing and querying of markup based documents in a relational databaseUS6836778 *May 1, 2003Dec 28, 2004Oracle International CorporationTechniques for changing XML content in a relational databaseUS6853997 *Jun 28, 2001Feb 8, 2005Infoglide CorporationSystem and method for sharing, mapping, transforming data between relational and hierarchical databasesUS6886005 *Feb 16, 2001Apr 26, 2005E-Numerate Solutions, Inc.RDL search engineUS6934712 *Mar 19, 2001Aug 23, 2005International Business Machines CorporationTagging XML query results over relational DBMSsUS6944817 *Jun 7, 2000Sep 13, 2005Intel CorporationMethod and apparatus for local generation of Web pagesUS6947945 *Mar 21, 2000Sep 20, 2005International Business Machines CorporationUsing an XML query language to publish relational data as XMLUS6950913 *Nov 8, 2002Sep 27, 2005Newisys, Inc.Methods and apparatus for multiple cluster lockingUS7028147 *Dec 13, 2002Apr 11, 2006Sun Microsystems, Inc.System and method for efficiently and reliably performing write cache mirroringUS7075536 *Jul 13, 2001Jul 11, 2006Cisco Technology, Inc.Incremental plotting of network topologies and other graphs through use of markup languageUS7293228 *Oct 12, 2000Nov 6, 2007Timebase Pty LimitedMaltweb multi-axis viewing interface and higher level scopingUS7376674 *May 14, 2004May 20, 2008Oracle International CorporationStorage of multiple pre-modification short duration copies of database information in short term memoryUS7412535 *Dec 19, 2001Aug 12, 2008International Business Machines CorporationMethod and system for caching fragments while avoiding parsing of pages that do not contain fragmentsUS7526479 *Dec 30, 2003Apr 28, 2009Sap AgConfiguration manager in enterprise computing systemUS20010037345 *Mar 19, 2001Nov 1, 2001International Business Machines CorporationTagging XML query results over relational DBMSsUS20010047372 *Feb 12, 2001Nov 29, 2001Alexander GorelikNested relational data modelUS20020010700 *Jun 28, 2001Jan 24, 2002Wotring Steven C.System and method for sharing data between relational and hierarchical databasesUS20020010711 *Sep 18, 1998Jan 24, 2002Yoshiaki NakanishiHypertext editing systemUS20020023091 *Jun 22, 2001Feb 21, 2002Silberberg David P.Architecture for distributed database information accessUS20020116371 *Dec 5, 2000Aug 22, 2002David DoddsSystem and method for the storage, indexing and retrieval of XML documents using relation databasesUS20020120630 *Aug 1, 2001Aug 29, 2002Christianson David B.Method and apparatus for storing semi-structured data in a structured mannerUS20020129052 *Aug 29, 2001Sep 12, 2002David GlazerMethod, system, apparatus and content model for the creation, management, storage, and presentation of dynamic objectsUS20020133484 *Jan 31, 2002Sep 19, 2002International Business Machines CorporationStoring fragmented XML data into a relational database by decomposing XML documents with application specific mappingsUS20020133497 *Aug 2, 2001Sep 19, 2002Draper Denise L.Nested conditional relations (NCR) model and algebraUS20020156811 *May 23, 2001Oct 24, 2002Krupa Kenneth A.System and method for converting an XML data structure into a relational databaseUS20020169788 *Feb 14, 2001Nov 14, 2002Wang-Chien LeeSystem and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema thereforUS20020194357 *Jun 15, 2001Dec 19, 2002International Business Machines CorporationMethod for allowing simple interoperation between backend database systemsUS20030023754 *Jul 27, 2001Jan 30, 2003Matthias EichstadtMethod and system for adding real-time, interactive functionality to a web-pageUS20030041305 *Jul 17, 2002Feb 27, 2003Christoph SchnelleResilient data linksUS20030070144 *Sep 3, 2002Apr 10, 2003Christoph SchnelleMapping of data from XML to SQLUS20030140308 *Sep 27, 2002Jul 24, 2003Ravi MurthyMechanism for mapping XML schemas to object-relational database systemsUS20030167420 *Nov 20, 2002Sep 4, 2003Parsons Eric W.Reliable distributed shared memoryUS20030167456 *Apr 13, 2001Sep 4, 2003Vinay SabharwalArchitecture for building scalable object oriented web database applicationsUS20030177443 *Nov 14, 2002Sep 18, 2003Christoph SchnelleMaintenance of a markup language document in a databaseUS20030226108 *May 31, 2002Dec 4, 2003Markus OezgenIndexing structured documentsUS20040093469 *Nov 8, 2002May 13, 2004Newisys, Inc. A Delaware CorporationMethods and apparatus for multiple cluster lockingUS20040139327 *Dec 24, 2003Jul 15, 2004Ilumin CorporationSystem and method for document-driven processing of digitally-signed electronic documentsUS20040162807 *Dec 31, 2003Aug 19, 2004Montagne Michael D.Cooperative, simultaneous operation on data by many processes, with concurrent retention of process status, resumed processing, and minimal consumption of inter-nodal throughputUS20040183831 *Feb 26, 2004Sep 23, 2004Ritchy Robert A.Systems and methods for improved portal developmentUS20040220927 *May 1, 2003Nov 4, 2004Oracle International CorporationTechniques for retaining hierarchical information in mapping between XML documents and relational dataUS20050039109 *Feb 6, 2004Feb 17, 2005Schumacher Robert M.Structured document browserUS20050171946 *Jan 13, 2003Aug 4, 2005Enrico MaimMethods and systems for searching and associating information resources such as web pagesUS20050278475 *Mar 31, 2003Dec 15, 2005Microsoft CorporationPlaceholder control object for creating and viewing content in connection with a content management server systemUS20060181531 *Apr 12, 2006Aug 17, 2006Goldschmidt Cassio BIncremental plotting of network topologies and other graphs through use of markup languageUS20070174541 *Feb 20, 2007Jul 26, 2007Sashikanth ChandrasekaranMethods to perform disk writes in a distributed shared disk system needing consistency across failuresUS20070192246 *Jan 22, 2007Aug 16, 2007Intersearch Group, Inc.System and method for redirecting internet traffic* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7721190Nov 16, 2004May 18, 2010Microsoft CorporationMethods and systems for server side form processingUS7725834Mar 4, 2005May 25, 2010Microsoft CorporationDesigner-created aspect for an electronic form templateUS7743063Jan 27, 2005Jun 22, 2010Microsoft CorporationMethods and systems for delivering software via a networkUS7774620May 27, 2004Aug 10, 2010Microsoft CorporationExecuting applications at appropriate trust levelsUS7779027Sep 13, 2004Aug 17, 2010Microsoft CorporationMethods, systems, architectures and data structures for delivering software via a networkUS7818677Aug 12, 2004Oct 19, 2010Microsoft CorporationSingle window navigation methods and systemsUS7827177 *May 29, 2007Nov 2, 2010Oracle International CorporationManaging compound XML documents in a repositoryUS7865477 *Oct 15, 2007Jan 4, 2011Microsoft CorporationSystem and method for real-time validation of structured data filesUS7900134Nov 8, 2006Mar 1, 2011Microsoft CorporationAuthoring arbitrary XML documents using DHTML and XSLTUS7913159Mar 28, 2003Mar 22, 2011Microsoft CorporationSystem and method for real-time validation of structured data filesUS7925621Jan 29, 2008Apr 12, 2011Microsoft CorporationInstalling a solutionUS7937398Oct 13, 2010May 3, 2011Oracle International CorporationManaging compound XML documents in a repositoryUS7937651Jan 14, 2005May 3, 2011Microsoft CorporationStructural editing operations for network formsUS7971139Oct 31, 2007Jun 28, 2011Microsoft CorporationCorrelation, association, or correspondence of electronic formsUS7979856Sep 1, 2005Jul 12, 2011Microsoft CorporationNetwork-based software extensionsUS8001459Dec 5, 2005Aug 16, 2011Microsoft CorporationEnabling electronic documents for limited-capability computing devicesUS8010515Apr 15, 2005Aug 30, 2011Microsoft CorporationQuery to an electronic formUS8074217Oct 29, 2007Dec 6, 2011Microsoft CorporationMethods and systems for delivering softwareUS8082304Dec 10, 2004Dec 20, 2011Cisco Technology, Inc.Guaranteed delivery of application layer messages by a network elementUS8090839 *Jun 21, 2006Jan 3, 2012Cisco Technology, Inc.XML message validation in a network infrastructure elementUS8117552Dec 5, 2006Feb 14, 2012Microsoft CorporationIncrementally designing electronic forms and hierarchical schemasUS8200975Jun 29, 2005Jun 12, 2012Microsoft CorporationDigital signatures for network formsUS8312148May 3, 2011Nov 13, 2012Cisco Technology, Inc.Performing message payload processing functions in a network element on behalf of an applicationUS8356053Oct 20, 2005Jan 15, 2013Oracle International CorporationManaging relationships between resources stored within a repositoryUS8418053 *Mar 31, 2006Apr 9, 2013Fujitsu LimitedDivision program, combination program and information processing methodUS8429522Jun 15, 2011Apr 23, 2013Microsoft CorporationCorrelation, association, or correspondence of electronic formsUS8458467Apr 5, 2006Jun 4, 2013Cisco Technology, Inc.Method and apparatus for adaptive application message payload content transformation in a network infrastructure elementUS8487879Oct 29, 2004Jul 16, 2013Microsoft CorporationSystems and methods for interacting with a computer through handwriting to a screenUS8549171Mar 24, 2005Oct 1, 2013Cisco Technology, Inc.Method and apparatus for high-speed processing of structured application messages in a network deviceUS8612407 *Jul 18, 2012Dec 17, 2013International Business Machines CorporationSource control inheritance lockingUS8799403Dec 15, 2009Aug 5, 2014Cisco Technology, Inc.Caching content and state data at a network elementUS8819072Feb 2, 2004Aug 26, 2014Microsoft CorporationPromoting data from structured data filesUS8892993Feb 8, 2008Nov 18, 2014Microsoft CorporationTranslation fileUS8918729Apr 2, 2008Dec 23, 2014Microsoft CorporationDesigning electronic formsUS8972851 *Mar 18, 2010Mar 3, 2015Canon Kabushiki KaishaMethod of coding or decoding a structured document by means of an XML schema, and the associated device and data structureUS9058339 *Sep 6, 2012Jun 16, 2015International Business Machines CorporationSource control inheritance lockingUS9183321 *May 29, 2007Nov 10, 2015Oracle International CorporationManaging compound XML documents in a repositoryUS9208255 *Jan 19, 2012Dec 8, 2015Chun Gi KimMethod of converting data of database and creating XML documentUS9210234Jun 13, 2011Dec 8, 2015Microsoft Technology Licensing, LlcEnabling electronic documents for limited-capability computing devicesUS9229917Mar 18, 2011Jan 5, 2016Microsoft Technology Licensing, LlcElectronic form user interfacesUS9239821Oct 31, 2014Jan 19, 2016Microsoft Technology Licensing, LlcTranslation fileUS9268760Apr 22, 2013Feb 23, 2016Microsoft Technology Licensing, LlcCorrelation, association, or correspondence of electronic formsUS9380008Sep 30, 2013Jun 28, 2016Cisco Technology, Inc.Method and apparatus for high-speed processing of structured application messages in a network deviceUS20040189708 *Mar 28, 2003Sep 30, 2004Larcheveque Jean-Marie H.System and method for real-time validation of structured data filesUS20050010871 *Aug 12, 2004Jan 13, 2005Microsoft CorporationSingle window navigation methods and systemsUS20060026534 *Sep 23, 2005Feb 2, 2006Microsoft CorporationProviding information to computer usersUS20060106858 *Nov 16, 2004May 18, 2006Microsoft CorporationMethods and systems for server side form processingUS20060123425 *Mar 24, 2005Jun 8, 2006Karempudi RamaraoMethod and apparatus for high-speed processing of structured application messages in a network deviceUS20060129650 *Dec 10, 2004Jun 15, 2006Ricky HoGuaranteed delivery of application layer messages by a network elementUS20060161837 *Jan 14, 2005Jul 20, 2006Microsoft CorporationStructural editing operations for network formsUS20060197982 *Mar 4, 2005Sep 7, 2006Microsoft CorporationDesigner-created aspect for an electronic form templateUS20060288208 *Apr 5, 2006Dec 21, 2006Vinod DashoraMethod and apparatus for adaptive application message payload content transformation in a network infrastructure elementUS20070005786 *Jun 21, 2006Jan 4, 2007Sandeep KumarXML message validation in a network infrastructure elementUS20070011665 *Jun 21, 2005Jan 11, 2007Microsoft CorporationContent syndication platformUS20070061467 *Sep 15, 2005Mar 15, 2007Microsoft CorporationSessions and session statesUS20070094286 *Oct 20, 2005Apr 26, 2007Ravi MurthyManaging relationships between resources stored within a repositoryUS20070094589 *Dec 5, 2006Apr 26, 2007Microsoft CorporationIncrementally Designing Electronic Forms and Hierarchical SchemasUS20070130500 *Dec 5, 2005Jun 7, 2007Microsoft CorporationEnabling electronic documents for limited-capability computing devicesUS20070150809 *Mar 31, 2006Jun 28, 2007Fujitsu LimitedDivision program, combination program and information processing methodUS20080033967 *Jul 18, 2006Feb 7, 2008Ravi MurthySemantic aware processing of XML documentsUS20080040635 *Oct 15, 2007Feb 14, 2008Microsoft CorporationSystem and Method for Real-Time Validation of Structured Data FilesUS20080052287 *Oct 31, 2007Feb 28, 2008Microsoft CorporationCorrelation, Association, or Correspondence of Electronic FormsUS20080091693 *May 29, 2007Apr 17, 2008Oracle International CorporationManaging compound XML documents in a repositoryUS20080091703 *May 29, 2007Apr 17, 2008Oracle International CorporationManaging compound XML documents in a repositoryUS20080126402 *Feb 8, 2008May 29, 2008Microsoft CorporationTranslation FileUS20080134162 *Oct 29, 2007Jun 5, 2008Microsoft CorporationMethods and Systems For Delivering SoftwareUS20080189335 *Jan 29, 2008Aug 7, 2008Microsoft CorporationInstalling A SolutionUS20080222514 *May 23, 2008Sep 11, 2008Microsoft CorporationSystems and Methods for Editing XML DocumentsUS20080286945 *Jul 10, 2008Nov 20, 2008Silicon Genesis CorporationControlled process and resulting deviceUS20090077462 *Nov 14, 2005Mar 19, 2009Justsystems CorporationDocument processing device and document processing methodUS20090177961 *Apr 2, 2008Jul 9, 2009Microsoft CorporationDesigning Electronic FormsUS20100094945 *Dec 15, 2009Apr 15, 2010Cisco Technology, Inc.Caching content and state data at a network elementUS20100125778 *Jan 27, 2010May 20, 2010Microsoft CorporationData-Driven Actions For Network FormsUS20100241949 *Mar 18, 2010Sep 23, 2010Canon Kabushiki KaishaMethod of coding or decoding a structured document by means of an xml schema, and the associated device and data structureUS20110047193 *Oct 13, 2010Feb 24, 2011Oracle International CorporationManaging compound xml documents in a repositoryUS20110093486 *Mar 3, 2010Apr 21, 2011Institute For Information IndustryData query method, data query system and computer readable and writable recording mediumUS20110208867 *May 3, 2011Aug 25, 2011Tefcros AnthiasPerforming Message Payload Processing Functions In A Network Element On Behalf Of An ApplicationUS20110239101 *Jun 13, 2011Sep 29, 2011Microsoft CorporationEnabling electronic documents for limited-capability computing devicesUS20120066577 *Sep 9, 2010Mar 15, 2012Microsoft CorporationConcurrent Editing of Online DrawingsUS20140025653 *Sep 6, 2012Jan 23, 2014International Business Machines CorporationSource Control Inheritance LockingUS20140026116 *Jul 18, 2012Jan 23, 2014International Business Machines CorporationSource control execution path lockingUS20140026117 *Sep 6, 2012Jan 23, 2014International Business Machines CorporationSource Control Execution Path LockingCN102508840A *Sep 6, 2011Jun 20, 2012微软公司Concurrent editing of online drawingsWO2011146220A2 *Apr 29, 2011Nov 24, 2011Microsoft CorporationMapping documents to a relational database table with a document position columnWO2011146220A3 *Apr 29, 2011Jan 26, 2012Microsoft CorporationMapping documents to a relational database table with a document position column* Cited by examinerClassifications U.S. Classification1/1, 715/239, 715/234, 707/999.101, 707/999.104, 707/999.1International ClassificationG06F7/00, G06F17/00, G06F15/00Cooperative ClassificationG06F17/30917European ClassificationG06F17/30X3DLegal EventsDateCodeEventDescriptionAug 29, 2007ASAssignmentOwner name: TIMEBASE PTY LIMITED, AUSTRALIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHNELLE, CHRISTOPH;NOLAN, GEOFFREY JOHN;REEL/FRAME:019796/0880Effective date: 20011123RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services