Patent ID: 8856059

Claim:
An inference device comprising: a rule base including a graph data structure embodied in a non-transitory computer-readable storage medium, the graph data structure corresponding to a table formed from a plurality of columns arranged in a certain order, each of the plurality of columns corresponding to a predicate symbol, and one or more rows including a plurality of cells, each of the plurality of cells arranged in a position of one of the plurality of columns, each of the plurality of cells in the table storing a value for forming a logical expression by applying to each predicate symbol corresponding to a column where the cell is located, the graph data structure including a root node and a plurality of sequences of nodes, nodes in each of the plurality of sequences being connected in series by pointers in an order of the columns, each of the plurality of sequences of nodes corresponding to a row of the table and each node corresponding to a cell in a row of the table, a node at an end of each of the plurality of sequences of nodes is connected to the root node by a pointer, the plurality of node being configured to be scanned in order following the pointers from the root node, each row of the table representing a rule in which a plurality of logical expressions are arranged on the left hand side as a logical conjunction and a logical expression are arranged on the right hand side; a processor, including a data acquisition part configured to obtain data for judging whether a logical expression is true or false, the data being input to a plurality of input areas; and an inference part configured to scan nodes which represents a plurality of logical expressions of a logical conjunction arranged on the left side of a rule when a logical expression on the right hand side of a rule is judged to be true using the data obtained by the data acquisition part and for calculating a logical expression which should be judged to be true for establishing the rule, where the logical expression judged to be true is arranged on the right hand side, and to scan nodes connected in series and for calculating a logical expression which is true among the logical expressions arranged on the right hand side of any one of the plurality of rules is calculated when logical expressions on the right hand sides of all of the rules are judged to be indefinite using the data obtained by the data acquisition part.