IP Library Granted Patent US 9,002,810
Granted Patent B1
US 9,002,810 · App. 13/338,553 · Granted Apr 7, 2015

Method and system for managing versioned structured documents in a database

Inventors: Jeroen Mattijs Van Rotterdam (Berkeley, CA); Ewout Graswinckel (Delft, NL)
Assignee: EMC Corporation
G06F17/30548
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,002,810
App. No.
13/338,553
Granted
Apr 7, 2015
Kind
B1
Abstract

A method for providing a query for searching over versions of a structured document includes providing a plurality of versioned nodes (vNodes) representing a plurality of objects of at least one version of a structured document. Each vNode includes versioning information associated with at least one version of the structured document and collectively, the vNodes graphically represent the version(s) of the structured document in a versioned document object model (“vDOM”) node tree. In an embodiment, a query for at least one version of the structured document is received. The query includes a versioned function (vFunction) having at least one argument relating to versioning information associated with one or more versions of the structured document. The vFunction is processed to identify a version of the structured document that includes an object represented by a vNode having versioning information satisfying the query.

Claims (28)

1. A method for providing a query for searching versions of a structured document, the method comprising:

providing by a server a plurality of versioned nodes (“vNodes”) representing a plurality of objects of at least one version of a structured document, wherein each vNode includes versioning information associated with the at least one version of the structured document and wherein, collectively, the plurality of vNodes graphically represent the at least one version of the structured document in a versioned document object model (“vDOM”) node tree, and wherein at least one vNode in the vDOM node tree is configured to have more than one parent node across multiple versions of the structured document;

receiving by the server a query for at least one version of the structured document, wherein the query includes a versioned function having at least one argument relating to versioning information associated with at least one version of the structured document; and

processing by the server the versioned function to identify a version of the structured document, wherein the identified structured document includes an object represented by a vNode having versioning information satisfying the at least one argument of the versioned function.

2. The method of claim 1 wherein versioning information of a vNode comprises at least one of a start date corresponding to a check-in date of a version of the structured document in which the vNode is first detected, and an end date corresponding to a check-in date of another version of the structured document in which the vNode no longer exists in the structured document.

3. The method of claim 2 wherein the versioned function is a “document-at-date” function and the at least one argument of the versioned function is a “date-point”argument that specifies a specific date, and wherein the identified version of the structured document is a version that exists on the specific date, and that includes an object represented by a vNode satisfying the query.

4. The method of claim 2 wherein the versioned function is a “document-at-date-range” function and the at least one argument of the versioned function is a “range-start-date” argument that specifies a first date and a “range-end-date” argument that specifies a second date, and wherein the identified version of the structured document is a version that at least one of exists on the first date and is checked-in on a date between the first date and the second date, and that includes an object represented by a vNode satisfying the query.

5. The method of claim 2 wherein the versioned function is a “document-before-date” function and the at least one argument of the versioned function includes a “date-point” argument that specifies a specific date, and wherein the identified version of the structured document is a version that is checked-in on a date no later than the specific date, and that includes an object represented by a vNode satisfying the query.

6. The method of claim 2 wherein the versioned function is a “document-after-date” function and the at least one argument of the versioned function specifies a “date-point” argument that specifies a specific date, and wherein the identified version of the structured document is a version that is checked-in on a date no earlier than the specific date, and includes an object represented by a vNode satisfying the query.

7. The method of claim 1 wherein the versioning information comprises at least one of a creator name of a version of the structured document, an identifier of the version, and a version date corresponding to a check-in date of the version of the structured document.

8. The method of claim 7 wherein the query includes a “version-creator” versioned function associated with the creator name of the version of the structured document.

9. The method of claim 7 wherein the query includes a “version-id” versioned function associated with the identifier of the version of the structured document.

10. The method of claim 7 wherein the query includes a “version-date” versioned function the version date of the identified version of the structured document.

11. A system for providing a query for searching versions of a structured document, the system comprising:

a processor-based versioned node (“vNode”) manager executed on a computer and configured to provide a plurality of versioned nodes (vNodes) representing a plurality of objects of at least one version of a structured document, wherein each vNode includes versioning information associated with the at least one version of the structured document and wherein, collectively, the plurality of vNodes graphically represent the at least one version of the structured document in a versioned document object model (“vDOM”) node tree, and wherein at least one vNode in the vDOM node tree is configured to have more than one parent node across multiple versions of the structured document; and

a processor-based query handler component executed on the computer and configured to receive a query for at least one version of the structured document, wherein the query includes a versioned function having at least one argument relating to versioning information associated with at least one version of the structured document, and to process the versioned function to identify a version of the structured document, wherein the identified structured document includes an object represented by a vNode having versioning information satisfying the at least one argument of the versioned function.

12. The system of claim 11 wherein versioning information of a vNode comprises at least one of a start date corresponding to a check-in date of a version of the structured document in which the vNode is first detected, and an end date corresponding to a check-in date of another version of the structured document in which the vNode no longer exists in the structured document.

13. The system of claim 12 wherein the versioned function is a “document-at-date” function and the at least one argument of the versioned function is a “date-point” argument that specifies a specific date, and wherein the identified version of the structured document is a version that exists on the specific date, and that includes an object represented by a vNode satisfying the query.

14. The system of claim 12 wherein the versioned function is a “document-at-date-range” function and the at least one argument of the versioned function is a “range-start-date” argument that specifies a first date and a “range-end-date” argument that specifies a second date, and wherein the identified version of the structured document is a version that at least one of exists on the first date and is checked-in on a date between the first date and the second date, and that includes an object represented by a vNode satisfying the query.

15. The system of claim 12 wherein the versioned function is a “document-before-date” function and the at least one argument of the versioned function includes a “date-point” argument that specifies a specific date, and wherein the identified version of the structured document is a version that is checked-in on a date no later than the specific date, and that includes an object represented by a vNode satisfying the query.

16. The system of claim 12 wherein the versioned function is a “document-after-date” function and the at least one argument of the versioned function specifies a “date-point” argument that specifies a specific date, and wherein the identified version of the structured document is a version that is checked-in on a date no earlier than the specific date, and includes an object represented by a vNode satisfying the query.

17. The system of claim 11 wherein the versioning information comprises at least one of a creator name of a version of the structured document, an identifier of the version, and a version date corresponding to a check-in date of the version of the structured document.

18. The system of claim 17 wherein the query includes a “version-creator” versioned function associated with the creator name of the version of the structured document.

19. The system of claim 17 wherein the query includes a “version-id” versioned function associated with the identifier of the version of the structured document.

20. A non-transitory computer-readable medium carrying one or more sequences of instructions for providing a query for searching over versions of a structured document, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:

providing by a server a plurality of versioned nodes (vNodes) representing a plurality of objects of at least one version of a structured document, wherein each vNode includes versioning information associated with the at least one version of the structured document and wherein, collectively, the plurality of vNodes graphically represent the at least one version of the structured document in a versioned document object model (“vDOM”) node tree, and wherein at least one vNode in the vDOM node tree is configured to have more than one parent across multiple versions of the structured document;

receiving by the server a query for at least one version of the structured document, wherein the query includes a versioned function having at least one argument relating to versioning information associated with at least one version of the structured document; and

processing by the server the versioned function to identify a version of the structured document, wherein the identified structured document includes an object represented by a vNode having versioning information satisfying the at least one argument of the versioned function.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC)
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041579/0133 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2012
From: VAN ROTTERDAM, JEROEN MATTIJS; GRASWINCKEL, EWOUT
To: EMC CORPORATION
Reel/Frame 027826/0390 →