2.2.1 Ideal Syntax Rules

Here are some DCG rules that license a number of semantically important constructions: Proper names, determiners, pronouns, relative clauses, the copula construction, and coordination. In addition, the first two rules allow us to form discourses by stringing together sentences.

The DCG we would like to use

s--> [if], s, [then], s.      
s--> np, vp.                  
 
np--> np, coord, np.              
np--> det, noun.                  
np--> pn.                         
np--> whnp.
np--> whdet, noun.
 
noun--> noun, coord, noun.         
noun--> noun.                       
noun--> adj, noun.
noun--> noun, pp.                 
noun--> noun, rc.                  
noun--> noun, coord, noun.
 
vp--> vp, coord, vp.  
vp--> v(fin).
vp--> v(fin).  
vp--> mod, v(inf).
 
v(I)--> v(I), coord, v(I).
v(I)--> tv(I), np.
v(I)--> iv(I).  
v(fin)--> cop, np.  
v(fin)--> cop, neg, np.
 
pp--> prep, np.
rc--> relpro, vp.

However these are not quite the rules we're actually going to use, for the following reason: The coordination rules are left-recursive, hence the standard Prolog DCG interpreter will loop when given this grammar. As we do want to give coordination examples while not implementing any parser that deals with left-recursive rules, we're going to adopt adopt an easy fix for this problem.


Aljoscha Burchardt, Alexander Koller and Stephan Walter
Version 1.2.5 (20030212)