Title of Invention

A MESSAGE PROCESSING METHOD FOR EXECUTION BY A MESSAGE PROCESSOR

Abstract By using interpretation execution parts which conform to the background concepts and vocabularies of a conversation upon communication providing a communication system which is capable of making a suitable response. By dynamically allocating suitable interpretation execu¬tion parts like an interpreter in conformance to a variety of agent communication languages, content describing languages and ontologies, a flexible and smooth informa¬tion exchange and cooperation are realized among agents and between agents and an existing system. The agent communication system in a preferred embodiment of this invention is provided with interpretation execution part control function and scans a directory of interpretation parts such as conversation content monitoring parts, interpreters and translators upon the time of start or during execution and forms and maintains an interpretation execution part table as to what interpretation execution parts exist.
Full Text This invention relates to a data processing technique, and more particularly, to a technique of dynamically changing processing resources depending on the contents of data to be processed.
A human being is usually capable of determining on what topic a conversion is
going and how the utterance by a speaker is interpreted during the course of the
conversation from the environmental conditions including the situation in which the
speaker is place, experiences in

the past, the identity of the speaker and the flow of the conversation. For instance, suppose that a person sitting in a tea room simply tells to a waitress "a coffee". The waitress would then interprets that statement in a way that the guest agrees to pay the price of a hot coffee listed on a menu placed in the seat and orders a cup of hot coffee poured in a coffee cup. The waitress further recognizes that the order is accepted for the person, and understands that she should take steps of preparing a cup of hot coffee, adding a spoon, sugar and cream to the cup of hot coffee, bringing them to the table of the person and waiting until the person pays the price.
However, in a different environmental condition such as where the same statement "a coffee" is uttered to a shopman in a bookstore, the man would not be able to understand the meaning of the utterance. As exemplified above, data is suitably interpreted even if it contains small amount of information when a statement spoken can be flexibly interpreted taking the situation into consider¬ation.
Generally, a "conversation" between human being consists of steps in which;
1. a speaker prepares a content to be spoken in order to
convey speaker's intent to a listener,
2. the speaker then begins to speak,
3. he listener listens to the speech and understands the flow of the conversation,
4. the listener associates the speech with the background of the speech from what the listener has experienced,
5. the listener understands the content of the speech.

and
6. the listener takes an action as a result.
If a messaging system of a computer is defined as one which simulates the message processing of a natural language and is designed for recycling by patterning a conversation in this way, a message which is closer to a natural language than prior art can be processed so that an intelligent message system can be constructed which is more user friendly and allows a series of packets having a certain context to be exchanged with the flow of con¬texts being followed.
On the other hand, there is a mobile agent technology in the art in which an internal condition is moved as it is to a place which is provided in a server existing on a network in a distributed computer environment to form an instruction in the place where it moved to. Reference is made to USP 5, 603, 031(PUPA 7-182174) and Fumihiko Nishida, Susumu Fujiwara et al's "Latest Internet Technology, special edition of Nikkei Communication", pp 104-117, Nikkei BP,
Such mobile agent makes a contact to other agents (a mobile agent or a resident agent) in the moved-to place and may be served as appropriate. A place is a location provided by a server existing on the network to which the agent moved and which supports a contact among agents and absorbs the differences between the hardwares and between the platforms.
J

[0008]
The mobile agent technology enables a mobile agent to act as a proxy of a human being in handling works such as dynamically adjusting a schedule of internal meetings in compliance with the schedule of attendees and status of reservation of conference rooms and acquiring desired information distributed on the network.
However, if in a single place, various types of communi¬cations among the agents is supported, a large load is placed on that place, leading to inability of appropri¬ately responding to the content of conversation and extended processing time which is required for the re¬sponse. Another load is placed to an agent or a software which issues a request when the request for the service becomes complicated due to the support of various types of communications. Further, the communication system is heavily loaded when the amount of data transmitted over the network is increased. When an interpretation execution element which interprets the content of conversation is changed, a problem was involved in that the system had to be halted temporarily for restart in registration and importation of changed interpretation execution element because the system relied on a single interpretation execution element.
There was a prior art system which had a compatible class correlating table for the replacement with a compatible resource to maintain interconnection during the period when the network is upgraded to a new version (PUPA7-93235). However, such prior art system which inspected the

internal status of the system and replaced resources as a result of inspection was not able to analyze a received message to dynamically change the interpretation execution element which interprets the received message. In addi¬tion, such prior art system had to prepare an alternative resource for the resource in which a change occurred so as to avoid the system from halting, resulting in additional load of the user.
[Objectives of the Invention]
It is an object of this invention to provide a communica¬tion system which is capable of making a suitable response by means of an analysis execution part in conformance to the content(background concepts or vocabularies ) of a conversation among agents.
It is another object of this invention to provide a message processing system which enables a high speed processing by reducing unnecessary decision logics.
It is a further object of this invention to provide a message processing system in which resources required for execution are decreased.
It is still another object of this invention to provide a message processing system which realizes a high speed parallel conversation processing.

[0015]
It is still further object of this invention to reduce the work and the time required for developing and main¬taining a program as much as possible in providing a support to communication among agents.
It is a further object of this invention to provide a message processing system which is capable of flexibly dealing with conversations among agents.
^Oi--yT
It is another object of this invention to provide a message processing system which gives less load to a communication network.
[Solution of the Objectives]
This invention enables a flexible and smooth information exchange and coordination among agents and between agents and existing systems by dynamically allocating suitable interpretation execution parts in conformance to an ontology which represents an agent communication language, content describing language and a background concept and vocabulary used in a content.
The agent communication system in the preferred embodi¬ment of this invention has an interpretation execution part controlling function which scans a directory of

interpretation execution parts including conversation content monitoring parts, interpreters and translators upon start to form and control an interpretation execu¬tion part table about what interpretation execution parts are in existence.
When a message of a combination of agent communication language, content describing language and an ontology which do not exist in the table is received, the interpre¬tation execution part store directory is scanned again to see if the interpretation execution part corresponding thereto has been added. If it has been added, it is added to the table to have it process the message.
According to one aspect of this invention, a message processing method is provided for execution by a message processor which has a plurality of different interpreters for processing a message received through the network, said method comprising the steps of;
(a) receiving a message packet containing an ontology
specifying information and a content,
(b) selecting one or more interpreters among said
plurality of different interpreters in conformance to the
ontology specifying information contained in said message
packet, and
(c) interpreting the content contained in said message
packet by means of said selected one or more interpreters.
As used in the claims of this invention, the term "ontol¬ogy" includes not only "background concepts and vocabular-

ies" which are to be described in the preferred embodiment of this invention but also a concept including all infor¬mation which squeeze decision results and reduce decision processes in determining the content of transmitted information.
According to another aspect of this invention, a message processing method is provided for execution by a message processor which has a plurality of different interpreters for processing a message received through the network, said method comprising the steps of;
(a) receiving a message packet containing an ontology
specifying information, a describing language specifying
information and a content specifying information,
(b) selecting one or more interpreters among said
plurality of different interpreters in conformance to the
ontology specifying information and describing language
specifying information contained in said message packet,
and
(c) interpreting a content which corresponds to the
content specifying information contained in said message
packet by means of said selected one or more interpreters.
As used in the claims of this invention, the term "con¬tent specifying information" includes not only a content per se but also a link information which points to a
content.
According to still another aspect of this invention, a

message processing method is provided for execution by a message processor which has a plurality of different analysis execution parts, said method comprising the steps of;
(a) selecting one or more analysis execution parts among said plurality of different analysis execution parts in conformance to the ontology specifying information associ¬ated with the content, and
(b) interpreting said content by means of said selected one or more analysis execution parts.
As used in the claims of this invention, the term "analy¬sis execution parts" is a concept including a conversa¬tion content monitoring part, a interpreter and a transla¬tor which are to be described in the preferred embodiment of this invention.
According to a further aspect of this invention, a message processing method is provided for execution by a message processor which has a plurality of different interpreters and an interpreter control table for control¬ling a plurality of ontology specifying information which correspond to respective ones of said plurality of differ¬ent interpreters, said method comprising the steps of;
(a) receiving a message packet containing an ontology specifying information and a content ,
(b) determining whether or not an interpreter corre¬sponding to the ontology specifying information contained in said message packet has been registered in said inter¬preter control table.

(c) determining whether or not the interpreter corre¬sponding to said ontology specifying information is available in said message processor, when it is deter¬mined that the ontology specifying information contained in said message packet is not registered in said inter¬preter control table,
(d) registering in said interpreter control table said corresponding interpreter in correspondence to the ontolo¬gy specifying information contained in said message packet , when it is determined that the interpreter corresponding to the ontology specifying information contained in said message packet is available in said message processor, and
(e) interpreting the content contained in said message packet by means of corresponding interpreter.

According to a still further aspect of this invention, a message processing method is provided for execution by a message processor which has a plurality of different interpreters and an analysis execution part control table for controlling a plurality of different analysis execu¬tion parts in association with analysis execution part specifying information, said method comprising the steps of;
(a) receiving a message packet containing an analysis
execution part specifying information and a content ,
(b) determining whether or not an analysis execution part
corresponding to the analysis execution part specifying
information contained in said message packet has been
registered in said analysis execution part control table.

(c) determining whether or not the analysis execution part corresponding to said analysis execution part speci¬fying information is available in said message processor, when it is determined that the analysis execution part specifying information contained in said message packet is not registered in said analysis execution part control table,
(d) registering in said analysis execution part control table said corresponding analysis execution part in correspondence to the analysis execution part specifying information contained in said message packet , when it is determined that the analysis execution part corresponding to the analysis execution part specifying information contained in said message packet is available in said message processor.
^^^^^^^^
According to a further aspect of this invention, a message processor is provided which has a plurality of different interpreters for processing a message received through a network, said processor comprising;
(a) an agent communication language manager for receiving
a message packet containing ontology specifying informa¬
tion and a content, and
(b) an interpreter loader for selecting one or more
interpreters among said plurality of different interpret¬
ers in conformance to the ontology specifying information
contained in said message packet.
[0027]
According to still further aspect of this invention, a

message processor is provided which has a plurality of different interpreters for processing a message received through the network, said processor comprising;
(a) an agent communication language manager for receiving
a message packet containing an ontology specifying
information, a describing language specifying information
and a content specifying information,
(b) an interpreter loader for selecting one or more
interpreters among said plurality of different interpret¬
ers in conformance to the ontology specifying information
and describing language specifying information contained
in said message packet.
According to still further aspect of this invention, a message processor having a plurality of different analysis execution parts is provided which selects one or more analysis execution parts among said plurality of analysis execution parts in conformance to the ontology specifying information associated with the content to interpret said content by means of said selected one or more analysis execution parts.
According to a further aspect of this invention, a message processor is provided which has a plurality of different interpreters including an interpreter loader and an interpreter control table for controlling a plurality of ontology specifying information which correspond to respective ones of said plurality of different interpret¬ers, said processor comprising;

(a) determining whether or not an interpreter correspond¬
ing to the ontology specifying information contained in
said message packet has been registered in said interpret¬
er control table, said message packet containing an
ontology specifying information and a content
(b) determining whether or not the interpreter corre¬sponding to said ontology specifying information is available in said message processor, when it is deter¬mined that the ontology specifying information contained in said message packet is not registered in said inter¬preter control table,
(c) registering in said interpreter control table said corresponding interpreter in correspondence to the ontolo¬gy specifying information contained in said message packet , when it is determined that the interpreter corresponding to the ontology specifying information contained in said message packet is available in said message processor.
According to a still further aspect of this invention, a message processing method is provided for execution by a message processor which has a plurality of different interpreters including an interpreter loader and an analysis execution part control table for controlling a plurality of analysis execution parts in association with analysis execution part specifying information, said method comprising the steps of;
(a) determining whether or not an analysis execution part corresponding to the analysis execution part specifying information contained in said message packet has been registered in said analysis execution part control table, said message packet containing an analysis execution part

specifying information and a content,
(b) determining whether or not the analysis execution part corresponding to said analysis execution part speci¬fying information is available in said message processor, when it is determined that the analysis execution part specifying information contained in said message packet is not registered in said analysis execution part control table,
(c) registering in said analysis execution part control table said corresponding analysis execution part in correspondence to the analysis execution part specifying information contained in said message packet , when it is determined that the analysis execution part corresponding to the analysis execution part specifying information contained in said message packet is available in said message processor.
According to a further aspect of this invention, a message processor is provided which has a plurality of different interpreters for processing a message received through a network, said processor comprising;
(a) an agent communication language manager for receiving
a message packet containing ontology specifying informa¬
tion, a describing language specifying information, a
content specifying information and a response ID, and
(b) a conversation thread control part for analyzing a
response ID contained in said message packet to form a
conversation thread,
(c) a message log for recording said message packet, and

(d) an interpreter loader for selecting one or more interpreters among said plurality of different interpret¬ers in conformance to the ontology specifying information and describing language specifying information contained in said message packet.
According to one of the aspects of this invention, a recording media is provided which stores therein a message processing program for execution by a message processor which has a plurality of different interpreters for processing a message received through the network, said media comprising;
(a) a program code which instructs said message processor to receive a message packet containing an ontology specifying information and a content,
(b) a program code which instructs said message processor to select one or more interpreters among said plurality of different interpreters in conformance to the ontology specifying information contained in said message packet, and
(c) a program code which instructs said message processor to interpret the content contained in said message packet by means of said selected one or more interpreters.
According to a further aspect of this invention, a medium is provided which stores therein a message processing program for execution by a message processor which has a plurality of different interpreters for processing a message received through the network, said media compris-

ing;
(a) a program code which instructs said message processor to receive a message packet containing an ontology speci¬fying information, a describing language specifying information and a content specifying information,
(b) a program code which instructs said message processor to select one or more interpreters among said plurality of different interpreters in conformance to the ontology specifying information and describing language specifying information contained in said message packet, and
(c) a program code which instructs said message processor to interpret a content which corresponds to the content specifying information contained in said message packet by means of said selected one or more interpreters.
^^^^^^^^^^^
According to still further aspect of this invention, a media is provided which stores therein a message process¬ing program for execution by a message processor which has a plurality of different analysis execution parts, said media comprising;
(a) a program code which instructs said message processor to select one or more analysis execution parts among said plurality of different analysis execution parts in confor¬mance to the ontology specifying information associated with the content, and
(b) a program code which instructs said message processor to interpret said content by means of said selected one or more analysis execution parts.

[0035]
According to a further aspect of this invention, a media is provided which stores therein a message processing program for execution by a message processor which has a plurality of different interpreters and an interpreter control table for controlling a plurality of ontology specifying information which correspond to respective ones of said plurality of different interpreters, said media comprising/
(a) a program code which instructs said message processor to receive a message packet containing an ontology specifying information and a content ,
(b) a program code which instructs said message processor to determine whether or not an interpreter corresponding to the ontology specifying information contained in said message packet has been registered in said interpreter control table,

(c) a program code which instructs said message processor to determine whether or not the interpreter corresponding to said ontology specifying information is available in said message processor, when it is determined that the ontology specifying information contained in said message packet is not registered in said interpreter control table,
(d) a program code which instructs said message processor to register in said interpreter control table said corre¬sponding interpreter in correspondence to the ontology specifying information contained in said message packet , when it is determined that the interpreter corresponding to the ontology specifying information contained in said message packet is available in said message processor, and

(e) a program code which instructs said message processor to interpret the content contained in said message packet by means of corresponding interpreter.
According to a still further aspect of this invention, a medium is provided which stores therein a message process¬ing program for execution by a message processor which has a plurality of different interpreters and an analysis execution part control table for controlling a plurality of different analysis execution parts in association with analysis execution part specifying information, said media comprising;
(a) a program code which instructs said message processor to receive a message packet containing an analysis execution part specifying information and a content ,
(b) a program code which instructs said message processor to determine whether or not an analysis execution part corresponding to the analysis execution part specifying information contained in said message packet has been registered in said analysis execution part control table,
(c) a program code which instructs said message processor to determine whether or not the analysis execution part corresponding to said analysis execution part specifying information is available in said message processor, when it is determined that the analysis execution part speci¬fying information contained in said message packet is not registered in said analysis execution part control table,
(d) a program code which instructs said message processor

to register in said analysis execution part control table said corresponding analysis execution part in correspon¬dence to the analysis execution part specifying informa¬tion contained in said message packet , when it is deter¬mined that the analysis execution part corresponding to the analysis execution part specifying information con¬tained in said message packet is available in said message processor.
[Description of Embodiments]
The embodiment of this invention will now be described with reference to the drawings. With reference to Fig.l, a distributed network environment 150 is shown which executes mobile objects of this invention. Each server 112 -115 is provided with a place 102-105 for serving the mobile agents 125, 135, 141, etc. The group of places in the distributed network environment is called a crowd.
An application 113 for forming and moving a mobile agent is in a client system 101. Mobile agents, such as 125 which are sent out by the application 113 may get in contact with other agents(mobile or resident agents) existing in each place 102-105(an agent which gets in contact with a mobile agent to provide a service is called an actor agent), send a request and receive the result of the request. A place provides a support to the contact between agents. Mobile agents, such as 125 may hold the result of the request received from the actor agent, continue to move, or send the result to the client 101 or other place during movement.

[0039]
The mobile agent(or a resident agent) 125 may send a message packet to another place and execute a conversation and an instruction in such another place.
Fig.2 schematically shows a hardware configuration of each node (a server or a client site) existing on the distributed network environment shown in Fig.l. Each node 100 has a central processing unit(CPU) 1 and a memory 4. The CPU 1 and the memory 4 are connected to a hard disk drive 13 acting as an auxiliary storage via a bus 2. Storage media drives including a floppy disk drive 20, the hard disk drive 13, 30, CD-ROM drive 26, 29, and MO drive 28 are connected to the bus 2 through controllers includ¬ing a floppy disk controller 19, an IDE controller 25 and an SCSI controller 27.
A portable storage media such as a floppy disk is insert¬ed to the storage media drive such as the floppy disk drive 20. Such floppy disk and other storage media of the hard disk drive 13 and the ROM 14 may have recorded therein a computer program which provides instructions to the CPU in cooperation with an operating system to prac¬tice this invention, with the program being loaded into the memory 4. The computer software may be compressed or divided into multiple pieces for storage in multiple media.
The node system 100 may be a system which has a user

interface hardwires, such as a pointing device (a mouse and a joy stick, etc.) 7 or a keyboard 6 for input and a display 12 for presenting a visual data to a user. A parallel port 16 may be provided for connecting a printer. The node system 100 may have a modem connected thereto via a serial port 15 for connection to the network through the serial port 15 and the modem or through a token ring or a communication adapter 18 to communicate with other comput¬er systems.
It will be readily understood that this invention may be implemented in a conventional personal computer(PC), a workstation, a general purpose computer or a combination of them. It should be noted however that these components are chosen as exemplary components and not all components are necessarily an indispensable component of the inven¬tion. Specifically, it is not necessary to install a user interface in the server side because the server can be remote-controlled so that it is enough to have a basic data processing function such as a CPU and a memory, and a communication function. It is enough for the client side to have a configuration that is needed to send out a message packet(described later) , including a communica¬tion function and an input means for designating a message packet and instruct send out the message packet.
The operating system in the client side and the server side may be implemented by one which supports on a stan¬dard basis a GUI multi-windows environment such as WindowsNT(trademark of Microsoft), Windows95(trademark of Microsoft), Windows3.X(trademark of Microsoft), OS/2(trademark of IBM), X-Window system(trademark of MIT)

on AIX (trademark of IBM), and Solaris (trademark of Sun Micro Systems), as well as one which is for character base environment such as PC-DOS (trademark of IBM) and MS-DOS (trademark of Microsoft), and a real time OS such as OS/Open(trademark of IBM) and VxWorks(trademark of Wind River Systems, Inc.) without being limited to any specific operating system environment.
B. System Configuration
With reference to the block diagram in Fig.3, a system configuration of the server side in the preferred embodi¬ment of this invention is described.
An agent 201 is either a mobile agent which was sent to this server or a resident agent which is resident in this server. The agent 201 may have a dialog with the agent communication system 200 by sending out or receiving a message packet which will be described later.
An agent communication language manager 203 is a compo¬nent for receiving a message sent from the agent 201 or the existing system and network and for transmitting messages to these systems.
A conversation thread control part 205 is a component for .controlling a thread 207 that corresponds to each conver¬sation with an agent like 201, forming a suitable thread

in conformance to the flow of conversation, or giving the control to the thread which has been generated . (multiple conversations are split into multi-threads to accept multiple conversations asynchronously. The thread is called a conversation thread)
A message log 211 is a component for memorizing conversa¬tions, A conversation monitoring part 217 is a component which conducts a policy check as to whether or not a conversation is valid from the conversation log stored in the message log and the content of the current message. A conversation content monitoring part loader 215 is a component for calling the conversation monitoring part 217 which corresponds to the message type of the message packet 300.
A translator 221 is a component for translating the agent communication language used in the conversation into another language. A translator loader 219 is a component for controlling the group of translators.
An interpreter 225 is a component for understanding and executing the content of a conversation. A plurality of different such interpreters are provided corresponding to ontologies and describing languages which will be de¬scribed later, each having a format check routine, a content interpretation routine and an execution routine each specific to the ontology. Take an ontology of traffic reservation for example, assume that a content "R, flight, Narita to Tacoma, 1997/07/06/15:00-1997/07/06/18:00" is

received. This is checked for a predetermined format and a specific content interpretation routine is executed, interpreting that "R" is a command which instruct to make a reservation, accessing to a database in a given airline to execute an execution routine for checking the reserva¬tion status. Finally, a reservation is made for a non¬smoking seat, economy, FlightXX2 6 for Tacoma, Seattle, departing Narita air port at 17:10 on July 5, 1997 and the reservation is confirmed to the sender.
An interpreter loader 223 is a component for controlling the group of interpreters 225. A protocol manager 230 is a component for converting to a protocol which conforms to the type of network to be connected.
Each of functional blocks in Fig.3 has been described. These functional blocks (components) which are logical functional blocks are not meant to be implemented as an independent integral hardware or software and may be implemented as a complex of hardwares and softwares or common hardwares and softwares. Further, not all of the functional blocks' in Fig.3 are necessarily a component which is indispensable to this invention.
Each of functional blocks in Fig.3 and Fig.4 has been described. These functional blocks (components) which are logical functional blocks are not meant to be implemented as an independent integral hardware or software and may be implemented as a complex of hardwares and softwares or common hardwares and softwares. Further, not all of the

functional blocks in Fig.3 and Fig.4 are necessarily a component which is indispensable to this invention.
For instance, it would be enough to install either one of the conversation content monitoring part loader 215, the translator loader 219 and the interpreter loader 223 to dynamically switch among the conversation content monitor¬ing part 217, the translator 221 and the interpreter 225 for indicating the interpretation execution part to be used. The agent communication language manager 203, the conversation thread control part 205, the conversation thread 207, the message log 211, the ID generator 213, the conversation content monitoring part 217, the translator 221 and the interpreter 225 are not a component indispens¬able to one aspect of this invention.
C. Description of Operation
Fig. 4 shows schematically a message packet 300 as used in a preferred embodiment of this invention. Fig.5 shows an operational condition of each component in Fig.3 when a message is generated.
In the message type 301 contained in the message packet 300 in Fig.4, a performative of the agent communication language (ACL) is used in the preferred embodiment of this invention. ACL is a high level language which provides a communication among agents in a form that is close to human language and includes one provided by FIPA(Foundation for Intelligent Physical Agents), ACL,

KQML(Knowledge Query Manipulation Language), and KIF(Knowledge Interchange Format). KQML is laid open by "SEMANTICS FOR AN AGENT COMMUNICATION LANGUAGE, Yannis Labrou, A Doctoral Dissertation for the PhD Defense Examination, Submitted to Defense Committee, at the Computer Science and Electrical Engineering Department (CSEE), University of Maryland Graduate School" and "TR CS-97-03, A Proposal for a new KQML Specification, Yannis Labrou and Tim Finin February 3,1997".
Included in the performative of KQML which is one of ACL are;
ask-if, ask-all, stream-all, eos, tell, untell, deny, insert, uninsert, delete-one, delete-all, undelete, achieve, unachieve, advertise, unadvertise, subscribe, error, sorry, standby, ready, next, rest, discard, regis¬ter, unregister, forward, broadcast, transport-address, broker-one, broker-all, recommend-one, recommend-all, recruit-one, recruit-all.
A sender 303 is a sender of a message while a receiver 305 is a receiver of a message.
A response ID 307 is an ID which follows a preceding conversation. When an agent has a conversation with a plurality of parties, a plurality of response ID's are allocated corresponding to the conversation threads which will be described later.

[0061]
A conversation ID is an ID which tells the conversation partner to respond with this ID,
The description language type 311 is information which specifies the language describing the content. The ontolo¬gy 313 is information which specifies the ontology that the content specifies.
The content 315 is the particular content of a message and contains a software for forming instructions after it moved to another place in the preferred embodiment of this invention. The content 315 may also internally contain a message packet for movement to another place via a relaying point. Then a From entry and a To entry are provided to indicate a true sender and a final receiver, respectively, in the preferred embodiment of this inven¬tion.
An operational condition of each component in Fig. 3 during message generation will now be described with reference to Fig.5. The agent 201 sends a message packet shown in Fig.4 to the agent communication system 200. In the preferred embodiment of this invention, the components shown in Fig.3 are defined as a class of an object orient¬ed language. Each object, upon generating a message, prompts other objects to operate by sending an instruction to such other objects as shown in the object instruction diagram among components in Fig.6.

[0065]
The agent communication language manager 203, upon receiving the message packet 300, conducts a message generation process when it is called with "sendMessage" while it conducts a receive message process when it is called with "handleMassage".
The conversation thread control part 205 determines with reference to the response ID 307 which is contained in the message packet 300 whether or not to ask an already generated conversation thread to process. If the conver¬sation thread 205 determines that it is a new conversa¬tion, it generates a new conversation thread 207, in¬structs the ID generator 213 via the conversation thread 207 to allocate a new conversation ID 309 and moves the control to the conversation thread 207. In the preferred embodiment of this invention, the conversation 'ID 307 is allocated with an ID which is uniquely identified on the network, such as "URL + Date + Time + Serial Number".
If a conversation thread 207 corresponding to the re¬sponse ID 307 has existed, the conversation thread 205 determines that this is not a new conversation and moves the control to the corresponding conversation thread 207. If it is desired to continue conversation, the conversa¬tion thread 207 instructs the ID generator 213 to allocate conversation ID 309,
The message log 211 memorizes the message packet 300

which is sent to the conversation thread 207.
The conversation content monitoring part loader 216 calls a conversation content monitoring part 217 corresponding to the message type 301 of the message packet 300. The conversation content monitoring part 217 corresponding to the message type 301 may be called by providing a conver¬sation content monitoring part table as shown in Fig.7 or by using a class name of the conversation content monitor¬ing part which is the same as the message type.
The conversation content monitoring part 217 conducts a policy check as to whether or not a conversation could be valid based on the conversation log stored in the message log 211 and the content of the current message. For instance, if the message type 301 of the received message packet 300 is "sorry"(a message type which means that the content of the conversation is understandable but the receiving party does not have a capability to process), a reference is made to the message log for a message type of the message which has a corresponding response ID and an immediately preceding ID and then it is determined that the message type is of no problem if it is of a type which can be valid as a conversation like "ask-if"(a message type which queries about the processing capability of the other party) while it is determined that the message type is in error if it is determined to be of a message type which can not be valid as a conversation like "deny" (a message type which means denial) and an action is taken such as sending a message packet of "error"(a message type which means an error) to the sender 303 of the message packet 300

If it is determine that a conversation can be valid, a message packet 300 is sent from the conversation thread 207 to a node which is designated as a receiver 303 through the protocol manager 230. The protocol manager 230 converts the protocol to one which conforms to the type of the network to be connected so that the agent communica¬tion system 200 can send and receive a message packet 300 without being aware of the network protocol.
Now with reference to Fig. 8 and Fig. 9, operational conditions of each component at the node which received the message packet so sent.
The agent communication language manager 203 which has received a message packet 300 from the protocol manager 230 determines that the received message packet 300 is one for receiving message as it is passed to "handleMessage" and asks the conversation thread control part 205 to handle it. In the preferred embodiment of this invention, the protocol manager 230 knows the existence of the agent communication language manager 203 as the latter internal¬ly instantiates, it can send the incoming data to the agent communication language manager 203.
The conversation thread control part 205 determines whether or not to ask the conversation thread to process the massage packet with reference to the response ID contained in the message packet 300. If the conversation

thread control part 205 determines that the packet is a new conversation, it generates a new conversation thread 207 and transfers it to the conversation thread 207 for processing.
When a conversation thread 207 corresponding to the response ID 307 has existed, the conversation thread control part 2 05 determines that the packet is not a new conversation and transfers it to the corresponding conver¬sation thread for processing.
The message log 211 memorizes a message packet 300 which is sent to the conversation thread 207.
The conversation content monitoring part loader 215 calls a conversation content monitoring part 217 which conforms to the message type 301 of the message packet 300.
The conversation content monitoring part 217 conducts a policy check as to whether or not a conversation can be valid based on the conversation log stored in the message log 211 and the content of the current message.
If it is determined that a conversation can be valid, the conversation thread 207 transfers the control to the interpreter loader 223 for processing. The interpreter

loader 223 understands the agent communication language of the message packet 300 and determines whether or not the describing language type 311 is contained in the message packet 300 and an interpreter which corresponds to the ontology 313 are stored in an interpreter control table 350 shown in Fig.10.
If an interpreter which corresponds to the agent commu¬nication language, description language type 311 and the ontology 313 of the received massage packet 300 is stored in the interpreter control table 350, the content 315 is interpreted by that interpreter. If an interpreter which corresponds to the agent communication language, descrip¬tion language type 311 and the ontology 313 of the re¬ceived massage packet 300 is not stored in the interpreter control table 350, determination is made as to whether or not an interpreter which corresponds to that combination exists in the interpreter library which is man¬aged (accessible) by the system.
If the interpreter exists, it is registered in the interpreter control table 350 and the content 315 is interpreted by using that interpreter. If an interpreter which corresponds to a combination of the agent communica¬tion language, description language type 311 and the ontology 313 does not exist in the interpreter library, determination is made as to whether or not an interpreter which corresponds to a combination of the description language type 311 and the ontology 313 exists in the interpreter library. If it does not exist, it is deter¬mined that the message can not be processed. In the preferred embodiment of this invention, the ontologies are

hierarchically structured so that an interpreter of a best matching ontology can be used.
If an interpreter exists and a translator exists and can be translate the language of content to the language that the interpreter can interpret, the control is transferred to the translator loader 219 to translate the content 315 into the agent communication language of so discovered interpreter. The translator loader 219 makes a reference to the translator control table 340 and determines whether or not there exists a translator which can execute the requested translation. In the preferred embodiment of this invention, if the translator does not exist, the transla¬tor library is searched in the way as the interpreter was searched, if a translator is found an entry is made to the table and the translated content 315 is processed by the selected interpreter. If the translator does not exist in the translator library, it is determined that the message can not be processed.
In the preferred embodiment of this invention, the result of the interpretation by the interpreter 225 is transmit¬ted to the agent 231 where it is processed according to the content of instructions which are described in the content 315. Depending on what is in the content 315, either the conversation thread is destroyed, a process is started to begin a new conversation, or a new agent is generated. In the preferred embodiment of this invention, the interpreter 225 returns the control to the conversa¬tion thread 207. The conversation thread will standby until another message is received.

In the preferred embodiment of this invention so far described, while the interpretation execution parts are registered in the control tables at the time of execution, they need not be registered at the time of execution and, instead, a check may be made at the time to start the agent communication system 200 as to what interpretation execution parts exist to form and maintain an interpreta¬tion execution part control table.
While the message packet 300 moves among nodes in the preferred embodiment of this invention, the message packet 300 may be sent in an attachment to a mobile agent. In such case, the mobile agent 233 moves around places and holds conversations with the message packet 300 attached thereto. It is further possible to carry out complexed jobs such as having a conversation at another place using the process result.
Movement of mobile agent over the network is effected by executing the steps shown in Fig.14.
[Advantage of the Invention]
As described above, this invention provides a communica¬tion system which is capable of giving a suitable response by using an interpretation execution part which conforms to the content (defined with background concept and vocabulary) of the conversations among agents.

In one of the aspects of this invention, a message pro¬cessing system is provided which enables a high speed processing by reducing unnecessary decision logics.
In another aspect of this invention, a message processing system is provided in which resources required for execu¬tion are decreased.
In still another aspect of this invention, a message processing system is provided which realizes a high speed parallel conversation processing.
In further aspect of this invention, the work and the time required for developing and maintaining a program are decreased as much as possible in providing a support to communication among agents.
In a further aspect of this invention, a message process¬ing system is provided which is capable of flexibly dealing with conversations among agents.
In a still further aspect of this invention, a message processing system is provided which gives less load to a communication network.

A message processing method for execution by a message processor which has a plurality of different interpreters for processing a message received through a network, said method comprising the steps of:
(a) receiving a message packet containing a context specification, a language specification and a message content, the language specification specifying the language of said message content;
(b) determining whether the plurality of different interpreters comprises an interpreter that is able to interpret the content contained in said message packet in conformance with the context specification contained in said message packet;
(c) responsive to a negative determination, determinmg using the language specification whether a translator exists which is able to translate said message content to a language for which one or more of the plurality of interpreters does exist;
(d) responsive to a determination that such a translator does exist, translating said message content;
(e) selecting one or more interpreters for interpreting the translated content contained in said message.
4. Brief Description of the Drawings:
Fig.l shows a distributed network environment in which the mobile agent of this invention operates.

Fig.2 is a block diagram showing one embodiment of the hardware configuration of the client system or the server system of this invention.

Fig. 2 is a block diagram showing one embodiment of the hardware configuration of the client system or the server system of this invention.
Fig.3 is a block diagram of one embodiment of processing components in the client site or the server site of this invention.
Fig.4 schematically shows an example of a message packet of this invention.
Fig.5 is a block diagram of one embodiment of processing components in the client (or server) site of this inven¬tion.
Fig. 6 is an object interaction diagram among the compo¬nents in a preferred embodiment of this invention.
Fig.7 schematically shows a conversation content monitor¬ing part control table in a preferred embodiment of this invention.
Fig.8 is a block diagram of one embodiment of processing components in the server (or client) site of this inven¬tion.
Fig.9 is an object interaction diagram among the compo¬nents in a preferred embodiment of this invention.
Fig,10 schematically shows an interpreter control table in a preferred embodiment of this invention.
Fig.11 schematically shows a translator control table in a preferred embodiment of this invention.
Fig.12 is a block diagram of one embodiment of processing

components in the client (or server) site 6f this inven¬tion.
Fig.13 is a block diagram of one embodiment of processing components in the server (or client) site of this inven¬tion.
Fig.14 is a flow chart showing an embodiment of process¬ing steps taken when the agent communication system of this invention is moved over the network.
[Description of Reference Numbers]
100 node system
2 00 agent communication'system
2 03 agent communication language manager
205 conversation thread control part
207 conversation thread
211 message log
213 ID generator
215 conversation content monitoring part loader
217 conversation content monitoring part
219 translator loader
221 translator
223 interpreter loader
225 interpreter
i


We claim:
1. A message processing method for execution by a message processor which has a plurality of different interpreters for processing a message received through a network, said method comprising the steps of:
a) receiving a message packet containing a context specification, a language specification and a message content, the language specification specifying the language of said message content;
b) determining whether the plurality of different interpreters comprises an interpreter that is able to interpret the content contained in said message packet in conformance with the context specification contained in said message packet;
c) responsive to a negative determination, determining using the language specification whether a translator exists which is able to translate said message content to a language for which one or more of the plurality of interpreters does exist;
d) responsive to a determination that such a translator does exist, translating said message content;
e) selecting one or more interpreters for interpreting the translated content contained in said message.

2. A message processing method according to claim 1, wherein the message
processor provides an interpreter control table for controlling a plurality of context
specifications which correspond to respective ones of said plurality of different
interpreters, said method comprising the steps of:
(a) in response to receipt of a message packet containing a context specification and a message content, determining whether or not an interpreter corresponding to the context specification contained in said message packet has been registered in said interpreter control table;
(b) determining whether or not the interpreter corresponding to said context specification is available in said message processor, when it is determined that the context specification contained in said message packet is not registered in said interpreter control table;
(c) registermg in said interpreter control table said corresponding interpreter in correspondence to the context specification contained in said message packet, when it is determined that the interpreter corresponding to the context specification contained in said message packet is available in said message processor; and
(d) interpreting the content contained in said message packet by means of said corresponding interpreter.
3. A message processor which has a plurality of different interpreters for
processing a message received through a network, said processor comprising:

(a) an agent communication language manager for receiving a message packet containing a context specification, a describing language specifying information and a content, the describing language specifying information specifying the language of said message content;
(b) means for determining whether the plurality of different interpreters comprises an interpreter that is able to interpret the content contained in said message packet in conformance with the context specification contained in said message packet;
(c) means, responsive to a negative determination, for determining using the describing language specifying information whether a translator exists which is able to translate said message content to a language for which one or more of the plurality of interpreters does exist;
(d) means, responsive to a determination that such a translator does exist, for translating said message content; and
(e) means for selecting one or more interpreters for interpreting the translated content contained in said message.
4. A message processor according to claim 3, wherein the agent communication language manager is adapted to receive a message packet containing a content specifying information and a response ID, wherein the message processor comprising
(a) a conversation thread control part for analyzing a response ID contained in said message packet to form conversation thread, and

(b) a message log for recording said message packet, and wherein the interpreter loader is adapted for selecting one or more interpreters from among said plurality of different interpreters in conformance to the context specification and describing language specifying information contained in said message packet.
5. A message processing method for execution by a message processor, substantially as herein described, with reference to the accompanying drawings.


Documents:

1237-mas-98 abstract duplicate.pdf

1237-mas-98 abstract.pdf

1237-mas-98 claims duplicate.pdf

1237-mas-98 claims.pdf

1237-mas-98 correspondence-others.pdf

1237-mas-98 correspondence-po.pdf

1237-mas-98 description (complete) duplicate.pdf

1237-mas-98 description (complete).pdf

1237-mas-98 drawings.pdf

1237-mas-98 form-1.pdf

1237-mas-98 form-19.pdf

1237-mas-98 form-26.pdf

1237-mas-98 form-4.pdf

1237-mas-98 form-6.pdf

1237-mas-98 others.pdf

1237-mas-98 petition.pdf


Patent Number 200255
Indian Patent Application Number 1237/MAS/1998
PG Journal Number 30/2009
Publication Date 24-Jul-2009
Grant Date
Date of Filing 08-Jun-1998
Name of Patentee INTERNATIONAL BUSINESS MACHINES CORPORATION
Applicant Address ARMONK, NEW YORK 10504
Inventors:
# Inventor's Name Inventor's Address
1 HAJIME TSUCHITANI 1901-102 DAI, KAMAKURA-SHI, KANAGAWA-KEN,
2 AKIFUMI NAKADA 5-16-14 SUGAO, MIYA, AE-KU, KAWASAKI-SHI, KANAGAWA-KEN
3 OSAMU FURUSAWA 9-19-24-C202 SAGAMIOHNO, SAGAMIHARA-SHI, KANAGAWA-KEN
PCT International Classification Number G10L21/00
PCT International Application Number N/A
PCT International Filing date
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 9-152170 1997-06-10 Japan