RULE-BASED SYSTEMS AND METHODS FOR CUSTOMIZING COMPLEX BUSINESS SOLUTIONS
A 2-way and 3-way compare-merge tool that allows consultants and customers to reconcile the changes that they have made with a generated copy of components associated with resources. Systems and methods that provide an effective, easy-to-use comparison tool include: a grammar-aware compare tool. Furthermore, adding a common ancestor as a third data point in the 3-way compare identifies the source of changes.
1 . A computer-implemented method comprising:
comparing, by a processor, a first component and a second component using a two-way grammar-aware compare tool, the second component generated by editing the first component; and
generating, by the processor, a first compare report of one or more differences between the first component and the second component;
wherein:
the first component and the second component comprise one or more free-form expressions;
the two-way grammar-aware compare tool uses programming language grammar to convert each of the one or more free-form expressions to a respective object tree.
2 . The computer-implemented method of claim 1 , wherein the first component and second component are at least one of a program, a code, an expression, a macro, an embedded documentation, a user documentation, a test plan, a training material, test data, a solution packaging and an installation.
3 . The computer-implemented method of claim 1 , wherein the programming language grammar is captured using a parser generator for reading, processing, executing or translating: structured text, code or freeform text.
4 . The computer-implemented method of claim 1 , wherein the two-way grammar-aware compare tool tags and categorizes each change between the first component and the second component.
5 . The computer-implemented method of claim 1 , wherein the two-way grammar-aware compare tool uses at least one of an identifier, an alternate identifier, a heuristic matching rule, metadata for mapping property changes to a testing process; an internal component dependency, an external component dependency, and a mapping hint, to provide a report of one or more differences.
6 . The computer-implemented method of claim 1 , wherein the two-way grammar-aware compare tool recognizes a business objective of one or more differences between the first component and the second component.
7 . The computer-implemented method of claim 1 , wherein the two-way grammar-aware compare tool captures: a structure of a component, one or more properties of the component, one or more property data types of the component, a relationship between the one or more properties, a hierarchical nature of the component, and domain knowledge of how an author works to customize the component.
8 . The computer-implemented method of claim 1 , further comprising:
comparing, by the processor, the first component and a third component using the two-way grammar-aware compare tool, the third component generated by editing the first component;
generating, by the processor, a second compare report of one or more differences between the first component and the third component;
comparing, by the processor, the first compare report and the second compare report; and
reconciling, by the processor, one or more conflicts between the first compare report and the second compare report;
wherein the two-way grammar-aware compare tool leverages metadata, structure, and grammar knowledge to provide an actionable comparison report.
9 . A system comprising:
a processor; and
a memory storing instructions that, when executed by the processor, configure the system to:
compare, by the processor, a first component and a second component using a two-way grammar-aware compare tool, the second component generated by editing the first component; and
generate, by the processor, a first compare report of one or more differences between the first component and the second component;
wherein:
the first component and the second component comprise one or more free-form expressions;
the two-way grammar-aware compare tool uses programming language grammar to convert each of the one or more free-form expressions to a respective object tree.
10 . The system of claim 9 , wherein the first component and second component are at least one of a program, a code, an expression, a macro, an embedded documentation, a user documentation, a test plan, a training material, test data, a solution packaging and an installation.
11 . The system of claim 9 , wherein the first component and second component are at least one of a program, a code, an expression, a macro, an embedded documentation, a user documentation, a test plan, a training material, test data, a solution packaging and an installation.
12 . The system of claim 9 , wherein the two-way grammar-aware compare tool tags and categorizes each change between the first component and the second component.
13 . The system of claim 9 , wherein the two-way grammar-aware compare tool uses at least one of an identifier, an alternate identifier, a heuristic matching rule, metadata for mapping property changes to a testing process; an internal component dependency, an external component dependency, and a mapping hint, to provide a report of one or more differences.
14 . The system of claim 9 , wherein the two-way grammar-aware compare tool recognizes a business objective of one or more differences between the first component and the second component.
15 . The system of claim 9 , wherein the two-way grammar-aware compare tool captures: a structure of a component, one or more properties of the component, one or more property data types of the component, a relationship between the one or more properties, a hierarchical nature of the component, and domain knowledge of how an author works to customize the component.
16 . The system of claim 9 , wherein the instructions further configure the system to:
compare, by the processor, the first component and a third component using the two-way grammar-aware compare tool, the third component generated by editing the first component;
generate, by the processor, a second compare report of one or more differences between the first component and the third component;
compare, by the processor, the first compare report and the second compare report; and
reconcile, by the processor, one or more conflicts between the first compare report and the second compare report;
wherein the two-way grammar-aware compare tool leverages metadata, structure, and grammar knowledge to provide an actionable comparison report.
17 . A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:
compare, by a processor, a first component and a second component using a two-way grammar-aware compare tool, the second component generated by editing the first component; and
generate, by the processor, a first compare report of one or more differences between the first component and the second component;
wherein:
the first component and the second component comprise one or more free-form expressions;
the two-way grammar-aware compare tool uses programming language grammar to convert each of the one or more free-form expressions to a respective object tree.
18 . The non-transitory computer-readable storage medium of claim 17 , wherein the first component and second component are at least one of a program, a code, an expression, a macro, an embedded documentation, a user documentation, a test plan, a training material, test data, a solution packaging and an installation.
19 . The non-transitory computer-readable storage medium of claim 17 , wherein the first component and second component are at least one of a program, a code, an expression, a macro, an embedded documentation, a user documentation, a test plan, a training material, test data, a solution packaging and an installation.
20 . The non-transitory computer-readable storage medium of claim 17 , wherein the two-way grammar-aware compare tool tags and categorizes each change between the first component and the second component.
21 . The non-transitory computer-readable storage medium of claim 17 , wherein the two-way grammar-aware compare tool uses at least one of an identifier, an alternate identifier, a heuristic matching rule, metadata for mapping property changes to a testing process; an internal component dependency, an external component dependency, and a mapping hint, to provide a report of one or more differences.
22 . The non-transitory computer-readable storage medium of claim 17 , wherein the two-way grammar-aware compare tool recognizes a business objective of one or more differences between the first component and the second component.
23 . The non-transitory computer-readable storage medium of claim 17 , wherein the two-way grammar-aware compare tool captures: a structure of a component, one or more properties of the component, one or more property data types of the component, a relationship between the one or more properties, a hierarchical nature of the component, and domain knowledge of how an author works to customize the component.
24 . The non-transitory computer-readable storage medium of claim 17 , wherein the instructions further configure the computer to:
compare, by the processor, the first component and a third component using the two-way grammar-aware compare tool, the third component generated by editing the first component;
generate, by the processor, a second compare report of one or more differences between the first component and the third component;
compare, by the processor, the first compare report and the second compare report; and
reconcile, by the processor, one or more conflicts between the first compare report and the second compare report;
wherein the two-way grammar-aware compare tool leverages metadata, structure, and grammar knowledge to provide an actionable comparison report.