US4924408A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Technique for compilation of knowledge bases
Assignee: International Business Machines Corp
•
Filing: 1988-08-19
•
Granted: 1990-05-08
•
Expires: 2008-08-19
Abstract
Abstract A method is disclosed for converting both a knowledge base and an inferencing technique into compilable program code forming a knowledge based system. The method is based on determining what actions an interpretitive inference engine would take with the specific knowledge base and generating only the program code needed to perform these actions. These method eliminates the overhead of interpreting a representation of the knowledge base and significantly improves performance of the system. The method is applicable to both forward and backward chaining reasoning strategies and does not modify or restrict the functional capabilities of the knowledge based system.
Inventors
- 👤 Frederic D. Highland
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 10:55
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/30; G06F8/40; G06F8/41; G06N; G06N5/00; G06N5/04; G06N5/042; G06N5/046; G06N5/047
Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
234 words
A method of converting both a knowledge base and an inferencing technique into compilable program code forming a knowledge based system, said knowledge base including rules and data items, said rules being arranged in a network of nodes and links between such nodes, said nodes representing tests, logical operators, actions and data items, said network being in a form convenient for interpretive inferencing, said method comprising the steps of: (a) partitioning said network into a plurality of sub-networks; (b) labelling each node within each respective sub-network with a unique identifier; (c) generating a segment of compilable, procedural, program code for inferencing which is equivalent to each respective sub-network when combined with said inferencing technique, said identifiers locating the respective code for each node within each respective sub-network, said inferencing code comprising a node sub-segment that implements the function of each node in said respective sub-network based on the rules specified in said knowledge base and that conditionally invokes other sub-segments using said identifiers, and a control sub-segment which provides access to each node sub-segment using said identifiers and provides for repeated execution of each node sub-segment as necessary; and (d) generating for each data item a segment of compilable procedural, program code for the distribution of such data item which invokes the appropriate program inferencing code by means of said identifiers when such data item is modified during execution of the knowledge based system.
Claim 2
Independent Claim
234 words
A method of converting both a knowledge base and an inferencing technique into compilable program code forming a knowledge based system, said knowledge base including rules and data items, said rules being arranged in a network of nodes and links between such nodes, said nodes representing tests, logical operators, actions and data items, said network being in a form convenient for interpretive inferencing, said method comprising the steps of: (a) partitioning said network into a plurality of sub-networks; (b) labelling each node within each respective sub-network with a unique identifier; (c) generating a segment of compilable, procedural, program code for inferencing which is equivalent to each respective sub-network when combined with said inferencing technique, said identifiers locating the respective code for each node within each respective sub-network, said inferencing code comprising a node sub-segment that implements the function of each node in said respective sub-network based on the rules specified in said knowledge base and that conditionally invokes other sub-segments using said identifiers, and a control sub-segment which provides access to each node sub-segment using said identifiers and provides for repeated execution of each node sub-segment as necessary; and (d) generating for each data item a segment of compilable procedural, program code for the distribution of such data item which invokes the appropriate program inferencing code by means of said identifiers when such data item is modified during execution of the knowledge based system.
Claim 3
Dependent Claim
19 words
The method defined in claim 1, further comprising the initial step of: forming said network from said knowledge base.
Claim 4
Dependent Claim
43 words
The method defined in claim 1, wherein step (a) includes the step of selecting rule trees in said network as the respective sub-networks, with each rule tree's action, which is the root of the rule tree, becoming the start of the respective sub-network.
Claim 5
Dependent Claim
33 words
The method defined in claim 1, wherein step (a) includes the step of selecting nodes in said network as the respective sub-networks such that the references to nodes outside said sub-networks are minimized.
Claim 6
Dependent Claim
32 words
The method defined in claim 1, wherein step (b) includes the step of depth-first traversing each sub-network, starting at the end of such sub-network, and labelling each node in such sub-network sequentially.
Claim 7
Dependent Claim
18 words
The method defined in claim 5, wherein said nodes in each sub-network are labeled sequentially in consecutive order.
Claim 8
Dependent Claim
23 words
The method defined in claim 6, wherein said nodes of each sub-network are labeled sequentially in consecutive order starting with the number "1".
Claim 9
Dependent Claim
93 words
The method defined in claim 1, wherein step (c) includes the step of depth-first traversing each sub-network and generating a segment of compilable, procedural, program code for inferencing which is equivalent to such sub-network, said inferencing code comprising (1) a prologue consisting of initialization, while and case statements, (2) a case part for each node that implements the function of that node based on the rules specified in the knowledge base and conditional statements to reset the identifier to the next node to be evaluated, and (3) an epilogue comprising said control sub-segment.
Claim 10
Dependent Claim
39 words
The method defined in claim 8, wherein node subsegments that are referenced by the program code for other sub-networks contain calls to the referencing rule procedures that pass the identifier for the reference point and any data associated therewith.
Claim 11
Dependent Claim
26 words
The method defined in claim 8, wherein node sub-segments contain calls to utility software to implement functions whose logic is not derived from said knowledge base.
Claim 12
Dependent Claim
32 words
The method defined in claim 1, wherein step (c) includes the step of generating a segment of inferencing code which includes calls to said distribution code for propagation of updated data items.
Claim 13
Dependent Claim
38 words
The method defined in claim 1, wherein step (d) includes the step of generating said distribution code consisting of a prologue sub-segment, a subsegment to call each rule procedure which references the data item, and an epilogue sub-segment.
Claim 14
Dependent Claim
24 words
The method defined in claim 12, wherein said call sub-segment passes the identifier for the test node to be executed by the inferencing code.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1993-05-07 | 1993-11-06 | 1994-05-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1997-05-07 | 1997-11-06 | 1998-05-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2001-05-07 | 2001-11-06 | 2002-05-08 | $7700.00 | Window Closed / Lapsed |