Previous: XTAGRedundant, Up: Principles list


7.2.73 XTAGRoot principle

This principle states that the tree at the root of each derivation must be labeled by category S. I.e., in the current encoding, the lexical in value of the corresponding lexical entry must include the label S_s (category S, initial tree).

Here is the definition of the XTAGRoot 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
      DIDA = {DVA2DIDA 'D'}
   in
      %% check features
      if {Helpers.checkModel 'XTAGRoot.oz' Nodes
	  [DIDA#mothers]} then
	 DIDA2LabelLat = G.dIDA2LabelLat
	 LabelLat = {DIDA2LabelLat DIDA}
	 LAs = LabelLat.constants
      in
	 if {Not {Member 'S_s' LAs}} then
	    fail 
	 else
	    A2I = LabelLat.aI2I
	    IDSI = {A2I 'S_s'}
	 in
	    for Node in Nodes do
	       {FD.impl
		{FD.nega {FS.reified.include IDSI Node.DIDA.entry.'in'}}
		{FD.reified.equal {FS.card Node.DIDA.model.mothers} 1} 1}
	    end
	 end
      end
   end
end