Semantic programming language
First Claim
Patent Images
1. A software development tool for compiling a natural language software application based on a set of programming constructs utilized to model semantics of a natural language, the software development tool comprising:
- a programming language comprising a set of programming constructs for facilitating natural language programming, the set of programming constructs including a plurality of types that correspond to declarative linguistic elements of a linguistic object model, each type of the plurality of types being independent of a particular spoken language, the plurality of types comprising;
an entity type derived from an entity base class having data members, properties, and methods, the entity type adapted to model noun phrases and adjective phrases;
a frame type derived from a frame base class and adapted to model semantic events including verbs and nouns;
a restriction type derived from a restriction base class and adapted to model oblique arguments, modifiers, and other semantic elements, the restriction type to define semantic relationships between entities and constraints on objects derived from the plurality of types, the restriction type adapted to normalize relationship semantics across syntactic representations;
a denoter representing a privileged data member to map entity objects instantiated from the entity type to natural language words; and
a compiler executable by a processor to receive a software program from a computer readable storage medium, the software program containing instances of the set of programming constructs, the compiler executable by the processor to generate a software application from the instances of the set of programming constructs, the generated software application comprising a natural language software application.
3 Assignments
0 Petitions
Accused Products
Abstract
A software development tool for programming natural language software applications is described. The software development tool includes a programming language and a compiler. The programming language has a set of programming constructs for facilitating natural language programming. The compiler is adapted to take a software program containing instances of the set of programming constructs and to generate a software application.
99 Citations
40 Claims
-
1. A software development tool for compiling a natural language software application based on a set of programming constructs utilized to model semantics of a natural language, the software development tool comprising:
-
a programming language comprising a set of programming constructs for facilitating natural language programming, the set of programming constructs including a plurality of types that correspond to declarative linguistic elements of a linguistic object model, each type of the plurality of types being independent of a particular spoken language, the plurality of types comprising; an entity type derived from an entity base class having data members, properties, and methods, the entity type adapted to model noun phrases and adjective phrases; a frame type derived from a frame base class and adapted to model semantic events including verbs and nouns; a restriction type derived from a restriction base class and adapted to model oblique arguments, modifiers, and other semantic elements, the restriction type to define semantic relationships between entities and constraints on objects derived from the plurality of types, the restriction type adapted to normalize relationship semantics across syntactic representations; a denoter representing a privileged data member to map entity objects instantiated from the entity type to natural language words; and a compiler executable by a processor to receive a software program from a computer readable storage medium, the software program containing instances of the set of programming constructs, the compiler executable by the processor to generate a software application from the instances of the set of programming constructs, the generated software application comprising a natural language software application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for compiling a natural language software application based on a set of programming constructs utilized to model semantics of a natural language, the system comprising:
a computer readable storage medium to store instructions comprising; a programming language comprising a set of programming constructs for facilitating programming of natural language software applications, the set of programming constructs including a plurality of types that correspond to declarative linguistic elements of a linguistic object model, each type of the plurality of types being independent of a particular spoken language, the plurality of types comprising; an entity type derived from an entity base class having data members, properties, and methods, the entity type adapted to model noun phrases and adjective phrases; a frame type derived from a frame base class and adapted to model semantic events including verbs and nouns; a restriction type derived from a restriction base class and adapted to model oblique arguments, modifiers, and other semantic elements, the restriction type to define semantic relationships between entities and constraints on objects derived from the plurality of types, the restriction type adapted to normalize relationship semantics across syntactic representations; a denoter representing a privileged data member to map entity objects instantiated from the entity type to natural language words; and a framework including a plurality of clauses associated with each of the plurality of types, the plurality of clauses including a begin clause, a success clause, and a fail clause to resolve the existence of each of the plurality of types at runtime; and a compiler adapted to take source code containing instances of the set of programming constructs and the framework and to generate computer readable machine code and declarative schema; and a processor having access to the computer readable storage medium, the processor adapted to receive a set of instructions including selected constructs from the set of programming constructs and the framework, the processor adapted to execute the compiler to compile the set of instructions into a natural language software application. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
33. A method for compiling and storing a natural language enabled software application based on a software development tool for modeling the semantics of a natural language, the tool including a programming language and a compiler, and wherein the compiler is adapted to take a software program containing instances of a set of programming constructs and to generate a software application, the method comprising:
-
creating a program from a set of programming constructs, wherein creating further comprises creating the program from a plurality of types that are included in the set of programming constructs, wherein the plurality of types are related to declarative elements of a linguistic object model for facilitating natural language programming, each type of the plurality of types being independent of a particular spoken language, the program describing features in the software application that rely on natural language input, the plurality of types comprising; an entity type derived from an entity base class having data members, properties, and methods, the entity type adapted to model noun phrases and adjective phrases; a frame type derived from a frame base class and adapted to model semantic events including verbs and nouns; a restriction type derived from a restriction base class and adapted to model oblique arguments, modifiers, and other semantic elements, the restriction type to define semantic relationships between entities and constraints on objects derived from the plurality of types, the restriction type adapted to normalize relationship semantics across syntactic representations; a denoter representing a privileged data member to map entity objects instantiated from the entity type to natural language words; and compiling the program into the software application via a processor, the software application containing indications of at least one of the plurality of types; and storing the software application in a computer readable storage medium. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
-
Specification