Interpretationsszenarien

Grundlegende Arbeitsweise

Einfachster Fall

  • Eingabe
    • Eingabesatz als Wortliste
  • Verarbeitung
    • Syntaxbaum aufbauen
    • Interpretieren
    • etc.
  • Ausgabe
    • Eintrag für die Auftrags-Queue
    • evtl. Rückfragen

Grundlegende Anfragetypen

  • Direkt beantwortbare Anfrage (Raumplan o.Ä.)
  • Einfacher Arbeitsauftrag (1 Eintrag in Auftragsqueue)
  • Komplexer Auftrag (mehr als 1 Einzelaktion oder Bedingungen)

Parsing-Ansatz

  • Pattern-Matching nach Wortgruppen ("in die Küche")
    • begrenzter Wortschatz (Namen, Raumnummern, Imperativformen)
    • sehr viele Patterns bei wachsendem Wortschatz
    • Problematisch: Komplexe Anfragen
  • "richtige" Syntaxanalyse mit DCG-Grammatik
    • mächtiger
    • Problematisch: Unvollständige/nicht erwartete Anfragen
  • Entscheidung: Erst einmal richtige DCG benutzen
    • ggf. später schauen, ob sich Pattern Matching sinnvoll einbauen lässt

Anbindung zur Robotersteuerung

  • Kommunikationskanal
    • Sockets
    • Datei-basiert (z.B. zeilenweise Auftragsliste)
    • Prolog -> C-Funktion -> JNI -> Java-Backend
  • Abgrenzung zur Steuerung
    • Wer übersetzt Namen in Raumnummern?
  • Arbeitsweise der Steuerung
    • Grundlage: Auftrags-Queue
    • Wir verwalten die Queue (Eintrag hinzufügen, löschen, ändern, abfragen)
  • Befehlssatz ("was rauskommt")
    • Gehe zu Raum X
    • Gib Objekt ab
    • Nimm Bild auf
    • Sag: "bla bla"
  • Möglichkeit, Anfragen an das Weltwissen etc. zu stellen
    • Gib aktuelle Region

Beispiele

  • Was machst du?
    • Queue abfragen
    • Queue-Einträge umschreiben und sammeln
    • Auftrag -> Sag: "Ich mache das-und-das"

  • Wo bist du gerade?
    • Anfrage an Weltwissen: Gib aktuelle Region
    • Anfrage an Auftragsliste: Gib nächsten Auftrag
    • Auftrag -> Sag: "Ich bin da-und-da und will das-und-das machen"

  • Wie sieht es bei Walter aus?
    • Anfrage: Wo ist Walter?
    • Einzelaufträge
      • Gehe zu [Ort von Walter]
      • Nimm Bild auf
      • Gehe zu [Ort der Auftragserteilung]
      • Zeige Bild

  • Hast du Walter das Buch gebracht?
    • Analyse: Auf welchen Auftrag wird Bezug genommen?
    • Einzelaufträge erzeugen, als wäre ein direkte Befehl gestellt worden
    • Vergleich: Kommen die generierten Aufträge so in der Liste der abgearbeiteten Aufträge vor
    • Auftrag -> Sag: "ja" oder "nein"

-- AlexGrupe - 20 Dec 2002
Warning: Can't find topic NatInt.WebLeftBarExample

 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback