Next: , Previous: Graph1Dist, Up: Principles list


7.2.24 In principle

This principle assumes that the Graph principle (Graph) is used on dimension D.

The In argument variable defines the set of possible incoming edge labels. Its default value is lexicalized by the lexical entry feature in on D.

It stipulates for all nodes v that:

This principle is now mostly superseded by the Valency principle (Valency), but is still used for the classic grammars, e.g. the Acl01 grammar (Acl01).

Notice that the In2 principle (In2) uses the same constraint functor, but the type of the In argument variable is an accumulative set of labels on D, instead of an intersective one.

Here is the definition of the In 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
%   System(show)

   Helpers(checkModel) at 'Helpers.ozf'
export
   Constraint
define
   proc {Constraint Nodes G Principle FD FS Select}
      DVA2DIDA = Principle.dVA2DIDA
      ArgRecProc = Principle.argRecProc
      %%
      DIDA = {DVA2DIDA 'D'}
   in
      %% check features
      if {Helpers.checkModel 'In.oz' Nodes
	  [DIDA#labels]} then
	 for Node in Nodes do
	    InM = {ArgRecProc 'In' o('_': Node)}
	 in
	    %% labels(v) in in(v)
	    {FS.subset Node.DIDA.model.labels InM}
	 end
      end
   end
end