%%%  -*- Mode: PROLOG; Package: PROLOG-USER -*-%%% PERIPHERY %%%%%% (c) 1991, 1992, 1993  Sandiway Fong, NEC Research Institute, Inc.%%%     Revised 2001%%%%%% Language-particular operations + kludgey stuff%%% S-STRUCTURE GRAMMAR ADDITIONS% Have to be a bit picky in what we allow in [Spec,CP]spec(c1,exnp). 	% rule empty c (no V to C)rule exnp -> [np(NP)] st \+ ec(NP) if isMatrixLevel.rule overtONP -> [overtNP(NP)] st (C==acc;C==dat) if  NP has_feature morphC(C).adjunction rule i2 -> [overtONP,i2].		  % no intermediate traces%%% GRAMMAR RULE RESTRICTIONS% Reduce non-determinism for adjunctionrhs [vsubcatvp,vp(VP)] add_goals [\+ adjoinedMax(VP)].% Check for that obligatory adjuncts are presentrhs [i,vp(X)] add_goals [vpRequiresExt(X)].rhs [neg,vp(X)] add_goals [vpRequiresExt(X)].%%% SUPPORT FOR DETERMINER/N1 INTERACTION%% Determiner and N1 interaction% Inherit [wh(_),op(+/-)] features from spec instead of headrhs [det,n1] 		add_inherit plus(2,[1,[wh(_),op(_)]]).%%% CASE THEORY% compatibleCase(AssignedCase,MorphologicallyRealizedCase)compatibleCase(X,X).% Case Transmissionno caseTransmission(_,_,_).% Genitive Case realization (of/'s)realizedAsMarker(gen).caseRealizationMode(NP,Mode) :-	NP has_feature compl	-> Mode = case				  % of him	;  Mode = caseMorphC.			  % John's, his%%% EMPTY COMP% To satisfy the WhInSyntax filter, %	matrix [C] is freely  [+/-Wh], e.g. who left, john leftemptyCompFeatures(Fs) :- mkFs([wh(_)],Fs).%%% Move-Alpha (D-structure to S-structure)moves(CF,C) :- cat(CF,C), member(C,[np]).%% Chain Formation conditionschainLinkConditions(_New,_Head,_L,_UpPath,_DownPath).%%% MISCELLANEOUSno shiftRequest(_,_).% NB: should allow for [VP [V2 [V1 [V V Adv]]]] collapsing to [VP V Adv]adjoinedMax(X) :- adjoined(X,_,Y), cat(Y,C), max(C).