xpce en welgefundeerde semantiekpiter/kr/krtranspw6.pdf · piter dykstra 13 december 2009...

125

Upload: vandieu

Post on 15-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Kennisrepresentatie & Redeneren

Piter Dykstra

Instituut voor Informatica en Cognitie

www.math.rug.nl/~piter

[email protected]

13 december 2009

XPCE en WELGEFUNDEERDE SEMANTIEK

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s

Page 2: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Onderwerpen

• Hexamy’s met Constraints

• XPCE

• Terugkoppeling werkcollege

(Met dank aan Wouter Lueks)

• Welgefundeermde Semantiek

• Contextvrije grammatica’s

• Van Wijngaarden-grammatica’s

• Isomorfie met Logische programma’s

• Logische grammatica’s

• Definiete Clausule grammatica’s

• Vertaling naar Prolog

• 3 Monaden uit Functioneel Programmeren

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 1

Page 3: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Hexamy met Constraints

:- module(hexamy,[hexamy/1,col/1,on/2,cnt/1,collineair/3,notcol/3,concurrence/5]).

:- dynamic cnt/1.:- use_module(library(chr)).

:- chr_constraint col/1.:- chr_constraint on/2.

c1 @ on(X,L), on(Y,L) | col([X,Y,Z]) <=> on(Z,L).c2 @ on(X,L), on(Z,L) | col([X,Y,Z]) <=> on(Y,L).c3 @ on(Y,L), on(Z,L) | col([X,Y,Z]) <=> on(X,L).c4 @ col(Points) <=> Points = [X,Y,Z],

on(X,L), on(Y,L), on(Z,L),newline(L).

idempotence @ on(X,Y) | on(X,Y) <=> true.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 2

Page 4: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

newline(l(1)) :- not(cnt(_)), assert(cnt(1)).newline(l(X)) :- retract(cnt(X0)), X is X0 + 1, assert(cnt(X)).

:- chr_constraint collineair/3.col @ on(A,L), on(B,L), on(C,L) | collineair(A,B,C) <=> true.

:- chr_constraint notcol/3.notcol1 @ on(A,L), on(B,L), on(C,L), notcol(A,B,C) <=> fail.notcol2 @ notcol(_,_,_) <=> true.

:-chr_constraint concurrence/5.conc1 @ on(A,D),on(B,D),

on(C,Dp),on(E,Dp),on(P,D),on(P,Dp) | concurrence(A,B,C,E,P) <=> true.

:-chr_constraint hexamy/1.hex @ hexamy([A,B,C,D,E,F]) <=> concurrence(A,B,D,E,P),

(notcol(A,B,D) ; notcol(A,B,E)).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 3

Page 5: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Hexamy met Constraints

% chrtest compiled into hexamy 0.13 sec, 1,936 bytestrue.

?- col([a,b,c]),col([d,e,c]),concurrence(a,b,d,e,X),(X=b;X=c;X=a).on(c, l(12))on(e, l(12))on(d, l(12))on(c, l(11))on(b, l(11))on(a, l(11))concurrence(a, b, d, e, b)X = b ;on(c, l(12))on(e, l(12))on(d, l(12))on(c, l(11))on(b, l(11))on(a, l(11))X = c

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 4

Page 6: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Prolog-XPCE interface

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 5

Page 7: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

XPCE-klassen

←− pce begin class (persoon, object, "Zomaar een klasse") �

variable (naam, char array, both, "de naam dus") �

variable (leeftijd, int, both) �

initialise (S,N : char array, L : [ int ])

default (L, 18, Leeftijd),send (S, send super, initialise),send (S, slot, naam, N),send (S, slot, leeftijd, Leeftijd) �

←− pce end class �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 6

Page 8: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Dialoog

ask employee←−new (Dialog, dialog (’Define employee’)),send list (Dialog, append,

[new (N1, text item (first name)),new (N2, text item (family name)),new (S,new (S,menu (sex))),new (A, int item (age, low := 18, high := 65)),new (D,menu (department, cycle)),button (cancel,message (Dialog, destroy)),button (enter,∧ (message (@prolog,

assert employee,

N1 ? selection,

N2 ? selection,

S ? selection,

A ? selection,

D ? selection),

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 7

Page 9: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

message (@prolog,nl)))]),

send list (S, append, [male, female ]),send list (D, append, [research, development,marketing ]),send (Dialog, default button, enter),send (Dialog, open) �

assert employee (FirstName, FamilyName, Sex,Age,Dept)←−format (’Adding ~w ~w ~w, age ~w, working at ~w’,

[Sex, FirstName, FamilyName,Age,Dept ]) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 8

Page 10: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

RationalAgent

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 9

Page 11: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokugui

:- pce_begin_class(sudokugui, frame, "Een sudokugui").

initialise(M) :->"Create a sudoku window gui"::send(M, send_super,initialise,’Sudoku’),% Create the two primary partsnew(S,sudokupicture),new(B,dialog),% Add some buttons to the dialogsend(B, append, new(N, button(’New’,message(S,new)))),send(B, append, new(C, button(’Check’,message(S,check)))),send(B, append, new(H, button(’Hint’,message(S,hint)))),send(B, append, new(U, button(’Undo’,message(S,undo)))),send(C, below, N),....send(B, right, S),send(M, open).

:- pce_end_class.

start :- new(S,sudokugui).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 10

Page 12: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokubox

:- pce_begin_class(sudokubox, device, "Een sudokuvierkantje").

variable(value,int:=0,both,"De waarde van het vakje op dit moment").variable(sudoku,sudokupicture,both,"De sudokupicture").variable(col,int,both,"De kolom van het vakje").variable(row,int,both,"De rij van het vakje").

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 11

Page 13: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokubox

initialise(S,P:sudokupicture,C:int,R:int,Text:[char array],Length:[int]) :->default(Length,25,L),default(Text,’ ’,T),new(Click, click_gesture(left,’’,single, message(@receiver,clicked))),new(ClickDel, click gesture(right,’’,single, message(@receiver,clear))),new(MouseHOn, handler(area_enter, message(@receiver,mouseOn))),new(MouseHOff, handler(area_exit, message(@receiver,mouseOff))),

send(S,recogniser,Click),send(S,recogniser,ClickDel),send(S,recogniser,MouseHOn),send(S,recogniser,MouseHOff),

send(S,recogniser,new(K,key_binding(@nil, argument))),forall(snumber(X),

send(K,function,string(’%d’,X),message(@receiver,value,X))),

send(S, send super, initialise),send(S, slot, sudoku, P),send(S, slot, col, C),send(S, slot, row, R),send(S, display,box(L,L)),send(S, display,text(T,center)),send(S, recenter).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 12

Page 14: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokubox

recenter(S) :->get(S, member, text, Txt),get(S, member, box, Box),send(Txt, center, Box?center).

remove_prolog_fact(S) :->get(S, col, C),get(S, row, R),( value(cell(C,R), )-> send(@prolog,retract(value(cell(C,R), ))); true).

notify(S,Vnew:int) :->get(S, sudoku, Not),get(S,slot,value,Vold),send(Not,updated(S,Vold,Vnew)).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 13

Page 15: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokubox

clear(S) :->writeln(’Clear!’),get(S, member, text, Txt),get(S, sudoku, Not),send(S,remove_prolog fact),send(Not,clear_hints),send(S,slot,value,0),send(Txt, string,’ ’).

value(S,V:int) :->get(S, col, C),get(S, row, R),format(’Cel cell(~d,~d): ~d~n’,[C,R,V]),get(S, member, text, Txt),send(S,remove_prolog_fact),send(@prolog,assert(value(cell(C,R),V))),send(S,notify(V)),send(S,slot,value,V),send(Txt, string, V).

value(S,V) :<-get(S,slot,value,V).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 14

Page 16: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokubox

mouseOn(S) :->get(S, member, box, B),get(B, fill_pattern,Colour),( Colour = colour(blue) % test if selected-> send(B,fill_patter,colour(purple)); send(B,fill_pattern,colour(orange))).

mouseOff(S) :->get(S, member, box, B),get(B, fill_pattern,Colour),( (Colour = colour(purple);Colour=colour(blue)) % test if selected-> send(B,fill_patter,colour(blue)); send(B,fill_pattern,colour(white))).

clicked(S) :->get(S, col, C),get(S, row, R),get(S, member, box, B),send(B,fill_pattern,colour(blue)).

:- pce_end_class.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 15

Page 17: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokupicture

:- pce_begin_class(sudokupicture, picture, "Een sudokupicture").variable(boxs,chain:=new(chain),both,"de boxjes in de sudoku").variable(selection,sudokubox,both,"de geselecteerde sudokubox").variable(hints,chain:=new(chain),both,"set van gegeven hints").variable(hintvalue,int,both,"De waarde van de gehinte cel hint").variable(updates,chain:=new(chain),both,"a list of subsequent

actions, the first action is the newest").

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 16

Page 18: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokupicture

initialise(S,W:[int],H:[int]) :->"Sudokupicture"::send(S, send_super, initialise,’Sudoku!’),send(S, slot, hintvalue, 0),length(L_),L is L_*L_,Bdt is (L+1)*25+11,send(S, send_super, size, size(Bdt,Bdt+20)),default(W,L,Width),default(H,L,Height),get(S,boxs,BS),forall(between(1,Width,C),

( forall(between(1,Height,R),(Vert is R*25,Hth is C*25,send(S,display,new(B,sudokubox(S,C,R)),point(Hth,Vert)),send(BS,append,B)))

)),send(S,display,new(T,text),point(25,Bdt+10)),send(T,colour,colour(red)),send(S,drawThickLines).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 17

Page 19: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokupicture

drawThickLines(S) :->length(L),LL is L*L,forall(between(0,L,Pf),(

P is (Pf*(L*25)+25),new(Lv,line(P,25,P,(LL+1)*25)),new(Lh,line(25,P,(LL+1)*25,P)),send_list([Lv,Lh],pen,3),send_list(S,display,[Lv,Lh]))).

draw_inconsistent(S) :->....

draw_known_square(S,X,Y) :->....

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 18

Page 20: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokupicture

hint(S) :->get(S,hintvalue,VHint),( (VHint > 0) ->

send(S,hint_value(VHint));

send(S,clear_hints),( ( send(@prolog,inconsistent),

send(S,draw_inconsistent),writeln(’Inconsistent’),send(S,hint_text(’Hint: de sudoku is inconsistent’))

);( determined1(cell(X,Y),Val,_),

send(S,draw_known_square(X,Y)),send(S,hint_text(’Hint: tel eens rondom deze cel’)),...

);....( determined4(cell(X,Y),Val),

send(S,draw_known_square(X,Y)),send(S,hint_text(’Hint: niet alles is echt mogelijk’)),...

);send(S,hint_text(’Helaas, er zijn geen hints bekend’)).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 19

Page 21: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Sudokupicture

hint_text(S,T) :->get(S,member,text,Txt),send(Txt,string,T).

hint_value(S,V) :->...

updated(S,C,OldVal,NewVal) :->...

clear_hints(S) :->....

check(S) :->send(@prolog,inconsistent),send(S,draw_inconsistent).

undo(S) :->...

new(S) :->get(S,boxs,BS),send(S,clear_hints),send(BS,for_all,message(@arg1,clear)).

:- pce_end_class.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 20

Page 22: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Correctheid (soundness) & Volledigheid

Uitdrukkingskracht van de verschillende syntactische vormen.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 21

Page 23: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Uitdrukkingskracht van de verschillende semantische vormen.

SLD ⊆ comp2 ⊆ comp3 ⊆ SLDNF

Definiete progs = = =

Gelaagde progs = =

Algemene progs =>

*: voor ”toegestane” progs.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 22

Page 24: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Welgefundeerde Semantiek

Problem 3.

Gegeven de programma’s P1 en P2:

P1 : halts(a) � P2 : halts(a) �

halts(b)← halts(b) �

comp(P1) |= ¬halts(b) maar: comp(P2) 2 ¬halts(b)

Maar volgens de GWA:

gwa(P1) |= ¬halts(b) maar: gwa(P2) |= ¬halts(b)

Problem 4.

loops(a)← ¬halts(a)

gwa(P) is inconsistent omdat noch P |= loops(a) noch P |= halts(a).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 23

Page 25: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Het Kanonieke Model

Met het kanonieke model voor algemene programma’s wordt het model bedoeld dat

overeenkomt met de GWA.

{A|A ∈ BP en I |= A} ∪ {¬A|A ∈ BP en I |= ¬A}

Theorem 1. Als P een algemeen programma is en I een Herbrand-interpretatie van P

dan is I een model van P desda TP(I) ⊆ I.

Definition 1. [Ondersteunde Interpretatie] Stel P is een algemeen programma. Een

Herbrand-interpretatie I van P heet ondersteund desda

voor elke I |= A er een A← L1, . . . , Ln ∈ grond(P)bestaat waarvoor geldt: I |= L1, . . . , Ln.

Theorem 2. Als P een algemeen programma is en I een Herbrand-interpretatie van P

dan is I ondersteund desda I ⊆ TP(I).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 24

Page 26: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Problem 5.

loops(a)← loops(a) �

heeft twee ondersteunde modellen: {loops(a)} en ∅.

Conclusie: Het kanonieke model moet minimaal zijn.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 25

Page 27: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

De ongefundeerde Verzameling

Een atoom A is onwaar als elke grondclausule A ← L1, . . . , Ln een onwaar grondatoom

bevat of een positief ongefundeerd grondatoom bevat.

Definition 2. [Ongefundeerde Verzameling] Stel I is een partiele Herbrand-

interpretatie. Een deelverzameling U van de Herbrand-basis heet een ongefundeerde

verzameling P m.b.t. I als voor elke A ∈ U en voor elke A ← L1, . . . , Ln ∈ ground(P)tenminste een van de volgende beweringen geldt:

• Een L ∈ L1, . . . , Ln is onwaar in I.

• Een positief grondatoom A ∈ L ∈ L1, . . . , Ln is in U.

U is de grootste ongefundeerde verzameling van P m.b.t. I, notatie FP(I).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 26

Page 28: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Welgefundeerde model

Definition 3. [Welgefundeerde Model] Van een algemeen programma P is het welge-

fundeerde model de kleinste partiele Herbrand interpretatie I zodat:

• Als A ∈ TP(I) dan A ∈ I.

• Als A ∈ FP(I) dan ¬A ∈ I.

Het welgefundeerde model van P is het kleinste dekpunt van de operator:

WP(I) = TP(I) ∪ ¬FP(I)

waarin ¬FP(I) = {¬A|A ∈ FP(I)}.

Het kleinste dekpunt WP is de limiet van het (mogelijk transfiniete) iteratieve proces:

∅, WP(∅), WP(WP(∅)), . . .

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 27

Page 29: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 28

Page 30: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Zettenspel voor 2 personen

• De speler verlies als hij geen zet kan doen of alleen naar een positie kan gaan waar de

andere speler wint.

• De speler wint als hij naar een positie kan gaan waar de andere speler verliest.

w (X)←− m (X,Y) ∧ ¬ w (Y) �

m (a, b) �

m (b, a) �

m (b, c) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 29

Page 31: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Het model kan worden berekend als de limiet van WP ↑ n afgekort: In.

I1 = TP(∅) ∪ ¬FP(∅) waarin :

TP(∅) = {m(a, b),m(b, a),m(b, c)}FP(∅) = {m(a, a),m(a, c),m(b, b),m(c, a),m(c, b),

m(c, c),w(c)}

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 30

Page 32: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

w(c) zit in de ongefundeerde verzameling omdat alle grondinstanties van de clausule

w(c) ← m(c,Y) ∧ ¬w(Y) een positieve grondterm bevatten die in de ongefundeerde

verzameling zit:

I1 = TP(∅) ∪ ¬FP(∅) waarin :

TP(∅) = {m(a, b),m(b, a),m(b, c)}FP(∅) = {m(a, a),m(a, c),m(b, b),m(c, a),m(c, b),

m(c, c),w(c)}

w(b) is waar omdat I1 |= m(b, c) ∧ ¬w(c):

I2 = TP(I1) ∪ ¬FP(I1) waarin :

TP(I1) = {m(a, b),m(b, a),m(b, c),w(b)}FP(I1) = {m(a, a),m(a, c),m(b, b),m(c, a),m(c, b),

m(c, c),w(c)}

w(a) is ongefundeerd want alle grondinstanties van w(a) ← m(a,Y) ∧ ¬w(Y)bevatten ofwel een ongefundeerde positieve grondterm ofwel een onware negatieve

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 31

Page 33: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

grondterm (¬w(b)):

I3 = TP(I2) ∪ ¬FP(I2) waarin :

TP(I2) = {m(a, b),m(b, a),m(b, c),w(b)}FP(I2) = {m(a, a),m(a, c),m(b, b),m(c, a),m(c, b),

m(c, c),w(c),w(a)}

Nu geldt WP(I3) = I3, dus I3 is het kleinste dekpunt.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 32

Page 34: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Eigenschappen

Een minimale partiele interpretatie maximaliseert de ongedefinieerdheid.

Een minimale tweewaardige interpretatie maximaliseert onwaarheid.

Theorem 3. Als P een definiet programma is, dan is het welgefundeerde model volledig

en valt samen met het kleinste Herbrand-model.

Theorem 4. Als P gelaagd is, dan is het welgefundeerde model volledig en valt samen

met het standaard-model.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 33

Page 35: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Contextvrije grammatica’s

Definition 4. [Contextvrije grammatica’s] Een contextvrije grammatica is een tripel

< N,Σ, P >, waarin:

• N een eindige verzameling nonterminal symbolen.

• Σ een eindige verzameling terminal symbolen (N ∩ Σ = ∅).

• P is een eindige verzameling paren X → α met X ∈ N en α ∈ (N ∪ Σ)∗ (productiere-

gels).

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 34

Page 36: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Definition 5. [Directe Afleidbaarheid] .

Stel G = < N,Σ, P > is een CVG. Een string β over N ∪ Σ is direct afleidbaar uit α in

G desda:

• α is van de vorm α1 X α2.

• β is van de vorm α1 γ α2.

• X → γ is een productieregel van G.

We noteren β is direct afleidbaar uit α met α⇒G β

Definition 6. [De taal van G en X] Als G = < N,Σ, P > een CVG is en X een

nonterminal symbool van G, dan bedoelen we met de taal gedefinieerd door X en G de

verzameling:

L(G,X) = {α|X ⇒+G α}

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 35

Page 37: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Example 1. De verzameling strings die gehele getallen voorstellen wordt beschreven door

een CVG:

• N = {< geh. getal >,< teken >,< nat. getal >,< cij f er >,< str. v. cij f ers >,<

niet nul >}

• Σ = {+,−, 0, 1, 2, . . . , 9}

• P =

p1 : < geh. getal > → < teken >< nat. getal > .

p2 : < teken > → ε.

p3 : < teken > → +.

p4 : < teken > → −.p5 : < nat. getal > → < cij f er > .

p6 : < nat. getal > → < niet nul >< str. v. cij f ers > .

p7 : < str. v. cij f ers > → < cij f er > .

p8 : < str. v. cij f ers > → < str. v. cij f ers >< cij f er > .

p9 : < cij f er > → < niet nul > .

p10 : < cij f er > → 0.

p11 : < niet nul > . . .

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 36

Page 38: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Example 2.

De verzameling even Peanogetallen wordt beschreven door een CVG:

• N = {< even >}

• Σ = {0, s}

• P =p1 : < even > → 0.

p2 : < even > → s s < even > .

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 37

Page 39: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Parseer-bomen

< geh. getal > Expressieboom v.: ”−30”ւ ց

< teken > < nat. getal >

↓ ւ ց−

< niet nul > < str. v. cij f ers >

↓ ↓3 < cij f er >

↓0

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 38

Page 40: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Definition 7. [Parseer-boom] Een parseerboom van een CVG G is een gelabelde geor-

dende boom waarvoor geldt:

• De wortel is gelabeld met een productie van G.

• Elke knoop gelabeld met een productie p met het profiel < X1, . . . ,Xn > heeft n

kinderen en elk kind Xi is gelabeld met een productie van de soort XI of het lege label

⊥.

p1ւ ցp4 p6

ւ ցp13 p9

↓p10

Parseerboom voor de string ”−30”ofwel de term:

. p1(p4, p6(p13, p9(p10)))

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 39

Page 41: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Vergelijking

Grammatica’s en Logische programma’s zijn verschillende vormen van hetzelfde idee:

CVG Logisch Programma

productie clausule

directe afleidbaar onmiddelijk gevolg

afleidbaar logisch gevolg

de taal van G en X oplossing v. doel X met prog. G.

parseerboom bewijsboom

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 40

Page 42: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Van Wijngaarden-grammatica’s

Definition 8. [Van Wijngaarden-grammatica] .

Een W-grammatica W is een 7-tupel < X,M, T,Q,V,H,R > waarin:

• X een eindig alfabet.

• M een eindige verzameling nonterminals.

• T een eindige verzameling terminals.

• Q een verzameling productieregels, een deelverzameling van M× (M ∪ X)>.

• V een aftelbare verzameling variabelen. Met elke variabele v is een nonterminal (”type”)

geassocieerd: M(v), de soort van v.

• H een eindige verzameling hypernoties, nonterminals met variabelen, een deelverzame-

ling van:

{< h > |h ∈ (V ∪M)+}

• R een eindige verzameling hyperregels, een deelverzameling van: H × (H ∪ T)>

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 41

Page 43: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Voorbeeld

Er is een W-grammatica (en geen CVG) voor de taal {anbncn|n ∈ N}

< s > →< a to N >< b to N >< c to N >

< a to Ni > → a < a to N >

< b to Ni > → b < b to N >

< c to Ni > → c < c to N >

< a to i > → a

< b to i > → b

< c to i > → c

Theorem 5. Voor elk definiet programma P is er een W-gramamtica WP en er is een

isomorfie tussen de bewijsbomen van P en de parseerbomen van WP.

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 42

Page 44: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Logische Grammatica

zin (Z)←− append (X,Y, Z),naamw deel (X),werkw deel (Y) �

naamw deel ([het | X ])←− naamwoord (X) �

werkw deel ([ loopt ]) �

naamwoord ([motortje ]) �

naamwoord ([konijn ]) �

?- zin([het,X,loopt]).

X = motortje ;

X = konijn ;

No

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 43

Page 45: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Verschillijsten

emptydif (X− X) �

adddif (E, X− Y, [E | X ]− Y) �

removedif (E,D1,D2)←− adddif (E,D2,D1) �

concat (A1− Z1, Z1− Z2,A1− Z2) �

Verschillijsten

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 44

Page 46: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Quicksort met verschillijst

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 45

Page 47: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

quicksort2 ([ ], Z− Z) �

quicksort2 ([X | Tail ], A1− Z2)←−split (X, Tail, Small, Big),quicksort2 (Small, A1− [X | A2 ]),quicksort2 (Big, A2− Z2) �

gt (X,Y)←− X> Y �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 46

Page 48: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

LG met verschillijsten

zin (X 0− X 2)←− naamw deel (X 0− X 1),werkw deel (X 1− X 2) �

naamw deel (X 0− X 2)←− verbindt (X 0, het, X 1),naamwoord (X 1− X 2) �

werkw deel (X 0− X 1) ←− verbindt (X 0, loopt, X 1) �

naamwoord (X 0− X 1) ←− verbindt (X 0,motortje, X 1) �

naamwoord (X 0− X 1) ←− verbindt (X 0, konijn, X 1) �

verbindt ([X | Y ], X, Y) �

?- zin([het, konijn, loopt, stop] - [stop]).

Yes ?-

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 47

Page 49: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

LG met verschillijsten zonder hulprelatie

zin (X 0, X 2)←− naamw deel (X 0, X 1),werkw deel (X 1, X 2) �

naamw deel ([het | X 0 ], X 1)←− naamwoord (X 0, X 1) �

werkw deel ([ loopt | X 0 ], X 0) �

naamwoord ([motortje | X 0 ], X 0) �

naamwoord ([konijn | X 0 ], X 0) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 48

Page 50: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Definiete Clausule Grammatica’s

zin −→ naamw deel,werkw deel �

naamw deel −→ [het ],naamwoord �

werkw deel −→ [ loopt ] �

naamwoord −→ [motortje ] �

naamwoord −→ [konijn ] �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 49

Page 51: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- zin([het, konijn, loopt, stop], [stop]).

Yes

?- listing. .

zin(A, C) :-

naamw deel(A, B),

werkw deel(B, C).

.

naamw deel([het | A], B) :-

naamwoord(A, B).

.

werkw deel([loopt | A], A).

.

naamwoord([motortje | A], A).

naamwoord([konijn | A], A).

.

Yes

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 50

Page 52: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

DCG’s met Semantiek

←− op (900, xfy,∈ ) � X ∈ L←− member (X, L) �

zin (rel (R,O)) −→ naamw deel (O),werkw deel (R) �

naamw deel (X) −→ [het ],naamwoord (X) �

werkw deel (lopen) −→ [ loopt ] �

naamwoord (X) −→ [X ], {X ∈ [motortje, konijn ]} �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 51

Page 53: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- zin( X, [het, konijn, loopt, stop], [stop]). .

X = rel(lopen, konijn) ; .

No

?- listing.

zin(rel(C, A), B, E) :-

naamw deel(A, B, D),

werkw deel(C, D, E).

naamw deel(A, [het | B], C) :-

naamwoord(A, B, C).

.

werkw deel(lopen, [loopt | A], A).

naamwoord(A, [A | C], B) :-

A in[motortje, konijn],

B=C.

Yes

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 52

Page 54: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

ABC-formule

abc −→ a (N), b (N), c (N) �

a (0) −→ [ ] �

a (s (N)) −→ [a ], a (N) �

b (0) −→ [ ] �

b (s (N)) −→ [b ], b (N) �

c (0) −→ [ ] �

c (s (N)) −→ [c ], c (N) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 53

Page 55: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- abc(X, []).

X = [] ;

X = [a, b, c] ;

X = [a, a, b, b, c, c] ;

X = [a, a, a, b, b, b, c, c, c] ;

X = [a, a, a, a, b, b, b, b, c|...]

Yes

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 54

Page 56: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Toestands-Monade

Een stack:

push (X, In, [X | In ]) �

pop ([ | Out ], Out) �

top (X,Y, Y)←− Y = [X | ] �

empty ( , [ ]) �

som ([A,B | Z ], [C | Z ])←− C is A+ B �

do −→ empty,

push (2),push (3),som �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 55

Page 57: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- do( , X).

X = [5] ;

No ?- listing(do). .

.

do(A, E) :-

empty(A, B),

push(2, B, C),

push(3, C, D),

som(D, E).

.

Yes ?-

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 56

Page 58: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Collectie-monade

←− op (1000, xfy,←) �

←− op (600, xfy,∈ ) �

X ∈ L←− member (X, L) �

incr (In,Out)←− Out is In+ 1 �

pair (X,Y, , pr (X,Y)) �

’<-’ (Xt, (L, R), In, Lout′)←− is list (L),findall (Xout,

(X ∈ L,

Xt = X,

phrase (R, In, Xout)),Lout),

flatten (Lout, Lout′) �

return (X, , X) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 57

Page 59: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- phrase((X ← [1,2], incr),0,B). .

B = [2, 3] ; .

No

?- phrase((

| X ← [1,2],

| Y ← [a,b],

| pair(X,Y)

| ),0,B).

.

B = [pr(1, a), pr(1, b), pr(2, a), pr(2, b)] ;

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 58

Page 60: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

Maybe-monade

’<-’ (X, (just (X), R), In,Out)←−phrase (R, In,Out) �

’<-’ ( , (nothing, ), Io, Io) �

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 59

Page 61: XPCE en WELGEFUNDEERDE SEMANTIEKpiter/KR/krtranspw6.pdf · Piter Dykstra 13 december 2009 Onderwerpen •Hexamy’s met Constraints •XPCE •Terugkoppeling werkcollege (Met dank

Piter Dykstra 13 december 2009

?- phrase((

| { X = just(3),

| Y = just(8) },| Xv ← X,

| Yv ← Y,

| Z is Xv + Yv,

| return(Z)

| ), 0, A).

.

X = just(3),

Y = just(8),

Xv = 3,

Yv = 8,

Z = 11,

A = 11 ;

No

?-

– Kennisrepresentatie & Redeneren – Week6: Grammatica’s 60