Knowledge extraction and transformation
First Claim
1. A computer-implemented method for transforming source code of an application, the method comprising:
- receiving the source code in a programming language;
accessing a plurality of predefined patterns stored in a contextual taxonomy store;
pattern matching a plurality of blocks in the source code using the plurality of predefined patterns, wherein a pattern comprises one or more restrictions and a piece of text matches the pattern if the piece of text satisfies the one or more restrictions of the pattern;
determining an unmatched block of the source code that does not match any of the plurality of predefined patterns;
generating a dynamic pattern that matches the unmatched block of the source code using dynamic rules;
determining the relevance of the dynamic pattern for future pattern matching using fuzzy rules;
responsive to determining that the dynamic pattern is relevant, storing the dynamic pattern in the contextual taxonomy store;
classifying two or more of the plurality of blocks into a logic block that corresponds to a business rule;
discovering a knowledge element from the logic block using the dynamic pattern, the knowledge element being one of the following;
a data entity and a variable;
tracing a life cycle of the knowledge element in the logic block; and
transforming the source code into a desired target format based on the dynamic pattern, the predefined patterns, and the life cycle of the knowledge element.
0 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure includes a system and method for learning (or discovering and extracting) business knowledge from a collection of source code. The collection of source code is abstracted to generate an abstracted data stream, which is then transformed to an Extensible Markup Language (XML) format. The transformed data in XML format can be further converted to target formats or processed to satisfy different needs such as software system documentation, migration, impact analysis and security analysis. The disclosure also includes an implementation and operation for a pattern abstraction engine configured to receive an input data stream and format it for abstraction into a standard format using a pattern matching mechanism. The disclosure also includes an implementation and operation for a contextual pattern decoder engine configured to extract knowledge attributes and contextual taxonomy from classified blocks of an input data stream.
16 Citations
18 Claims
-
1. A computer-implemented method for transforming source code of an application, the method comprising:
-
receiving the source code in a programming language; accessing a plurality of predefined patterns stored in a contextual taxonomy store; pattern matching a plurality of blocks in the source code using the plurality of predefined patterns, wherein a pattern comprises one or more restrictions and a piece of text matches the pattern if the piece of text satisfies the one or more restrictions of the pattern; determining an unmatched block of the source code that does not match any of the plurality of predefined patterns; generating a dynamic pattern that matches the unmatched block of the source code using dynamic rules; determining the relevance of the dynamic pattern for future pattern matching using fuzzy rules; responsive to determining that the dynamic pattern is relevant, storing the dynamic pattern in the contextual taxonomy store; classifying two or more of the plurality of blocks into a logic block that corresponds to a business rule; discovering a knowledge element from the logic block using the dynamic pattern, the knowledge element being one of the following;
a data entity and a variable;tracing a life cycle of the knowledge element in the logic block; and transforming the source code into a desired target format based on the dynamic pattern, the predefined patterns, and the life cycle of the knowledge element. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for transforming source code of an application, comprising a computer processor and a computer readable medium storing instructions executable by the processor, the instructions when executed by the processor implementing components comprising:
-
a contextual pattern decoder engine configured to receive the source code in a programming language; a contextual taxonomy store configured to store a plurality of predefined patterns; a pattern classification engine configured to; pattern match a plurality of blocks in the source code using the plurality predefined patterns and classify two or more of the plurality of blocks into a logic block that corresponds to a business rule, wherein a pattern comprises one or more restrictions and a piece of text matches the pattern if the piece of text satisfies the one or more restrictions of the pattern; and determine an unmatched block of the source code that does not match any of the plurality of predefined patterns; a pattern hatcher engine configured to generate a dynamic pattern that matches the unmatched block of the source code using dynamic rules; a pattern filtering engine configured to; determine the relevance of the dynamic pattern for future pattern matching using fuzzy rules; and store the dynamic pattern in the contextual taxonomy store, responsive to determining that the dynamic pattern is relevant; a contextual pattern decoder engine configured to discover a knowledge element from the logic block using the dynamic pattern, the knowledge element being one of the following;
a data entity and a variable, trace a life cycle of the knowledge element in the logic block, and transform the source code into a desired target format based on the dynamic pattern, the predefined patterns and the life cycle of the knowledge element. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A non-transitory computer readable medium structured to store instructions executable by at least one processor to transform source code of an application, the instructions when executed by the at least one processor cause the at least one processor to:
-
receive the source code in a programming language; access a plurality of predefined patterns stored in a contextual taxonomy store; pattern match a plurality of blocks in the source code using the plurality of predefined patterns, wherein a pattern comprises one or more restrictions and a piece of text matches the pattern if the piece of text satisfies the one or more restrictions of the pattern; determine an unmatched block of the source code that does not match any of the plurality of predefined patterns; generate a dynamic pattern that matches the unmatched block of the source code using dynamic rules; determine the relevance of the dynamic pattern for future pattern matching using fuzzy rules; store the dynamic pattern in the contextual taxonomy store, responsive to determining that the dynamic pattern is relevant; classify two or more of the plurality of blocks into a logic block that corresponds to a business rule; discover a knowledge element from the logic block using the dynamic pattern, the knowledge element being one of the following;
a data entity and a variable;trace a life cycle of the knowledge element in the logic block; and transform the source code into a desired target format based on the dynamic pattern, the predefined patterns, and the life cycle of the knowledge element. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification