Method and system for reversible design tree transformations
AssigneeIntentional Software Corporation
InventorCharles Simonyi
Life of this patent
Estimating the term…
Abstract
A method and system for transforming versions of a design tree and transforming identity-descriptions relating to the versions of a design tree. The transformation system provides a pipeline of transforms for sequentially transforming versions of a design tree and transforming identity-descriptions relating to the versions of the design tree. Each transform may provide a command interface for manipulating the input version of the design tree or for setting parameters to control the transformations of a transform.
Claims24
A method in a computer system having a memory and a processor for transforming a design tree representing a document, the method comprising:
- inputting by a source transform an identity-description identifying a subset of a version of the design tree and outputting by the source transform the subset of the version of the design tree identified by the input identity-description;
- for each of a plurality of intermediate transforms,
- inputting by the intermediate transform a version of the design tree and outputting by the intermediate transform a transformed version of the design tree;
- and
- inputting by the intermediate transform an identity-description identifying a subset of the transformed version of the design tree and outputting by the intermediate transform a transformed identity-description identifying a subset of the input version of the design tree
- wherein each intermediate transform is reversible such that forward transforms transform versions of the design tree and backward transforms transform identity-descriptions identifying subsets of versions of the design tree;
- and
- inputting by a sink transform a version of the design tree and outputting by the sink transform an identity-description identifying a subset of the input version of the design tree,
- wherein the transforms form a pipeline having a modular architecture starting with the source transform, continuing with the intermediate transforms, and ending with the sink transform in the forward direction and starting with the sink transform, continuing with the intermediate transforms, and ending with the source transform in the backward direction.
A computer system with a processor and memory for transforming a structured representation of a document, the structured representation being a design tree, comprising:
- a source transform for inputting an identity-description identifying a subset of a version of the structured representation and outputting the subset of the version of the structured representation identified by the input identity-description;
- a plurality of intermediate transforms, each intermediate transform for inputting a version of the structured representation and outputting a transformed version of the structured representation and for inputting an identity-description identifying a subset of the transformed version of the structured representation and outputting a transformed identity-description identifying a subset of the input version of the structured representation, wherein each intermediate transform is reversible such that forward transforms transform versions of the structured representation and backward transforms transform identity-descriptions identifying subsets of versions of the structured representation, each intermediate transform having a command interface for setting state parameters to control the transformations of the transform;
- a sink transform for inputting a version of the structured representation and rendering the version of the structured representation on an output device and for inputting an identity-description of a portion of the structured representation generated by a user command processor and outputting an identity-description identifying a subset the structured representation;
- a user command processor for,
- receiving an editing command input from a user, the editing command specifying a portion of the design tree and an editing operation to be performed on the specified portion,
- generating an identity-description corresponding to the specified portion of the design tree,
- sending the generated identity-description to the sink transform in the backward direction,
- determining an appropriate intermediate transform for effecting the performing of the editing command,
- invoking a function of the command interface of the determined appropriate intermediate transform to effect the performing of the editing command on the specified portion of the design tree
- so that when the determined appropriate intermediate transform receives an indication of the generated identity-description, the determined appropriate intermediate transform can effect the performing of the editing command and then send an indication of the structured representation to the sink transform in the forward direction
- wherein the transforms form a pipeline having a modular architecture starting with the source transform, continuing with the intermediate transforms, and ending with the sink transform in the forward direction and starting with the sink transform, continuing with the intermediate transforms, and ending with the source transform in the backward direction.
A computer system having a memory and a processor for transforming a design tree representing a document, the computer system comprising:
- a store transform for inputting an indication of an identity-description identifying a current version of the design tree and outputting the current version of the design tree identified by the input identity-description;
- a first reversible intermediate transform for,
- in the forward direction, inputting from the store transform the current version of the design tree and outputting to a second reversible intermediate transform a first transformed version of the design tree, and
- in the backward direction, inputting from the second reversible intermediate transform an indication of an identity-description identifying the first transformed version of the design tree and outputting to the store transform an indication of an identity-description identifying the current version of the design tree,
- wherein the first reversible intermediate transform has a first command interface for setting state parameters to control the transformations of the first reversible intermediate transform;
- the second reversible intermediate transform for,
- in the forward direction, inputting from the first reversible intermediate transform the first transformed version of the design tree and outputting to a sink transform a second transformed version of the design tree, and
- in the backward direction, inputting from the sink transform an indication of an identity-description identifying the second transformed version of the design tree and outputting to the first reversible intermediate transform an indication of an identity-description identifying the first transformed version of the design tree,
- wherein the second reversible intermediate transform has a second command interface for setting state parameters to control the transformations of the second reversible intermediate transform;
- the sink transform for inputting from the second reversible intermediate transform the second transformed version of the design tree and rendering the second transformed version of the design tree on an output device and for inputting an indication of an identity-description identifying a portion of the rendered version of the design tree and outputting an indication of an identity-description identifying the second transformed version of the design tree;
- and
- a user command processor for,
- receiving an editing command input from a user, the editing command specifying an editing operation to be performed on the rendered version of the design tree,
- generating an indication of an identity-description identifying a portion of the rendered version of the design tree,
- determining an appropriate reversible intermediate transform for effecting the performance of the editing command,
- invoking a function of the determined appropriate reversible intermediate transform,
- sending the generated indication of the identity-description identifying a portion of the rendered version of the design tree to the sink transform for propagation to the determined appropriate reversible intermediate transform in the backward direction so that the determined appropriate reversible intermediate transform can perform the editing command.
Dependencies are inferred from the claim text.