Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Merkmalslogik Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.

Ähnliche Präsentationen


Präsentation zum Thema: "Merkmalslogik Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf."—  Präsentation transkript:

1 Merkmalslogik Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf

2 Merkmalslogik2 Merkmalsstrukturen Var, Type, [F 1 :V 1,...,F n :V n ] FSS falls: Var PROLOGVARS Type TYPES F FEATURES V FSS

3 Merkmalslogik3 Beispiel - FSs (_1,agr, [cas:(_2,cas,[]), num:(_3,num,[]), gen:(_4,gen,[])]) (_1,agr, [cas:(_2,acc,[]), num:(_3,sg,[]), gen:(_4,fem,[])]) KlasseInstanz

4 Merkmalslogik4 Merkmalslogik Eine Merkmalslogik definiert eine Beschreibungssprache für Merkmalsstrukturen. Die Semantik eines Ausdrucks in unserer Merkmalslogik wird durch die partielle Funktion mgu definiert: mgu: Descr 2 FSs Partiell: nicht alle Beschreibungen haben Lösungen. Potenzmenge: manche Beschreibungen haben mehrere Lösungen, da durch Disjunktion und Negation ein Nichtdeterminismus eingebracht wird.

5 Merkmalslogik5 Bestandteile der Logik Variablen Typen Attribut-Wert-Paare Konjunktion Disjunktion Negation Makros PrologVar DESCR Type DESCR F:DESCR DESCR DESCR, DESCR DESCR DESCR; DESCR DESCR - DESCR DESCR

6 Merkmalslogik6 Makrodefinitionen MakroHead macro Descr. wobei: MakroHead = MakroName(Arg 1,..., Arg n ) MakroName ATOM Arg i PROLOGVAR Descr DESCR

7 Merkmalslogik7 mgu/1 mgu(Descr):- mgu(Descr,top, FS), print_fs(FS). (_1,agr, [cas:(_2,cas,[]), num:(_3,num,[]), gen:(_4,gen,[])]) agr

8 Merkmalslogik8 Variablen mgu(V, _, FS):- var(V), !, mgu(top, _, FS), FS = (V - _ = _).

9 Merkmalslogik9 Typen mgu(T, _, FS):- type(T), !, db_fs(T, FS). vorkompiliert

10 Merkmalslogik10 Attribut-Wert-Paare mgu(F:V,_,FS):- !, db_feature_lub(F:C,LUB), mgu(V,C,VFS), fval_unify(F,LUB,VFS,FS). fval_unify(F,LUB,VFS,FS):- mgu(LUB,top,LUBFS), unify((_-LUB=[F:VFS]),LUBFS,FS), !. Backtracking

11 Merkmalslogik11 Konjunktion mgu((A,B),C,I):- !, mgu(A,C,AI), mgu(B,C,BI), unify(AI,BI,I).

12 Merkmalslogik12 Disjunktion mgu((A;B),C,I):- !, (mgu(A,C,I) ; mgu(B,C,I)). Nicht- Determinismus

13 Merkmalslogik13 Makros Macro,C,MI):- !, call(Macro macro Def), mgu(Def,C,MI).

14 Merkmalslogik14 Negation Negation von –Variablen –Typen –Attribut-Wert-Paaren –Konjunktion –Disjunktion –Negation –Makros Strategie: Auflösung der Negation komplexer Beschreibungen durch Verschiebung auf einfachere Bestandteile.

15 Merkmalslogik15 Negation von Variablen mgu(V, _, FS):- var(V), !, fail. Diese Semantik negierter Variablen ist auf Dauer nicht wünschenswert.

16 Merkmalslogik16 Negation von Typen mgu(-A,CT,FS):- type(A), !, complement(A,CT,C), member(T,C), mgu(T,CT,FS).

17 Merkmalslogik17 Negation von F:V-Paaren mgu(- (F:V),C,I):- !, mgu((F:(-V)),C,I).

18 Merkmalslogik18 Negation von Konjunktion mgu(- (A,B),C,I):- !, mgu(((-A);(-B)),C,I). Nach DeMorgan.

19 Merkmalslogik19 Negation von Disjunktion mgu(- (A;B),C,I):- !, mgu(((-A),(-B)),C,I). Nach DeMorgan.

20 Merkmalslogik20 Doppelte Negation mgu(-(-(D)),I):- !, mgu(D,I).

21 Merkmalslogik21 Negation von Makros Macro,C,MI):- !, call(Macro macro Def), mgu(- Def,C,MI).

22 Merkmalslogik22 Unifikation I unify(FS1,FS2,FS3):- unify_tfs(FS1,FS2,FS3), !. unify_tfs(FS,FS,FS):- !. unify_tfs((O-T1=FS1),(O-T2=FS2),(O-T3=FS3)):- !, db_glb(T1,T2,T3), unify_avl(FS1,FS2,FS4), reentrancies(FS4,FS5), qsort(FS5,FS3). Bemerkung: vollständig nur für BCPOs

23 Merkmalslogik23 Unifikation II unify_avl([],FS,FS):- !. unify_avl([F:V1|FS1],FS2,[F:V3|FS3]):- delete(F:V2,FS2,FS21), !, unify_tfs(V1,V2,V3), unify_avl(FS1,FS21,FS3). unify_avl([FV|FS1],FS2,[FV|FS3]):- unify_avl(FS1,FS2,FS3).

24 Merkmalslogik24 Literatur Carpenter, Bob (199?): The Logic of Typed Feature Structures. OKeefe, Richard (199?): The Craft of Prolog.


Herunterladen ppt "Merkmalslogik Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf."

Ähnliche Präsentationen


Google-Anzeigen