US4675829A - Method and apparatus for building knowledge-based systems - Google Patents

Method and apparatus for building knowledge-based systems Download PDF

Info

Publication number
US4675829A
US4675829A US06/634,949 US63494984A US4675829A US 4675829 A US4675829 A US 4675829A US 63494984 A US63494984 A US 63494984A US 4675829 A US4675829 A US 4675829A
Authority
US
United States
Prior art keywords
slot
local
value
parent
combined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US06/634,949
Inventor
Gregory D. Clemenson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INTELLICORP A CORP OF
INTELLICORP Inc A CORP OF
INTELLICORP CORP
Original Assignee
INTELLICORP CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by INTELLICORP CORP filed Critical INTELLICORP CORP
Priority to US06/634,949 priority Critical patent/US4675829A/en
Assigned to INTELLICORP, A CORP OF CA reassignment INTELLICORP, A CORP OF CA ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: CLEMSON, GREGORY D.
Assigned to INTELLICORP, INC., A CORP. OF DE reassignment INTELLICORP, INC., A CORP. OF DE ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: CLEMENSON, GREGORY D.
Application granted granted Critical
Publication of US4675829A publication Critical patent/US4675829A/en
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTELLICORP, INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames

Definitions

  • This invention relates to the field of artificial intelligence, for example to the field of expert systems or knowledge-based systems.
  • AI Artificial intelligence
  • Artificial intelligence technology is a discipline with an ultimate goal of providing a machine that is capable of reasoning, making inferences and following rules in a manner believed to model the human mind.
  • a great deal of theoretical work has been done in this discipline, and much remains to be done.
  • Artificial intelligence theory is beginning to find applications because of the hope that its principles can be effectively applied to develop better computer software and to provide to relatively untrained users sophisticated computer power to solve practical problems such as to assist in the analysis of massive amounts of relatively unprocessed data to aid in decision-making processes.
  • AI-dedicated computer languages to assist in this development.
  • the languages are LISP and PROLOG.
  • these languages are not particularly easy for either skilled AI researchers or minimally-trained user/programmers to use to develop sophisticated and complex knowledge bases necessary to solve the problems related to artificial intelligence applications.
  • tools are needed which are better suited to the requirements of both a minimally-trained knowledge base user and a skilled AI researcher.
  • a knowledge base is a set of knowledge representations which describes a domain of knowledge.
  • a knowledge base is to an artificial intelligence environment what a database is to a conventional computer program. Unlike a database, however, a computer knowledge base can include executable program material within a defined record herein called a slot.
  • the first category is that of descriptive knowledge. This category is the collection and classification of facts and categorizations about an idea or entity which might be acted upon.
  • the basic units of descriptive knowledge are generally called frames, as hereinafter explained. They have also been known variously as units, concepts or objects.
  • the term frame lacks some precision of meaning due to its use in other disciplines. Therefore, hereinafter a basic unit of descriptive knowledge is denoted a knowledge representation frame or KR frame.
  • KR frame contains one or more slots.
  • any hierarchical data structure can be described in terms of nodes of information containing slots as components of the node. The descriptions herein therefore are not necessarily limited to KR frame applications, but may find application in any similarly organized hierarchical data structure.
  • the second category of knowledge representation is that of procedural representation in the form of rules or structured reasoning procedures. This category includes the structural capability to make choices.
  • the premise-conclusion (IF THEN) format is a typical representation of a procedural knowledge conditional expression. Procedural knowledge emphasizes action and is encoded into a knowledge base as a rule in conditional expression form. The procedural knowledge may reside in a slot of a KR frame.
  • the third category is that of logic programming. Knowledge is represented as first order predicate calculus statements. Examples of languages using logic programming are the language of the so-called fifth generation computers of the Japanese, called PROLOG and the language MRS employed at Stanford University.
  • inheritance One of the attributes of artificial intelligence is the concept of inheritance. It is a development of the idea of using a hierarchical structure for relating a knowledge base or database. The key to these structures is the concept of connecting relations between structures of data or knowledge through which information about attributes may pass to other structures of data or knowledge.
  • the concept of inheritance has a number of advantages.
  • First, an inheritance mechanism allows the specification of many components of a data structure or knowledge structure through reference to other data structures or knowledge structures.
  • high-level data structures or knowledge structures refer to organized collections of simpler data structures or knowledge structures, such as a collection of various relations in a relational database sense, or a collection of logical assertions as in the predicate calculus sense.
  • an inheritance mechanism can assure consistency among high-level data or knowledge structures. That is, the inheritance mechanism can be used to specify that a given data or knowledge structure must obey restrictions placed on characteristics from other data or knowledge structures. inherited from other data or knowledge structures.
  • the inheritance mechanism allows the implementation of semantics. That is, the inheritance mechanism is a technique for combining higher level concepts and specifying meaning.
  • Inherit on store causes inheritance to be performed only when a value is stored in a slot.
  • Inherit on fetch causes inheritance to be performed only when a value is retrieved from a slot.
  • Nearly all prior languages have employed inherit on fetch schemes because of the assumption that inheritance was such an inefficient process that inheritance was best delayed until it became necessary to use values actually requiring inheritance. Inherit on fetch was therefore the preferred inheritance strategy.
  • Previous inheritance technology has generally recognized two kinds of values elements in a slot.
  • the values recognized have been the local value, or the value given locally by the slot definition, and the inherited value, or the value expressed by the slot of the local KR frame.
  • Conventional technology has taught that inheritance of attributes could only be correctly implemented and expressed by collecting local information and collecting all local information of all ancestral slots each time KR frame or data structure relations changed.
  • conventional inheritance processes operated by performing a lookup of potentially all ancestor nodes in order to determine inherited information, and then such information was combined with local information to yield an "inherited value".
  • a full lookup or traversal could only be avoided in cases where there was special information about how the inheritance was to be performed along the paths of the inheritance structure.
  • the known techniques for avoiding a complete reconstruction of the inheritance structure have required that each kind of inheritance mechanism encode its own particular way of bypassing or shortcutting the traversal task. What is needed is a mechanism for improving or eliminating the known cumbersome inheritance techniques.
  • a summary of relevant that is, inheritable information about a slot of a node in a hierarchical data structure, such as a KR frame, is cached, or stored in readily accessible form to make the summary available to children of the slot.
  • the summary contains all information needed by the children to express inheritable characteristics. Inheritance can be performed by retrieving the summary merely from the immediate parents.
  • the summary may be stored in a subject slot within a data field herein referred to as the combined value field.
  • the term combined value refers generally to the summary of all information the subject slot wishes to pass on to its descendants and is not dependent on the actual form of the summary.
  • each slot may have a "local value” representing information unique to the slot without respect to inheritance. Therefore for each slot there is a local value, a combined value and an inherited value.
  • the invention is extremely efficient and powerful because it allows modularization of the inheritance mechanism and completely general inheritance processing, that is, inheritance processing without the use of special shortcuts. Moreover, the invention makes an inherit on store strategy a viable inheritance strategy since inheritance is limited to immediate parents.
  • FIG. 1 is a diagrammatic representation of a knowledge base for illustrating a first kind of inheritance processing according to the invention.
  • FIG. 2 is a flow chart of a first kind of inheritance processing.
  • FIG. 3 is a diagram illustrating structure of two types of values stored in a knowledge base.
  • FIG. 4 is a diagrammatic representation of a knowledge base for illustrating a second kind of inheritance processing according to the invention.
  • FIG. 5 is a flow chart of a second kind of inheritance processing.
  • FIG. 1 there is shown an example of a knowledge base 10 having three KR frames 12, 14 and 16.
  • the first KR frame 12 is labeled "frog”.
  • the second KR frame 14 is labeled "blue-things”.
  • the third KR frame 16, labeled "blue-frog” is related by inheritance to the "frog" KR frame 12 and the "blue-things" KR frame 14.
  • KR frame 12 contains a first slot 18 under the label “color” and a second slot 20 under the label “A”.
  • KR frame 14 contains a slot 22 labeled "color”.
  • KR frame 16 also contains a slot 24 labeled "color” and further contains a slot 26 labeled "A”.
  • the slots of a common name are related to one another through the respective KR frames.
  • the KR frames "frog” and “blue-things” are parent frames to the KR frame “blue-frog”.
  • the "color” slot in KR frame “frog” is a parent of the "color” slot in the KR frame “blue-frog”
  • the "color”slot in the KR frame “blue-things” is a parent to the "color” slot in the KR frame "blue-frog”.
  • each slot Within each slot is the notion or concept of a local value.
  • the local value is defined locally in the slot independent of any inheritance.
  • Each slot also carries two other values: an inherited value 30 and, according to the invention, a combined value 32.
  • An inherited value is the value of a slot representing all characteristics which would be expressed by the slot.
  • a combined value is the value representing the raw information from which the inherited value is generated and which contains sufficient information to communicate to all descendants characteristics of all ancestors of the slot.
  • the contents of the inherited value 30 is "green”
  • the contents of the combined value 32 is also "green".
  • the contents of any one of the values is not limited to a single element, depending on the definition of the slot.
  • Other slots of a KR frame may contain unrelated but inheritable information.
  • a local value 34, an inherited value 36 and a combined value 38 of the A slot have contents of null, so nothing is inherited.
  • the "color” slot 22 of KR frame "blue-things" 14 has by its definition a local value 40 with contents “blue”, an inherited value 41 with contents "blue” and a combined value 42 with contents "blue”.
  • KR frame 16 labeled "blue-frog" contains a slot 24 with a local value 44, an inherited value 46 and a combined value 48.
  • the contents of the local value 44 is null.
  • the inherited value 46 and the combined 48 must be calculated from other factors, namely from the ancestry of the slot 24.
  • the inherited value of the "color” slot 24 is generated by examining the combined value of the corresponding "color” slots 18 and 20 of the parent KR frames and by applying the combined values of the parent slots through an inheritance processor 50, as hereinafter explained.
  • the inheritance processor 50 or equivalent function returns the inherited value 46 and the combined value 48.
  • the inherited value 46 is the value expressed by the local KR frame 16, whereas the combined value 48 represents the summary of all inherited characteristics of the local KR frame 12.
  • FIG. 2 illustrates the operation of an override inheritance type inheritance processor function.
  • the inheritance processor function consists of three steps. The steps are: input of the local value and all combined values (Step A) second, generation of an ordered list from the local value of the local slot and the combined value of corresponding slots of all parent KR frames (Step B); third, selection and return of the highest ordered non-null value as the combined value and as the inherited value for the current slot (Step C).
  • the "color" slot 24 of the KR frame named "blue-frog" 16 would provide the local value 44 of null to the inheritance processor 50, the highest ordered "color” slot, namely "color” slot 22 from the frame “blue-things” 14, would provide the combined value of "blue” to the inheritance processor 50 and the next ordered "color” slot, namely, the "color” slot 18 of the KR frame “frog” 12 would return the combined value "green”.
  • the highest ordered non-null value would be selected from the combined value list for the local slot and would be returned as both the combined value and the inherited value to the subject slot 24. In this case the inherited value would be "blue” and the combined value would be "blue”.
  • the inheritance processor 50 of FIG. 1 is a generalized modular processor which functions independently of any slot.
  • the particular type of inheritance processor employed in practice depends on the semantic role assigned to the slot of current interest, or local slot 24.
  • the inheritance processor 50 for the current slot "blue-frog" was selected on the basis of the overriding semantic meaning of the term "blue”.
  • a different inheritance function might be employed.
  • the above example merely illustrates the use of the combined value function to pass on inheritable characteristics to a current slot quickly and efficiently in a generalized manner.
  • the semantics of the local slot takes local precedence when the value of the local slot must be expressed. This is a very powerful tool for overcoming contradictions which are not taken into account unless local semantics are considered.
  • inheritance requires the combined value of the parent slots only and a generalized inheritance processor capable of processing the combined values to produce a local inherited value and a new combined value.
  • the combined value is a collection of pieces of executable code and the inherited value is the result produced by that collection of pieces of executable code.
  • FIG. 3 illustrates a structure for the allocation of coding in an executable program which enables the use of method inheritance in accordance with the invention.
  • pieces of executable code are gathered from various parents and combined in a list for execution.
  • the executable code list is divided into at least three sections: first, a main-code section 52; second, a before-code section 54; and next an after-code section 56. There may be other sections of code, such as a wrapper-code section (not shown).
  • the main-code There is only one main-code section, but there may be many before-code sections and many after-code sections.
  • the before-code sections are prefixes to the main-code, whereas the after-code sections are suffixes to the main-code.
  • the before-code sections are executed prior to the main-code section, and the after-code section is executed after the the main-code section.
  • the positioning of before-code and after-code typically determines the order in which the before-code or after-code is executed in a code list. However, other schemes may be used to indicate the order in which a code list is executed.
  • FIG. 4 illustrates a knowledge base in which the technique of method inheritance is implemented.
  • a knowledge base 100 consists of the KR frames "Moving Object" 60, "Visible-Moving Object” 62 and "Trail-Maker” 64.
  • Each of the KR frame 60, 62 and 64 contain a move slot respectively labeled herein a grandparent slot 66, a parent slot 68, and a local slot 70.
  • Each of the KR frames 60, 62 and 64 also contains an x-y position slot, respectively labeled 72, 74 and 78.
  • discussion will be limited to the structure of the move slots 66, 68 and 70, and the related inheritance processing functions.
  • slots 74 and 78 inherit the x,y position of their parents, respectively.
  • the grandfather move slot 66 contains a local value 80 with fields before-code 82, main-code 84 and after-code 86. Before-code field 82 and after-code field 86 contain null values.
  • Main-code field 84 contains the executable function f(dx,dy) which is the code for executing a specific function of the arguments and dy.
  • the grandfather slot 66 also contains a combined value list 88 consisting of the string of fields: null; f(dx,dy); null. The source of this combined value list may have been obtained by initialization of the KR frame 60.
  • the x-y position slot 72 of grandfather KR frame 60 may contain a local value 73 consisting of the position coordinates of the moving object frame 60.
  • the KR frame 62 contains the parent move slot 68 having at least local value 90 combined value 92.
  • the local value 90 contains at least three fields, before-code 94, main-code 96 and after-code 98.
  • the main code field 96 of the local value 90 contains a null.
  • the before-code field 96 contains a call or a statement equivalent to the function "erase self”.
  • the after-code field 98 contains a call or a statement equivalent to the function "draw self”.
  • the combined value 92 of the parent move slot 68 consists of the string: "erase self”; f(dx,dy); “draw self". This string of instructions is derived from the before-code and aftercode of the subject or parent slot 68 and the main-code of the grandparent slot 66 in accordance with action of the method inheritance processor 50 of the invention explained hereinafter.
  • the slot of current interest or the local slot 70 of the "Trail-Maker" frame 64 there is a local value 100 containing a before-code field 102, a main-code field 104, and an after-code field 106.
  • the before-code field 102 and the main-code field 104 in the local slot 70 may contain nulls.
  • the after-code field 106 is shown to contain a call or instructions equivalent to the function "draw dot".
  • the local slot 70 also is shown to contain the combined value 108 consisting of a code list and an inherited value 110.
  • the combined value 108 and the inherited value 110 are obtained as a result of operation of an inheritance processor 50 functioning in accordance with the invention.
  • the inheritance function applied to local slot 70 is the method inheritance function.
  • the first step is to collect the contents of the combined value fields of all parent slots and the local value fields of the local slot (Step A).
  • the contents of combined value fields of the parent slot is the list contained in combined value 92.
  • the local value fields of the current slot 70 are the fields 102, 104 and 106 of FIG. 4.
  • the next step is to create a combined value list (Step B).
  • the combined value list is created by appending the contents of each local value field at the beginning of each list of the corresponding combined value field. Since the local value fields 102 and 104 contain null values, the before-code and main-code combined value list will consist of the before-code and main-code components from the combined value field of the parent slot 68. However, the after-code 106 contains the function "draw dot". Therefore, the resultant combined value list will consist of the fields "draw dot" and "draw self", the last being the after-code element of the combined value 92 of the parent slot 68.
  • Step C The next step is to call the inheritance function of the inheritance processor 50 with the arguments "combined value list" generated in Step B (Step C). Thereafter, the inheritance function is executed to retain a combined value list and an inherited value list (Step D).
  • the next step is to store in the local slot 70 the combined value list returned from the inheritance function.
  • the combined value list is the code list: "erase self”; f(dx,dy); "draw dot”; "draw self”.
  • the final step is to store the inherited value in the local slot 70 (Step F).
  • the inherited value in this case would be the result of executing the combined value list stored in the local slot 70.
  • Appendix A is a listing in the LISP language with comments of the set-up of data fields for processing by any inheritance function as represented by contents of a general-purpose inheritance processor 50.
  • the inheritance processor 50 is for executing selected combine function codes, the details of which are not relevant to the present invention.
  • the combine function codes perform as follows: in the case of simple inheritance, the first non-null entry in the combined value list is returned as both the combined value and the inherited value of the current slot.
  • the inheritance function first examines the main-code field of the local slot and designates the first non-null main-code element as the main-code element of the combined value code list in the local slot.
  • the before-code fields of the combined value list are then scanned and all the before-code lists are appended as elements to the current value list.
  • the before-code list must be executed prior to the main-code list.
  • the before-code element of the local slot is assigned the first priority in execution of the before-code list.
  • the after-code element of the combined value list is appended to the local value for the after-code.
  • the result is a list which represents the entire combined value of the local slot.
  • the entire combined value list may then be presented to a code generator 51 (FIG. 4) in order to generate a function.
  • the resultant function is the inherited value of the local slot. It is the function which results in the expression of the characteristics of the local slot.
  • the combined value list is the summary of all inheritable characteristics of the local slot.
  • the inherited value is the function which, when appropriately manipulated, expresses the characteristics of the local slot.
  • the inheritance processor is the mechanism which performs the generalized inheritance function. Two types of inheritance function have been described by way of illustration. Each time a combined value and an inherited value is required, a call is made to an inheritance processor which examines the local value of the local slot and the combined value of all immediate parents to return the appropriate values for the combined value and the inherited value of the local slot. Unlike prior inheritance techniques, there is no need to accumulate local values from all ancestral slots or to provide for special exceptions to a generalized inherit on store protocol.
  • Appendix A A brief description of the contents of the Appendix A may be helpful to an understanding of the invention. However, it is believed that a person fluent in the LISP language would be able to read the code and recognize how to implement the described function. Moreover, it is believed that the foregoing explanation would be an adequate description of this invention for implementation by the ordinarily skilled artisan in the field.
  • the code of Appendix A is self documenting and contains numerous comments for guidance. The convention in this code is as follows: All executable code is contained within parentheses. The first term following a left parenthesis is a function. All subsequent terms are parameters. The listing has been edited to aid in the understanding of the invention. Selected portions of code have been omitted in favor of clarity.
  • the first section of code sets up a GERM field and related parameters as the local value for the slot.
  • the variable pslots is set up to create the corresponding slots of all of the parents.
  • the variable pslots is the set of all fields corresponding to a particular local field from all of the parents.
  • the Role Inheritance function is the paradigm for the simplified inheritance function described herein as Override Inheritance.
  • Datatype Inheritance the coding for which follows Role Inheritance, is another simplified inheritance function similar to Role Inheritance. There may be other types of simplified inheritance function, such as Default Inheritance. However, for tutorial purposes, these functions have been omitted.
  • the paradigm for the complex inheritance function is called Value Inheritance in Appendix A.
  • This inheritance function a list is created called Parents' Combined Values or PCVS. This is a collection of all combined values of parents reduced to a list.
  • a combine function is then applied to the parents' combined value list to produce a new combined value list for the local slot.
  • the new list is called cvalue. Alerts may also be generated to warn the user of improper conditions.
  • the next significant portion of code is the Install function in which the inherited value is generated from the combined value. This is conditioned on a change in value.
  • inherit-spec summarizes the names of the fields of the record which have actually been changed.

Abstract

An efficient inherit on store technique for performing inheritance in a modular form caches summary inheritance information at each node or slot in a knowledge representation frame. The functional characteristics of each node is independent of all other nodes so that different types of inheritance information can be interpreted without special concern about the source or inheritance path. To this end, the invention uses a third kind of value besides a local value and an inherited value, herein called a combined value. The combined value according to the invention represents a summary of the subgraph above a given node. Given an adequate summary, the inheritance mechanism according to the invention needs only to consider the local value of a node and the combined value of its immediate parents. From this information, the inheritance mechanism can produce a combined value for local node and can generate an inherited value to be expressed by the local node. The combined value is used by all descendant nodes to generate inherited values for the respective nodes.

Description

BACKGROUND OF THE INVENTION
This invention relates to the field of artificial intelligence, for example to the field of expert systems or knowledge-based systems.
Artificial intelligence (AI) technology is a discipline with an ultimate goal of providing a machine that is capable of reasoning, making inferences and following rules in a manner believed to model the human mind. A great deal of theoretical work has been done in this discipline, and much remains to be done. Artificial intelligence theory is beginning to find applications because of the hope that its principles can be effectively applied to develop better computer software and to provide to relatively untrained users sophisticated computer power to solve practical problems such as to assist in the analysis of massive amounts of relatively unprocessed data to aid in decision-making processes.
As AI technology begins to demonstrate potential and practical uses, tools are needed to speed development of practical computational systems. AI specialists have developed a number of AI-dedicated computer languages to assist in this development. Among the languages are LISP and PROLOG. However, these languages are not particularly easy for either skilled AI researchers or minimally-trained user/programmers to use to develop sophisticated and complex knowledge bases necessary to solve the problems related to artificial intelligence applications. Hence, tools are needed which are better suited to the requirements of both a minimally-trained knowledge base user and a skilled AI researcher.
In order to understand the context of the present invention, it is helpful to study the background developments in AI technology as they relate to the present invention. A primary source of information is The Handbook of Artificial Intelligence, Volume I, edited by Avron Barr and Edward Feigenbaum (published by William A. Kaufmann, Inc., of Los Altos, Cal.), Chapter III, "Knowledge Representation". The subject matter of this chapter is incorporated herein by reference and made a part hereof.
It is helpful to understand what is meant by knowledge and a knowledge base as now understood. Knowledge in the pragmatic terms of artificial intelligence is described in terms of its representation. Knowledge is a combination of data structures and interpretive procedures which, if suitably manipulated (as by a suitably programmed computing machine), will lead to what might best be termed "knowledgeable" behavior. A knowledge base is a set of knowledge representations which describes a domain of knowledge. A knowledge base is to an artificial intelligence environment what a database is to a conventional computer program. Unlike a database, however, a computer knowledge base can include executable program material within a defined record herein called a slot.
Knowledge representation techniques and theories are still in evolution. Nevertheless, knowledge representation appears to be classifiable into three categories.
The first category is that of descriptive knowledge. This category is the collection and classification of facts and categorizations about an idea or entity which might be acted upon. The basic units of descriptive knowledge are generally called frames, as hereinafter explained. They have also been known variously as units, concepts or objects. The term frame lacks some precision of meaning due to its use in other disciplines. Therefore, hereinafter a basic unit of descriptive knowledge is denoted a knowledge representation frame or KR frame. A KR frame contains one or more slots. However, any hierarchical data structure can be described in terms of nodes of information containing slots as components of the node. The descriptions herein therefore are not necessarily limited to KR frame applications, but may find application in any similarly organized hierarchical data structure.
The second category of knowledge representation is that of procedural representation in the form of rules or structured reasoning procedures. This category includes the structural capability to make choices. The premise-conclusion (IF THEN) format is a typical representation of a procedural knowledge conditional expression. Procedural knowledge emphasizes action and is encoded into a knowledge base as a rule in conditional expression form. The procedural knowledge may reside in a slot of a KR frame.
The third category is that of logic programming. Knowledge is represented as first order predicate calculus statements. Examples of languages using logic programming are the language of the so-called fifth generation computers of the Japanese, called PROLOG and the language MRS employed at Stanford University.
Over approximately the past decade, various attempts have been made to develop commercially useful knowledge representation languages which are useful for research and eventually for commercial applications. Among the efforts have been FRL (Frame Representation Language), KRL (Knowledge Representation Language), KL-ONE, NIKL, SMALLTALK, STROBE and UNITS. The present invention is the direct result of analyzing and then totally reworking the UNITS language coupled with discovery of solutions to problems to permit the practical manipulation of descriptive knowledge representation and procedural knowledge representation in the same environment. The result is a higher-level flexible knowledge representation "language" which has been identified as the KEE "language". Moreover, the KEE "language" has the elements of a knowledge base itself, which adds versatility heretofore unknown among artificial intelligence development tools.
One of the attributes of artificial intelligence is the concept of inheritance. It is a development of the idea of using a hierarchical structure for relating a knowledge base or database. The key to these structures is the concept of connecting relations between structures of data or knowledge through which information about attributes may pass to other structures of data or knowledge. The concept of inheritance has a number of advantages. First, an inheritance mechanism allows the specification of many components of a data structure or knowledge structure through reference to other data structures or knowledge structures. As used herein, high-level data structures or knowledge structures refer to organized collections of simpler data structures or knowledge structures, such as a collection of various relations in a relational database sense, or a collection of logical assertions as in the predicate calculus sense. Second, an inheritance mechanism can assure consistency among high-level data or knowledge structures. That is, the inheritance mechanism can be used to specify that a given data or knowledge structure must obey restrictions placed on characteristics from other data or knowledge structures. inherited from other data or knowledge structures.
Third, the inheritance mechanism allows the implementation of semantics. That is, the inheritance mechanism is a technique for combining higher level concepts and specifying meaning.
The concept of representing knowledge as hierarchical data structures with inheritance was first referred to in terms of "frames" by its most prominent early supporter, Marvin Minsky of the Massachusetts Institute of Technology. Minsky gave the first general description of the concept and laid the intellectual groundwork for development of practical systems implementation of a frame-based system. Subsequent work in first generation knowledge representation systems produced very stylized inheritance mechanisms lacking in flexibility or yielding inheritance structures which were cumbersome and so slow as to be of only limited utility in large knowledge bases.
There are two general strategies for when to perform inheritance, namely, "inherit on store" and "inherit on fetch". Inherit on store causes inheritance to be performed only when a value is stored in a slot. Inherit on fetch causes inheritance to be performed only when a value is retrieved from a slot. Nearly all prior languages have employed inherit on fetch schemes because of the assumption that inheritance was such an inefficient process that inheritance was best delayed until it became necessary to use values actually requiring inheritance. Inherit on fetch was therefore the preferred inheritance strategy.
Inherit on store was considered inherently cumbersome because it required the performance of inheritance on every descendant, some of whose values may not be of interest, thus requiring unnecessary work and loss of time. However, the inherit on fetch strategy requires more complex bookkeeping, making the inherit on fetch strategy relatively costly in a typical application. The lowest element in each tree is most likely to be changed most often. An inherit on fetch strategy more frequently results in developing a subgraph stretching from a bottom node through top nodes. Such a mechanism can be extremely time consuming and thus very costly.
Previous inheritance technology has generally recognized two kinds of values elements in a slot. The values recognized have been the local value, or the value given locally by the slot definition, and the inherited value, or the value expressed by the slot of the local KR frame. Conventional technology has taught that inheritance of attributes could only be correctly implemented and expressed by collecting local information and collecting all local information of all ancestral slots each time KR frame or data structure relations changed. Heretofore, conventional inheritance processes operated by performing a lookup of potentially all ancestor nodes in order to determine inherited information, and then such information was combined with local information to yield an "inherited value". A full lookup or traversal could only be avoided in cases where there was special information about how the inheritance was to be performed along the paths of the inheritance structure. The known techniques for avoiding a complete reconstruction of the inheritance structure have required that each kind of inheritance mechanism encode its own particular way of bypassing or shortcutting the traversal task. What is needed is a mechanism for improving or eliminating the known cumbersome inheritance techniques.
SUMMARY OF THE INVENTION
According to the invention, a summary of relevant, that is, inheritable information about a slot of a node in a hierarchical data structure, such as a KR frame, is cached, or stored in readily accessible form to make the summary available to children of the slot. The summary contains all information needed by the children to express inheritable characteristics. Inheritance can be performed by retrieving the summary merely from the immediate parents. In a preferred embodmient of the invention the summary may be stored in a subject slot within a data field herein referred to as the combined value field. However, it is to be understood that the term combined value refers generally to the summary of all information the subject slot wishes to pass on to its descendants and is not dependent on the actual form of the summary. This summary of relevant information may differ from the "inherited value", or the expression of the value of the slot. In addition, each slot, may have a "local value" representing information unique to the slot without respect to inheritance. Therefore for each slot there is a local value, a combined value and an inherited value. The invention is extremely efficient and powerful because it allows modularization of the inheritance mechanism and completely general inheritance processing, that is, inheritance processing without the use of special shortcuts. Moreover, the invention makes an inherit on store strategy a viable inheritance strategy since inheritance is limited to immediate parents.
The invention will be better understood by reference to the following detailed description taken in connection with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagrammatic representation of a knowledge base for illustrating a first kind of inheritance processing according to the invention.
FIG. 2 is a flow chart of a first kind of inheritance processing.
FIG. 3 is a diagram illustrating structure of two types of values stored in a knowledge base.
FIG. 4 is a diagrammatic representation of a knowledge base for illustrating a second kind of inheritance processing according to the invention.
FIG. 5 is a flow chart of a second kind of inheritance processing.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
In the following Figures, examples will be given to illustrate different types of inheritance. First, there is shown a simple example of override inheritance, and second, there is shown an example of more complex method inheritance. It is to be understood that this is a defined, though variable, structure which is manipulated in a computer memory and a related central processing unit or distributed processing units. A suitable apparatus is a Xerox 1108 computer or other LISP-based computer. Other computers could be substituted given a suitable operating system and operating language.
In FIG. 1, there is shown an example of a knowledge base 10 having three KR frames 12, 14 and 16. The first KR frame 12 is labeled "frog". The second KR frame 14 is labeled "blue-things". The third KR frame 16, labeled "blue-frog", is related by inheritance to the "frog" KR frame 12 and the "blue-things" KR frame 14.
Each KR frame contains one or more slots. As an example, KR frame 12 contains a first slot 18 under the label "color" and a second slot 20 under the label "A". KR frame 14 contains a slot 22 labeled "color". KR frame 16 also contains a slot 24 labeled "color" and further contains a slot 26 labeled "A".
The slots of a common name are related to one another through the respective KR frames. The KR frames "frog" and "blue-things" are parent frames to the KR frame "blue-frog". Hence, the "color" slot in KR frame "frog" is a parent of the "color" slot in the KR frame "blue-frog", and the "color"slot in the KR frame "blue-things" is a parent to the "color" slot in the KR frame "blue-frog".
Within each slot is the notion or concept of a local value. As for example in "color" slot 18 is the local value 28 having a stated contents of "green". The local value is defined locally in the slot independent of any inheritance. Each slot also carries two other values: an inherited value 30 and, according to the invention, a combined value 32. An inherited value is the value of a slot representing all characteristics which would be expressed by the slot. A combined value is the value representing the raw information from which the inherited value is generated and which contains sufficient information to communicate to all descendants characteristics of all ancestors of the slot. In the example herein given, the contents of the inherited value 30 is "green", and the contents of the combined value 32 is also "green". The contents of any one of the values is not limited to a single element, depending on the definition of the slot.
Other slots of a KR frame may contain unrelated but inheritable information. In the present example, a local value 34, an inherited value 36 and a combined value 38 of the A slot have contents of null, so nothing is inherited.
The "color" slot 22 of KR frame "blue-things" 14 has by its definition a local value 40 with contents "blue", an inherited value 41 with contents "blue" and a combined value 42 with contents "blue".
KR frame 16 labeled "blue-frog" contains a slot 24 with a local value 44, an inherited value 46 and a combined value 48. The contents of the local value 44 is null. Thus, the inherited value 46 and the combined 48 must be calculated from other factors, namely from the ancestry of the slot 24.
In practice, the creation of the KR frame "blue-frog" having parents KR frame "frog" and KR frame "blue-things", creates "color" slot 24 with parents "frog" and "blue-things". According to the invention, the inherited value of the "color" slot 24 is generated by examining the combined value of the corresponding "color" slots 18 and 20 of the parent KR frames and by applying the combined values of the parent slots through an inheritance processor 50, as hereinafter explained. The inheritance processor 50 or equivalent function returns the inherited value 46 and the combined value 48. The inherited value 46 is the value expressed by the local KR frame 16, whereas the combined value 48 represents the summary of all inherited characteristics of the local KR frame 12.
FIG. 2 illustrates the operation of an override inheritance type inheritance processor function. In this simple example, the inheritance processor function consists of three steps. The steps are: input of the local value and all combined values (Step A) second, generation of an ordered list from the local value of the local slot and the combined value of corresponding slots of all parent KR frames (Step B); third, selection and return of the highest ordered non-null value as the combined value and as the inherited value for the current slot (Step C). As an example, the "color" slot 24 of the KR frame named "blue-frog" 16 would provide the local value 44 of null to the inheritance processor 50, the highest ordered "color" slot, namely "color" slot 22 from the frame "blue-things" 14, would provide the combined value of "blue" to the inheritance processor 50 and the next ordered "color" slot, namely, the "color" slot 18 of the KR frame "frog" 12 would return the combined value "green". Executing the function of the processor 50, the highest ordered non-null value would be selected from the combined value list for the local slot and would be returned as both the combined value and the inherited value to the subject slot 24. In this case the inherited value would be "blue" and the combined value would be "blue".
The inheritance processor 50 of FIG. 1 is a generalized modular processor which functions independently of any slot. However, the particular type of inheritance processor employed in practice depends on the semantic role assigned to the slot of current interest, or local slot 24. For the example in FIG. 1, the inheritance processor 50 for the current slot "blue-frog" was selected on the basis of the overriding semantic meaning of the term "blue". For a different type of slot, as in the next example a different inheritance function might be employed. The above example merely illustrates the use of the combined value function to pass on inheritable characteristics to a current slot quickly and efficiently in a generalized manner. The semantics of the local slot takes local precedence when the value of the local slot must be expressed. This is a very powerful tool for overcoming contradictions which are not taken into account unless local semantics are considered.
The simple example of an inheritance processor with override inheritance capability serves to introduce the more complex structure of method inheritance. Conventional inheritance mechanisms have presumed that method inheritance would presuppose the availability of inheritable characteristics from the entire ancestry of a slot. According to the invention, inheritance requires the combined value of the parent slots only and a generalized inheritance processor capable of processing the combined values to produce a local inherited value and a new combined value.
In method inheritance according to the invention, the combined value is a collection of pieces of executable code and the inherited value is the result produced by that collection of pieces of executable code. FIG. 3 illustrates a structure for the allocation of coding in an executable program which enables the use of method inheritance in accordance with the invention. In an artificial intelligence device or system, pieces of executable code are gathered from various parents and combined in a list for execution. In accordance with the present invention, the executable code list is divided into at least three sections: first, a main-code section 52; second, a before-code section 54; and next an after-code section 56. There may be other sections of code, such as a wrapper-code section (not shown). For the purposes of explanation, it is sufficient to show the three sections: the main-code, the before-code and the after-code. There is only one main-code section, but there may be many before-code sections and many after-code sections. The before-code sections are prefixes to the main-code, whereas the after-code sections are suffixes to the main-code. When a code list is executed, the before-code sections are executed prior to the main-code section, and the after-code section is executed after the the main-code section. The positioning of before-code and after-code typically determines the order in which the before-code or after-code is executed in a code list. However, other schemes may be used to indicate the order in which a code list is executed.
FIG. 4 illustrates a knowledge base in which the technique of method inheritance is implemented. A knowledge base 100 consists of the KR frames "Moving Object" 60, "Visible-Moving Object" 62 and "Trail-Maker" 64. Each of the KR frame 60, 62 and 64 contain a move slot respectively labeled herein a grandparent slot 66, a parent slot 68, and a local slot 70. Each of the KR frames 60, 62 and 64 also contains an x-y position slot, respectively labeled 72, 74 and 78. For purposes of illustration, discussion will be limited to the structure of the move slots 66, 68 and 70, and the related inheritance processing functions. However, it will be observed that slots 74 and 78 inherit the x,y position of their parents, respectively. The grandfather move slot 66 contains a local value 80 with fields before-code 82, main-code 84 and after-code 86. Before-code field 82 and after-code field 86 contain null values. Main-code field 84 contains the executable function f(dx,dy) which is the code for executing a specific function of the arguments and dy. The grandfather slot 66 also contains a combined value list 88 consisting of the string of fields: null; f(dx,dy); null. The source of this combined value list may have been obtained by initialization of the KR frame 60.
The x-y position slot 72 of grandfather KR frame 60 may contain a local value 73 consisting of the position coordinates of the moving object frame 60. The KR frame 62 contains the parent move slot 68 having at least local value 90 combined value 92. The local value 90 contains at least three fields, before-code 94, main-code 96 and after-code 98. In this instance, the main code field 96 of the local value 90 contains a null. The before-code field 96 contains a call or a statement equivalent to the function "erase self". The after-code field 98 contains a call or a statement equivalent to the function "draw self". The combined value 92 of the parent move slot 68 consists of the string: "erase self"; f(dx,dy); "draw self". This string of instructions is derived from the before-code and aftercode of the subject or parent slot 68 and the main-code of the grandparent slot 66 in accordance with action of the method inheritance processor 50 of the invention explained hereinafter.
Referring now to the slot of current interest or the local slot 70 of the "Trail-Maker" frame 64, there is a local value 100 containing a before-code field 102, a main-code field 104, and an after-code field 106. The before-code field 102 and the main-code field 104 in the local slot 70 may contain nulls. The after-code field 106 is shown to contain a call or instructions equivalent to the function "draw dot".
The local slot 70 also is shown to contain the combined value 108 consisting of a code list and an inherited value 110. The combined value 108 and the inherited value 110 are obtained as a result of operation of an inheritance processor 50 functioning in accordance with the invention. The inheritance function applied to local slot 70 is the method inheritance function.
In FIG. 5, there is shown an algorithm for producing the combined value 108 and inherited value 110 for the slot 70. The first step is to collect the contents of the combined value fields of all parent slots and the local value fields of the local slot (Step A). In the case of the knowledge base of FIG. 4, the contents of combined value fields of the parent slot is the list contained in combined value 92. The local value fields of the current slot 70 are the fields 102, 104 and 106 of FIG. 4.
The next step is to create a combined value list (Step B). The combined value list is created by appending the contents of each local value field at the beginning of each list of the corresponding combined value field. Since the local value fields 102 and 104 contain null values, the before-code and main-code combined value list will consist of the before-code and main-code components from the combined value field of the parent slot 68. However, the after-code 106 contains the function "draw dot". Therefore, the resultant combined value list will consist of the fields "draw dot" and "draw self", the last being the after-code element of the combined value 92 of the parent slot 68.
The next step is to call the inheritance function of the inheritance processor 50 with the arguments "combined value list" generated in Step B (Step C). Thereafter, the inheritance function is executed to retain a combined value list and an inherited value list (Step D).
The next step is to store in the local slot 70 the combined value list returned from the inheritance function. In the case of method inheritance, the combined value list is the code list: "erase self"; f(dx,dy); "draw dot"; "draw self". The final step is to store the inherited value in the local slot 70 (Step F). The inherited value in this case would be the result of executing the combined value list stored in the local slot 70.
Appendix A is a listing in the LISP language with comments of the set-up of data fields for processing by any inheritance function as represented by contents of a general-purpose inheritance processor 50. The inheritance processor 50 is for executing selected combine function codes, the details of which are not relevant to the present invention. Briefly, the combine function codes perform as follows: in the case of simple inheritance, the first non-null entry in the combined value list is returned as both the combined value and the inherited value of the current slot. In the case of method inheritance, the inheritance function first examines the main-code field of the local slot and designates the first non-null main-code element as the main-code element of the combined value code list in the local slot. The before-code fields of the combined value list are then scanned and all the before-code lists are appended as elements to the current value list. The before-code list must be executed prior to the main-code list. The before-code element of the local slot is assigned the first priority in execution of the before-code list.
Similarly, the after-code element of the combined value list is appended to the local value for the after-code. The result is a list which represents the entire combined value of the local slot.
The entire combined value list may then be presented to a code generator 51 (FIG. 4) in order to generate a function. The resultant function is the inherited value of the local slot. It is the function which results in the expression of the characteristics of the local slot.
In summary, the combined value list is the summary of all inheritable characteristics of the local slot. The inherited value is the function which, when appropriately manipulated, expresses the characteristics of the local slot. The inheritance processor is the mechanism which performs the generalized inheritance function. Two types of inheritance function have been described by way of illustration. Each time a combined value and an inherited value is required, a call is made to an inheritance processor which examines the local value of the local slot and the combined value of all immediate parents to return the appropriate values for the combined value and the inherited value of the local slot. Unlike prior inheritance techniques, there is no need to accumulate local values from all ancestral slots or to provide for special exceptions to a generalized inherit on store protocol.
A brief description of the contents of the Appendix A may be helpful to an understanding of the invention. However, it is believed that a person fluent in the LISP language would be able to read the code and recognize how to implement the described function. Moreover, it is believed that the foregoing explanation would be an adequate description of this invention for implementation by the ordinarily skilled artisan in the field. The code of Appendix A is self documenting and contains numerous comments for guidance. The convention in this code is as follows: All executable code is contained within parentheses. The first term following a left parenthesis is a function. All subsequent terms are parameters. The listing has been edited to aid in the understanding of the invention. Selected portions of code have been omitted in favor of clarity. The first section of code sets up a GERM field and related parameters as the local value for the slot. The variable pslots is set up to create the corresponding slots of all of the parents. Thus, the variable pslots is the set of all fields corresponding to a particular local field from all of the parents. Immediately thereafter is the Role Inheritance function. The Role Inheritance function is the paradigm for the simplified inheritance function described herein as Override Inheritance. Datatype Inheritance, the coding for which follows Role Inheritance, is another simplified inheritance function similar to Role Inheritance. There may be other types of simplified inheritance function, such as Default Inheritance. However, for tutorial purposes, these functions have been omitted.
The paradigm for the complex inheritance function is called Value Inheritance in Appendix A. In this inheritance function a list is created called Parents' Combined Values or PCVS. This is a collection of all combined values of parents reduced to a list. A combine function is then applied to the parents' combined value list to produce a new combined value list for the local slot. The new list is called cvalue. Alerts may also be generated to warn the user of improper conditions.
The next significant portion of code is the Install function in which the inherited value is generated from the combined value. This is conditioned on a change in value.
Finally, the values obtained from the inheritance function are returned in a variable known as inherit-spec. Inherit-spec summarizes the names of the fields of the record which have actually been changed.
The invention has now been explained with reference to specific embodiments. Other embodiments will be apparent to those of ordinary skill in the art. It is therefore not intended that this invention be limited, except as indicated by the appended claims. T,0200

Claims (14)

I claim:
1. A method for use in inheriting knowledge representation between related slots in a hierarchical data structure having at least one parent slot and a local slot, said local slot being a child of said parent slot, said method comprising:
storing a summary of inheritable information about said parent slot, said summary being directly accessible by said local slot and making said summary available to said local slot during inheritance without requiring additional access to ancestry of said parent slot.
2. The method according to claim 1 wherein said storing step comprises storing said summary in a field of said parent slot.
3. In a knowledge-based system, a method for use in inheriting knowledge representation between related slots comprising at least one parent slot and a local slot of related knowledge representation frames, said method comprising the steps of:
(a) establishing for each said parent slot at least a parent slot combined value wherein each said parent slot combined value is a summary of all combined values which are inherited by said parent slot;
(b) establishing for each said local slot at least a local slot local value, said local slot local value being capable of having a null value;
(c) collecting for said local slot each said parent combined value from each said parent slot only; and
(d) forming for each said local slot at least a local slot combined value from said local slot local value and from said parent slot combined value, said local slot combined value being a summary of all combined values which are inherited from at least one parent slot.
4. The method according to claim 3 wherein said forming step (d) comprises inserting said local slot local value as the first element of said local slot combined value.
5. The method according to claim 3 wherein said local slot local value and said parent slot combined values include lists defining methods.
6. The method according to claim 5
wherein each said local slot local value and each said parent slot combined value at least three fields are provided to contain said lists, namely, a before-code field, a main-code field and an after-code field, and
wherein said collecting step (c) comprises compiling an ordered list of said lists of said main-code fields together, of said before-code fields together and of said after-code fields together.
7. The method according to claim 6 further including the step of providing a local slot inherited value, said local slot inherited value comprising results generated by operations defined by said local slot combined value.
8. The method according to claim 6 wherein said compiling step comprises ordering said lists of said local slot local value with and ahead of corresponding ones of said lists of said parent slot combined values thereby to form said local slot combined value.
9. The method according to claim 8 further including the step of providing a local slot inherited value, said local slot inherited value comprising results generated operations by defined by said local slot combined value.
10. The method according to claim 5 further including the step of providing a local slot inherited value, said local slot inherited value comprising results generated by operations defined by said local slot combined value.
11. The method according to claim 3 further including the step of providing a local slot inherited value, said local slot inherited value comprising a function for expressing characteristics of said knowledge representation frame of said local slot.
12. In a knowledge-based system, an apparatus for inheriting knowledge representation between related slots comprising at least one parent slot and a local slot of related knowlede representation frames, said apparatus comprising:
(a) means for establishing for each said parent slot at least a parent slot combined value wherein each said parent slot combined value is a summary of all combined values which are inherited by said parent slot;
(b) means establishing for each said local slot at least a local slot local value, said local slot local value being capable of having a null value;
(c) means collecting for said local slot each said parent combined value from each said parent slot only; and
(d) means forming for each said local slot at least a local slot combined value from said local slot local value and from said parent slot combined value, said local slot combined value being a summary of all combined values which are inherited from at least one parent slot.
13. The apparatus according to claim 12 wherein said forming means (d) comprises means for inserting said local slot local value as the first element of said local slot combined value.
14. The apparatus according to claim 12 wherein said local slot local value and said parent slot combined values include lists defining methods operative within said apparatus.
US06/634,949 1984-07-27 1984-07-27 Method and apparatus for building knowledge-based systems Expired - Lifetime US4675829A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US06/634,949 US4675829A (en) 1984-07-27 1984-07-27 Method and apparatus for building knowledge-based systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/634,949 US4675829A (en) 1984-07-27 1984-07-27 Method and apparatus for building knowledge-based systems

Publications (1)

Publication Number Publication Date
US4675829A true US4675829A (en) 1987-06-23

Family

ID=24545800

Family Applications (1)

Application Number Title Priority Date Filing Date
US06/634,949 Expired - Lifetime US4675829A (en) 1984-07-27 1984-07-27 Method and apparatus for building knowledge-based systems

Country Status (1)

Country Link
US (1) US4675829A (en)

Cited By (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754410A (en) * 1986-02-06 1988-06-28 Westinghouse Electric Corp. Automated rule based process control method with feedback and apparatus therefor
US4763277A (en) * 1986-01-17 1988-08-09 International Business Machines Corporation Method for obtaining information in an expert system
WO1988010470A1 (en) * 1987-06-19 1988-12-29 Intellicorp, Inc. Method for integrating a knowledge-based system with an arbitrary relational database system
US4803642A (en) * 1986-07-21 1989-02-07 Kabushiki Kaisha Toshiba Inference system
US4815005A (en) * 1986-11-29 1989-03-21 Kabushiki Kaisha Toshiba Semantic network machine for artificial intelligence computer
US4816994A (en) * 1984-12-04 1989-03-28 Tektronix, Inc. Rule acquisition for expert systems
US4839823A (en) * 1985-03-20 1989-06-13 Kabushiki Kaisha Toshiba Automatic trouble analysis apparatus and method thereof
US4853873A (en) * 1986-06-11 1989-08-01 Hitachi, Ltd. Knowledge information processing system and method thereof
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
US4866635A (en) * 1987-10-19 1989-09-12 Carnegie Group Inc. Domain independent shell for building a diagnostic expert system
US4872122A (en) * 1987-06-19 1989-10-03 University Of Pennsylvania Interactive statistical system and method for predicting expert decisions
US4881178A (en) * 1987-05-07 1989-11-14 The Regents Of The University Of Michigan Method of controlling a classifier system
US4884218A (en) * 1987-10-01 1989-11-28 International Business Machines Corporation Knowledge system with improved request processing
US4901229A (en) * 1985-01-21 1990-02-13 Tsutomu Tashiro Parallelized rules processing system using associative memory for pipelined execution of plural join operations and concurrent condition comparing
US4908778A (en) * 1985-08-02 1990-03-13 Kabushiki Kaisha Toshiba Inductive inference method for obtaining rules represented by propositional logic
EP0358503A2 (en) * 1988-09-08 1990-03-14 E.I. Du Pont De Nemours And Company Inferential time-optimized operation of a fiber producing spinning machine by computerized knowledge based system
US4918621A (en) * 1986-08-13 1990-04-17 Intellicorp, Inc. Method for representing a directed acyclic graph of worlds using an assumption-based truth maintenance system
US4922432A (en) * 1988-01-13 1990-05-01 International Chip Corporation Knowledge based method and apparatus for designing integrated circuits using functional specifications
US4935877A (en) * 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
US4939683A (en) * 1989-05-19 1990-07-03 Heerden Pieter J Van Method and apparatus for identifying that one of a set of past or historical events best correlated with a current or recent event
US4964064A (en) * 1987-09-26 1990-10-16 Kabushiki Kaisha Toshiba Method and apparatus for constraint-oriented inference
US4965743A (en) * 1988-07-14 1990-10-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Discrete event simulation tool for analysis of qualitative models of continuous processing system
US4967371A (en) * 1987-11-20 1990-10-30 Kabushiki Kaisha Toshiba Method and apparatus for inference
US4972343A (en) * 1987-07-16 1990-11-20 Nec Corporation Knowledge processing system
US4972328A (en) * 1988-12-16 1990-11-20 Bull Hn Information Systems Inc. Interactive knowledge base end user interface driven maintenance and acquisition system
US4975865A (en) * 1989-05-31 1990-12-04 Mitech Corporation Method and apparatus for real-time control
US4999786A (en) * 1987-09-16 1991-03-12 Kabushiki Kaisha Toshiba Method and apparatus for making inferences using frame-based knowledge representation
US5005143A (en) * 1987-06-19 1991-04-02 University Of Pennsylvania Interactive statistical system and method for predicting expert decisions
US5014220A (en) * 1988-09-06 1991-05-07 The Boeing Company Reliability model generator
EP0446117A2 (en) * 1990-03-06 1991-09-11 Digital Equipment Corporation Fast determination of subtype relationship in a single inheritance type hierarchy
US5072367A (en) * 1987-10-01 1991-12-10 International Business Machines Corporation System using two passes searching to locate record having only parameters and corresponding values of an input record
US5088048A (en) * 1988-06-10 1992-02-11 Xerox Corporation Massively parallel propositional reasoning
US5119318A (en) * 1989-04-17 1992-06-02 Del Partners L.P. Expert control system for real time management of automated factory equipment
US5136686A (en) * 1990-03-28 1992-08-04 Koza John R Non-linear genetic algorithms for solving problems by finding a fit composition of functions
US5146537A (en) * 1985-07-12 1992-09-08 Hitachi, Ltd. Method for judging whether conditions are satisfied by using a network having a plurality of nodes representing the conditions
US5148513A (en) * 1988-05-20 1992-09-15 John R. Koza Non-linear genetic process for use with plural co-evolving populations
US5159685A (en) * 1989-12-06 1992-10-27 Racal Data Communications Inc. Expert system for communications network
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
US5208899A (en) * 1990-07-31 1993-05-04 Carnegie Group Method and apparatus for storing information about and associating slot behaviors of a slot in a frame-based semantic network
US5222221A (en) * 1986-06-17 1993-06-22 Yeda Research And Development Co., Ltd. Method and apparatus for implementing a concurrent logic program
US5274801A (en) * 1988-04-29 1993-12-28 International Business Machines Corp. Artifical intelligence delivery system
US5276885A (en) * 1991-04-18 1994-01-04 Carnegie Group Single step mapping in topological order of the queued class and instance frames of a semantic network to a static working memory
US5335346A (en) * 1989-05-15 1994-08-02 International Business Machines Corporation Access control policies for an object oriented database, including access control lists which span across object boundaries
US5410702A (en) * 1989-10-23 1995-04-25 International Business Machines Corporation Slot objects for an object oriented programming system
US5446830A (en) * 1992-05-27 1995-08-29 At&T Corp. Efficient nonmonotonic reasoning apparatus and methods
US5535304A (en) * 1989-11-22 1996-07-09 Kabushiki Kaisha Toshiba Inference system having a frame structure and method of storing information therein
US5557533A (en) * 1994-04-19 1996-09-17 Lsi Logic Corporation Cell placement alteration apparatus for integrated circuit chip physical design automation system
US5561740A (en) * 1994-12-13 1996-10-01 International Business Machines Corporation Method and system for providing multiple instances in a single multiple-instance object
US5577249A (en) * 1992-07-31 1996-11-19 International Business Machines Corporation Method for finding a reference token sequence in an original token string within a database of token strings using appended non-contiguous substrings
US5598511A (en) * 1992-12-28 1997-01-28 Intel Corporation Method and apparatus for interpreting data and accessing on-line documentation in a computer system
US5808899A (en) * 1996-06-28 1998-09-15 Lsi Logic Corporation Advanced modular cell placement system with cell placement crystallization
US5812740A (en) * 1996-06-28 1998-09-22 Lsi Logic Corporation Advanced modular cell placement system with neighborhood system driven optimization
US5831863A (en) * 1996-06-28 1998-11-03 Lsi Logic Corporation Advanced modular cell placement system with wire length driven affinity system
US5835900A (en) * 1992-10-05 1998-11-10 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5835381A (en) * 1996-06-28 1998-11-10 Lsi Logic Corporation Advanced modular cell placement system with minimizing maximal cut driven affinity system
US5844811A (en) * 1996-06-28 1998-12-01 Lsi Logic Corporation Advanced modular cell placement system with universal affinity driven discrete placement optimization
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
US5867398A (en) * 1996-06-28 1999-02-02 Lsi Logic Corporation Advanced modular cell placement system with density driven capacity penalty system
US5870311A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with fast procedure for finding a levelizing cut point
US5870312A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with dispersion-driven levelizing system
US5872718A (en) * 1996-06-28 1999-02-16 Lsi Logic Corporation Advanced modular cell placement system
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
US5900870A (en) * 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5914888A (en) * 1996-06-28 1999-06-22 Lsi Logic Corporation Advanced modular cell placement system with coarse overflow remover
US5963455A (en) * 1996-06-28 1999-10-05 Lsi Logic Corporation Advanced modular cell placement system with functional sieve optimization technique
US5963931A (en) * 1992-10-05 1999-10-05 Expert Systems Publishing Co. Computer-assisted decision management system
US6026223A (en) * 1996-06-28 2000-02-15 Scepanovic; Ranko Advanced modular cell placement system with overlap remover with minimal noise
US6030110A (en) * 1996-06-28 2000-02-29 Lsi Logic Corporation Advanced modular cell placement system with median control and increase in resolution
US6058385A (en) * 1988-05-20 2000-05-02 Koza; John R. Simultaneous evolution of the architecture of a multi-part program while solving a problem using architecture altering operations
US6067409A (en) * 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6085032A (en) * 1996-06-28 2000-07-04 Lsi Logic Corporation Advanced modular cell placement system with sinusoidal optimization
US6085233A (en) * 1995-12-29 2000-07-04 Pankosmion, Inc. System and method for cellular network computing and communications
US6182062B1 (en) * 1986-03-26 2001-01-30 Hitachi, Ltd. Knowledge based information retrieval system
US6216149B1 (en) 1993-12-30 2001-04-10 International Business Machines Corporation Method and system for efficient control of the execution of actions in an object oriented program
US20020032719A1 (en) * 1998-11-16 2002-03-14 Insignia Solutions, Plc Method and system of dynamic memory management
US6976254B2 (en) 2001-11-28 2005-12-13 Esmertec Ag Inter-method control transfer for execution engines with memory constraints
US20080010633A1 (en) * 2004-05-12 2008-01-10 Streeter Gordon S Knowledge representation language and knowledge processing environment
US10650313B2 (en) 2017-06-30 2020-05-12 Go Logic Decision Time, Llc Methods and systems of assertional simulation
US11710052B2 (en) 2017-06-30 2023-07-25 Go Logic Decision Time, Llc Securing computing resources through multi-dimensional enchainment of mediated entity relationships

Cited By (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816994A (en) * 1984-12-04 1989-03-28 Tektronix, Inc. Rule acquisition for expert systems
US4901229A (en) * 1985-01-21 1990-02-13 Tsutomu Tashiro Parallelized rules processing system using associative memory for pipelined execution of plural join operations and concurrent condition comparing
US4839823A (en) * 1985-03-20 1989-06-13 Kabushiki Kaisha Toshiba Automatic trouble analysis apparatus and method thereof
US5146537A (en) * 1985-07-12 1992-09-08 Hitachi, Ltd. Method for judging whether conditions are satisfied by using a network having a plurality of nodes representing the conditions
US4908778A (en) * 1985-08-02 1990-03-13 Kabushiki Kaisha Toshiba Inductive inference method for obtaining rules represented by propositional logic
US4763277A (en) * 1986-01-17 1988-08-09 International Business Machines Corporation Method for obtaining information in an expert system
US4754410A (en) * 1986-02-06 1988-06-28 Westinghouse Electric Corp. Automated rule based process control method with feedback and apparatus therefor
US6182062B1 (en) * 1986-03-26 2001-01-30 Hitachi, Ltd. Knowledge based information retrieval system
US4853873A (en) * 1986-06-11 1989-08-01 Hitachi, Ltd. Knowledge information processing system and method thereof
US5222221A (en) * 1986-06-17 1993-06-22 Yeda Research And Development Co., Ltd. Method and apparatus for implementing a concurrent logic program
US4803642A (en) * 1986-07-21 1989-02-07 Kabushiki Kaisha Toshiba Inference system
US4918621A (en) * 1986-08-13 1990-04-17 Intellicorp, Inc. Method for representing a directed acyclic graph of worlds using an assumption-based truth maintenance system
US4815005A (en) * 1986-11-29 1989-03-21 Kabushiki Kaisha Toshiba Semantic network machine for artificial intelligence computer
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
US4881178A (en) * 1987-05-07 1989-11-14 The Regents Of The University Of Michigan Method of controlling a classifier system
US5005143A (en) * 1987-06-19 1991-04-02 University Of Pennsylvania Interactive statistical system and method for predicting expert decisions
US4930071A (en) * 1987-06-19 1990-05-29 Intellicorp, Inc. Method for integrating a knowledge-based system with an arbitrary database system
US4872122A (en) * 1987-06-19 1989-10-03 University Of Pennsylvania Interactive statistical system and method for predicting expert decisions
WO1988010470A1 (en) * 1987-06-19 1988-12-29 Intellicorp, Inc. Method for integrating a knowledge-based system with an arbitrary relational database system
US4972343A (en) * 1987-07-16 1990-11-20 Nec Corporation Knowledge processing system
US4999786A (en) * 1987-09-16 1991-03-12 Kabushiki Kaisha Toshiba Method and apparatus for making inferences using frame-based knowledge representation
US4964064A (en) * 1987-09-26 1990-10-16 Kabushiki Kaisha Toshiba Method and apparatus for constraint-oriented inference
US5072367A (en) * 1987-10-01 1991-12-10 International Business Machines Corporation System using two passes searching to locate record having only parameters and corresponding values of an input record
US4884218A (en) * 1987-10-01 1989-11-28 International Business Machines Corporation Knowledge system with improved request processing
US4866635A (en) * 1987-10-19 1989-09-12 Carnegie Group Inc. Domain independent shell for building a diagnostic expert system
US4967371A (en) * 1987-11-20 1990-10-30 Kabushiki Kaisha Toshiba Method and apparatus for inference
US4922432A (en) * 1988-01-13 1990-05-01 International Chip Corporation Knowledge based method and apparatus for designing integrated circuits using functional specifications
US5197016A (en) * 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
US5274801A (en) * 1988-04-29 1993-12-28 International Business Machines Corp. Artifical intelligence delivery system
US4935877A (en) * 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
US6058385A (en) * 1988-05-20 2000-05-02 Koza; John R. Simultaneous evolution of the architecture of a multi-part program while solving a problem using architecture altering operations
US5148513A (en) * 1988-05-20 1992-09-15 John R. Koza Non-linear genetic process for use with plural co-evolving populations
US5088048A (en) * 1988-06-10 1992-02-11 Xerox Corporation Massively parallel propositional reasoning
US4965743A (en) * 1988-07-14 1990-10-23 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Discrete event simulation tool for analysis of qualitative models of continuous processing system
US5014220A (en) * 1988-09-06 1991-05-07 The Boeing Company Reliability model generator
EP0358503A2 (en) * 1988-09-08 1990-03-14 E.I. Du Pont De Nemours And Company Inferential time-optimized operation of a fiber producing spinning machine by computerized knowledge based system
EP0358503A3 (en) * 1988-09-08 1992-01-08 E.I. Du Pont De Nemours And Company Inferential time-optimized operation of a fiber producing spinning machine by computerized knowledge based system
US4916625A (en) * 1988-09-08 1990-04-10 E. I. Du Pont De Nemours And Company Inferential time-optimized operation of a fiber producing spinning machine by computerized knowledge based system
US4972328A (en) * 1988-12-16 1990-11-20 Bull Hn Information Systems Inc. Interactive knowledge base end user interface driven maintenance and acquisition system
US5119318A (en) * 1989-04-17 1992-06-02 Del Partners L.P. Expert control system for real time management of automated factory equipment
US5335346A (en) * 1989-05-15 1994-08-02 International Business Machines Corporation Access control policies for an object oriented database, including access control lists which span across object boundaries
US4939683A (en) * 1989-05-19 1990-07-03 Heerden Pieter J Van Method and apparatus for identifying that one of a set of past or historical events best correlated with a current or recent event
US4975865A (en) * 1989-05-31 1990-12-04 Mitech Corporation Method and apparatus for real-time control
US5900870A (en) * 1989-06-30 1999-05-04 Massachusetts Institute Of Technology Object-oriented computer user interface
US5410702A (en) * 1989-10-23 1995-04-25 International Business Machines Corporation Slot objects for an object oriented programming system
US5535304A (en) * 1989-11-22 1996-07-09 Kabushiki Kaisha Toshiba Inference system having a frame structure and method of storing information therein
US5159685A (en) * 1989-12-06 1992-10-27 Racal Data Communications Inc. Expert system for communications network
US5337320A (en) * 1989-12-06 1994-08-09 Racal-Datacom, Inc. Semi-automatic mode of network design
US5388189A (en) * 1989-12-06 1995-02-07 Racal-Datacom, Inc. Alarm filter in an expert system for communications network
EP0446117A3 (en) * 1990-03-06 1993-06-09 Digital Equipment Corporation Fast determination of subtype relationship in a single inheritance type hierarchy
EP0446117A2 (en) * 1990-03-06 1991-09-11 Digital Equipment Corporation Fast determination of subtype relationship in a single inheritance type hierarchy
US5136686A (en) * 1990-03-28 1992-08-04 Koza John R Non-linear genetic algorithms for solving problems by finding a fit composition of functions
US5208899A (en) * 1990-07-31 1993-05-04 Carnegie Group Method and apparatus for storing information about and associating slot behaviors of a slot in a frame-based semantic network
US5276885A (en) * 1991-04-18 1994-01-04 Carnegie Group Single step mapping in topological order of the queued class and instance frames of a semantic network to a static working memory
US5446830A (en) * 1992-05-27 1995-08-29 At&T Corp. Efficient nonmonotonic reasoning apparatus and methods
US5577249A (en) * 1992-07-31 1996-11-19 International Business Machines Corporation Method for finding a reference token sequence in an original token string within a database of token strings using appended non-contiguous substrings
US6009420A (en) * 1992-10-05 1999-12-28 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5978784A (en) * 1992-10-05 1999-11-02 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5963931A (en) * 1992-10-05 1999-10-05 Expert Systems Publishing Co. Computer-assisted decision management system
US5835900A (en) * 1992-10-05 1998-11-10 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5598511A (en) * 1992-12-28 1997-01-28 Intel Corporation Method and apparatus for interpreting data and accessing on-line documentation in a computer system
US6216149B1 (en) 1993-12-30 2001-04-10 International Business Machines Corporation Method and system for efficient control of the execution of actions in an object oriented program
US5557533A (en) * 1994-04-19 1996-09-17 Lsi Logic Corporation Cell placement alteration apparatus for integrated circuit chip physical design automation system
US5561740A (en) * 1994-12-13 1996-10-01 International Business Machines Corporation Method and system for providing multiple instances in a single multiple-instance object
US6085233A (en) * 1995-12-29 2000-07-04 Pankosmion, Inc. System and method for cellular network computing and communications
US5867397A (en) * 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
US5872718A (en) * 1996-06-28 1999-02-16 Lsi Logic Corporation Advanced modular cell placement system
US5808899A (en) * 1996-06-28 1998-09-15 Lsi Logic Corporation Advanced modular cell placement system with cell placement crystallization
US5835381A (en) * 1996-06-28 1998-11-10 Lsi Logic Corporation Advanced modular cell placement system with minimizing maximal cut driven affinity system
US5914888A (en) * 1996-06-28 1999-06-22 Lsi Logic Corporation Advanced modular cell placement system with coarse overflow remover
US5963455A (en) * 1996-06-28 1999-10-05 Lsi Logic Corporation Advanced modular cell placement system with functional sieve optimization technique
US5831863A (en) * 1996-06-28 1998-11-03 Lsi Logic Corporation Advanced modular cell placement system with wire length driven affinity system
US5812740A (en) * 1996-06-28 1998-09-22 Lsi Logic Corporation Advanced modular cell placement system with neighborhood system driven optimization
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
US6026223A (en) * 1996-06-28 2000-02-15 Scepanovic; Ranko Advanced modular cell placement system with overlap remover with minimal noise
US6030110A (en) * 1996-06-28 2000-02-29 Lsi Logic Corporation Advanced modular cell placement system with median control and increase in resolution
US5844811A (en) * 1996-06-28 1998-12-01 Lsi Logic Corporation Advanced modular cell placement system with universal affinity driven discrete placement optimization
US6067409A (en) * 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6085032A (en) * 1996-06-28 2000-07-04 Lsi Logic Corporation Advanced modular cell placement system with sinusoidal optimization
US5870312A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with dispersion-driven levelizing system
US5870311A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with fast procedure for finding a levelizing cut point
US5867398A (en) * 1996-06-28 1999-02-02 Lsi Logic Corporation Advanced modular cell placement system with density driven capacity penalty system
US20020104077A1 (en) * 1998-11-16 2002-08-01 Insignia Solutions, Plc. Multi-threaded fragment patching
US7007005B2 (en) 1998-11-16 2006-02-28 Esmertec Ag Method and structure for reducing search times
US20020042807A1 (en) * 1998-11-16 2002-04-11 Insignia Solutions, Plc. Low-contention grey object sets for concurrent, marking garbage collection
US20020032719A1 (en) * 1998-11-16 2002-03-14 Insignia Solutions, Plc Method and system of dynamic memory management
US20020108107A1 (en) * 1998-11-16 2002-08-08 Insignia Solutions, Plc Hash table dispatch mechanism for interface methods
US20020112227A1 (en) * 1998-11-16 2002-08-15 Insignia Solutions, Plc. Dynamic compiler and method of compiling code to generate dominant path and to handle exceptions
US20020165848A1 (en) * 1998-11-16 2002-11-07 Insignia Solutions, Plc Method and structure for reducing search times
US6691303B2 (en) 1998-11-16 2004-02-10 Esmertec Ag Method and system of testing and verifying computer code in a multi-threaded environment
US6766513B2 (en) 1998-11-16 2004-07-20 Esmertec Ag Method and system of memory management using stack walking
US6862728B2 (en) 1998-11-16 2005-03-01 Esmertec Ag Hash table dispatch mechanism for interface methods
US6901587B2 (en) 1998-11-16 2005-05-31 Esmertec Ag Method and system of cache management using spatial separation of outliers
US6925637B2 (en) 1998-11-16 2005-08-02 Esmertec Ag Low-contention grey object sets for concurrent, marking garbage collection
US8631219B2 (en) 1998-11-16 2014-01-14 Myriad Group Ag Method and system for dynamic memory management
US20020032822A1 (en) * 1998-11-16 2002-03-14 Insignia Solutions, Plc Method and system for handling device driver interrupts
US7039738B2 (en) 1998-11-16 2006-05-02 Esmertec Ag Method and system for handling device driver interrupts
US7058929B2 (en) 1998-11-16 2006-06-06 Esmertec Ag Direct invocation of methods using class loader
US7069549B2 (en) 1998-11-16 2006-06-27 Esmertec Ag Multi-threaded fragment patching
US7080366B2 (en) 1998-11-16 2006-07-18 Esmertec Ag Dynamic compiler and method of compiling code to generate dominant path and to handle exceptions
US8127280B2 (en) 1998-11-16 2012-02-28 Myriad Group Ag Method and system for dynamic memory management
US20080016507A1 (en) * 1998-11-16 2008-01-17 Esmertec Ag Computer system
US6976254B2 (en) 2001-11-28 2005-12-13 Esmertec Ag Inter-method control transfer for execution engines with memory constraints
US20080010633A1 (en) * 2004-05-12 2008-01-10 Streeter Gordon S Knowledge representation language and knowledge processing environment
US10650313B2 (en) 2017-06-30 2020-05-12 Go Logic Decision Time, Llc Methods and systems of assertional simulation
US11361228B2 (en) 2017-06-30 2022-06-14 Go Logic Decision Time, Llc Methods and systems of assertional simulation
US11710052B2 (en) 2017-06-30 2023-07-25 Go Logic Decision Time, Llc Securing computing resources through multi-dimensional enchainment of mediated entity relationships
US11710051B2 (en) 2017-06-30 2023-07-25 Go Logic Decision Time, Llc Entity-specific data-centric trust mediation
US11710050B2 (en) 2017-06-30 2023-07-25 Go Logic Decision Time, Llc Cyber security through generational diffusion of identities
US11790248B2 (en) 2017-06-30 2023-10-17 Go Logic Decision Time, Llc Diffuse identity management in transposable identity enchainment security

Similar Documents

Publication Publication Date Title
US4675829A (en) Method and apparatus for building knowledge-based systems
Bobrow et al. New programming languages for artificial intelligence research
US4787035A (en) Meta-interpreter
US4905138A (en) Meta-interpreter
US4860204A (en) Computer based workstation for development of graphic representation of computer programs
US4937760A (en) Method for sharing common values implicitly among communicating generative objects
US5790760A (en) Program generating apparatus and method thereof
US5276885A (en) Single step mapping in topological order of the queued class and instance frames of a semantic network to a static working memory
Cenciarelli et al. A syntactic approach to modularity in denotational semantics
Lowry Methodologies for knowledge-based software engineering
Janikow Inductive learning of decision rules from attribute-based examples: A knowledge-intensive genetic algorithm approach
US5301260A (en) Inference processor using data consistency holder
Paley et al. A generic knowledge-base browser and editor
Napoli et al. An object-based representation system for organic synthesis planning
Slagle et al. AGNESS: A Generalized Network-based Expert System Shell.
Hanus Efficient translation of lazy functional logic programs into Prolog
Löchner et al. A phytography of Waldmeister
US5208899A (en) Method and apparatus for storing information about and associating slot behaviors of a slot in a frame-based semantic network
Clack et al. Object-oriented functional spreadsheets
Chung et al. Building an influence diagram in a knowledge-based decision system
Lanzola et al. Inferential knowledge acquisition
Bieber et al. Towards a logic model for generalized hypertext
Drewes et al. Graph transformation modules and their composition
Kapur et al. A rewrite rule based approach for synthesizing abstract data types
Schmid et al. Programming by analogy: Retrieval, mapping, adaptation and generalization of recursive program schemes

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTELLICORP, 707 LAUREL STREET MENLO PARK CA 94025

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:CLEMSON, GREGORY D.;REEL/FRAME:004290/0575

Effective date: 19840727

Owner name: INTELLICORP, A CORP OF CA,CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CLEMSON, GREGORY D.;REEL/FRAME:004290/0575

Effective date: 19840727

AS Assignment

Owner name: INTELLICORP, INC., 1975 EL CAMINO REAL WEST, MOUNT

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:CLEMENSON, GREGORY D.;REEL/FRAME:004664/0835

Effective date: 19870128

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS - SMALL BUSINESS (ORIGINAL EVENT CODE: SM02); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment
FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY INTEREST;ASSIGNOR:INTELLICORP, INC.;REEL/FRAME:012075/0041

Effective date: 19990426