# US 7,769,704 B2 · Contextual pattern decoder engine

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

- Number: US 7,769,704 B2
- Document ID: US7769704B2
- Status: Granted
- Kind: B2
- Application number: 11/684,580
- Filed: 2007-03-09
- Published: 2007-09-27
- Granted: 2010-08-03
- Earliest claimed: 2006-03-09
- Assignees: EvolveWare, Inc.
- Inventors: Miten Marfatia; Ajay M. Rambhia
- Web page: https://patentgrep.com/patent/US7769704B2

## CPC

- G06F 8/74: Reverse engineering; Extracting design information from source code
- G06F 8/51: Source to source
- G06F 8/73: Program documentation
- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06N 5/048: Fuzzy inferencing
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q 10/087: Inventory or stock management, e.g. order filling, procurement or balancing against orders
- G06Q 10/10: Office automation; Time management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

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

## Claims

### Claim 1

A computer-implemented method for extracting knowledge embedded in source code of an application, the method comprising:
receiving the source code in a programming language;
extracting a plurality of knowledge elements from the source code based on predefined patterns;
subdividing the knowledge elements using predefined decoding patterns;
responsive to no predefined decoding pattern matching a knowledge element, creating a decoding pattern using fuzzy rules and subdividing the knowledge element using the new decoding pattern;
determining knowledge attributes for the extracted knowledge elements based on target specification attributes of a desired target architecture;
generating an abstract representation of the source code in a format appropriate for the desired target architecture independent of the programming language of the source code, wherein the abstract representation includes the plurality of knowledge elements;
hatching a dynamic pattern when no predefined pattern matches a part of the source code, wherein the dynamic pattern is created using fuzzy-neural rules and dynamic rules and is determined to be stored in a store; and
identifying the knowledge attributes for the included knowledge elements in the abstract representation.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
deriving a data entity life cycle or a data variable life cycle from the source code using a dynamic rule.

### Claim 3 (depends on 1)

The method of claim 1, wherein each of the decoding patterns comprises a predefined pattern or a dynamic pattern.

### Claim 4

A non-transitory computer readable storage medium structured to store instructions executable by the processor to extract knowledge embedded in source code of an application an instructions when executed by the processor cause the processor to:
receive the source code in a programming language;
extract a plurality of knowledge elements from the source code based on predefined patterns;
subdivide the knowledge elements using predefined decoding patterns;
responsive to no predefined decoding pattern matching a knowledge element, create a decoding pattern using fuzzy rules and subdividing the
knowledge element using the new decoding pattern;
determine knowledge attributes for the extracted knowledge elements based on target specification attributes of a desired target architecture;
generate an abstract representation of the source code in a format appropriate for the desired target architecture independent of the programming language of the source code, wherein the abstract representation includes the plurality of knowledge elements hatch a dynamic pattern when no predefined pattern matches a part of the source code,
wherein the dynamic pattern is created using fuzzy-neural rules and dynamic rules and is determined to be stored in a store; and identify the knowledge attributes for the included knowledge elements in the abstract representation.

### Claim 5 (depends on 4)

The non-transitory computer readable storage medium of claim 4, wherein the instructions when executed by the processor further cause the processor to:
derive a data entity life cycle or a data variable life cycle from the source code using a dynamic rule.

### Claim 6 (depends on 4)

The non-transitory computer readable storage medium of claim 4, wherein each of the decoding patterns comprises a predefined pattern or a dynamic pattern.

### Claim 7

A system for extracting knowledge embedded in source code of an application, the system comprising:
a processor;
a non-transitory computer readable medium;
a contextual pattern decoder engine configured for receiving the source code in a programming language;
a pattern conversion engine configured for extracting a plurality of knowledge elements from the source code based on predefined patterns, and determining knowledge attributes for the extracted knowledge elements based on target specification attributes of a desired target architecture, wherein the contextual pattern decoder engine is further configured for subdividing the knowledge elements using predefined decoding patterns;
a pattern hatcher engine configured for creating, responsive to no predefined decoding pattern matching a knowledge element, a decoding pattern using fuzzy rules and subdividing the knowledge element using the new decoding pattern; and
a pattern abstraction engine configured for generating an abstract representation of the source code in a format appropriate for the desired target architecture independent of the programming language of the source code, wherein the abstract representation includes the plurality of knowledge elements, wherein the pattern hatcher engine is further configured for hatching a dynamic pattern when no predefined pattern matches a part of the source code, wherein the dynamic pattern is created using fuzzy-neural rules and dynamic rules and is determined to be stored in a contextual taxonomy store segment, and wherein the pattern conversion engine is further configured for identifying the knowledge attributes for the included knowledge elements in the abstract representation.

### Claim 8 (depends on 7)

The system of claim 7, wherein the contextual pattern decoder engine is further configured for deriving a data entity life cycle or a data variable life cycle from the source code using a dynamic rule.

### Claim 9 (depends on 7)

The system of claim 7, wherein each of the decoding patterns comprises a predefined pattern or a dynamic pattern.
