Claims
- 1. A Meta Model for building a knowledge-oriented software application using an object-oriented programming language, the Meta Model comprising:
a Meta Knowledge Model comprising a specification of how the knowledge-oriented software application represents knowledge; a Meta Logic Model comprising a specification of how the knowledge-oriented software application derives new knowledge; a Knowledge Definition Model comprising a specification of how the knowledge-oriented software application is converted from a human-readable format to executable code; a Catalog Model comprising a specification of how the knowledge-oriented software application organizes the knowledge within an electronic device; and a Run-time Model comprising a specification of how the knowledge-oriented software application enables concurrent clients to manipulate the knowledge stored in the electronic device.
- 2. The Meta Model of claim 1, wherein the Meta Knowledge Model further comprises a Thing, a Key, a Fact, a Relation, and a Knowledge Definition.
- 3. The Meta Model of claim 2, wherein the Thing comprises an object-oriented representation of a named object.
- 4. The Meta Model of claim 2, wherein the Key comprises an object-oriented representation of a name of the Thing.
- 5. The Meta model of claim 2, wherein the Fact comprises an object-oriented representation of facts regarding a set of things.
- 6. The Meta Model of claim 2, wherein the Relation further comprises an object-oriented representation of a set of facts.
- 7. The Meta Model of claim 2, wherein the Knowledge Definition Model further comprises an object oriented representation of a function for converting elements of the Meta Model to an implementation.
- 8. The Meta Model of claim 1, wherein the Meta Logic Model further comprises an Event, an Event Handler, and a Relation Function.
- 9. The Meta Logic Model of claim 8, wherein the Event comprises an object-oriented representation of functions selected from a group consisting of: adding, editing, modifying, and dropping a Relation.
- 10. The Meta Model of claim 8, wherein the Event Handler comprises an object oriented representation of responses to the Event.
- 11. The Meta Model of claim 8, wherein the Relation Function comprises an object-oriented representation of actions.
- 12. The Meta Model of claim 8, wherein the Relation Function comprises an object-oriented representation of queries.
- 13. The Meta Model of claim 8, wherein the Relation Function comprises an object-oriented representation of functions.
- 14. The Meta Model of claim 8, wherein the Relation Function receives a set of Relations as input and ret urn s a Relation as output.
- 15. A signal-bearing medium bearing a Meta Model comprising:
a Meta Logic Model comprising an Event, an Event handler, and a Relation Function; a Meta Knowledge Model comprising a Thing, a Key, a Fact, a Relation, and a Knowledge Definition; a Knowledge Definition Model comprising a model for binding the Thing and its subtypes to a computer program; a Catalog Model comprising a set of classes that are subclasses of the Relation, and wherein the Catalog Model indexes a set of knowledge definitions that are instances of subclasses of the Knowledge Definition Model; and a Run-time Model comprising a set of classes that are subclasses of the Thing, whrein the Run-time Model dynamically binds the knowledge definitions to a physical implementation.
- 16. The signal-bearing medium of claim 15, wherein the Knowledge Definition Model further comprises a model for binding the Key and its subtypes, the Relation and its subtypes, the Fact and its subtypes, the Event and its subtypes, the Event Handler and its subtypes, and the Relation Function and its subtypes to the computer program.
- 17. The signal-bearing medium of claim 15, wherein the Knowledge Definition Model further comprises a Knowledge Definition and its subtypes.
- 18. The signal-bearing medium of claim 16, where the Knowledge Definition subtypes comprise a Thing Definition, a Key Definition, a Fact Definition, a Relation Definition, a Reference Definition, and a Relation Function Definition.
- 19. The signal-bearing medium of claim 18, wherein the Thing Definition comprises a logical name for the Thing and a name of a programming language class that implements the Thing.
- 20. The signal-bearing medium of claim 18, wherein the Key Definition comprises a logical name for the Key and a name of a programming language class that implements the Key.
- 21. The signal-bearing medium of claim 18, wherein the Fact Definition comprises a logical name for the Fact and a name of a programming language class that implements the Fact.
- 22. The signal-bearing medium of claim 18, where the Relation Definition comprises a logical name for the Relation and a name of a programming language class that implements the Relation.
- 23. The signal-bearing medium of claim 18, where the Relation Function Definition comprises a logical name for the Relation Function and a name of a programming language class that implements the Relation Function.
- 24. The signal-bearing medium of claim 18, wherein the Catalog Model comprises a model for storing a declarative definition of an application and the application's run-time data.
- 25. The signal-bearing medium of claim 24, wherein the Catalog Model further comprising a set of classes that are subclasses of the Thing, Key, Relation, Fact, and Knowledge Definition.
- 26. The signal-bearing medium of claim 24, wherein the Run-time Model comprises a Session, a Kernel, and subtypes of an Application.
- 27. The signal-bearing medium of claim 24, wherein the Application comprises an object oriented definition of how the application can be accessed by a computer program that uses the services of the application.
- 28. The signal-bearing medium of claim 25, wherein the Session comprises an object oriented definition of how the application can be accessed by concurrent users.
- 29. The signal-bearing medium of claim 26, wherein the Kernel comprises an object-oriented definition of how multiple applications can be managed and accessed by multiple users.
- 30. An electronic device comprising:
a processor; and a storage device comprising:
a Meta Knowledge Model comprising a specification of how a knowledge-oriented software application represents knowledge, a Meta Logic Model comprising a specification of how the knowledge-oriented software application derives new knowledge, a Meta Knowledge Model comprising a Thing, a Key, a Fact, a Relation, and a Knowledge Definition, wherein the Thing comprises an abstract base Thing class with a method for retrieving a key of a Thing instance, wherein the key comprises a unique identifier, a Knowledge Definition Model comprising a specification of how the knowledge-oriented software application is converted from a human-readable format to executable code, a Catalog Model comprising a specification of how the knowledge-oriented software application organizes the knowledge within an electronic device, and a Run-time Model comprising instructions that execute on the processor.
- 31. The electronic device of claim 30, wherein the Thing comprises a static Thing Definition object that defines its physical implementation.
- 32. The electronic device of claim 31, wherein the Thing is extendible to create application-specific Thing classes and wherein the Thing class is a base class for all domain-specific object classes.
- 33. The electronic device of claim 30, wherein the Key comprises an abstract base type and a StringKey, a DateKey and a IntegerKey are sub types of the Key.
- 34. The electronic device of claim 33, wherein the StringKey creates the Key from a string and wherein the StringKey comprises a method to get a string value of a string key.
- 35. The electronic device of claim 33, wherein the IntegerKey creates the Key from an integer and wherein the IntegerKey comprises a method to get an integer value of an integer key.
- 36. The electronic device of claim 33, wherein the DateKey creates the Key from a date and wherein the DateKey comprises a method to get a date value of a date key, and wherein the Key is extendible to create other types of keys.
- 37. The electronic device of claim 30, where the Fact is a sub type of the Thing.
- 38. The electronic device of claim 30, wherein the Fact is as an abstract base type.
- 39. The electronic device of claim 30, wherein the Fact is a set of the Things, and wherein the Things can be gotten and updated by their ordinal numbers.
- 40. The electronic device of claim 30, wherein the Fact is a set of the Things, and wherein the Things can be gotten and updated by their names.
- 41. The electronic device of claim 30, wherein an implementation of the Fact has a fixed cardinality.
- 42. The electronic device of claim 30, wherein the Fact has a Type and methods to get and set the Fact Type, wherein the Fact Type can be Simple, OneToOne, and ManyToOne.
- 43. The electronic device of claim 39, wherein the Things of the Fact can be gotten and set as an array of the Things.
- 44. A signal-bearing medium comprising a Meta Model for building a knowledge-oriented software application using an object-oriented programming language, wherein the Meta Model comprises:
a Meta Knowledge Model including:
a Thing comprising a specification of how the knowledge-oriented software application is represented as objects, wherein the Thing is the super class of the objects; a Key comprising a specification of how knowledge-oriented software application things are named, where the thing names are instances of classes that are subclasses of the Key and the things are instances of subclasses of the Thing; a Fact comprising a specification of how knowledge oriented software application represent facts, where the facts are instances of classes that are subclasses of the Fact and the Fact is a subclass of the Thing, a Relation comprising a specification of how the knowledge-oriented software application represents sets of similar facts, where all relations are instances of classes that are subclasses of the Relation, and the Relation is a subclass of Thing, and a Knowledge Definition comprising a specification of how the knowledge-oriented software application represents the logical design of the application and how it relates the logical design to a physical implementation, wherein the Knowledge Definition is a subclass of the Thing.
- 45. The signal-bearing medium of claim 44, wherein the Relation is a super type of the Thing.
- 46. The signal-bearing medium of claim 44, wherein the Relation is as an abstract base type.
- 47. The signal-bearing medium of claim 44, wherein the Relation is a set of named Facts.
- 48. The signal-bearing medium of claim 44, wherein the Relation has a Relation Scope.
- 49. The signal-bearing medium of claim 44, wherein the Relation has methods to get and set the Relation Scope.
- 50. The signal-bearing medium of claim 48, wherein the Relation Scope comprises an Application and a Session.
- 51. The signal-bearing medium of claim 44, where each instance of the Relation comprises a name, and wherein the Relation has methods to get and set the name.
- 52. The signal-bearing medium of claim 44, wherein the Relation comprises methods to retrieve, insert, delete, and update facts of the Relation.
- 53. The signal-bearing medium of claim 44, wherein Relation has methods to find the union, intersections, and the difference of two relations.
- 54. The signal-bearing medium of claim 44, wherein the Relation comprises a method to determine whether a fact is contained within a relation.
- 55. The signal-bearing medium of claim 44, wherein the Relation comprises a method to get the number of facts in a relation.
- 56. The signal-bearing medium of claim 44, wherein the Relation comprises a method to return all the facts as an array.
- 57. The signal-bearing medium of claim 44, wherein the Knowledge Definition is a sub type of the Thing.
- 58. The signal-bearing medium of claim 44, wherein the Knowledge Definition is an abstract base type.
- 59. The signal-bearing medium of claim 44, wherein the Knowledge Definition has a name, and wherein the Knowledge Definition comprises a method to get and set the name.
- 60. The signal-bearing medium of claim 44, wherein the Knowledge Definition comprises a logical and physical representation of a Thing.
- 61. A signal-bearing medium comprising a Meta Model for computer programs implemented in an object-oriented programming language, the Meta Model comprising:
a Meta Knowledge Model comprising a Thing, a Key, a Fact, a Relation, and a Knowledge Definition; and a Meta Logic Model comprising an Event, an Event Handler, and a Relation Function, wherein the Event is a sub type of the Thing.
- 62. The signal-bearing medium of claim 61, wherein the Event has a name, and wherein the Event has methods to get and set the name.
- 63. The signal-bearing medium of claim 61, wherein the Event has a Level and wherein the Event has methods to get and set the Event Level, and wherein the Event Level can be selected from a group consisting of: the Relation and the Fact.
- 64. The signal-bearing medium of claim 61, wherein the Event has a Priority, and wherein the Event has methods to get and set the Event Priority.
- 65. The signal-bearing medium of claim 61, wherein the Event has a Scope, and wherein the Event has methods to get and set the Event Scope, and wherein the Event Scope can be selected from a group consisting of: an Application or a Session.
- 66. The signal-bearing medium of claim 61, wherein the Event has a Type, wherein the Event has methods to get and set the Event Type, and wherein the Event Type can be selected from a group consisting of: On Insert, On Delete, On Update, On Add, and On Drop.
- 67. The signal-bearing medium of claim 61, wherein the Event has methods to get and set the Event Handler.
- 68. The signal-bearing medium of claim 61, wherein the Event Handler comprises a sub type of the Thing.
- 69. The signal-bearing medium of claim 61, wherein the Event Handler comprises:
a name; and methods to get and set the name.
- 70. The signal-bearing medium of claim 61, wherein the Event Handler comprises:
a relation function; and methods to get and set a name of the relation function.
- 71. The signal-bearing medium of claim 61, wherein the Event Handler comprises:
a target relation; and methods to get and set a name of the target relation.
- 72. The signal-bearing medium of claim 61, wherein the Event Handler comprises:
a n action type; and methods to get and set the action type, wherein the action type is selected from a group consisting of: Clear, Add, Drop, Replace, Insert, Delete, and Update.
- 73. The signal-bearing medium of claim 61, wherein the Relation Function is a super type of the Thing.
- 74. The signal-bearing medium of claim 61, wherein the Relation Function comprises:
a name; and methods to get and set the name.
- 75. The signal-bearing medium of claim 61, wherein the Relation Function has an argument and the argument is an array of the Relations.
- 76. The signal-bearing medium of claim 61, wherein the Relation Function has a return value and the return value is a Relation.
- 77. The signal-bearing medium of claim 61, wherein the Relation Function defines a method to execute.
- 78. The signal-bearing medium of claim 61, wherein the Relation Function and the Relation form a closed algebra, wherein the Relation Function returns only a relation, and wherein the Relation Function can be used as an argument anywhere a Relation can be used as an argument.
- 79. The signal-bearing medium of claim 61, wherein the Relation Function is recursive, wherein an output of the Relation Function is an input of the Relation Function, and wherein the Relation Function terminates when an output Relation is empty.
- 80. A signal-bearing medium comprising:
a Meta Model for computer programs implemented in an object-oriented programming language, the Meta Model comprising:
a Meta Knowledge Model comprising a Thing, a Key, a Fact, a Relation, and a Knowledge Definition, and a Meta Logic Model comprising an Event, an Event Handler, and a Relation Function; and a Kernel, wherein the Kernel is a super type of the Thing.
- 81. The signal-bearing medium of claim 80, wherein the Kernel comprises a system Application that manages external applications.
- 82. The signal-bearing medium of claim 80, wherein the Kernel comprises a name and methods to get and set the name.
- 83. The signal-bearing medium of claim 80, wherein the Kernel comprises a root object of all objects.
- 84. The signal-bearing medium of claim 80, wherein the Kernel has a number of users and methods to add and drop users identified by their names and passwords.
- 85. The signal-bearing medium of claim 80, wherein the Kernel grants access to Applications and wherein the Kernel comprises methods to grant privileges to users.
- 86. The signal-bearing medium of claim 80, wherein the Kernel has multiple concurrent users, wherein each of the users has multiple sessions, and wherein the Kernel comprises methods to create, get, and drop named sessions.
- 87. The signal-bearing medium of claim 80, wherein the Kernel comprises methods to load and unload an Application.
- 88. The signal-bearing medium of claim 80, wherein the Kernel loads an application from an Application Definition File.
- 89. The signal-bearing medium of claim 80, wherein the signal-bearing medium further comprises an Application.
- 90. The signal-bearing medium of claim 89, wherein the Application is a sub type of the Thing.
- 91. The signal-bearing medium of claim 89, wherein the Application has a version and the Application has methods to get and set the version.
- 92. The signal-bearing medium of claim 89, wherein the Application has a name and the Application has methods to get and set the name.
- 93. The signal-bearing medium of claim 89, wherein the Application has a set of Relation Definition instances and the Application has methods to add, get, and drop the Relation Definition instances.
- 94. The signal-bearing medium of claim 89, wherein the Application has a set of Relation instances and the Application has methods to add, get, and drop the Relation instances.
- 95. The signal-bearing medium of claim 89, wherein the Application has a set of Relation Function Definition instances and the Application has methods to add, get, and drop the Relation Function Definition instances.
- 96. The signal-bearing medium of claim 89, wherein the Application has a set of Relation Function instances and the Application has methods to add, get, and drop the Relation Function instances.
- 97. The signal-bearing medium of claim 89, wherein the Application has a set of Event instances and the Application has methods to add, get, and drop the Event instances.
- 98. The signal-bearing medium of claim 89, wherein the Application has a set of Event Handler instances and the Application has methods to add, get, and drop the Event Handler instances.
- 99. The signal-bearing medium of claim 89, wherein the Application has a set of Thing Definition instances and the Application has methods to add, get, and drop the Thing Definition instances.
- 100. The signal-bearing medium of claim 80, wherein the Kernel enforces type safety.
- 101. The signal-bearing medium of claim 100, wherein when a relation, relation function, thing, key, and fact are created and referenced, the Kernel enforces the type specified in a corresponding knowledge definition.
- 102. The signal-bearing medium of claim 80, wherein the Kernel enforces referential integrity.
- 103. The signal-bearing medium of claim 102, where when a relation, relation function, thing, key, and fact are referenced by the key, the Kernel enforces that an object referenced by the key exists in the relation specified by the key's reference definition.
- 104. The signal-bearing medium of claim 89, wherein the Application manages a transaction, wherein a transaction comprises a change in a state of a relation.
- 105. The signal-bearing medium of claim 104, wherein the Application has a method to start the transaction.
- 106. The signal-bearing medium of claim 104, wherein the Application has a method to commit the transaction.
- 107. The signal-bearing medium of claim 104, wherein the Application has a method to rollback the transaction.
- 108. The signal-bearing medium of claim 104, wherein the Application has a method to execute the Relation Function and return a result as a relation.
- 109. The signal-bearing medium of claim 104, wherein the Application rollbacks an external transaction when the external transaction fails.
- 110. The signal-bearing medium of claim 109, wherein the Application rollbacks an external transaction when a transaction of an event generated by the external transaction fails.
- 111. The signal-bearing medium of claim 109, wherein the Application commits the external transaction and the transactions generated by the events as a result of the external transaction.
- 112. The signal-bearing medium of claim 89, wherein the Application is persistently and declaratively stored in an Application Definition File.
- 113. The signal-bearing medium of claim 112, wherein a Kernel binds the Application Definition to a physical implementation at run time.
- 114. The signal-bearing medium of claim 80, wherein a Session is a sub type of the Thing.
- 115. The signal-bearing medium of claim 114, wherein the Session has a name and the Session has methods to get and set the name.
- 116. The signal-bearing medium of claim 114, wherein the Session has methods to access any Kernel application.
- 117. The signal-bearing medium of claim 114, wherein the Session has a time out and wherein the Kernel removes timed-out sessions automatically.
- 118. The signal-bearing medium of claim 114, wherein the Session has a state.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to provisional application No. 60/328,069, filed Oct. 9, 2001, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60328069 |
Oct 2001 |
US |