Data storage schema independent programming for data retrieval using semantic bridge
First Claim
1. A method of processing data stored on one or more computers, the data on each of the one or more computers having a data storage schema, the method comprising:
- (a) receiving an interface-based program on each the one or more computers to process the data, said interface-based program using terms and constructs of a semantic programming interface, the semantic programming interface providing an abstract, object-oriented representation of the data that is independent of the data storage schemas of the data;
(b) generating a mapping of the representation of the data in the semantic programming interface to each of the data storage schemas, each mapping utilizing rules for generating user-specific views of the data stored on the one or more computers;
(c) translating the interface-based program into one or more executable programs; and
(d) running the one or more executable programs on the one or more computers in combination with each data mapping to process the data stored on the one or more computers in accordance with the user-specific views.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented process accesses data stored on one or more computers, the data on each computer having a data storage schema. A program is generated to access the data using terms and constructs of a semantic programming interface. The semantic programming interface provides an abstract, object-oriented representation of the data that is independent of the data storage schemas of the data. Mappings of the representation of the data in the semantic programming interface to each of the data storage schemas of the data stored on the one or more computers are created. The data mappings are used to translate the interface-based program into one or more executable programs. The executable programs are run to access the data stored on the one or more computers. System security and data security are maintained on the one or more computers.
136 Citations
33 Claims
-
1. A method of processing data stored on one or more computers, the data on each of the one or more computers having a data storage schema, the method comprising:
-
(a) receiving an interface-based program on each the one or more computers to process the data, said interface-based program using terms and constructs of a semantic programming interface, the semantic programming interface providing an abstract, object-oriented representation of the data that is independent of the data storage schemas of the data;
(b) generating a mapping of the representation of the data in the semantic programming interface to each of the data storage schemas, each mapping utilizing rules for generating user-specific views of the data stored on the one or more computers;
(c) translating the interface-based program into one or more executable programs; and
(d) running the one or more executable programs on the one or more computers in combination with each data mapping to process the data stored on the one or more computers in accordance with the user-specific views. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14)
(e) identifying and authenticating the user to determine the user'"'"'s access permissions for the data.
-
-
5. The method of claim 4 wherein the data stored on the one or more computers is contained in one or more databases and the access permissions of the databases define which fields, rows and tables within the databases the user is entitled to access.
-
6. The method of claim 4 wherein the data stored on the one or more computers is contained in one or more documents stored on the one or more computers and the access permissions of the documents define which portions of the documents the user is entitled to access.
-
7. The method of claim 1 wherein the representation of the data in the semantic programming interface includes a specification of properties of the data and relationships among the data.
-
8. The method of claim 7 wherein data is denoted using the semantic programming interface directly, or indirectly using its relationship with other data, or indirectly using properties of the data.
-
9. The method of claim 1 wherein the data stored on the one or more computers is contained in one or more documents stored on the one or more computers.
-
10. The method of claim 1, wherein the user-specific views are generated at runtime by expressions constructed from the mapping to each of the data storage schemas.
-
11. The method of claim 10 wherein the expressions use SQL syntax.
-
13. The method of claim 11 wherein the data stored on the one or more server computers is contained in one or more databases.
-
14. The method of claim 13 wherein each data mapping is a field level mapping that associates the terms and constructs of the semantic programming interface with database fields of each of the one or more databases.
-
12. A method of implementing processing on one or more server computers, the data on each of the one or more server computers having a data storage schema, the method comprising:
-
(a) generating an interface-based object program at the client computer to process the data, said interface-based object program using terms and constructs of a semantic programming interface, the semantic programming interface providing an abstract, object-oriented representation of the data that is independent of the data storage schemas of the data;
(b) generating a mapping on each of the server computers of the representation of the data in the semantic programming interface to each of the data storage schemas of the data stored on the one or more server computers, each mapping providing information for generating user-specific views of the data stored on the one or more computers;
(c) transmitting the interface-based object program from the client computer to the one or more server computers;
(d) translating the interface-based object program into one or more executable programs at the one or more server computers;
(e) running the one or more executable programs on the one or more server computers in combination with one or more of the data mappings to process the data at the one or more server computers; and
(f) returning the processed data to the client computer. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
(g) identifying and authenticating the user to determine the user'"'"'s access permissions for the data.
-
-
16. The method of claim 15 wherein the data stored on the one or more server computers is contained in one or more databases and the access permissions of the databases define which fields, rows and tables within the databases the user is entitled to access.
-
17. The method of claim 15 wherein the data stored on the one or more server computers is contained in one or more documents stored on the one or more server computers and the access permissions of the documents define which portions of the documents the user is entitled to access.
-
18. The method of claim 12 the representation of the data in the semantic programming interface includes a specification of properties of the data and relationships among the data.
-
19. The method of claim 18 wherein data is denoted using the semantic programming interface directly, or indirectly using its relationship with other data, or indirectly using properties of the data.
-
20. The method of claim 12 wherein the data stored on the one or more server computers is contained in one or more documents stored on the one or more server computers.
-
21. The method of claim 12, wherein the user-specific views are generated at runtime by expressions constructed from the mapping to each of the data storage schemas.
-
22. The method of claim 21 wherein the expressions use SQL syntax.
-
23. A method using denotations for specifying a semantic programming interface, said method for use by a user processing data stored in one or more databases on one or more computers, the method comprising:
-
(a) identifying computationally meaningful relationships between the data and computationally meaningful groupings of the data;
(b) representing the data as objects, each object having associated methods; and
(c) declaring the computationally meaningful relationships and computationally meaningful groupings as the methods associated with the objects;
(d) denoting objects of interest using the relationships and roles the objects of interest play in relation to other ones of the objects; and
(e) constructing data selection logic using said denotations without direct access by the user to the one or more databases. - View Dependent Claims (24)
-
-
25. A method for executing on a server computer a source program written on a client computer, the method comprising:
-
(a) transmitting the source program from the client computer to the server computer along with an identification of a program domain for which the source program is written;
(b) storing the source program on the server computer;
(c) instantiating on the server computer a secure first loader capable of loading classes in the program domain and a secure second loader capable of loading the source program when it has been compiled;
(d) compiling the source program on the server computer;
(e) loading the compiled program using the second loader; and
(f) running the compiled program on the server computer. - View Dependent Claims (26, 27, 28, 29)
(g) transmitting the output from the server computer to the client computer.
-
-
29. The method of claim 25 wherein a user generates the source program written on the client computer, the method further comprising:
(h) identifying and authenticating the user on the server computer to determine the user'"'"'s access permissions on the server computer.
-
30. A method of creating and executing one or more programs on a client computer for processing data from one or more domains, the data being stored on one or more server computers, the method comprising:
-
(a) identifying the one or more domains and the one or more server computers;
(b) generating request code and response handler code, said request code to process the data stored on the one or more server computers and said response handler code to handle an output received from the one or more server computers in response to receiving a request generated by the request code, wherein said request code and said response handler code use terms and constructs of a semantic programming interface, the semantic programming interface providing an abstract, object-oriented representation of the data that is independent of the data storage schema of the data, and wherein the response handler code includes the capability of identifying a new set of servers and the capability of handling information that may be used as parameters in a succeeding request, depending on the nature of the further processing required in the original request;
(c) combining the request code and the response handler code to form one or more chores including nested chores of different kinds; and
(d) queuing the chores for execution. - View Dependent Claims (31, 32, 33)
-
Specification