Zum Inhalt springen

„Knowledge Query and Manipulation Language“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Bei der '''Knowledge Query and Manipulation Language''' (KQML) handelt es sich nach MURCH und JOHNSON um eine [[Programmiersprache]] und ein [[Netzwerkprotokoll|Protokoll]] zum Wissensaustausch.
Bei der '''Knowledge Query and Manipulation Language''' (KQML) handelt es sich nach Murch und Johnson um eine [[Programmiersprache]] und ein [[Netzwerkprotokoll|Protokoll]] zum Wissensaustausch.
Sie baut auf [[SGML]], dem Vorläufer von [[XML]], auf und wurde [[1993]] als Standard vorgeschlagen.
Sie baut auf [[SGML]], dem Vorläufer von [[Extensible Markup Language|XML]], auf und wurde [[1993]] als Standard vorgeschlagen.
Die KQML unterstützt die [[Netzwerk]]programmierung, die im Rahmen der [[Software-Agent|Agententechnologie]] für wissenbasierte Systeme und intelligente Agenten eingesetzt wird. Damit wird versucht eine [[Kollektive Intelligenz]] oder Schwarmintelligenz analog zu unserem [[Gehirn]] oder dem [[Internet]] aufzubauen.
Die KQML unterstützt die [[Netzwerk]]programmierung, die im Rahmen der [[Software-Agent|Agententechnologie]] für wissensbasierte Systeme und intelligente Agenten eingesetzt wird. Damit wird versucht eine [[Kollektive Intelligenz]] oder Schwarmintelligenz analog zu unserem [[Gehirn]] oder dem [[Internet]] aufzubauen.


KQML verfolgt ähnliche Ziele wie [[CORBA]], [[Java (Programmiersprache)|Java]]-[[Remote Method Invocation|RMI]] und andere [[Plattform (Computer)|Plattformen]] zum [[Verteiltes Rechnen|verteilten Rechnen]].
KQML verfolgt ähnliche Ziele wie [[CORBA]], [[Java (Programmiersprache)|Java]]-[[Remote Method Invocation|RMI]] und andere [[Plattform (Computer)|Plattformen]] zum [[Verteiltes Rechnen|verteilten Rechnen]].
Zeile 7: Zeile 7:
KQML wurde durch die Knowledge-Sharing-Effort-Initiative der ARPA (heute [[DARPA]]) unterstützt.
KQML wurde durch die Knowledge-Sharing-Effort-Initiative der ARPA (heute [[DARPA]]) unterstützt.


KQML lehnt sich an die Theorie der [[Sprechakttheorie|Sprechakte]] an, um Typen von Nachrichten zu klassifizieren. In der KQML Terminologie heißen die verschiedenen Ausprägungen ''Performatives.'' Der Standard definiert 36 verschiedene Typen von Performatives, z. B. Anfragen, Zusagen, Absagen, etc. Eine KQML Nachricht wird auch KQML-Paket genannt. Neben dem verwendeten Performative enthält ein Paket den eigentlichen Inhalt, die Namen des Absenders und des Empfängers, sowie die Angabe der Sprache des Inhalts und einer Ontologie. Der eigentliche Inhalt des Pakets kann in diversen Sprachen, z. B. [[Prolog (Programmiersprache)|Prolog]], [[Knowledge Interchange Format|KIF]] oder auch KQML selber, verfasst sein. Die Sprache wird mit angegeben, damit der Empfänger weiß, wie die Daten zu interpretieren sind, bzw. ob er die Daten interpretieren kann. Die Angabe einer [[Ontologie (Informatik)|Ontologie]], also eines bestimmten Wissensgebiets, in dessen Vokabular die Nachricht zu interpretieren ist, soll eventuelle Zweideutigkeiten auflösen. Der allgemeine Aufbau eines KQML-Pakets ergibt sich zu:
KQML lehnt sich an die Theorie der [[Sprechakttheorie|Sprechakte]] an, um Typen von Nachrichten zu klassifizieren. In der KQML Terminologie heißen die verschiedenen Ausprägungen ''Performatives.'' Der Standard definiert 36 verschiedene Typen von Performatives, z. B. Anfragen, Zusagen, Absagen etc. Eine KQML Nachricht wird auch KQML-Paket genannt. Neben dem verwendeten Performative enthält ein Paket den eigentlichen Inhalt, die Namen des Absenders und des Empfängers, sowie die Angabe der Sprache des Inhalts und einer Ontologie. Der eigentliche Inhalt des Pakets kann in diversen Sprachen, z. B. [[Prolog (Programmiersprache)|Prolog]], [[Knowledge Interchange Format|KIF]] oder auch KQML selber, verfasst sein. Die Sprache wird mit angegeben, damit der Empfänger weiß, wie die Daten zu interpretieren sind, bzw. ob er die Daten interpretieren kann. Die Angabe einer [[Ontologie (Informatik)|Ontologie]], also eines bestimmten Wissensgebiets, in dessen Vokabular die Nachricht zu interpretieren ist, soll eventuelle Zweideutigkeiten auflösen. Der allgemeine Aufbau eines KQML-Pakets ergibt sich zu:


<pre>
<pre>
Zeile 23: Zeile 23:
<pre>
<pre>
(ask-one
(ask-one
:content adresse("Wikipedia", X)
:content adresse(„Wikipedia“, X)
:sender A
:sender A
:receiver B
:receiver B
Zeile 35: Zeile 35:
<pre>
<pre>
(tell
(tell
:content adresse("Wikipedia", "de.wikipedia.org")
:content adresse(„Wikipedia“, „de.wikipedia.org“)
:sender B
:sender B
:receiver A
:receiver A
Zeile 42: Zeile 42:
)
)
</pre>
</pre>



In diesem Beispiel ist die Angabe der [[Ontologie (Informatik)|Ontologie]] wichtig, da der Fakt ''adresse'' evtl. mehrdeutig sein kann; hätte die Wikipedia eine Postanschrift, so könnte Agent A ja auch diese angefordert haben. Durch die Angabe einer Ontologie werden derartige Missverständnisse vermieden.
In diesem Beispiel ist die Angabe der [[Ontologie (Informatik)|Ontologie]] wichtig, da der Fakt ''adresse'' evtl. mehrdeutig sein kann; hätte die Wikipedia eine Postanschrift, so könnte Agent A ja auch diese angefordert haben. Durch die Angabe einer Ontologie werden derartige Missverständnisse vermieden.
Zeile 50: Zeile 49:


[[Kategorie:Beschreibungssprache]]
[[Kategorie:Beschreibungssprache]]

[[en:Knowledge Query and Manipulation Language]]
[[fr:Knowledge Query and Manipulation Language]]
[[it:KQML]]

Aktuelle Version vom 2. August 2022, 21:20 Uhr

Bei der Knowledge Query and Manipulation Language (KQML) handelt es sich nach Murch und Johnson um eine Programmiersprache und ein Protokoll zum Wissensaustausch. Sie baut auf SGML, dem Vorläufer von XML, auf und wurde 1993 als Standard vorgeschlagen. Die KQML unterstützt die Netzwerkprogrammierung, die im Rahmen der Agententechnologie für wissensbasierte Systeme und intelligente Agenten eingesetzt wird. Damit wird versucht eine Kollektive Intelligenz oder Schwarmintelligenz analog zu unserem Gehirn oder dem Internet aufzubauen.

KQML verfolgt ähnliche Ziele wie CORBA, Java-RMI und andere Plattformen zum verteilten Rechnen.

KQML wurde durch die Knowledge-Sharing-Effort-Initiative der ARPA (heute DARPA) unterstützt.

KQML lehnt sich an die Theorie der Sprechakte an, um Typen von Nachrichten zu klassifizieren. In der KQML Terminologie heißen die verschiedenen Ausprägungen Performatives. Der Standard definiert 36 verschiedene Typen von Performatives, z. B. Anfragen, Zusagen, Absagen etc. Eine KQML Nachricht wird auch KQML-Paket genannt. Neben dem verwendeten Performative enthält ein Paket den eigentlichen Inhalt, die Namen des Absenders und des Empfängers, sowie die Angabe der Sprache des Inhalts und einer Ontologie. Der eigentliche Inhalt des Pakets kann in diversen Sprachen, z. B. Prolog, KIF oder auch KQML selber, verfasst sein. Die Sprache wird mit angegeben, damit der Empfänger weiß, wie die Daten zu interpretieren sind, bzw. ob er die Daten interpretieren kann. Die Angabe einer Ontologie, also eines bestimmten Wissensgebiets, in dessen Vokabular die Nachricht zu interpretieren ist, soll eventuelle Zweideutigkeiten auflösen. Der allgemeine Aufbau eines KQML-Pakets ergibt sich zu:

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

Im folgenden Beispiel erfragt Agent A bei Agent B die URL der Wikipedia:

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

Agent B antwortet mit:

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

In diesem Beispiel ist die Angabe der Ontologie wichtig, da der Fakt adresse evtl. mehrdeutig sein kann; hätte die Wikipedia eine Postanschrift, so könnte Agent A ja auch diese angefordert haben. Durch die Angabe einer Ontologie werden derartige Missverständnisse vermieden.