# US 2014/0195473 A1 · Production rule engine

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195473 A1
- Document ID: US20140195473A1
- Status: Published application
- Kind: A1
- Application number: 14/146,219
- Filed: 2014-01-02
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: HUGUES CITEAU; ADIL EL GHALI
- Web page: https://patentgrep.com/patent/US20140195473A1

## CPC

- G06N 5/022: Knowledge engineering; Knowledge acquisition
- G06N 5/025: Extracting rules from data
- G06N 5/04: Inference or reasoning models
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q 10/10: Office automation; Time management
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A production rules engine comprises: a class loader for loading a production rule ontology into a rule engine; a class loader for loading production rules into the rule engine, wherein a production rule comprises a rule and an action defined in the production rule ontology; instance creation logic for creating instances of production rules; a reasoner for executing the production rules and for locating an instance of a production rule having an inconsistency between an action to change the ontology and the existing ontology and for executing the production rules after inconsistencies have been fixed; a constraint engine for locating a solution to an inconsistent ontology; and a fixer for updating the inconsistent ontology with the located solution.

## Claims

### Claim 1

A production rules engine comprising:
a class loader for loading a production rule ontology into a rules engine;
a class loader for loading production rules into the rules engine, wherein a production rule comprises a rule and an action defined in the production rule ontology;
a production instance creator for creating instances of the production rules;
a reasoner for:
executing the production rules,
locating an instance of a production rule having an inconsistency between an action to change the production rule ontology and an existing ontology, and
executing the production rules after production rule inconsistencies have been fixed;
a constraint engine for locating a solution to an inconsistent ontology; and
a fixer for updating the inconsistent ontology with a located solution.

### Claim 2 (depends on 1)

The production rules engine according to claim 1, wherein the constraint engine generates more than one logical solution to the inconsistent ontology, and wherein the constraint engine chooses a logical solution to use when generating said more than one logical solution to the inconstant ontology.

### Claim 3 (depends on 1)

The production rules engine according to claim 1, wherein ontologies and assertions are loaded into a data structure comprising a logical network of nodes.

### Claim 4 (depends on 3)

The production rules engine according to claim 3, wherein the logical network of nodes is a RETE network that utilizes a RETE algorithm.

### Claim 5 (depends on 4)

The production rules engine according to claim 4, wherein at runtime, logical nodes, within the logical network of nodes, are associated with local memory made up of tuples, wherein each tuple represents arguments of a fact asserted in the RETE algorithm.

### Claim 6 (depends on 1)

The production rules engine according to claim 1, wherein production rules assertions are executed in order of priority, and wherein logical inconsistencies to ontologies are located in a rule by rule basis.

### Claim 7

A method for operating a production rule engine, the method comprising:
loading a production rule ontology into a production rule engine;
loading production rules into the production rule engine, wherein a production rule comprises a rule and an action defined by use of the production rule ontology;
executing, by one or more processors, the production rules;
locating a logical inconsistency between an ontology changed by a respective action defined by use of the production rule ontology and an existing ontology;
locating a logical solution to an inconsistent ontology; and
updating the inconsistent ontology with the located logical solution.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising:
generating more than one logical solution to the inconsistent ontology; and
choosing a logical solution to use when generating said more than one logical solution to the inconsistent ontology.

### Claim 9 (depends on 7)

The method according to claim 7, wherein ontologies and assertions are loaded into a data structure comprising a logical network of nodes.

### Claim 10 (depends on 9)

The method according to claim 9, wherein the logical network of nodes is a RETE network that utilizes a RETE algorithm.

### Claim 11 (depends on 10)

The method according to claim 10, wherein at runtime, logical nodes are associated with a local memory made of tuples, wherein each tuple represents arguments of a fact in the RETE algorithm.

### Claim 12 (depends on 7)

The method according to claim 7, wherein production rules assertions are executed in order of priority, and wherein logical inconsistencies to the ontology are located in a rule by rule basis.

### Claim 13

A computer program product for operating a production rule engine, the computer program product comprising a computer readable storage medium having program code embodied therewith, the program code readable and executable by a processor to perform a method comprising:
loading a production rule ontology into a production rule engine;
loading production rules into the production rule engine, wherein a production rule comprises a rule and an action defined by use of the production rule ontology;
executing, by one or more processors, the production rules;
locating a logical inconsistency between an ontology changed by a respective action defined by use of the production rule ontology and an existing ontology;
locating a logical solution to an inconsistent ontology; and
updating the inconsistent ontology with the located logical solution.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein the method further comprises:
generating more than one logical solution to the inconsistent ontology; and
choosing a logical solution to use when generating said more than one logical solution to the inconsistent ontology.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein ontologies and assertions are loaded into a data structure comprising a logical network of nodes.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the logical network of nodes is a RETE network that utilizes a RETE algorithm.

### Claim 17 (depends on 16)

The computer program product of claim 16, wherein at runtime, logical nodes are associated with a local memory made of tuples, wherein each tuple represents arguments of a fact in the RETE algorithm.

### Claim 18 (depends on 13)

The computer program product of claim 13, wherein production rules assertions are executed in order of priority, and wherein logical inconsistencies to the ontology are located in a rule by rule basis.
