:- module(wortformen,
          [form/2,
           person/1,numerus/1,tempus/1,modus/1]).

% --- Finite Verbformen: [Pers,Num,Temp,Mod] -----

form(vfin,[Pers,Num,Temp,Mod]) :-
    person(Pers), numerus(Num), 
    tempus(Temp), modus(Mod).

% Fehlt: Einschraenkung von Pers bei Verben mit es-Subjekt,
%        Imperativformen im sg und pl.
% --- Definition der Wertebereiche der Formmerkmale:

person(1). person(2). person(3).

numerus(sg).   % Singular
numerus(pl).   % Plural

tempus(praes). % Praesens
tempus(praet). % Praeteritum

modus(ind).    % Indikativ
modus(konj).   % Konjunktiv

form(v,Formmerkmale) :- form(vfin,Formmerkmale).
form(n,[Num,Kas]) :- numerus(Num), kasus(Kas).
form(rn,[Num,Kas]) :- numerus(Num), kasus(Kas).
form(en,[sg,Kas]) :- kasus(Kas).

kasus(X) :- member(X,[nom,gen,dat,akk]).

