Next: , Previous: In, Up: Principles list


7.2.25 In1 principle

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

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

It stipulates for all nodes v that:

The In1 principle is symmetric to the Out principle (Out), and is now mostly superseded by the Valency principle (Valency1).

Here is the definition of the In1 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
prepare
   RecordForAllInd = Record.forAllInd
define
   proc {Constraint Nodes G Principle FD FS Select}
      DVA2DIDA = Principle.dVA2DIDA
      ArgRecProc = Principle.argRecProc
      %%
      DIDA = {DVA2DIDA 'D'}
   in
      %% check features
      if {Helpers.checkModel 'In1.oz' Nodes
	  [DIDA#mothersL]} then
	 for Node in Nodes do
	    LAInMRec = {ArgRecProc 'In' o('_': Node)}
	 in
	    {RecordForAllInd LAInMRec
	     proc {$ LA InM}
		%% |motherset_l(v)| in in_l(v)
		CardMothersLD = {FS.card Node.DIDA.model.mothersL.LA}
	     in
		{FS.include CardMothersLD InM}
	     end}
	 end
      end
   end
end

Footnotes

[1] This principle does not work in conjunction with the Graph1 principle (Graph1) as it accesses the model record feature mothersL only introduced by the Graph principle (Graph).