Informationssammler Software Agenten zur Informationssammlung Tobias Gerke Andreas
Informationssammler Software Agenten zur Informationssammlung Tobias Gerke, Andreas Jäger nach Craig A. Knoblock & José Luis Ambite (1997)
Informationssammler Einführung Schwerpunkte von Arbeiten über Agenten: • Definition von Modellen über die Intention, die Fähigkeit und den Bedarf von Agenten • Planung von Multi-Agenten-Systemen • Entwicklung von Agenten zur Informationssammlung
Informationssammler Einführung Gegenwärtige Situation: • Riesige, ständig wachsende, inhomogene Informationsmengen • Fehlen eines Mittels zum Auffinden, Kombinieren, Verarbeiten und Organisieren von Informationen Verwaltung der Informationen in einem Netz von Informations-Agenten
Informationssammler Gliederung 1. Organisation der Informationssammler 2. Wissensbasis der Agenten 3. Kommunikation der Agenten 4. Bearbeiten von Anfragen 5. Der Lernprozess 6. Fazit
Informationssammler Organisation der Informationssammler Grundgedanke: • Stellen Informationen zu einem speziellen Fachgebiet zur Verfügung • Beziehen Informationen von anderen Agenten • Dienen anderen Agenten als Informationsquelle
Informationssammler Organisation der Informationssammler Begriffliche Konventionen: • Informations-Agent: Dient als Informationsquelle, stellt aber selbst auch Anfragen • Data-Repository: Stellt nicht aktiv Anfragen • Wrapper: Schnittstelle, die jeder Agent des Systems gebildet haben muss Gemeinsame Sprache
Informationssammler Organisation der Informationssammler
Wissensbasis der Agenten Informationssammler Jeder Agent beinhaltet: • Abbild seines Fachgebiets = domain model • Modelle der Agenten, die er als Quelle nutzt = information-source model • Beziehungen zwischen den Modellen
Wissensbasis der Agenten • domain model Informationssammler Beispiel: • source model des Naval Agent • source model des Harbor Agent • source model des Port Agent Sea Agent Naval Agent Harbor Agent Port Agent
Wissensbasis der Agenten Informationssammler Teil des domain model vom Sea_Agent:
Wissensbasis der Agenten Informationssammler information-source und domain model:
Wissensbasis der Agenten Informationssammler information-source und domain model:
Kommunikation der Agenten Informationssammler Agenten nutzen einheitlich • Sprache Loom knowledge representation language • Protokoll KQML
Informationssammler Kommunikation der Agenten Loom als einheitliche Abfragesprache keine teuren Unterabfragen KQML als einheitliches Protokoll Einfache Rückgabe von Ergebnissen KQMLMessage mit Loom-Query Recipient Agent KQMLMessage mit Loom-Query Source Agent KQMLMessage mit Informationen Subsource Agent KQMLMessage mit Informationen
Kommunikation der Agenten Informationssammler Beispiel einer Loom-Abfrage: Parameterliste Beschreibung der gewünschten Information (retrieve (? port_name ? ship_type) (: and (seaport ? port) (port_name ? port_name) (has_channel ? port ? channel) (channel_depth ? channel ? depth) (ship ? ship) (vehicle_type ? ship_type) (max_draft ? ship ? draft) (> ? depth ? draft)))
Informationssammler Bearbeiten von Abfragen • Keine umgehende Ausführung von Anfragen • Vorgehen: • Auswahl der Informationsquellen • Erstellen eines Abfrage-Plans • Abfrageoptimierung • Ausführung der Anfrage
Bearbeiten von Abfragen Informationssammler Unterteilung der Verarbeitung von Anfragen: • Ziel • Anfangszustand • Operatoren
Bearbeiten von Abfragen Informationssammler Beispiel eines Planungsziels in Loom: (available output sims (retrieve (? port_name ? ship_type) (: and (seaport ? port) (port_name ? port_name) (has_channel ? port ? channel) (channel_depth ? channel ? depth) (ship ? ship) (vehicle_type ? ship_type) (range ? ship ? range) (> ? range 10000) (max_draft ? ship ? draft) (> ? depth ? draft))))
Bearbeiten von Abfragen Informationssammler Beispiel eines Anfangszustandes in Loom: ((source-available Naval_Agent isd 12. isi. edu) (source-available Harbor_Agent isd 14. isi. edu) (source-available Port_Agent isd 14. isi. edu))
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen - • Agent benutzt Operatoren zur Auswahl der Informationsquellen: • Operator der Informationsquellenauswahl
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Informationssammler Anwendung des Auswahloperators in Loom: Domain–Level Query: (retrieve (? port_name ? depth) (: and (seaport ? port) (port_name ? port_name) (geoloc_code ? port ? geocode) (channel ? channel) (geoloc_code ? channel ? geocode) (channel_depth ? channel ? depth))) Source-Level Query: (retrieve (? port_name ? depth) (: and (harbor_agent. harbor ? port) (harbor_agent. port_nm ? port_name) (harbor_agent. glc_cd ? port ? geocode) (harbor_agent. channel ? channel) (harbor_agent. glc_cd ? channel ? geocode) (harbor_agent. ch_depth_ft ? channel ? depth)))
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen - • Agent benutzt Operatoren zur Auswahl der Informationsquellen: • Operator der Informationsquellenauswahl • Konzept-Verallgemeinerungsoperator
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen -
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen - • Agent benutzt Operatoren zur Auswahl der Informationsquellen: • Operator der Informationsquellenauswahl • Konzept-Verallgemeinerungsoperator • Definitions-Ersetzungs-Operator
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Auswahl der Informationsquellen - Informationssammler Anwendung des Ersetzungsoperators in Loom: (retrieve (? port_name ? ship_type) (: and (seaport ? port) (port_name ? port_name) (geoloc_code ? port ? geocode) (channel ? channel) (geoloc_code ? channel ? geocode) (channel_depth ? channel ? depth) (ship ? ship) (vehicle_type ? ship_type) (range ? ship ? range) (> ? range 10000) (max_draft ? ship ? draft) (> ? depth ? draft)))
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen - • Agent benutzt Operatoren zur Auswahl der Informationsquellen: • Operator der Informationsquellenauswahl • Konzept-Verallgemeinerungsoperator • Definitions-Ersetzungs-Operator • Konzept-Spezialisierungsoperator
Bearbeiten von Abfragen Informationssammler - Auswahl der Informationsquellen -
Bearbeiten von Abfragen - Erstellen eines Abfrageplans - Informationssammler • Planerstellung vor Ausführung einer Abfrage • Hierzu: Datenmanipulations-Operatoren • Move • Join • Retrieve • Select • Compute • Durch Schätzfunktion Plan geringster Kosten
Bearbeiten von Abfragen - Erstellen eines Abfrageplans - Informationssammler Beispiel eines Bearbeitungsplanes in Loom: (retrieve harbor_agent (? port_name ? depth) (and (harbor ? port) (port_nm ? port_name) (select (glc_cd ? port ? glc_cd) harbor_agent (channel ? channel) isd 12. isi. edu) (glc_cd ? channel ? glc_cd) (ch_depth_ft ? channel ? depth))) (move harbor_agent local) (join (< ? draft ? depth) (retrieve naval_agent (? ship_type ? draft) (and (ship ? ship) (sht_nm ? ship_type) (range ? ship ? range) (> ? range 10000) (max_draft ? ship ? draft))) (select naval_agent isd 14. isi. edu) (move naval_agent local)
Bearbeiten von Abfragen Informationssammler - Gleichzeitiges Planen und Ausführen - Der Agent kann gleichzeitig Prozesse ausführen und andere Prozesse planen. Hierzu notwendig: interne Liste aller laufende Aktionen Aktion beendet wenn korrekt, als fertig markieren wenn fehlerhaft, Plan neu erstellen
Bearbeiten von Abfragen - Gleichzeitiges Planen und Ausführen - Informationssammler Der Agent kann. . . • Anfragen annehmen und planen, während er andere ausführt. • bei Fehlern den Plan umstellen ohne laufende Abfragen zu unterbrechen. • selbstständig weiter Informationen für den Abfrageprozess einholen.
Bearbeiten von Abfragen - Semantische Abfragenoptimierung - Informationssammler • Es existiert eine Reihe semantischer Regeln. • Diese stellen Wissen dar, mit dem Abfragen verändert werden können. • Ziel: • Zahl der Unterabfragen minimieren • Zwischendaten gering halten Kosten senken
Bearbeiten von Abfragen - Semantische Abfragenoptimierung Ursprüngliche Abfrage: Informationssammler (retrieve (? ship-type ? draft) (: and (naval_agent. ship ? ship) (naval_agent. sht_nm ? ship-type) (naval_agent. max_draft ? ship ? draft) (naval_agent-range ? ship ? range) (> ? range 10000))) Semantische Regel: (: if (: and (naval_agent. ship ? ship) (naval_agent. range ? ship ? range) (naval_agent. fuel_cap ? ship ? fuel_cap) (> ? range 10000) (: then (< ? draft 12))) Umformulierte Abfrage: (retrieve (? sht-type ? draft) (: and (naval_agent. sht_nm ? ship) (naval_agent. sht_nm ? ship-type) (naval_agent. max_draft ? ship ? draft) (> ? draft 12)))
Der Lernprozess Informationssammler • Steigert Genauigkeit und Effizienz • 3 Arten der Lernens: • Speicherung häufig gebrauchter oder teuer zu bekommener Informationen • Ableitung semantischer Regeln • Abgleich der Agentenmodelle
Der Lernprozess Informationssammler - Cachen erhaltener Daten - • Erhaltene Daten sowie Abfrage (als Beschreibung) werden lokal im Agenten gehalten • Beschreibung neues Unterkonzept • Daten Instanzen des Unterkonzepts • Automatische Berücksichtigung der neuen Informationsquelle bei späteren Abfragen • Speicherung nur genereller, einfacher Abfragen mit statischem Inhalt
Der Lernprozess Informationssammler - Lernen semantischer Regeln - • Ausgangspunkt: Auftreten einer teuren Abfrage • Selbständige Informationseinholung in nächster Ruhephase des Systems: • Abfrage wird in äquivalente umformuliert • Bei Effizienzsteigerung: Ableitung von Regeln • Übernahme der Regeln in das domainmodel
Der Lernprozess - Abgleichen der Agentenmodelle - Informationssammler Annahme bisher: vollständige Abstimmung der Modelle auf einander Aber: Modelldesigner hatte kein komplettes Verständnis über Semantiken der Informationen. Autonomie der Agenten bewirkt stetige dynamische Veränderung der Konzepte.
Der Lernprozess - Abgleichen der Agentenmodelle - Informationssammler Lösung: Abgleichen bei Inkonsistenz in drei Schritten. • Prüfung auf Differenzen • neue Klassen in domain model aufnehmen • wenn möglich, durch Lernalgorithmus Beschreibungen des neuen Konzepts ermitteln.
Der Lernprozess - Abgleichen der Agentenmodelle - Informationssammler Beispiel: Ausgangssituation: gleiche Informationen über Seehäfen in Harbor_Agent. Harbor und Port_Agent. Port Erweiterung des Port_Agent um Informationen über kleine Fischerhäfen. Jetzt ist Harbor_Agent eine Teilmenge von Port_Agent.
Der Lernprozess - Abgleichen der Agentenmodelle - Informationssammler Beispiel - Ausgangssituation:
Der Lernprozess - Abgleichen der Agentenmodelle - Informationssammler Beispiel - Angeglichenes Model:
Informationssammler Fazit Eigenschaften des Systems • Modularität • Erweiterbarkeit • Flexibilität • Effizienz • Anpassungsfähigkeit
Informationssammler The End . . . noch Fragen?
- Slides: 45