Knowledge Query and Manipulation Language

from Wikipedia, the free encyclopedia

According to Murch and Johnson, the Knowledge Query and Manipulation Language (KQML) is a programming language and a protocol for exchanging knowledge. It is based on SGML , the forerunner of XML , and was proposed as a standard in 1993 . The KQML supports network programming , which is used in the context of agent technology for knowledge-based systems and intelligent agents. This tries to build a collective intelligence or swarm intelligence analogous to our brain or the Internet .

KQML pursues similar goals as CORBA , Java - RMI and other platforms for distributed computing .

KQML was supported by the Knowledge Sharing Effort Initiative of ARPA (now DARPA ).

KQML is based on speech act theory to classify types of messages. In the KQML terminology, the different expressions are called performatives. The standard defines 36 different types of performatives, e.g. B. Inquiries, confirmations, rejections, etc. A KQML message is also called a KQML package. In addition to the performative used, a package contains the actual content, the names of the sender and recipient, as well as the specification of the language of the content and an ontology. The actual content of the package can be in various languages, e.g. B. Prolog , KIF or KQML itself. The language is also specified so that the recipient knows how to interpret the data or whether he can interpret the data. The specification of an ontology , i.e. a specific field of knowledge, in whose vocabulary the message is to be interpreted, is intended to resolve any ambiguities. The general structure of a KQML package is as follows:

(<Performative>
    :content    <speechact>
    :sender     <name>
    :receiver   <name>
    :language   <text>
    :ontology   <text>
)

In the following example, Agent A asks Agent B for the Wikipedia URL:

(ask-one
    :content    adresse("Wikipedia", X)
    :sender     A
    :receiver   B
    :language   Prolog
    :ontology   Webseiten
)

Agent B responds with:

(tell
    :content    adresse("Wikipedia", "de.wikipedia.org")
    :sender     B
    :receiver   A
    :language   Prolog
    :ontology   Webseiten
)

In this example, the specification of the ontology is important, since the fact address can possibly be ambiguous; if Wikipedia had a postal address, Agent A could have requested it too. Such misunderstandings are avoided by specifying an ontology.

Web links