# US 10,372,792 B2 · Document transformation performance via incremental fragment transformations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,792 B2
- Document ID: US10372792B2
- Status: Granted
- Kind: B2
- Application number: 15/814,640
- Filed: 2017-11-16
- Published: 2018-03-15
- Granted: 2019-08-06
- Earliest claimed: 2007-03-05
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: John E. Petri
- Web page: https://patentgrep.com/patent/US10372792B2

## CPC

- G06F 40/154: Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
- G06F 40/131: Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
- G06F 40/143: Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
- G06F 40/151: Transformation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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:
subsequent to receiving a source document by a document management system (DMS): (i) fragmenting the source document into a constituent set of document fragments and (ii) applying the document transformation to the set of document fragments in order 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, and responsive to receiving a request to apply the document transformation to the source document, 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;
generating a source tree of at least the one document fragment; and
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, to the source tree in order to generate a transformed result fragment, wherein the event is defined by the one or more rules, wherein the transformed result fragment is stored in a result fragment cache.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
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 includes a capability of, upon detecting occurrence of an event for performing a full transformation, transforming the entirety of the source document having the modified document fragment, into the result document without generating any transformed result fragments.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the event for performing the full transformation comprises, in different instances: (i) a date last transformed; (ii) a percentage of modified fragments; and (iii) a user specifying to perform the full transformation.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, 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 renders the result document.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, 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 an HTML document from the XML document.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment; and
storing the set of result fragments in the result fragment cache.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the XSLT transformation is based on an XSLT stylesheet, wherein the transformation display tool comprises a web browser that renders the HTML document.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, 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 an HTML document from the XML document.

### Claim 10

A non-transitory computer-readable medium containing a program comprising a document management system (DMS) executable to perform an operation of keeping result documents, transformed from source documents, current when the source documents are modified, the operation comprising:
subsequent to receiving a source document by a document management system (DMS): (i) fragmenting the source document into a constituent set of document fragments and (ii) applying the document transformation to the set of document fragments in order 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 of the set of result fragments and (ii) a corresponding result fragment; 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, and responsive to receiving a request to apply the document transformation to the source document, 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;
generating a source tree of at least the one document fragment; and
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, to the source tree in order to generate a transformed result fragment, wherein the event is defined by the one or more rules, wherein the transformed result fragment is stored in a result fragment cache.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the operation further comprises:
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 includes a capability of, upon detecting occurrence of an event for performing a full transformation, transforming the entirety of the source document having the modified document fragment, into the result document without generating any transformed result fragments.

### Claim 12 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the operation further comprises:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment; and
storing the set of result fragments in the result fragment cache.

### Claim 13 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the operation further comprises:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment.

### Claim 14 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein the XSLT transformation is based on an XSLT stylesheet, wherein the transformation display tool comprises a web browser that renders the HTML document.

### Claim 15 (depends on 10)

The non-transitory computer-readable medium of claim 10, 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 an HTML document from the XML document.

### Claim 16

A system of keeping result documents, transformed from source documents, current when the source documents are modified, the system comprising:
one or more computer processors; and
a memory containing a program associated with a document management system (DMS) and which, when executed by the one or more computer processors, performs an operation for managing documents in the DMS, the operation comprising:
subsequent to receiving a source document by the DMS: (i) fragmenting the source document into a constituent set of document fragments and (ii) applying the document transformation to the set of document fragments in order 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, and responsive to receiving a request to apply the document transformation to the source document, 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;
generating a source tree of at least the one document fragment; and
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, to the source tree in order to generate a transformed result fragment, wherein the event is defined by the one or more rules, wherein the transformed result fragment is stored in a result fragment cache.

### Claim 17 (depends on 16)

The system of claim 16, wherein the operation further comprises:
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 & includes a capability of, upon detecting occurrence of an event for performing a full transformation, transforming the entirety of the source document having the modified document fragment, into the result document without generating any transformed result fragments.

### Claim 18 (depends on 16)

The system of claim 16, wherein the operation further comprises:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment; and
storing the set of result fragments in the result fragment cache.

### Claim 19 (depends on 16)

The system of claim 16, wherein the operation further comprises:
establishing a set of links between each document fragment and corresponding result fragment, wherein the links identify the one or more rules of the set of rules associated with each document fragment.

### Claim 20 (depends on 16)

The system of claim 16, wherein the XSLT transformation is based on an XSLT stylesheet, wherein the transformation display tool comprises a web browser that renders the HTML document.

### Claim 21 (depends on 16)

The system of claim 16, 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 an HTML document from the XML document.
