% Groep 1: Lexicon
%lex(word, VariablesToEat, Features).
%Features:
%   - eat, find, bind
%   - part of speech (det, pron, neg, prep, adj, noun, verb)
%   - after, before, next (difference between before and next is that next 
%               only matches the word directly next to it)
%   - male, female, neuter
%   - plural, singular
%   - animate
%
% All features take one argument. The argument is anonymous (_) if it is about
% the word itself, or it specifies a constraint for eat/find/bind.

% in het midden van het hartje van het binnenste van het muiskleurig gebergte woonde de weerwolf
lex(in, [X, Y], [prep(This), eat(X), eat(Y), verb(X), prep(Y), after(Y)], This).
lex(het, [X], [det(This), find(This), eat(X), next(X), neuter(X), same_features(This, X)], This).
lex(midden, [], [noun(This), neuter(This)], This).
lex(van, [X,Y], [prep(This), eat(X), eat(Y), noun(X), prep(Y), before(X), after(Y)], This).
lex(van, [X,Y], [prep(This), eat(X), eat(Y), noun(X), noun(Y), before(X), after(Y)], This).
lex(hartje, [], [noun(This), neuter(This)], This).
lex(binnenste, [], [noun(This), neuter(This)], This).
lex(muiskleurig, [X], [adj(This), eat(X), noun(X), next(X), same_features(This, X)], This).
lex(gebergte, [], [noun(This), neuter(This),singular(This)], This).
lex(woonde, [X], [verb(This), singular(This), past(This), eat(X), noun(X), animate(X)], This).
lex(de, [X], [det(This), find(This), eat(X), noun(X), next(X), male(X), same_features(This, X)], This).
lex(de, [X], [det(This), find(_Y), eat(X), next(X), female(X), same_features(This, X)], This).
lex(de, [X], [det(This), find(_Y), eat(X), next(X), plural(X), same_features(This, X)], This).
lex(weerwolf, [], [noun(This), animate(This), male(This), singular(This)], This).


% hij was groot en verschrikkelijk
lex(hij, [], [pronoun(This), find(X), male(X), animate(X), singular(This)], This).
lex(was, [X,Y], [verb(This), pastTense(This), singular(This), eat(X), eat(Y)],This).
lex(groot, [], [adj(This)], This).
lex(en, [X,Y], [npconj(This), eat(X), eat(Y), before(X), after(Y)], This). % een ‘en’ zoals in een opsomming
lex(verschrikkelijk, [], [adj(This)], This).

% zijn ogen sproeiden vuur en zijn tong had karteltjes
lex(zijn, [X], [pronoun(This), eat(X), noun(X), next(X), find(This), male(This), same_features(This, X)], This).
lex(ogen, [], [noun(This), plural(This), inanimate(This)], This).
lex(sproeiden, [X,Y], [verb(This), pastTense(This), eat(X), eat(Y), plural(X), noun(X), before(X), noun(Y), after(Y)], This).
lex(vuur, [], [noun(This), inanimate(This), singular(This), neuter(This)], This).
lex(en, [X,Y], [conn(This), eat(X), eat(Y), before(X), after(Y), verb(X),verb(Y)], This). % een ‘en’ die twee complete zinnen verbindt
lex(tong, [], [noun(This), inanimate(This), singular(This), female(This)], This).
%lex(had, [X,Y], [verb(This), pastTense(This), eat(X), eat(Y), singular(X), noun(X), before(X), noun(Y), after(Y)], This).
lex(had,[X,Y],[verb(This), singular(This),pastTense(This),eat(X),eat(Y), noun(Y)],This).
lex(karteltjes, [], [noun(This), plural(This)], This).

% hij had lange witte scherpe tanden en
lex(lange, [X], [adj(This),eat(X),next(X),same_features(This,X)], This).
lex(witte, [X], [adj(This),eat(X),next(X),same_features(This,X)], This).
lex(scherpe,[X],[adj(This),eat(X),next(X),same_features(This,X)], This).
lex(tanden, [], [noun(This),plural(This),inanimate(This)], This).

% iedere avond om zes uur stiet hij een gebrul uit waarvan het hele muiskleurige gebergte sidderde
lex(iedere, [X,Y], [det(This), univ(This),eat(X),noun(X),next(X),singular(X),same_features(This,X),verb(Y),eat(Y)], This).
lex(avond, [] , [noun(This),inanimate(This),singular(This),male(This)], This).
lex(om, [X,Y], [prep(This),eat(X),before(X),noun(X),eat(Y),noun(Y),after(Y)], This).
lex(zes, [X], [det(This),eat(X),noun(X),next(X),same_features(This,X)], This).
lex(uur, [], [noun(This),neuter(This),inanimate(This)], This).
lex(stiet,[X,Y,Z], [verb(This),pastTense(This),eat(X),eat(Y),eat(Z),singular(X),animate(X),noun(Y),after(Y),particle(Z)], This).
lex(een, [X], [det(This),bind(This),eat(X),next(X),noun(X),singular(X),same_features(This,X)], This).
lex(gebrul, [], [noun(This),singular(This),neuter(This),inanimate(This)], This).

% deze ‘uit’ hoort bij ‘stiet’ (uitstoten)
% ik maak er daarom een particle van en geen preposition
% zie http://en.wikipedia.org/wiki/Preposition_and_postposition#Particles
% -- Jeroen
lex(uit, [], [particle(This)], This).
lex(waarvan, [X,Y], [prep(This),eat(X),eat(Y),prep(X),verb(Y)], This). % ‘waarvan’ is een betrekkelijk voornaamwoord
lex(hele, [X], [adj(This),eat(X),noun(X),next(X),same_features(This,X)], This).
lex(muiskleurige, [X], [adj(This),noun(X),next(X),same_features(This,X),eat(X)], This).
lex(sidderde, [X], [verb(This),pastTense(This),singular(X),before(X),noun(X),eat(X)], This).

% dat is de weerwolf
lex(dat,[X],[pronoun(This),noun(X),find(X)],This).
lex(is, [X,Y],[verb(This),presentTense(This),singular(This),noun(X),eat(X),eat(Y)],This).

%lex(dat, [], [pronoun(This), find(This), singular(This)], This).
%lex(is, [X,Y], [verb(This), presentTense(This), eat(X), eat(Y), singular(X), noun(X), before(X), noun(Y), after(Y)], This). 
