Generating software components from business rules expressed in a natural language
First Claim
1. A method for generating software components from one or more rule statements expressed in a language, the method comprising:
- at a computing system that includes a processor, memory, and mass storage device, receiving symbols of a vocabulary of a natural language, the natural language having grammatical rules, and details about each of the symbols;
receiving, at the computing system, at least one rule statement expressed using the symbols of the vocabulary of the natural language;
at the computing system, parsing the rule statement in accordance with the natural language grammatical rules to generate a language-based structure of the rule statement that identifies the symbols used and their interrelationships with respect to a sentence structure, wherein the parsing reports how each word in the rule statement is categorized into;
a) terms defined in the vocabulary,b) names defined in the vocabulary for individual things,c) connecting symbols of function forms defined in the vocabulary,d) key words and phrases, quantifiers, and logical connectives, ande) words that are not recognized;
at the computing system, processing the language-based structure of the rule statement corresponding to an expression to generate an expression model;
at the computing system, processing the expression model to generate a logical model wherein processing the expression model comprises;
a) relating synonymous terms to a single concept;
b) relating synonymous forms and related noun forms to a single fact type;
c) relating synonymous names to a single instance;
d) relating each instance to its corresponding concept;
e) determining identifying fact types for concepts;
determining generalizations between concepts; and
g) reporting logical inconsistencies, if any;
at the computing system, processing the logical model to generate a platform-independent implementation model in response to a request for such generation;
at the computing system, receiving a specific target platform description; and
at the computing system, processing the platform-independent implementation model using the specific target platform description to generate a platform-specific implementation model.
6 Assignments
0 Petitions
Accused Products
Abstract
An embodiment of the present invention is a method for generating software components from one or more business rule statements expressed in a language. Symbols of a vocabulary of a language and business rule statements expressed using the symbols of the vocabulary of the language are received as input. The language has grammatical rules. Each of the business rule statements is parsed in accordance with the grammatical rules to generate a language-based structure. The language-based structure is processed to generate an expression model. The expression model is processed to generate a logical model. The logical model is processed to generate platform-independent implementation model in response to a user request for such generation. A target platform description is received. The platform-independent implementation model is processed to generate a platform-specific implementation model using the target platform description. Software components are generated from the platform-specific implementation model for deployment.
-
Citations
33 Claims
-
1. A method for generating software components from one or more rule statements expressed in a language, the method comprising:
-
at a computing system that includes a processor, memory, and mass storage device, receiving symbols of a vocabulary of a natural language, the natural language having grammatical rules, and details about each of the symbols; receiving, at the computing system, at least one rule statement expressed using the symbols of the vocabulary of the natural language; at the computing system, parsing the rule statement in accordance with the natural language grammatical rules to generate a language-based structure of the rule statement that identifies the symbols used and their interrelationships with respect to a sentence structure, wherein the parsing reports how each word in the rule statement is categorized into; a) terms defined in the vocabulary, b) names defined in the vocabulary for individual things, c) connecting symbols of function forms defined in the vocabulary, d) key words and phrases, quantifiers, and logical connectives, and e) words that are not recognized; at the computing system, processing the language-based structure of the rule statement corresponding to an expression to generate an expression model; at the computing system, processing the expression model to generate a logical model wherein processing the expression model comprises; a) relating synonymous terms to a single concept; b) relating synonymous forms and related noun forms to a single fact type; c) relating synonymous names to a single instance; d) relating each instance to its corresponding concept; e) determining identifying fact types for concepts; determining generalizations between concepts; and g) reporting logical inconsistencies, if any; at the computing system, processing the logical model to generate a platform-independent implementation model in response to a request for such generation; at the computing system, receiving a specific target platform description; and at the computing system, processing the platform-independent implementation model using the specific target platform description to generate a platform-specific implementation model. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for generating software components from one or more rule statements expressed in a natural language, the system comprising:
a computing system having a processor and one or more storage media in communication with the processor, the one or more storage media storing; a natural language parser for using the processor in parsing at least one rule statement based on a vocabulary of a natural language and grammatical rules of the natural language to generate a language-dependent structure of the rule statement, wherein the natural language parser identifies symbols used and their interrelationships with respect to a sentence structure, wherein the parsing reports how each word in the rule statement is categorized into; a) terms defined in the vocabulary, b) names defined in the vocabulary for individual things, c) connecting symbols of function forms defined in the vocabulary, d) key words and phrases, quantifiers, and logical connectives, and e) words that are not recognized; an expression model generator for using the processor in processing the language-dependent structure of the rule statement to generate an expression model; a logical model generator for using the processor in processing the expression model to generate a logical model, wherein generating the logical model comprises; a) relating synonymous terms to a single concept; b) relating synonymous forms and related noun forms to a single fact type; c) relating synonymous names to a single instance; d) relating each instance to its corresponding concept; e) determining identifying fact types for concepts; f) determining generalizations between concepts; and g) reporting logical inconsistencies, if any; a platform-independent implementation model generator for using the processor in processing the logical model to generate a platform-independent implementation model in response to a request for such generation; and a platform-specific implementation model generator for using the processor in receiving description of a specific target platform and processing the platform-independent implementation model using the description of the target platform to generate a platform-specific implementation model. - View Dependent Claims (12, 13)
-
14. An article of manufacture embodied on a machine-accessible tangible medium, to be used for generating software components from one or more rule statements expressed in a natural language, the article of manufacture comprising:
-
the machine-accessible, tangible medium storing computer-executable instructions that, when accessed and executed by a machine, cause the machine to; receive symbols of a vocabulary of a natural language, the natural language having grammatical rules, and details about each of the symbols; receive at least one rule statement expressed using the symbols of the vocabulary of the natural language; parse the rule statement in accordance with the natural language grammatical rules to generate a language-based structure of the rule statement that identifies the symbols used and their interrelationships with respect to a sentence structure, wherein the parsing reports how each word in the rule statement is categorized into; a) terms defined in the vocabulary, b) names defined in the vocabulary for individual things, c) connecting symbols of function forms defined in the vocabulary, d) key words and phrases, quantifiers, and logical connectives, and e) words that are not recognized; process the language-based structure of the rule statement corresponding to an expression to generate an expression model; process the expression model to generate a logical model wherein processing the expression model comprises; a) relating synonymous terms to a single concept; b) relating synonymous forms and related noun forms to a single fact type; c) relating synonymous names to a single instance; d) relating each instance to its corresponding concept; e) determining identifying fact types for concepts; f) determining generalizations between concepts; and g) reporting logical inconsistencies, if any; process the logical model to generate a platform-independent implementation model in response to a request for such generation; receive a specific target platform description; and process the platform-independent implementation model using the specific target platform description to generate a platform-specific implementation model. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A system for generating software components from one or more rule statements expressed in a natural language, the method, the system comprising:
-
a processor; a memory coupled to the processor and the memory containing instructions that, when executed by the processor, cause the processor to; receive symbols of a vocabulary of a natural language, the natural language having grammatical rules, and details about each of the symbols; receive at least one rule statement expressed using the symbols of the vocabulary of the natural language; parse the rule statement in accordance with the natural language grammatical rules to generate a language-based structure of the rule statement that identifies the symbols used and their interrelationships with respect to a sentence structure, wherein the parsing reports how each word in the rule statement is categorized into; a) terms defined in the vocabulary, b) names defined in the vocabulary for individual things, c) connecting symbols of function forms defined in the vocabulary, d) key words and phrases, quantifiers, and logical connectives, and e) words that are not recognized; process the language-based structure of the rule statement corresponding to an expression to generate an expression model; process the expression model to generate a logical model wherein processing the expression model comprises; a) relating synonymous terms to a single concept; b) relating synonymous forms and related noun forms to a single fact type; c) relating synonymous names to a single instance; d) relating each instance to its corresponding concept; e) determining identifying fact types for concepts; f) determining generalizations between concepts; and g) reporting logical inconsistencies, if any; process the logical model to generate a platform-independent implementation model in response to a request for such generation; receive a specific target platform description; and process the platform-independent implementation model using the specific target platform description to generate a platform-specific implementation model. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33)
-
Specification