/************************************************************************* name: experiment2.pl (Volume1, Chapter 2) version: July 2, 1997 description: This is the code of the second experiment authors: Patrick Blackburn & Johan Bos *************************************************************************/ :- ensure_loaded(comsemOperators). /*======================================================================== Syntax-semantics rules ========================================================================*/ s(Sem)--> np(X,SemVP,Sem), vp(X,SemVP). np(X,Scope,Sem)--> det(X,Restr,Scope,Sem), noun(X,Restr). np(SemPN,Sem,Sem)--> pn(SemPN). vp(X,Sem)--> iv(X,Sem). vp(X,Sem)--> tv(X,Y,SemTV), np(Y,SemTV,Sem). /*======================================================================== Proper Names ========================================================================*/ pn(vincent)--> [vincent]. pn(mia)--> [mia]. /*======================================================================== Transitive Verbs ========================================================================*/ tv(Y,Z,love(Y,Z))--> [loves]. /*======================================================================== Intransitive Verbs ========================================================================*/ iv(Y,snort(Y))--> [snorts]. /*======================================================================== Determiners ========================================================================*/ det(X,Restr,Scope,exists(X,Restr & Scope))--> [a]. det(X,Restr,Scope,forall(X,Restr > Scope))--> [every]. /*======================================================================== Nouns ========================================================================*/ noun(X,woman(X))--> [woman]. noun(X,footmassage(X))--> [foot,massage].