Classification engine for managing attribute-based data
DCFirst Claim
1. A method allowing application programs to access a database using intermediary code that provides information associated with a schema of the database to the application proprams, the method comprising:
- receiving a request to the intermediary code from one of the application programs to access the database;
providing to the requesting application data that includes the information associated with a schema of the database, wherein the information includes classifiers corresponding to columns and tables in the database;
receiving one or more requests from the requesting application relating to transferring data between the requesting application and the database;
interrogating a schema object to obtain location information for classifiers in the database that are associated with the one or more requests;
providing the location information of the classifiers to the requesting application;
associating data search constraints from the one or more requests of the requesting application with locations in the database; and
generating a query to the database based on the search constraints.
1 Assignment
Litigations
0 Petitions
Accused Products
Abstract
A classification engine provides flexible support for manipulation of attribute-based data by dynamic generation of SQL with classifiers constructed from different schema objects representing different database schemas. The classifiers may be constructed by defining classifiers corresponding to the database schema, and mapping the classifiers to columns on tables in the database. The invention also allows a classification system to modify the database structure and easily conform the classification engine to the modified structure without recompiling the engine or rewriting the application that use the classification system. The engine is conformed to the new structure by constructing a second schema object for the modified database. The schema objects are preferably defined using a field-based language such as extensible markup language (XML).
63 Citations
58 Claims
-
1. A method allowing application programs to access a database using intermediary code that provides information associated with a schema of the database to the application proprams, the method comprising:
-
receiving a request to the intermediary code from one of the application programs to access the database;
providing to the requesting application data that includes the information associated with a schema of the database, wherein the information includes classifiers corresponding to columns and tables in the database;
receiving one or more requests from the requesting application relating to transferring data between the requesting application and the database;
interrogating a schema object to obtain location information for classifiers in the database that are associated with the one or more requests;
providing the location information of the classifiers to the requesting application;
associating data search constraints from the one or more requests of therequesting application with locations in the database; and
generating a query to the database based on the search constraints. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 33, 34, 35, 36, 37, 38, 39, 40, 41)
importing data into the database, wherein the database resides on a computer system;
constructing the schema object to represent a schema of the database; and
manipulating the database using an aggregate classifier based on the schema object, wherein the aggregate classifier includes multiple classifiers of the database.
-
-
3. The method of claim 1 further comprising:
-
defining a plurality of classifier definitions corresponding to the schema of the database; and
mapping the classifier definitions to columns and tables in the database.
-
-
4. The method of claim 3 wherein said defining step defines a “
- property”
classifier which interacts with a single column on a single table in the database.
- property”
-
5. The method of claim 4 wherein said defining step further defines an “
- object”
classifier which contains one or more of the “
property”
classifiers.
- object”
-
6. The method of claim 4 wherein said defining step defines a “
- split-object”
classifier which makes more than one “
object”
classifier appear as a single classifier.
- split-object”
-
7. The method of claim 6, wherein said defining step further defines a “
- join”
classifier which identifies how multiple “
object”
classifiers database objects are linked in a “
split-object”
classifier.
- join”
-
8. The method of claim 6 wherein said defining step defines a “
- mapped property”
classifier as a special form of the “
split-object”
classifier to manage data stored in a table of the database which serves as an index to another database table.
- mapped property”
-
9. The method of claim 3 wherein said defining step defines a parameterized classifier which is a template for classifiers that are instantiated when associated parameters are provided.
-
10. The method of claim 2 further comprising the steps of
modifying the schema of the database; -
constructing a second schema object for the modified database; and
manipulating the modified database using the second schema object.
-
-
11. The method of claim 10 wherein said step of constructing the second schema object includes the step of re-writing classification definitions of the database, wherein the definitions are stored on the computer system.
-
12. The method of claim 2 wherein said constructing step includes the step of writing classification definitions stored on the computer system using a field-based language.
-
13. The method of claim 12 wherein said writing step uses XML.
-
14. By The method of claim 2 wherein said constructing step includes the step of writing database classification definitions stored on the computer system.
-
15. The method of claim 2 wherein said importing step parses an import file to import the data.
-
16. The method of claim 14 wherein said manipulating step includes the step of an application, residing on the computer system, interacting with a composite object included in the classification definitions.
-
17. The method of claim 2 wherein said manipulating step includes the step of generating a SQL SELECT query using a query generator of the intermediary code.
-
18. The method of claim 2 wherein said manipulating step includes the step of generating a SQL INSERT query using a query generator.
-
19. The method of claim 2 wherein said manipulating step includes the step of generating a SQL UPDATE query using a query generator.
-
20. The method of claim 2 wherein said manipulating step includes the step of generating a SQL DELETE query using a query generator.
-
21. The method of claim 17 wherein said generating step includes the step of an aggregate classifier interrogating the schema object to determine how different classifiers correspond to columns and tables in the database.
-
22. The method of claim 1 further comprising:
returning results of the query to the requesting application.
-
23. The method of claim 1 wherein the intermediary code is a software enabled classification engine.
-
25. The computer system of claim 14 further comprising:
program instructions stored in the memory and adapted to construct the schema object to represent the schema of the database, and manipulate the database using an aggregate classifier based on the schema object.
-
33. The computer system of claim 25 wherein the program instructions construct a second schema object when a structure of the database is modified.
-
34. The computer system of claim 33 wherein the program instructions construct the second schema object by re-writing classification definitions stored in the memory.
-
35. The computer system of claim 25 wherein the program instructions construct the schema object by writing classification definitions stored on the computer system using a field-based language.
-
36. The computer system of claim 25 wherein the program instructions generate a SQL SELECT query using a query generator of the classification engine.
-
37. The computer system of claim 25 wherein said manipulating step includes the step of generating a SQL INSERT query using a query generator.
-
38. The computer system of claim 25 wherein said manipulating step includes the step of generating a SQL UPDATE query using a query generator.
-
39. The computer system of claim 25 wherein said manipulating step includes the step of generating a SQL DELETE query using a query generator.
-
40. The computer system of claim 36 wherein the program instructions further direct an aggregate classifier to interrogate the schema object to determine how different classifiers correspond to columns and tables in the database.
-
41. The computer system of claim 25 wherein the program instructions construct a composite object to interact with an application program residing in said memory.
-
24. A computer system comprising:
-
a database;
a memory storing program instructions that allow application programs to access the database through a database classification engine that provides information associated with a schema of the database to the application programs, the program instructions being executable to;
receive a request to the database classification engine from one of the application programs to access the database;
provide to the requesting application data that includes the information associated with a schema of the database, wherein the information includes classifiers corresponding to columns and tables in the database;
receive one or more requests from the requesting application relating to transferring data between the requesting application and the database;
interrogate a schema object to obtain location information for classifiers in the database that are associated with the one or more requests;
provide the location information of the classifiers to the requesting application;
associate data search constraints from the one or more requests of the requesting application with locations in the database; and
generate a query to the database based on the search constraints; and
a processor coupled to the memory to process the instructions. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 42)
-
-
43. A computer program product comprising:
-
a computer readable storage medium storing program instructions for allowing application programs to access a database through a database classification engine that provides information associated with a schema of the database to the application programs, the program instructions being executable to;
receive a request to the database classification engine from one of the application programs to access the database;
provide to the requesting application data that includes the information associated with a schema of the database, wherein the information includes classifiers corresponding to columns and tables in the database;
receive one or more requests from the requesting application relating to transferring data between the requesting application and the database;
interrogate a schema object to obtain location information for classifiers in the database that are associated with the one or more requests;
provide the location information of the classifiers to the requesting application;
associate data search constraints from the one or more requests of the requesting application with locations in the database; and
generate a query to the database based on the search constraints. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
program instructions stored on said storage medium for constructing the schema object to represent the schema of the database residing on a computer system, and manipulating the database using the an aggregate classifier based on the schema object.
-
-
45. The computer program product of claim 43 wherein the program instructions define a plurality of classifiers corresponding to the schema of the database;
- and map the classifiers to tables in the database.
-
46. The computer program product of claim 45 wherein the program instructions further define a “
- property”
classifier that interacts with only a single column on a single table in the database.
- property”
-
47. The computer program product of claim 46 wherein the program instructions further define an “
- object”
classifier which contains one or more of the “
property”
classifiers.
- object”
-
48. The computer program product of claim 45 wherein the program instructions further define a “
- split-object”
classifier which makes more than one “
object”
classifier appear as a single classifier.
- split-object”
-
49. The computer program product of claim 48 wherein the program instructions further define a “
- join”
classifier which identifies how multiple “
object classifiers”
are linked in a “
split-object”
classifier.
- join”
-
50. The computer program product of claim 48 wherein the program instructions further define a “
- mapped property”
classifier as a special form of the “
split-object”
classifier to manage data stored in a table of the database which serves as an index to another database table.
- mapped property”
-
51. The computer program product of claim 45 wherein the program instructions further define a parameterized classifier which is instantiated when associated parameters are provided.
-
52. The computer program product of claim 44 wherein the program instructions construct a second schema object when a structure of the database is modified.
-
53. The computer program product of claim 52 wherein the program instructions construct the second schema object by re-writing classification definitions stored on the computer system.
-
54. The computer program product of claim 44 wherein the program instructions construct the schema object by writing classification definitions stored on the computer system using a field-based-language.
-
55. The computer program product of claim 44 wherein the program instructions generate a search query using the schema object.
-
56. The computer program product of claim 55 wherein the program instructions further direct an aggregate classifier to interrogate the schema object to determine locations of different classifiers in the database.
-
57. The computer program product of claim 44 wherein the program instructions construct a composite object to interact with an application program residing on the computer system.
-
58. The computer system of claim 43 wherein the program instructions further comprise instructions to return results of the query to the requesting application.
Specification