Back to Double Object Constructions and the Zero Morpheme G

Double Object Constructions
and the Zero Morpheme G

Theory Modifications

Assuming the Principles-and-Parameters theory supplied in the standard distribution of PAPPI, the changes necessary to implement the theory of double object constructions described in (Pesetsky 95) are documented in the sections below.

Here is a brief summary of the modules affected:

Phrase Structure: internal structure of VPs and PPs must be changed.
Lexicon: introduce the empty preposition G. Also theta-grid changes for double-object verbs and prepositions like to.
Theta Theory: theta role assignment
Case Theory: for inherent Case assignment, prevent P from assigning inherent Case to its specifier.
Government: extend government to allow the verb to govern down into spec-P.

Phrase Structure


Phrase Structure

PAPPI is supplied with a phrase structure parser based on X-bar theory. Both VP-internal and PP-internal structure must be modified to permit double object constructions to be analyzed as [VP V [PP O1 [P1 P O2]]].

VP-structure

By default, the VP-internal structure assumed is [VP [V2 [V1 V DO] IDO]], where V2 and V1 are intermediate bar-level projections.

These assumptions are specified in xbar.pl as follows:

head(n). head(v). head(a). head(p). head(i). head(c). head(neg). 

bar(n1). bar(v1). bar(a1). bar(p1). bar(i1). bar(c1). bar(neg1).
         bar(v2).

max(np). max(vp). max(ap). max(pp). max(i2). max(c2). max(negp). 

%% for category labels X & Y, proj(X,Y) holds if Y is the
%% immediate projection of X.

proj(n,n1). 	proj(n1,np).
proj(v,v1). 	proj(v1,v2). 	proj(v2,vp).
proj(a,a1). 	proj(a1,ap).
proj(p,p1). 	proj(p1,pp).
proj(c,c1). 	proj(c1,c2).
proj(i,i1). 	proj(i1,i2).
proj(neg,neg1). proj(neg1,negp).

%% head(X,Y) holds if Y is the head of X.
%% NB. Reflexive relation.

head(n,n). 	head(n1,n). 	head(np,n).
head(v,v). 	head(v1,v). 	head(v2,v). 	head(vp,v).
head(a,a). 	head(a1,a). 	head(ap,a).
head(p,p). 	head(p1,p). 	head(pp,p).     
head(c,c). 	head(c1,c). 	head(c2,c).
head(i,i). 	head(i1,i). 	head(i2,i).
head(neg,neg).	head(neg1,neg).	head(negp,neg).

No intermediate V2 projection is required for the new double object theory since indirect objects are no longer placed directly under VP. Hence we can delete references to V2, resulting in a simplified and more regularized X-bar system.

head(v).        bar(v1).        max(vp). 

proj(v,v1).     proj(v1,vp).

head(v,v).      head(v1,v).     head(vp,v).

The X-bar rule system can also be simplified. Rule schemata for the V2 bar-level (highlighted below) can be eliminated.

rule XP -> [XB|spec(XB)] ordered specFinal st max(XP), proj(XB,XP).

rule spec(XB) -> [Y] st overtSpec(XB,Y).
rule spec(XB) -> [] st nullSpec(XB).


rule XB2 -> [XB1|icompl(XB1)] ordered headInitial(X0)
			      st bar(XB2), proj(XB1,XB2), bar(XB1),
			         head(XB2,X0), head(X0).

rule icompl(XB) -> [] st lexicalProperty(XB,subcat(_,_),_).
rule icompl(XB) -> [] st lexicalProperty(XB,grid(_,Roles),no2ndRole(Roles),_).
rule icompl(XB) -> [Y] st lexicalProperty(XB,grid(_,Roles),csr2nd(Roles,Y),Y).


rule XB -> [X|compl(X)] ordered headInitial(X)
			st bar(XB), proj(X,XB), head(X).

rule compl(X) -> [] st lexicalProperty(X,grid(_,Roles),no1stRole(Roles),_).
rule compl(X) -> [Y] st compl(X,Y).
rule compl(X) -> [Y] st lexicalProperty(X,grid(_,Roles),csr1st(Roles,Y),Y).
rule compl(X) -> [Y] st lexicalProperty(X,subcat(Y$_,_),Y).

This results in the compact X-bar rule schemata shown below. The new VP-internal structure assumed for double objects is now [VP V PP], where PP is headed by a dyadic preposition that can accommodate two theta roles. This is explicitly encoded by a rule (highlighted below) specifying that a complement of X can be a PP provided X has the lexical property of having a theta-grid that satisfies the predicate has2ndRole/1.

rule XP -> [XB|spec(XB)] ordered specFinal st max(XP), proj(XB,XP).

rule spec(XB) -> [Y] st overtSpec(XB,Y).
rule spec(XB) -> [] st nullSpec(XB).

rule XB -> [X|compl(X)] ordered headInitial(X)
			st bar(XB), proj(X,XB), head(X).

rule compl(X) -> [] st lexicalProperty(X,grid(_,Roles),no1stRole(Roles),_).
rule compl(X) -> [Y] st compl(X,Y).
rule compl(X) -> [Y] st lexicalProperty(X,grid(_,Roles),csr1st(Roles,Y),Y).

rule compl(X) -> [pp] st lexicalProperty(X,grid(_,Roles),has2ndRole(Roles),_).
rule compl(X) -> [Y] st lexicalProperty(X,subcat(Y$_,_),Y).

The predicate has2ndRole/1 is defined as follows:

has2ndRole(Roles) :-
        secondRole(Roles,_),
        !.                                        % green

Implementation Notes:

The PP selected by a V in this fashion also needs to be explicitly labelled as a subcategorized position for structural primitives like complement_of/2 to work. This is done by augmenting the phrase structure rule with RHS [V,PP] with the goal scPos/1 (which adds a subcategorized flag to the PP position when it is created).

rhs [v(V),pp(PP)] ordered headInitial(v) app_goals [scPos(PP)].

Finally, a parse-time version of has2ndRole/1 is needed. By convention, it is called schas2ndRole/1 and is defined as follows:

schas2ndRole(Item) :-
        Item has_feature grid(_,IRoles),
        has2ndRole(IRoles).


PP-structure

In the new theory, PPs are dyadic in the case of double object constructions, i.e. [VP V [PP O1 [P1 P O2]]], where O1 and O2 are objects. Hence we need to allow PPs to have the option of having a specifier:

spec(p1,np).
spec(p1,[]).

The NP specifier of PP must be an A-position. This is specified by a phrase structure modification rule that adds a call to aPos/1 for all rules matching RHS [NP,P1], more specifically, the rule PP -> [NP,P1].

rhs [np(NP),p1(P1)] ordered specInitial app_goals [aPos(NP),specPP(NP,P1)].

For computational efficiency, in order to control phrase structure over-generation, we also modify the grammar to allow [NP,P1] to project to PP only if P has an external theta-role; this is encoded by the call to specPP/2 above. specPP/2 is defined below:

specPP(_NP,P1) :- P1 has_feature grid([_],_).

To control over-generation, we also add a requirement via the phrase structure rule modification system that [PP P1] cannot be projected when P has an external theta-role:

lhs pp & rhs [p1(P1)] app_goals [noExtRole(P1)].

noExtRole(X) :- X has_feature grid([],_).

That is, a rule PP -> P1 can only apply if noExtRole/1 can be satisfied. And noExtRole(X) can only be satisfied if there is no external theta role specified in X's theta-grid.


Back to Double Object Constructions and the Zero Morpheme G