GB2208020A - Inference processing system - Google Patents

Inference processing system Download PDF

Info

Publication number
GB2208020A
GB2208020A GB08815573A GB8815573A GB2208020A GB 2208020 A GB2208020 A GB 2208020A GB 08815573 A GB08815573 A GB 08815573A GB 8815573 A GB8815573 A GB 8815573A GB 2208020 A GB2208020 A GB 2208020A
Authority
GB
United Kingdom
Prior art keywords
processors
output
goal
links
marker
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.)
Withdrawn
Application number
GB08815573A
Other versions
GB8815573D0 (en
Inventor
Shigeru Oyanagi
Sumikazu Fujita
Sadao Nakamura
Takashi Suzuoka
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.)
Toshiba Corp
Original Assignee
Toshiba 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
Priority claimed from JP62163072A external-priority patent/JPS647233A/en
Priority claimed from JP62250608A external-priority patent/JPH0194440A/en
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of GB8815573D0 publication Critical patent/GB8815573D0/en
Publication of GB2208020A publication Critical patent/GB2208020A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4496Unification in logic programming

Abstract

An inference processing system comprises a plurality of processors assigned for nodes of a semantic network respectively to carry out parallel processing. Each of the processors stores tables and linking information. The tables are made by arranging rules and prepared for goals respectively. Each table contains the names of links to follow when a certain goal is given and markers for specifying the kinds of the links. In the table, the link names and markers are set as outputs with respect to the given goal as an input. The linking information contains information of links connected to a node for which a corresponding one of the processors is assigned. When a goal and a marker are inputted to any one of the processors, the processor finds an output marker and output links in the tables and linking information and outputs the output marker to the output links, thus achieving an inference process. <IMAGE>

Description

TITLE OF THE INVENTION INFERENCE PROCESSING SYSTEM SACKOROUND OF THE INVENTION Field of the Invention The present invention relates to an inference processing system used for an expert system, etc., and particularly to an inference processing system using a plurality of processors to carry out a parallel inference operation.
Description of the Prior Art Recently, studies are enthusiastically being done on expert systems that utilize computers to substitute for the roles of experts in various fields. The expert systems store knowledges of the experts in the computers and use the stored knowledges to infer conclusions.
As an example of the inference, a way of description by a Prolog which is one programming language suitable for the inference will be described.
A program written with the Prolog comprises facts and rules.
The facts are descriptions of relations between things. For instance, a fact "Taro is father of Ichiro" is described with a predicate "father" and arguments "Taro" and "Ichiro" as follows: father (Taro, Ichiro).
The rules are the expressions of knowledges such as "if A then B". The rules are described by replacing the arguments "Taro" and "Ichiro" with variables "X" and "Z" for example as follows: grandfather (X, Y): father (X, Z), father (Z, Y).
This rule means that "if X is father of Z and if Z is father of Y, then X is grandfather of Y".
Generally, an execution of the program written with the Prolog is ended when a given goal is matched (unified) with certain facts. Even if the given goal and the facts are not unified at first, the given goal is unified with respect to the left side of a rule. When the goal is unified with the left side of the rule, the right side of the rule will be set as a new goad that is to be again unified with respect to the left side of the rule. This operation is repeated. When the goal is unified with respect to the facts, the execution of the program is ended.
Now, the following example is considered: Rule 1: grandfather (X, Y): father (X, Z), father (Z, Y).
Fact 1: father (Taro, Ichiro).
Fact 2: father (Taro, Jiro).
Fact 3:' father (Ichiro, Saburo).
Fact 4: father (Ichiro, Shiro).
Fact 5: father (Jiro, Goro).
Fact 6: father (Jiro, Rokuro).
If a goal "grandfather (Taro, Y)" that means "whose grandfather Taro is" is given, the goal is unified collated with the left side of the rule 1 to get X = Taro. This is substituted for the right side of the rule 1 to present a new goal "father (Taro, Z), father (Z, Y)". The front half "father (Taro, Z)" of this new goal and the rule 1 are unified to find Z = Ichiro. This is substituted for the new goal to obtain "father (Taro, Ichiro), father (Ichiro, Z)". Then, the rear half "father (Ichiro, Y)" of the new goal and the fact 3 are unified to obtain Y = Saburo. As a result, one solution "grandfather (Taro, Saburo)" is obtained.
The above-mentioned process is a way to obtain the one solution. To obtain all solutions satisfying the first goal "grandfather (Taro, Y)", a back tracking operation shall further be carried out. Namely, the substitution of "Y = Saburo" obtained in the above-mentioned process is canceled to find another solution that is unified with respect to the middle goal "father (Ichiro, Y)". Then, this goal and the fact 4 are unified to obtain a new solution of Y = Shiro. In this way, the substitutions for the variables are successively canceled to find other solutions, i.e., Y = Goro and Y = Rokuro.
The facts used in this example may be expressed with a semantic network shown in Fig. 1. In the semantic network, the arguments of predicates are expressed as nodes of the network respectively, and the predicates indicating relations between the arguments are represented with links between the nodes. In Fig. 1, the rule 1 is translated that a grandfather link is equivalent to two stages of father links.
To search all solutions for a goal according to the above-mentioned back tracking, the substitution and back tracking shall be frequently repeated on the respective links of the semantic network. Therefore, a time needed for executing the Prolog program is extended to hinder high-speed processing.
As described in the above, the conventional inference system searches all solutions to a goal through sequential processing where the substitution and back tracking are repeated frequently to increase an amount of knowledges to be handled and extremely elongate an execution time of the program.
SUMMARY OF THE INVENTION An object of the present invention is to provide an inference processing system comprising a plurality of processors that will carry out parallel inference processes on a semantic network at a high speed.
Another object of the present invention is to provide an inference processing system that can carry out an inference operation for finding all solutions to a goal in a short execution time of program.
In order to accomplish the objects and advantages mentioned in the above, the present invention provides an inference processing system comprising a plurality of processors assigned for nodes of a semantic network respectively to carry out parallel processing. Each of the processors stores tables and linking information to be explained hereunder.
The tables are made by arranging rules and prepared for goals respectively. Each table contains the names of links to follow when a certain goal is given and markers for specifying the kinds of the links. In the table, the link names and markers are set as outputs with respect to the given goal as an input.
The linking information contains information of links connected to a node for which a corresponding one of the processors is assigned.
When a goal and a marker are inputted to any one of the processors, the processor finds an output marker and output links in the tables and linking information and outputs the output marker to the output links, thus achieving an inference process.
Each of the processors starts its operation as soon as it receives a message sent from a host computer or any other processor. The processor finds a goal out of the message and selects a table corresponding to the goal among the tables. If the received message includes a marker, the marker may tell which part of the table the processor shall refer to. Then, the processor picks up an output marker or a solution in the table and outputs the output marker or the solution to links specified according to the table and linking information.
Namely, after receiving the message, each processor starts to operate in parallel with the other processors according to the internal tables and information, so that a high-speed search is realized even when all solutions shall be searched. By properly reversing the relations of the inputs and outputs of each table stored in every processor, two-way processing may be realized.
These and other objects, features and advantages of the present invention will become apparent from the following descriptions of preferred embodiments taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a view showing an example of a semantic network for carrying out an inference operation; Fig. 2 is a view for explaining steps for searching all solutions to a goal on the semantic network shown in Fig. 1, according to a conventional sequential process; Fig. 3 is a view showing the constitution of an inference processing system according to an embodiment of the present invention where processors are assigned to nodes of the semantic network respectively; Fig. 4 is a block diagram showing the inference processing system according to the embodiment of the present invention; Fig. 5 is a view showing a table stored in each of the processors of the system shown in Fig. 4; Fig. 6 is a view showing linking information stored in each of the processor of the system shown in Fig. 4;; Fig. 7 is a flowchart showing an operation of each processor; Figs. 8a to 8f are views explaining a flow of data in the system shown in Fig. 4; and Fig. 9 is a view showing another example of a table stored in each of the processors.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS With reference to Fig. 4, an inference processing system according to an embodiment of the present invention will be explained.
The inference processing system comprises a host computer 11, a plurality of processors 12 connected to the host computer 11, and a processor interconnecting network 13. In this system, information is exchanged between the host computer 11 and the processors 12 as well as between the processors 12, and the processors 12 are operated in parallel to each other.
Fig. 3 is a view showing an example of the arrangement of the processors 12 on the semantic network shown in Fig.
1. The processors 12 are assigned to the nodes of the semantic network respectively, and each link of the semantic network comprises a two-way connecting passage.
Each processor 12 is provided with tables, one example shown in Fig. 5, and linking information shown in Fig. 6.
The table of Fig. 5 is made by arranging rules according to the Prolog, and shows what kind of operation the processor shall carry out in response to an input message. The table shown in Fig. 5 is for a goal "grandfather". With respect to this goal, a left column of the table contains input link names and input markers while a right column contains output link names and output markers. A mark "*" for the link name indicates that a receiving or a transmitting operation is carried out with respect to an original sender. For example, a first line of the left column of the table shows "*" as an input link name so that, when the processor 12 storing this table receives a message from the host computer 11, the processor 12 transmits a marker "1" along links "father" because the first line of the table indicates the output link name "father" and output marker "1".The second line of the table indicates that, if the processor receives a marker "1" from an input link "father#1,,, it transmits a marker "2" along links "father".
In this table, by setting the right column as an input and the left column as an output, a search opposite to the above-mentioned search will be realized. For example, a goal "grandfather " may be processed by reversely translating the left and right columns of the table shown in Fig. 5 that has been originally prepared for the goal "grandfather". Accordingly, without increasing a storage capacity, a two-way search between the nodes will be realized.
Fig. 6 shows the linking information stored in the respective processors 12. For example, the processor 12 (PE1) assigned to the node Taro stores the linking information of "father: Ichiro, Jiro".
The operation of the processors 12 will be described.
Fig. 7 is a flowchart showing the operation of each of the processors 12. Each processor 12 starts to operate when it receives a message from the host computer 11 or from the other processor 12 (step S1). The received message includes a goal and a marker. According to the goal, the processor selects a table among the tables stored in the processor and decides its direction to refer (step S2). The processor searches in the table for a line corresponding to the input link name and input marker to decide an output link name and an output marker (step S3).
If the output link name is not "*" (step S4), the processor checks to see whether or not there is an output link according to the linking information (step S5). If there is no output link, the processor sends "nil" back to a sender (steps S6 and 57) to finish the process (step 8).
If there is the output link, the processor sends a messae to a receiver specified by the linking information (steps 56 and S8). After sending the message, the processor waits for a response from the receiver (if the receiver reaches to a solution, the response will be a node name and, if the receiver does not reach to the solution, the response will be "nil") (step S9). If the processor receives the response, the processor sends the same back to the sender (step S10). At this time, if there come responses from a plurality of receivers, the processor combines the responses together and sends the combination back to the sender (step S10).
In this way, each processor 12 starts to operate when it receives a message, and refers to its own tables to a synchronously carry out its own process so that efficient parallel processing may be realized, and all solutions wil be obtained in a short time.
Fig. 8 is a view showing a flow of message between the processors in searching solutions of "grandfather (Taro, X)" according to the above-mentioned process.
Firstly, as shown in Fig. 8a, the host computer 11 sends a goal "grandfather" to the processor (PE1) assigned for the node "Taro". The processor (PE1) searches in its own table (Fig. 5) set for the goal "grandfather". Since the message was given by the host computer 11, the processor (PE1) selects a first line of the table where an input link name is "*". Since an output link name is "father" and an output marker "1" in the first line of the table, the processor (PE1) sends the goal and the marker "1" to processors (PE2, PE3) that are specified according to the linking information (Fig. 6), as shown in Fig. 8b.
The processor (PE1) waits for responses from the processors (PE2, PE3).
The processors (PE2, PE3) search their table (Fiy. 5) and, since the marker "1" was inputted from the t k "father 1", each of the processors selects the ccii line of the table where an output link name is "fathe;' and an output marker "2".
Then, as shown in Fig. 8c, the processors (PE2, PE3) send the goal and marker "2" to the processors (PE4 for the node Saburo, PE5 for Shiro, PEE for Goro, PE7 for Rokuro) according to the linking information shown in Fig. 6.
Similarly, each of the processors (PE4 to PE7) selects a third line of the table shown in Fig. 5 where an output link name is "*", and therefore sends its own node name to the senders (PE2, PE3) to notice that it has reached to a solution, thus completing the process (Fig. 8d).
After receiving the response messages from the processors (PE4 to PE7), the processors (PE2, PE3) combine the response messages respectively and send the combined messages back to the receiver (PE1) that has originally received the goal message to complete their processes (Fig. 8e).
After receiving the responses from the processors (PE2, PE3), the processor (PE1) combines the responses to send the combined message back to the host computer 11 to complete its process (Fig. 8f).
The inference processing system mentioned in the above may be called as a data driven type parallel processing system because the respective processors of the system start to operate according to the reception of messages.
Contrary to the example mentioned in the above, an X satisfying "grandfather (X, Saburo)" will be found by sending a goal "grandfather " from the host computer 11 to the processor (PE4) assigned for the node Saburo. The respective processors inversely use the left and right columns of their tables to carry out the similar processes.
According to the system of the present invention, higher inference processing may be realized by using different tables.
For example, the Prolog language describes the relations of ancestors (descendants) in two lines as follows: ancestor (X, Y):- father (X, Y).
ancestor (X, Y):- father (X, Z), ancestor (Z, Y).
This is a recursive description where a section of a main portion includes the same section as that of a head portion. According to the system of the present invention, this rule is simply arranged in a table as shown in Fig. 9.
In this table, a processor that receives a marker "1" through a link "father 1" matches to both the second and third lines of the table so that the processor will be a solution by itself and its descendants will also be solutions. Therefore, the processor sends its own node name to a sender while sends an output marker "1" to receivers along links "father". These processes correspond to steps Sll and S12 shown in Fig. 7.
According to the present invention, it is possible to write a plurality of unions and intersections in a single line of a table, thereby describing in the table rules including branches. Accordingly, the higher inference processing will be realized.
Although the inference rules have been arranged in tables in the embodiment, it is naturally possible to arrange the rules in other forms equivalent to the tables.
In summary, the present invention utilizes tables arranged according to rules and linking information to carry out an inference operation with a plurality of processors operated in parallel and in two ways on a semantic network, so that the inference operation may be carried out at a high speed.
Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.

Claims (13)

WHAT IS CLAIMED IS:
1. An inference processing system for finding solutions to goal given by an external apparatus by matching the goal with certain facts expressed in the form of a semantic network composed of nodes and links that connect the nodes to each other, comprising: a plurality of processors provided for the nodes of the semantic network respectively, each of said processors having tables prepared for respective goals to be given and linking information related to links connected to a corresponding one of the nodes, each of the tables storing names of output links to follow when at least a goal corresponding to the table is inputted thereto as well as output markers for specifying kinds of the output links; and connecting means for connecting said processors to each other according to the links of the semantic network, each of said processors specifying, when a goal and a marker are inputted thereto from the other of said processors through said connecting means, an output link name and an output marker in the tables and linking information according to the inputted goal and marker, and sending the goal and specified output marker to links having the specified output link name, thereby carrying out parallel inference processing.
2. The inference processing system as claimed in claim 1, wherein each of said processors is so constructed to, when only a goal is inputted thereto from the external unit, specify an output link name and an output marker in the tables and linking information according to the inputted goal, and to output the goal and specified output marker to links having the specified output link name.
3. The inference processing system as claimed in claim 1, where the tables stored in each of said processors are specified respectively by the goals to be given thereto, and each of the tables holding the names of input links and input markers to be referred when a goal and a marker are given to the table as well as holding the names of output links and output markers to be outputted corresponding to the input link names and input markers.
4. The inference processing system as claimed in claim 1, wherein each of said processors stores tables prepared for respective goals to be given thereto, each of the tables holding the names of output links to follow when at least a goal corresponding to the table is inputted thereto as well as output markers for specifying the positions of the output links to follow with respect to solutions.
5. The inference processing system as claimed in claim 1, wherein said connecting means comprise two-way connecting passages for connecting the processors in parallel.
6. The inference processing system as claimed in claim 1, wherein the linking information stored in each of said processors indicates all the links connected to a node for which a corresponding one of said processors is assigned.
7. The inference processing system as claimed in claim 1, wherein the external unit comprises a host computer.
8. The inference processing system as claimed in claim 1, wherein each of the tables stored in each of said processors includes a set of link names and markers for input and a set of link names and markers for output, the set for input and the set for output of the link names and markers being able to be inverted to realize two-way characteristics.
9. An inference processing system for finding solutions to a goal given by an external unit by matching the goal with certain facts expressed in the form of a semantic network composed of nodes and links that connect the nodes to each other, comprising: a plurality of processors provided for the nodes of the semantic network respectively, each of said processors having tables identifiable with a goal or a marker from the other of said processors given thereto as well as storing linking information related to links connected to a corresponding one of the nodes, each of the tables storing input link names or input markers as well as storing output link names or output markers corresponding to the input link names-or the input markers; and connecting means for connecting said processors to each other according to the links of the semantic network, each of said processors specifying, when a goal and a marker are inputted thereto from the other of said processors through said connecting means, an output link name and an output marker in the tables and linking information according to the inputted goal and marker, and sending the goal and specified output marker to links having the specified output link name, while each of said processors specifying, when only a goal is inputted thereto from the external unit, an output link name and an output marker in the tables and linking information according to the inputted goal, and outputting the goal and specified output marker to links having the specified output link name.
10. The inference processing system as claimed in claim 9, wherein said connecting means comprise two-way connecting passages for connecting the processors in parallel.
11. The inference processing system as claimed in claim 9, wherein the linking information stored in each of said processors indicates all the links connected to a node for which a corresponding one of said processors is assigned.
12. The inference processing system as claimed in claim 1, wherein the external unit comprises a host computer.
13. An inference processing system substantially as hereinbefore described with reference to the accompanying drawings.
GB08815573A 1987-06-30 1988-06-30 Inference processing system Withdrawn GB2208020A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP62163072A JPS647233A (en) 1987-06-30 1987-06-30 Production system
JP62250608A JPH0194440A (en) 1987-10-06 1987-10-06 Parallel production system

Publications (2)

Publication Number Publication Date
GB8815573D0 GB8815573D0 (en) 1988-08-03
GB2208020A true GB2208020A (en) 1989-02-15

Family

ID=26488638

Family Applications (1)

Application Number Title Priority Date Filing Date
GB08815573A Withdrawn GB2208020A (en) 1987-06-30 1988-06-30 Inference processing system

Country Status (1)

Country Link
GB (1) GB2208020A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2217068A (en) * 1988-03-11 1989-10-18 Ricoh Kk VLSI hardware-implemented rule-based expert system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2217068A (en) * 1988-03-11 1989-10-18 Ricoh Kk VLSI hardware-implemented rule-based expert system
GB2217068B (en) * 1988-03-11 1992-10-21 Ricoh Kk Vlsi hardware implemented rule-based expert system apparatus and method

Also Published As

Publication number Publication date
GB8815573D0 (en) 1988-08-03

Similar Documents

Publication Publication Date Title
US4982340A (en) Plural processor inferencing system and method
US6629099B2 (en) Paralleled content addressable memory search engine
US5551031A (en) Program storage device and computer program product for outer join operations using responsibility regions assigned to inner tables in a relational database
US4876643A (en) Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests
Mello et al. AND/OR graph representation of assembly plans
Havet et al. Median orders of tournaments: A tool for the second neighborhood problem and Sumner's conjecture
US5446886A (en) System from optimizing query processing of multi-attribute distributed relations using local relation tuple numbers to choose semijoins
US5987449A (en) Queries on distributed unstructured databases
JP2000029907A (en) Device and method for message broker data processing, and computer program product
US5857183A (en) Processor for sequential data retrieval from a relational database
US7167852B1 (en) Systems and methods for increasing allowable join orders in query optimization
CN113037634B (en) Processing method, logic circuit and equipment for matching action table based on FPGA
GB2208020A (en) Inference processing system
US5502832A (en) Associative memory architecture
Fu et al. An efficient algorithm for finding a collision‐free path among polyhedral obstacles
JPH01161566A (en) Data processing system of decentralized processing system
US11036733B2 (en) Method, apparatus, system, server, and storage medium for connecting tables stored at distributed database
Fletcher et al. A methodology for coupling fragments of XPath with structural indexes for XML documents
JP2000222434A (en) Combination retrieval method
Abali et al. Load balanced sort on hypercube multiprocessors
Ilisia Parallel optimisation of join queries using a technique of exhaustive nature
Wasserman et al. Generalized linear recursive networks: topological and routing properties
JP2757760B2 (en) How natural language queries are interpreted
JP3296489B2 (en) Operation method in associative memory device
JPH0218641A (en) Data control method

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)