IP Library › Granted Patent US 9,880,980
Granted Patent B2
US 9,880,980 · App. 11/681,926 · Granted Jan 30, 2018

Document transformation performance via incremental fragment transformations

Inventor: John Edward Petri (Lewiston, MN)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/2229G06F17/227G06F17/2247G06F17/2264
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,880,980
App. No.
11/681,926
Granted
Jan 30, 2018
Kind
B2
Abstract

A method and apparatus for improving the efficiency of document transformation processes is disclosed. For example, more efficient XML transformations may be performed against a source document that has incurred minor or incremental changes. Rather than apply a transform (e.g., an XSLT document) to a complete document each time any fragment of the source document is modified, a document management system may be configured to apply the transform only to the modified portions of the document.

Claims (74)

1. A computer-implemented method of keeping result documents, transformed from source documents, current when the source documents are modified, the computer-implemented method comprising:

receiving a source document by a document management system (DMS);

fragmenting the source document into a constituent set of document fragments; and

applying the document transformation to the set of document fragments to generate a set of result fragments;

generating a fragment link table based on a set of links established between: (i) each document fragment of the constituent set of document fragments and (ii) a corresponding result fragment of the set of result fragments; wherein the document transformation specifies a set of rules to transform the source document into a result document;

subsequent to generating the fragment link table, receiving a request to apply the document transformation to the source document;

responsive to the request, identifying the constituent set of document fragments generated from the source document, wherein each source fragment is associated with one or more rules of the set of rules for transforming the source document into the result document, wherein each of the constituent set of document fragments is stored in the DMS as a distinct document used to build the source document;

determining that one of the document fragments, from the set of document fragments generated from the source document, has been modified since a last time the document transformation was applied to the source document, including: (i) evaluating a timestamp associated with the constituent set of document fragments and (ii) analyzing a transformation status flag associated with the constituent set of document fragments;

upon detecting occurrence of an event for performing a partial transformation, applying the one or more rules of the set of rules associated with the modified document fragment and by the DMS when executed by one or more computer processors, in order to generate a transformed result fragment, wherein the event is defined by the one or more rules;

storing the transformed result fragment in a result fragment cache;

assembling the transformed result fragment and a set of unmodified result fragments in order to form the result document without transforming the entirety of the source document having the modified document fragment; and

returning the result document in response to the request;

wherein the DMS is configured to, upon detecting occurrence of an event for performing a full transformation, transform the entirety of the source document having the modified document fragment, into the result document and without generating any transformed result fragments, wherein the event for performing the full transformation comprises, in respective instances: (i) a date last transformed; (ii) a percentage of modified fragments; and (iii) a user specifying to perform the full transformation;

wherein the DMS is operatively connected to a client application, the client application comprising a plurality of components including a DMS plug-in and a transformation display tool, wherein the DMS plug-in permits the client application to interact with the DMS, wherein the transformation display tool is configured to render the result document;

wherein the source document is an Extensible Markup Language (XML) document, wherein the document transformation is an Extensible Stylesheet Language Transformations (XSLT) transformation, wherein each of the constituent set of document fragments is a partial source tree of the XML document, wherein the XSLT transformation is used to generate a Hypertext Markup Language (HTML) document from the XML document.

2. The computer-implemented method of claim 1 , wherein determining that one of the document fragments, from the set of document fragments, has been modified since a last time the document transformation was applied to the source document, comprises evaluating a timestamp associated with the constituent set of document fragments.

3. The computer-implemented method of claim 1 , further comprising:

establishing a set of links between each respective document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each respective document fragment; and

storing the set of result fragments in the result fragment cache.

4. The computer-implemented method of claim 1 , further comprising:

establishing a set of links between each respective document fragment and corresponding result fragment.

5. The computer-implemented method of claim 4 , wherein the links identify the one or more rules of the set of rules associated with each respective document fragment.

6. The computer-implemented method of claim 1 , wherein the XSLT transformation is based on an XSLT stylesheet.

7. The computer-implemented method of claim 1 , wherein the transformation display tool comprises a web browser configured to render the HTML document.

8. A non-transitory computer-readable medium containing a program comprising a document management system (DMS) and which, when executed, performs an operation of keeping result documents, transformed from source documents, current when the source documents are modified, the operation comprising:

receiving a source document by the DMS;

fragmenting the source document into a constituent set of document fragments; and

applying the document transformation to the set of document fragments to generate a set of result fragments;

generating a fragment link table based on a set of links established between: (i) each document fragment of the constituent set of document fragments and (ii) a corresponding result fragment of the set of result fragments; wherein the document transformation specifies a set of rules to transform the source document into a result document;

subsequent to generating the fragment link table, receiving a request to apply the document transformation to the source document;

responsive to the request, identifying the constituent set of document fragments generated from the source document, wherein each source fragment is associated with one or more rules of the set of rules for transforming the source document into the result document, wherein each of the constituent set of document fragments is stored in the DMS as a distinct document used to build the source document;

determining that one of the document fragments, from the set of document fragments generated from the source document, has been modified since a last time the document transformation was applied to the source document, including: (i) evaluating a timestamp associated with the constituent set of document fragments and (ii) analyzing a transformation status flag associated with the constituent set of document fragments;

upon detecting occurrence of an event for performing a partial transformation, applying the one or more rules of the set of rules associated with the modified document fragment and by the DMS when executed by one or more computer processors, in order to generate a transformed result fragment, wherein the event is defined by the one or more rules;

storing the transformed result fragment in a result fragment cache;

assembling the transformed result fragment and a set of unmodified result fragments in order to form the result document without transforming the entirety of the source document having the modified document fragment; and

returning the result document in response to the request;

wherein the DMS is configured to, upon detecting occurrence of an event for performing a full transformation, transform the entirety of the source document having the modified document fragment, into the result document and without generating any transformed result fragments, wherein the event for performing the full transformation comprises, in respective instances: (i) a date last transformed; (ii) a percentage of modified fragments; and (iii) a user specifying to perform the full transformation;

wherein the DMS is operatively connected to a client application, the client application comprising a plurality of components including a DMS plug-in and a transformation display tool, wherein the DMS plug-in permits the client application to interact with the DMS, wherein the transformation display tool is configured to render the result document;

wherein the source document is an Extensible Markup Language (XML) document, wherein the document transformation is an Extensible Stylesheet Language Transformations (XSLT) transformation, wherein each of the constituent set of document fragments is a partial source tree of the XML document, wherein the XSLT transformation is used to generate a Hypertext Markup Language (HTML) document from the XML document.

9. The non-transitory computer-readable medium of claim 8 , wherein determining that one of the document fragments, from the set of document fragments, has been modified since a last time the document transformation was applied to the source document, comprises evaluating a timestamp associated with the constituent set of document fragments.

10. The non-transitory computer-readable medium of claim 8 , wherein the operation further comprises:

establishing a set of links between each respective document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each respective document fragment; and

storing the set of result fragments in the result fragment cache.

11. The non-transitory computer-readable medium of claim 8 , wherein the operation further comprises:

establishing a set of links between each respective document fragment and corresponding result fragment.

12. The non-transitory computer-readable medium of claim 11 , wherein the links identify the one or more rules of the set of rules associated with each respective document fragment.

13. The non-transitory computer-readable medium of claim 8 , wherein the XSLT transformation is based on an XSLT stylesheet.

14. The non-transitory computer-readable medium of claim 8 , wherein the transformation display tool comprises a web browser configured to render the HTML document.

15. A system of keeping result documents, transformed from source documents, current when the source documents are modified, the system comprising:

a computer processor; and

a memory containing a program comprising a document management system (DMS) and which, when executed by the computer processor, performs an operation for managing documents in the DMS, the operation comprising:

receiving a source document by the DMS;

fragmenting the source document into a constituent set of document fragments; and

applying the document transformation to the set of document fragments to generate a set of result fragments;

generating a fragment link table based on a set of links established between: (i) each document fragment of the constituent set of document fragments and (ii) a corresponding result fragment of the set of result fragments; wherein the document transformation specifies a set of rules to transform the source document into a result document;

subsequent to generating the fragment link table, receiving a request to apply the document transformation to the source document;

responsive to the request, identifying the constituent set of document fragments generated from the source document, wherein each source fragment is associated with one or more rules of the set of rules for transforming the source document into the result document, wherein each of the constituent set of document fragments is stored in the DMS as a distinct document used to build the source document;

determining that one of the document fragments, from the set of document fragments generated from the source document, has been modified since a last time the document transformation was applied to the source document, including: (i) evaluating a timestamp associated with the constituent set of document fragments and (ii) analyzing a transformation status flag associated with the constituent set of document fragments;

upon detecting occurrence of an event for performing a partial transformation, applying the one or more rules of the set of rules associated with the modified document fragment in order to generate a transformed result fragment, wherein the event is defined by the one or more rules;

storing the transformed result fragment in a result fragment cache;

assembling the transformed result fragment and a set of unmodified result fragments in order to form the result document without transforming the entirety of the source document having the modified document fragment; and

returning the result document in response to the request;

wherein the DMS is configured to, upon detecting occurrence of an event for performing a full transformation, transform the entirety of the source document having the modified document fragment, into the result document and without generating any transformed result fragments, wherein the event for performing the full transformation comprises, in respective instances: (i) a date last transformed; (ii) a percentage of modified fragments; and (iii) a user specifying to perform the full transformation;

wherein the DMS is operatively connected to a client application, the client application comprising a plurality of components including a DMS plug-in and a transformation display tool, wherein the DMS plug-in permits the client application to interact with the DMS, wherein the transformation display tool is configured to render the result document;

wherein the source document is an Extensible Markup Language (XML) document, wherein the document transformation is an Extensible Stylesheet Language Transformations (XSLT) transformation, wherein each of the constituent set of document fragments is a partial source tree of the XML document, wherein the XSLT transformation is used to generate a Hypertext Markup Language (HTML) document from the XML document.

16. The system of claim 15 , wherein determining that one of the document fragments, from the set of document fragments, has been modified since a last time the document transformation was applied to the source document, comprises evaluating a timestamp associated with the constituent set of document fragments.

17. The system of claim 15 , wherein the operation further comprises:

establishing a set of links between each respective document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each respective document fragment; and

storing the set of result fragments in the result fragment cache.

18. The system of claim 15 , wherein the operation further comprises:

establishing a set of links between each respective document fragment and corresponding result fragment.

19. The system of claim 18 , wherein the links identify the one or more rules of the set of rules associated with each respective document fragment.

20. The system of claim 15 , wherein the XSLT transformation is based on an XSLT stylesheet.

21. The system of claim 15 , wherein the transformation display tool comprises a web browser configured to render the HTML document.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2007
From: PETRI, JOHN E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 018958/0516 →
Continuity (1)
Related Publication 20080222516A1 · Sep 11, 2008