Knowledge Query and Manipulation Language
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.
Weblinks
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.