% Discourse 2009

% 'de' krijgt eigenschappen van het woord dat het eet

% Groep 1: Lexicon
%word(word, Variables, Definition word, word referent).
word(de, [X], [eet(X), find(Y), same_features(X,Z), definite(X)], Y).
word(kat, [], [object, ani(Y), definite(Y)], Y).
word(zit, [X,Y], [eet(X), eet(Y), before(X), after(Y)], Z).
word(mat, [], [object, definite(Y)], Y).
word(op, [X,Y], [eet(X), eet(Y), before(X), after(Y), object(X), object(Y)], Z).

tel(0).

go :-
	S = [[ik,zie,een,rode,kat,en,een,blauwe,mat], [de,kat,zit,op,de,mat],
	interpret(S, M),
	context(M, C).

% Groep 2
interpret(S, M):-
	def(S,M).

def([], []).
def([H|T], [word(H, A2, A3, T)|M]) :-
	word(H, A2, A3, _),
	tel(T),
	NewT is T + 1,
	retractall(tel(T)),
	assert(tel(NewT)).

eat([word(A1, A2, A3, A4)|T], [H|T]):-
	member(eet(X), A3),
	nonvar(X),
	findall(Predicate, ..=[Predicate, X], Predicates),
	

% Groep 3: context model
% binden als er een nieuwe referent is
% logische vorm produceren
% generatie check
context(M, C) :-
	true.

