Apparatus and method for end user queries
First Claim
1. An end user query facility for accessing a database having a plurality of database files formed using a database model, comprising:
- a knowledge base which stores a set of classes and a set of linkages of the database model, each said class representing a hierarchical grouping of a subset of said database files, each said linkage representing a relation between two of said database files in which a first file has a key that references an equivalent key of a second file;
a class generator for reading said database model and generating said set of classes and said set of linkages of the database model and which stores in said knowledge base said set of classes and said set of linkages;
an information scout for interfacing with a user to obtain from the user choices based on said classes as a designation of the information to be extracted from said database;
an inference engine which, based upon said designation of information to be extracted from said database, identifies one or more of said database files which contain the desired information and searches said knowledge base to determine the linkage(s) connecting said one or more identified files; and
a program generator which accesses the linkages obtained by said inference engine and generates a program to extract said desired information from said database.
3 Assignments
0 Petitions
Accused Products
Abstract
An end user query technology is taught which is capable of automatically understanding the database model and guiding the user to scout for the desired information, thereby increasing productivity and ease of information access. The user is freed from the need to understanding the database model, with the end user query facility of this invention quickly guiding the user to acquire the information. This is made possible by the end user query facility of this invention first recapturing the application semantics from the existing database model to provide a set of derived semantics. The derived semantics are then used by the end user query facility to intelligently guide the user to scout for the desired information in the database. In addition, the derived semantics can be easily updated by the end user query facility when the database model is changed.
-
Citations
68 Claims
-
1. An end user query facility for accessing a database having a plurality of database files formed using a database model, comprising:
-
a knowledge base which stores a set of classes and a set of linkages of the database model, each said class representing a hierarchical grouping of a subset of said database files, each said linkage representing a relation between two of said database files in which a first file has a key that references an equivalent key of a second file; a class generator for reading said database model and generating said set of classes and said set of linkages of the database model and which stores in said knowledge base said set of classes and said set of linkages; an information scout for interfacing with a user to obtain from the user choices based on said classes as a designation of the information to be extracted from said database; an inference engine which, based upon said designation of information to be extracted from said database, identifies one or more of said database files which contain the desired information and searches said knowledge base to determine the linkage(s) connecting said one or more identified files; and a program generator which accesses the linkages obtained by said inference engine and generates a program to extract said desired information from said database. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 48, 49)
-
-
2. An end user query facility for accessing a database having a plurality of database files formed using a database model, comprising:
-
a knowledge base which stores a set of classes and a set of linkages of the database model, each said class represents a hierarchical grouping of a subset of said database files, each said linkage representing a relation between two of said database files in which a first file has a key that references an equivalent key of a second file; a class generator for reading said database model and generating said set of classes and said set of linkages of the database model and which stores in said knowledge base said set of classes and said set of linkages; an information scout for interfacing with a user to obtain from the user choices based on said classes as a designation of the information to be extracted from said database; an inference engine which, based upon said designation of information to be extracted from said database, identifies one or more of said database files which contain the desired information and searches said knowledge base to determine the linkage(s) connecting said one or more identified files; a knowledge thread analyzer receiving as its input said linkages determined by said inference engine, and which breaks down said linkage(s) into simple linkage(s); and a program generator which accesses said simple linkages obtained by said knowledge analyzer and generates programs, one for each said simple linkage, to extract said desired information from said database as a plurality of simple query results, one for each generated program. - View Dependent Claims (45, 46)
-
-
3. An end user query facility for accessing a database having a plurality of database files formed using a database model, comprising:
-
a knowledge base which stores a set of linkages of the database model, each said linkage representing a relation between two of said database files in which a first file has a key that references an equivalent key of a second file; a semantics extractor for reading said database model and extracting the semantics of said database model, and which stores in said knowledge base said set of linkages, an information scout for interfacing with a user to obtain from the user a designation of the information to be extracted from said database, an inference engine which, based upon said designation of information to be extracted from said database, identifies one or more of said database files which contain the desired information and searches said knowledge base to determine the linkage(s) connecting said one or more identified files; a program generator which accesses the linkages obtained by said inference engine and generates a program to extract said desired information from said database; a first e-mail agent for said information scout to interface with an e-mail system, said first e-mail agent being used to post said designation of information to be extracted from said database to the mailbox of said inference engine; and a second e-mail agent for the said inference engine to interface with said e-mail system, said second e-mail agent being used to access said mailbox of said inference engine to obtain said designation of information to be extracted from said database. - View Dependent Claims (19)
-
-
50. An end user query facility for accessing a database having a plurality of database files formed using a database model, comprising:
-
an entity relationship (ER) model generator for reading said databases and deriving a plurality of entity-relationship models, said ER model generator comprising; an entity type classifier for classifying each said database file into one of a plurality of entity types, said entity types including a "kernel" entity type, a "subtype" entity type, a "characteristic" entity type, an "associative" entity type, and a "pure lookup" entity type; a binary relationship generator for generating a plurality of binary relationships between said database files, each said binary relationship associated with a linkage representing a relation between a first file having a key that references an equivalent key of a second file, said binary relationships including; a "has-- children" type that represents a first database file that is not classified as a "pure lookup" entity type and has a one-to-many relationship with a second database file, and said second database file does not have a unique key; a "has-- wards" type that represents a first database file that is not of a "pure lookup" entity type and has a one-to-many relationship with a second database file having a unique key; a "has-- subtype" type that represents a first database file having a one-to-one relationship with a second database file and said second database file is classified as a "subtype" entity type; and an "inverse-- of-- pure-- lookup" that represents a first database file is classified as a "pure-- lookup" entity type; a model constructor for constructing said entity-relationship models, each said entity-relationship model representing a tree having a root and a plurality of branches, said root associated with one of said database files classified as a "kernel" entity type, said model constructor utilizing said entity types and said binary relationships to associate one or more branches with each said entity-relationship model; a knowledge base that stores said ER models; an information scout for interfacing with a user to obtain from the user choices based on said entity-relationship models as a designation of information to be extracted from said database; an inference engine that, based upon said designation of information to be extracted from said database, identifies one or more of said database files that contain the desired information and searches said knowledge base to determine one or more linkages connecting said identified files; and a program generator that accesses said linkages obtained by said inference engine and generates a program to extract said desired information from said database. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
51. An end user query facility for accessing an existing database having a plurality of database files formed using a database model, comprising:
-
an entity relationship (ER) model generator for reading said databases and deriving a plurality of entity-relationship models, said ER model generator comprising; an entity type classifier for classifying each said database file into one of a plurality of entity types, said entity types including a "kernel" entity type, a "subtype" entity type, a "characteristic" entity type, an "associative" entity type, and a "pure lookup" entity type; a binary relationship generator for generating a plurality of binary relationships between said database files, each said binary relationship associated with a complex linkage representing a relation between a first file having a key that references an equivalent key of a second file, said binary relationships including; a "has-- children" type that represents a first database file that is not classified as a "pure lookup" entity type and has a one-to-many relationship with a second database file, and said second database file does not have a unique key; a "has-- wards" type that represents a first database file that is not of a "pure lookup" entity type and has a one-to-many relationship with a second database file having a unique key; a "has-- subtype" type that represents a first database file having a one-to-one relationship with a second database file and said second database file is classified as a "subtype" entity type; and an "inverse-- of-- pure-- lookup" that represents a first database file is classified as a "pure-- lookup" entity type; a model constructor for constructing said entity-relationship models, each said entity-relationship model representing a tree having a root and a plurality of branches, said root associated with one of said database files classified as a "kernel" entity type, said model constructor utilizing said entity types and binary relationships to associate one or more branches with each said entity-relationship model; a knowledge base that stores said ER models; an information scout for interfacing with a user to obtain from the user choices based on said entity-relationship models as a designation of information to be extracted from said database; an inference engine that, based upon said designation of information to be extracted from said database, identifies one or more of said database files that contain the desired information and searches said knowledge base to determine one or more complex linkages connecting said identified files; a knowledge thread analyzer receiving one or more of said complex linkages determined by said inference engine, and which breaks down each said complex linkage into one or more simple linkages, each said simple linkage including a subset of said complex linkages; and a program generator which accesses said simple linkages obtained by said knowledge analyzer and generates programs, one for each said simple linkage, to extract said desired information from said database as a plurality of simple query results, one for each generated program. - View Dependent Claims (67, 68)
-
-
52. An end user query facility for accessing an existing database having a plurality of database files formed using a database model, comprising:
-
an entity relationship (ER) model generator for reading said databases and deriving a plurality of entity-relationship models, said ER model generator comprising; an entity type classifier for classifying each said database file into one of a plurality of entity types, said entity types including a "kernel" entity type, a "subtype" entity type, a "characteristic" entity type, an "associative" entity type, and a "pure lookup" entity type; a binary relationship generator for generating a plurality of binary relationships between said database files, each said binary relationship associated with a linkage representing a relation between a first file having a key that references an equivalent key of a second file, said binary relationships including; a "has-- children" type that represents a first database file that is not classified as a "pure lookup" entity type and has a one-to-many relationship with a second database file, and said second database file does not have a unique key; a "has-- wards" type that represents a first database file that is not of a "pure lookup" entity type and has a one-to-many relationship with a second database file having a unique key; a "has-- subtype" type that represents a first database file having a one-to-one relationship with a second database file and said second database file is classified as a "subtype" entity type; and an "inverse-- of-- pure-- lookup" that represents a first database file is classified as a "pure-- lookup" entity type; a model constructor for constructing said entity-relationship models, each said entity-relationship model representing a tree having a root and a plurality of branches, said root associated with one of said database files classified as a "kernel" entity type, said model constructor utilizing said entity types and said binary relationships to associate one or more branches with each said entity-relationship model; a knowledge base that stores said ER models; an information scout for interfacing with a user to obtain from the user choices based on said entity-relationship models as a designation of information to be extracted from said database; an inference engine that, based upon said designation of information to be extracted from said database, identifies one or more of said database files that contain the desired information and searches said knowledge base to determine one or more linkages connecting said identified files; a program generator which accesses the linkages obtained by said inference engine and generates a program to extract said desired information from said database; a first e-mail agent for said information scout to interface with an e-mail system, said first e-mail agent being used to post said designation of information to be extracted from said database to the mailbox of said inference engine; and a second e-mail agent for the said inference engine to interface with said e-mail system, said second e-mail agent being used to access said mailbox of said inference engine to obtain said designation of information to be extracted from said existing database and to post said desired information extracted from said existing database to the user mailbox.
-
Specification