nani search "the ultimate help for desperate kids"... oder eine knacknuss fÜr prolog...
TRANSCRIPT
NANI SEARCHNANI SEARCH
NANI SEARCH NANI SEARCH "THE ULTIMATE HELP FOR DESPERATE KIDS""THE ULTIMATE HELP FOR DESPERATE KIDS"
... ODER EINE KNACKNUSS FÜR PROLOG ANFÄNGER... ODER EINE KNACKNUSS FÜR PROLOG ANFÄNGER
NANI SEARCHNANI SEARCH
PräsentationszielePräsentationsziele
Spiel IdeeSpiel Idee Elemente von NANI SEARCHElemente von NANI SEARCH Spiel Demonstration Spiel Demonstration BoxenmodellBoxenmodell SchlüsselkonzepteSchlüsselkonzepte SyntaxanalyseSyntaxanalyse Persönliches Ziel: Power Point als Persönliches Ziel: Power Point als
Präsentationsmedium einsetzenPräsentationsmedium einsetzen
NANI SEARCHNANI SEARCH
Spiel Idee - LayoutSpiel Idee - Layout
OfficeOffice
Dining RoomDining Room
HallHall
KitchenKitchen CellarCellar
NANI SEARCHNANI SEARCH
Spiel Idee - Ziel/SteuerungSpiel Idee - Ziel/Steuerung
Ziel des Spiels:Ziel des Spiels:
Auffinden der Decke, Auffinden der Decke, Bärli, Bärli!Bärli, Bärli! . .
Spielsteuerung:Spielsteuerung:
Das Spiel wird mit einfachen englischenDas Spiel wird mit einfachen englischen
Kommandos gesteuert.Kommandos gesteuert.
NANI SEARCHNANI SEARCH
Spiel Idee - Mögliche AktionenSpiel Idee - Mögliche Aktionen
In andere Räume gehenIn andere Räume gehen Die Umgebung anschauenDie Umgebung anschauen In Dinge hineinschauenIn Dinge hineinschauen Dinge nehmen oder weglegenDinge nehmen oder weglegen Dinge essenDinge essen Dinge untersuchenDinge untersuchen Dinge ein- oder ausschaltenDinge ein- oder ausschalten
NANI SEARCHNANI SEARCH
Spiel Idee - Spiel Idee - Mögliche Kommandos mit Beisp.Mögliche Kommandos mit Beisp.
go to a room ex. go to the officego to a room ex. go to the office look around ex. looklook around ex. look look in something ex. look in the desklook in something ex. look in the desk take something ex. take the appletake something ex. take the apple drop something ex. drop the appledrop something ex. drop the apple eat something ex. eat the apppleeat something ex. eat the appple turn something on ex. turn on the lightturn something on ex. turn on the light inventory your things ex. inventoryinventory your things ex. inventory
NANI SEARCHNANI SEARCH
Elemente von NANI SEARCHElemente von NANI SEARCH
LogikLogik Bekannte Programm KonstrukteBekannte Programm Konstrukte Natürliche SpracheNatürliche Sprache Eingabe ParserEingabe Parser Datenbank, welche die aktuelle Umgebung Datenbank, welche die aktuelle Umgebung
beschreibtbeschreibt Befehle, welche die Umgebung manipulierenBefehle, welche die Umgebung manipulieren
NANI SEARCHNANI SEARCH
SpieldemonstrationSpieldemonstration
Aufruf mit "main."Aufruf mit "main."
NANI SEARCHNANI SEARCH
Vierport- oder BoxenmodellVierport- oder Boxenmodell
Dem Boxen-Modell liegt die Vorstellung Dem Boxen-Modell liegt die Vorstellung zugrunde, dass sich die Ableitbarkeits-Prüfung zugrunde, dass sich die Ableitbarkeits-Prüfung jedes Prädikats einheitlich durch ein Kästchen jedes Prädikats einheitlich durch ein Kästchen darstellen lässt:darstellen lässt:
EXITEXITCALLCALL
FAILFAIL REDOREDO
PrädikatPrädikat
NANI SEARCHNANI SEARCH
FailFail
EXITEXITCALLCALL
FAILFAIL REDOREDO
fail/0fail/0
NANI SEARCHNANI SEARCH
EXITEXITCALLCALL
FAILFAIL REDOREDO
repeat/0repeat/0
RepeatRepeat
NANI SEARCHNANI SEARCH
EingabeschleifeEingabeschleife
command_loop/0command_loop/0
repeat/0repeat/0 get_command(X)get_command(X) do(X)do(X) nanifoundnanifound
Die Abarbeitung einer Klausel, die ein repeat enthält Die Abarbeitung einer Klausel, die ein repeat enthält wird im allgemeinen dadurch beendet, dass die wird im allgemeinen dadurch beendet, dass die Gesamtkonjunktion bewiesen werden kann, das zu Gesamtkonjunktion bewiesen werden kann, das zu beweisende Teilziel kann also gezeigt werden.beweisende Teilziel kann also gezeigt werden.
command_loop:-command_loop:-repeatrepeatget_command(X),get_command(X),do(X),(nanifound; X==quit).do(X),(nanifound; X==quit).
NANI SEARCHNANI SEARCH
Schlüsselkonzepte ISchlüsselkonzepte I
Raumverbindungen(Türen)Raumverbindungen(Türen)
door(office,hall).door(office,hall).
wenn wir eine Zweiweg-Verbindung zwischen den wenn wir eine Zweiweg-Verbindung zwischen den
Türen haben möchten müssten wir ein 2. Prädikat Türen haben möchten müssten wir ein 2. Prädikat
schreiben: door(hall,office).schreiben: door(hall,office).
connect(X,Y):- door(X,Y).connect(X,Y):- door(X,Y). door(office,hall).door(office,hall).
connect(X,Y):- door(Y,X).connect(X,Y):- door(Y,X). door(hall,office).door(hall,office).
Implizit besteht eine OR Verknüpfung zwischen den Implizit besteht eine OR Verknüpfung zwischen den
Klauseln.Klauseln.
NANI SEARCHNANI SEARCH
Schlüsselkonzepte IISchlüsselkonzepte II
Dynamische Prädikate:Dynamische Prädikate: location/2location/2 here/1here/1 have/1have/1 turned_on/1 oder turned_off/1turned_on/1 oder turned_off/1
Die Fähigeit Daten in der Datenbasis manipulieren zu Die Fähigeit Daten in der Datenbasis manipulieren zu
können ist eine wichtige Eigenschaft von NANIkönnen ist eine wichtige Eigenschaft von NANI
SEARCH. Dadurch können wir dynamisch den Ort des SEARCH. Dadurch können wir dynamisch den Ort des
Spielers wechseln, wie auch die Dinge, die genommen Spielers wechseln, wie auch die Dinge, die genommen
und bewegt werden.und bewegt werden.
NANI SEARCHNANI SEARCH
Schlüsselkonzepte IIISchlüsselkonzepte III
move/1 move/1 datiert die Datenbank dynamisch auf, um z.B. datiert die Datenbank dynamisch auf, um z.B.
den neuen Aufenthaltsort des Spielers anzuzeigen. den neuen Aufenthaltsort des Spielers anzuzeigen.
Mit retract wird die alte Klausel here/1 ersetzt. Dadurch Mit retract wird die alte Klausel here/1 ersetzt. Dadurch
wird immer nur eine here/1 Klausel den aktuellen wird immer nur eine here/1 Klausel den aktuellen
Standort beeinhalten.Standort beeinhalten.
move(Place):-move(Place):-retract(here(X)),retract(here(X)), Alte Klausel wird entferntAlte Klausel wird entfernt
asserta(here(Place)).asserta(here(Place)). Neue Klausel wird eingefügtNeue Klausel wird eingefügt
NANI SEARCHNANI SEARCH
Schlüsselkonzepte IVSchlüsselkonzepte IV
inventory:-inventory:-have(X),have(X), Sicherstellen,dass man zumindest ein Ding besitzt.Sicherstellen,dass man zumindest ein Ding besitzt.
write('You have: '),nl,write('You have: '),nl,
list_possessions.list_possessions.
inventory:-inventory:-
write('You have nothing'),nl.write('You have nothing'),nl.
NANI SEARCHNANI SEARCH
Syntaxanalyse ISyntaxanalyse I
Eine Grammatik beschreibt formal exakt, wie sich jede Eine Grammatik beschreibt formal exakt, wie sich jede
Konstituente der Sprache aus anderen Konstituenten Konstituente der Sprache aus anderen Konstituenten
zusammensetzt.zusammensetzt.
Zum Beispiel besteht der einfache Hauptsatz Zum Beispiel besteht der einfache Hauptsatz
John eats the appleJohn eats the apple
aus der Nominalphrase aus der Nominalphrase JohnJohn und der Verbalphrase und der Verbalphrase
eats the appleeats the apple. Dies kann durch die Regel. Dies kann durch die Regel
S --> NP VPS --> NP VP
ausgedrückt werden. Eine solche Regel heisst auch ausgedrückt werden. Eine solche Regel heisst auch
Produktion.Produktion.
NANI SEARCHNANI SEARCH
Syntaxanalyse IISyntaxanalyse II
Nominalphrase: Nominalphrase:
Wortgruppe in einem Satz mit einem Nomen als Wortgruppe in einem Satz mit einem Nomen als
Kernglied.Kernglied.
Verbalphrase: Verbalphrase:
Wortgruppe in einem Satz mit einem Verb als Wortgruppe in einem Satz mit einem Verb als
Kernglied.Kernglied.
Konstituente:Konstituente:
Sprachliche Einheit.Sprachliche Einheit.
NANI SEARCHNANI SEARCH
Syntaxanalyse IIISyntaxanalyse III
Für unser Mini Fragment des englischen nehmen wir Für unser Mini Fragment des englischen nehmen wir
eine Grammatik an, die aus folgenden Produktionen eine Grammatik an, die aus folgenden Produktionen
besteht.besteht.
1. S --> NP VP1. S --> NP VP
2. NP --> DET N2. NP --> DET N
3. NP --> N3. NP --> N
4. VP --> V NP4. VP --> V NP
5. VP --> V5. VP --> V
NANI SEARCHNANI SEARCH
Syntaxanalyse IVSyntaxanalyse IV
Lexikon: Ist durch folgende Lexikon: Ist durch folgende
Wörter und ihre syntakti- Wörter und ihre syntakti-
sche Kategorien gegeben:sche Kategorien gegeben:
johnjohn NN
appleapple NN
thethe DETDET
eatseats VV
NPNP
VV NPNP
VPVP
DETDET NN
NN
SS
JohnJohn eatseats thethe appleapple
NANI SEARCHNANI SEARCH
Rück- und AusblickRück- und Ausblick NANI SEARCH Beinhaltet einfache bis komplizierte PROLOG-NANI SEARCH Beinhaltet einfache bis komplizierte PROLOG-
Konstrukte, .Konstrukte, . Mit dem Debugger kann der Programmablauf nachvollzogen werden.Mit dem Debugger kann der Programmablauf nachvollzogen werden.
Papi, if there is Artificial Intelligence, there’s bound to be some artificial stupidity!!!
Ha Ha Hi