Next: Agreement, Up: Principles list
principle.agr
D
Agr: tv(T)
Agrs: iset(tv(T))
Agr: _.D.attrs.agr
Agrs: _.D.entry.agrs
Agr
(priority 130)
The Agr principle picks out one agreement value from a set of possible agreement values.
The type variable tv(T)
is typically a tuple of e.g. person,
number, gender etc.
The principle stipulates that:
Agr
is an element of Agrs
Here is the definition of the Agr
constraint functor:
%% Copyright 2001-2008 %% by Ralph Debusmann <rade@ps.uni-sb.de> (Saarland University) and %% Denys Duchier <duchier@ps.uni-sb.de> (LIFO, Orleans) and %% Jorge Marques Pelizzoni <jpeliz@icmc.usp.br> (ICMC, Sao Paulo) and %% Jochen Setz <info@jochensetz.de> (Saarland University) %% functor import Helpers(checkModel) at 'Helpers.ozf' export Constraint define proc {Constraint Nodes G Principle FD FS Select} ArgRecProc = Principle.argRecProc in %% check features if {Helpers.checkModel 'Agr.oz' Nodes nil} then for Node in Nodes do AgrD = {ArgRecProc 'Agr' o('_': Node)} AgrsM = {ArgRecProc 'Agrs' o('_': Node)} in {FS.include AgrD AgrsM} end end end end