Chapter 4

Verb complements


4.1    Introduction

In order to parse a verb, after having matched a verb class tag and a compatible verb code with a call of verb from section 2.8, we next need to establish the complement consequences for the verb. This starts with verb_complements_top_layer, which has the non-recursive rule of (4.1) to call verb_complements_by_code:

(4.1)
verb_complements_top_layer(Code,Store,SbjType,Voice,L,L0) -->
  verb_complements_by_code(Code,Store,SbjType,Voice,L,L0).

There are also the recursive rules of (4.2) to:

(4.2)
verb_complements_top_layer(Code,Store,provisional_sbj,Voice,L,L0) -->
  verb_complements_top_layer(Code,Store,filled_sbj,Voice,L,L1),
  notional_item('-NSBJ',L1,L0).
verb_complements_top_layer(';~La',Store,derived_sbj,active,L,L0) -->
  verb_complements_top_layer(';~La',[],filled_sbj,active,L,[node('IP-INF-NSBJ',VL)|L0]),
  {
    member(SbjType,[filled_sbj,unfilled_sbj])
  },
  to_inf_layer(Store,SbjType,passive,VL,[]).
verb_complements_top_layer(';~La',Store,derived_sbj,active,L,L0) -->
  verb_complements_top_layer(';~La',[],filled_sbj,active,L,[node('IP-INF-NSBJ',VL)|L0]),
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_top_layer(Code,Store,SbjType,Voice,L,L0) -->
  neg(L,L1),
  verb_complements_top_layer(Code,Store,SbjType,Voice,L1,L0).
verb_complements_top_layer(Code,Store,SbjType,Voice,L,L0) -->
  adverbial(L,L1),
  verb_complements_top_layer(Code,Store,SbjType,Voice,L1,L0).
verb_complements_top_layer(Code,Store,SbjType,Voice,L,L0) -->
  verb_complements_top_layer(Code,Store,SbjType,Voice,L,L1),
  adverbial(L1,L0).

    With [rules 5 and 6] of (4.2), an adverbial is included with a call to an adverbial rule of (4.3), which can pick up:

(4.3)
adverbial(L,L0) -->
  adverb_phrase('-NIM',non_privileged,L,L0).
adverbial(L,L0) -->
  preposition_phrase('-NIM',non_privileged,L,L0).
adverbial(L,L0) -->
  scon_clause(L,L0).

    The rest of this chapter gives the rules of verb_complements_by_code needed to complete calls of the non-recursive verb_complements_top_layer rule of (4.1).


4.2    Linking verbs

This section establishes selection criteria for linking verbs.

4.2.1    La

Code ;~La selects an adjective phrase with subject predicative function (ADJP-PRD2). For calls of the verb_complements_by_code rules of (4.4), either:

Also, the rules of (4.4) differ in the setting of the SbjType parameter:

One thing the rules of (4.4) have in common is that each sets the Voice parameter to active.

(4.4)
verb_complements_by_code(';~La',[],filled_sbj,active,L,L0) -->
  {
    member(Type,[catenative,non_privileged])
  },
  adjective_phrase('-PRD2',Type,L,L0).
verb_complements_by_code(';~La',[],expletive_sbj,active,L,L0) -->
  adjective_phrase('-PRD2',non_privileged,L,L0).
verb_complements_by_code(';~La',[adjp(ICH)],filled_sbj,active,[node('ADJP-PRD2',[ICH])|L],L) -->
  [].

    Parsing word list (4.5) as a sentence leads to the verb_complements_by_code call seen with (4.6).

(4.5)
[w('PRO','He'), w('VBD',';~La','appeared'), w('ADJ','tall'), w('PUNC','.')]
(4.6)
| ?- tphrase_set_string([w('ADJ','tall')]), parse(verb_complements_by_code(';~La',[],filled_sbj,active)).

(ADJP-PRD2 (ADJ tall))

yes

Word list content for (4.6) is the adjective w('ADJ','tall'). This is material for an adjective phrase when Type information is set to non_privileged, and so success is possible under [rule 1] of (4.4) with its adjective_phrase call.

    Parsing word list (4.7) as a sentence leads to the verb_complements_by_code call seen with (4.8).

(4.7)
[w('PRO','He'), w('BED',';~La','was'), w('ADJ;_cat_','unable'), w('TO','to'), w('VB',';~I','move'), w('PUNC','.')]
(4.8)
| ?- tphrase_set_string([w('ADJ;_cat_','unable'), w('TO','to'), w('VB',';~I','move')]), parse(verb_complements_by_code(';~La',[],filled_sbj,active)).

(ADJP-PRD2 (ADJ;_cat_ unable)
           (IP-INF (TO to)
                   (VB;~I move)))

yes

Word list content for (4.8) is the adjective w('ADJ;_cat_','unable') together with following material for a to-infinitive clause. This is material for an adjective phrase when Type information is set to catenative, and so success is possible under [rule 1] of (4.4) with its adjective_phrase call.

    Parsing word list (4.9) as a sentence leads to the verb_complements_by_code call seen with (4.10).

(4.9)
[w('PRO;_expletive_','It'), w('BEP',';~La','is'), w('ADJ','cold'), w('PUNC','.')]
(4.10)
| ?- tphrase_set_string([w('ADJ','cold')]), parse(verb_complements_by_code(';~La',[],expletive_sbj,active)).

Note the expletive_sbj setting for the SbjType parameter in (4.10) inherited from the expletive it of (4.9). Also, there is an adjective as word list content for (4.10), making success possible under [rule 2] of (4.4) with its adjective_phrase call.

    Parsing word list (4.11) as a sentence leads to the verb_complements_by_code call seen with (4.12).

(4.11)
[w('WADV','How'), w('ADJ','annoying'), w('MD',';~cat_Vi','would'), w('D;_nphd_','that'), w('BE',';~La','be'), w('PUNC','?')]
(4.12)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~La',[adjp(node('*ICH*-122',[]))],filled_sbj,active)).

(ADJP-PRD2 *ICH*-122)

yes

With (4.12), the word list is empty, yet [w('WADV','How'),w('ADJ','annoying')] of (4.11) brings about a stored adjective phrase index (adjp(node('*ICH*-122',[]))), allowing the verb_complements_by_code call to succeed under [rule 2] of (4.4).

4.2.2    Ln

Code ;~Ln selects a noun phrase with subject predicative function (NP-PRD2). For calls of the verb_complements_by_code rules of (4.13), either:

Also, the rules of (4.13) differ in the setting of the SbjType parameter:

One thing the rules of (4.13) have in common is that each sets the Voice parameter to active.

(4.13)
verb_complements_by_code(';~Ln',[],filled_sbj,active,L,L0) -->
  noun_phrase('-PRD2',non_privileged,L,L0).
verb_complements_by_code(';~Ln',[],expletive_sbj,active,L,L0) -->
  noun_phrase('-PRD2',non_privileged,L,L0).
verb_complements_by_code(';~Ln',[np(ICH)],filled_sbj,active,[node('NP-PRD2',[ICH])|L],L) -->
  [].

    Parsing word list (4.14) as a sentence leads to the verb_complements_by_code call seen with (4.15).

(4.14)
[w('PRO','I'), w('VBD',';~Tf','thought'), w('PRO','you'), w('BED',';~Ln','were'), w('D','the'), w('NPR','Egyptian'), w('PUNC','.')]
(4.15)
| ?- tphrase_set_string([w('D','the'), w('NPR','Egyptian')]), parse(verb_complements_by_code(';~Ln',[],filled_sbj,active)).

(NP-PRD2 (D the)
         (NPR Egyptian))

yes

There is a determiner followed by a noun as word list content for (4.15). This is material for a noun phrase, making success possible under [rule 1] of (4.13) with its noun_phrase call.

    Parsing word list (4.16) as a sentence leads to the verb_complements_by_code call seen with (4.17).

(4.16)
[w('PRO;_expletive_','It'), w('BED',';~Ln','was'), w('N','night'), w('PUNC','.')]
(4.17)
| ?- tphrase_set_string([w('N','night')]), parse(verb_complements_by_code(';~Ln',[],expletive_sbj,active)).

(NP-PRD2 (N night))

yes

Note the expletive_sbj settings for the SbjType parameter in (4.17) inherited from the expletive it of (4.16). Also, there is a noun as word list content for (4.17), making success possible under [rule 2] of (4.13) with its noun_phrase call.

    Parsing word list (4.18) as a noun phrase leads to the verb_complements_by_code call seen with (4.19).

(4.18)
[w('D','the'), w('N','man'), w('PRO','I'), w('VBD',';~Tf','thought'), w('PRO','you'), w('BED',';~Ln','were')]
(4.19)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Ln',[np(node('*T*',[]))],filled_sbj,active)).

(NP-PRD2 *T*)

yes

The word list is empty for (4.19), yet information is stored about a relative clause trace (np(node('*T*',[]))) (see section 6.9), allowing the verb_complements_by_code call to succeed under [rule 3] of (4.13).


4.3    Intransitive verbs

This section establishes selection criteria for intransitive verbs.

4.3.1    I

With code ;~I, there are no selected complement elements. Both rules of (4.20) expect an empty word list and no stored information ([]). They both return the content of L (gathered content of the clause layer) without change. They differ in the setting of the SbjType parameter:

(4.20)
verb_complements_by_code(';~I',[],filled_sbj,active,L,L) -->
  [].
verb_complements_by_code(';~I',[],expletive_sbj,active,L,L) -->
  [].

    Parsing word list (4.21) as a sentence leads to the verb_complements_by_code call seen with (4.22) where the word list is empty.

(4.21)
[w('PRO','He'), w('VBD',';~I','smiled'), w('PUNC','.')]
(4.22)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~I',[],filled_sbj,active)).

yes

Because there is content in (4.21) for a contentful subject ([w('PRO','He')]), the SbjType setting is filled_sbj in (4.22) for success under [rule 1] of (4.20). Also, note how the result of (4.22) reflects an absence of any tree structure being created.

    Parsing word list (4.23) as a sentence leads to the verb_complements_by_code call seen with (4.24) where the word list is empty.

(4.23)
[w('PRO;_expletive_','It'), w('VBD',';~I','rained'), w('PUNC','.')]
(4.24)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~I',[],expletive_sbj,active)).

yes

Because there is content in (4.23) for an expletive subject ([w('PRO;_expletive_','It')]), the SbjType setting is expletive_sbj in (4.24) for success under [rule 2] of (4.20).

Question

Why does query (4.25) fail?

(4.25)
| ?- tphrase_set_string([w('EX','There'), w('VBD',';~I','rained'), w('PUNC','.')]), parse(sentence).

no

4.3.2    Ip

Code ;~Ip selects an adverbial particle that is the head of an adverb phrase with a function closely related to the meaning of the verb (ADVP-CLR). For calls of the verb_complements_by_code rules of (4.26), either:

(4.26)
verb_complements_by_code(';~Ip',[],filled_sbj,active,L,L0) -->
  adverb_phrase('-CLR',particle,L,L0).
verb_complements_by_code(';~Ip',[advp(ICH)],filled_sbj,active,[node('ADVP-CLR',[ICH])|L],L) -->
  [].

    Parsing word list (4.27) as a sentence leads to the verb_complements_by_code call seen with (4.28).

(4.27)
[w('NPR','Nasha'), w('VBD',';~Ip','looked'), w('RP','back'), w('PUNC','.')]
(4.28)
| ?- tphrase_set_string([w('RP','back')]), parse(verb_complements_by_code(';~Ip',[],filled_sbj,active)).

(ADVP-CLR (RP back))

yes

The only remaining content of the word list for (4.28) is an adverbial particle, and so success happens with [rule 1] of (4.26) that consists of an adverb_phrase call with Type set to particle.

    Parsing word list (4.29) as a sentence leads to the verb_complements_by_code call seen with (4.30).

(4.29)
[w('D','the'), w('N','place'), w('RADV','where'), w('PRO','you'), w('BEP',';~cat_Vg','are'), w('VAG',';~Ip','standing')]
(4.30)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Ip',[advp(node('*ICH*-178',[]))],filled_sbj,active)).

(ADVP-CLR *ICH*-178)

yes

There is no remaining word list information for (4.30) but there is Store information for an adverb phrase that has yet to integrate with the overall parse structure, and so success is possible with [rule 2] of (4.26).

4.3.3    Ipr

Code ;~Ipr selects a preposition phrase with a function closely related to the meaning of the verb (PP-CLR). For calls of the verb_complements_by_code rules of (4.31), either:

(4.31)
verb_complements_by_code(';~Ipr',[],filled_sbj,active,L,L0) -->
  preposition_phrase('-CLR',non_privileged,L,L0).
verb_complements_by_code(';~Ipr',[np(ICH)],filled_sbj,active,[node('PP-CLR',[Role,node('NP',[ICH])])|L],L) -->
  role([Role],[]).
verb_complements_by_code(';~Ipr',[pp(ICH)],filled_sbj,active,[node('PP-CLR',[ICH])|L],L) -->
  [].
verb_complements_by_code(';~Ipr',[],filled_sbj,passive,[node('PP-CLR',[Role])|L],L) -->
  role([Role],[]).

    Parsing word list (4.32) as a sentence leads to the verb_complements_by_code call seen with (4.33).

(4.32)
[w('PRO','They'), w('VBD',';~Ipr','went'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.')]
(4.33)
| ?- tphrase_set_string([w('P-ROLE','to'), w('N','bed')]), parse(verb_complements_by_code(';~Ipr',[],filled_sbj,active)).

(PP-CLR (P-ROLE to)
        (NP (N bed)))

yes

The word list for (4.33) is left with a preposition word and a following noun word, so content to identify a preposition phrase. Consequently, success happens with [rule 1] of (4.31) with its preposition_phrase call.

    Parsing word list (4.34) as a sentence leads to the verb_complements_by_code call seen with (4.35).

(4.34)
[w('D','a'), w('N','place'), w('RPRO','that'), w('PRO','they'), w('ADV','all'), w('VBD',';~Ipr','went'), w('P-ROLE','to')]
(4.35)
| ?- tphrase_set_string([w('P-ROLE','to')]), parse(verb_complements_by_code(';~Ipr',[np(node('*ICH*-182',[]))],filled_sbj,active)).

(PP-CLR (P-ROLE to)
        (NP *ICH*-182))

yes

The only remaining content of the word list for (4.35) is a preposition word. Because there is also Store information for a noun phrase that has yet to integrate with the overall parse structure, success is possible with [rule 2] of (4.31) that has only a role call for identifying a preposition word.

    Parsing word list (4.36) as a noun phrase leads to the verb_complements_by_code call seen with (4.37).

(4.36)
[w('D','the'), w('NS','leaks'), w('P-ROLE','through'), w('RPRO','which'), w('D','the'), w('ADJ','precious'), w('N','air'), w('BED',';~cat_Vg','was'), w('VAG',';~Ipr','rushing')]
(4.37)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Ipr',[pp(node('*ICH*-182',[]))],filled_sbj,active)).

(PP-CLR *ICH*-182)

yes

While the word list is empty for (4.30), there is Store information for a preposition phrase that has yet to integrate with the overall parse structure. Consequently, success is possible with [rule 3] of (4.31).

    Parsing word list (4.38) as a sentence leads to the verb_complements_by_code call seen with (4.39).

(4.38)
[w('D;_nphd_','These'), w('BEP',';~cat_Ve_passive_','are'), w('VVN',';~Ipr','looked'), w('P-ROLE','after'), w('P-ROLE','by'), w('PRO','us'), w('PUNC','.')]
(4.39)
| ?- tphrase_set_string([w('P-ROLE','after')]), parse(verb_complements_by_code(';~Ipr',[],filled_sbj,passive)).

(PP-CLR (P-ROLE after))

yes

The only remaining content of the word list for (4.39) is a preposition word. Although the Store information is empty, the clause Type information is set to passive, and so success is possible with [rule 4] of (4.31).

4.3.4    In/pr

Code ;~In/pr selects either a noun phrase (NP-CLR) or a preposition phrase (PP-CLR). For calls of the verb_complements_by_code rules of (4.40), either:

(4.40)
verb_complements_by_code(';~In/pr',[],filled_sbj,active,L,L0) -->
  noun_phrase('-CLR',non_privileged,L,L0).
verb_complements_by_code(';~In/pr',[],filled_sbj,active,L,L0) -->
  preposition_phrase('-CLR',non_privileged,L,L0).

    Parsing word list (4.41) as a sentence leads to the verb_complements_by_code call seen with (4.42).

(4.41)
[w('PRO','We'), w('VBD',';~In/pr','stayed'), w('D','a'), w('N','fortnight'), w('PUNC','.')]
(4.42)
| ?- tphrase_set_string([w('D','a'), w('N','fortnight')]), parse(verb_complements_by_code(';~In/pr',[],filled_sbj,active)).

(NP-CLR (D a)
        (N fortnight))

yes

The word list for (4.42) is left with a determiner word and a following noun word, so content to identify a noun phrase. Consequently, success happens with [rule 1] of (4.40) with its noun_phrase call.

    Parsing word list (4.43) as a sentence leads to the verb_complements_by_code call seen with (4.44).

(4.43)
[w('PRO','We'), w('VBD',';~In/pr','stayed'), w('P-ROLE','for'), w('D','a'), w('N','fortnight'), w('PUNC','.')]
(4.44)
| ?- tphrase_set_string([w('P-ROLE','for'), w('D','a'), w('N','fortnight')]), parse(verb_complements_by_code(';~In/pr',[],filled_sbj,active)).

(PP-CLR (P-ROLE for)
        (NP (D a)
            (N fortnight)))

yes

The word list for (4.44) is left with a preposition word, a determiner word and a noun word, so content to identify a preposition phrase. Consequently, success happens with [rule 2] of (4.40) with its preposition_phrase call.

4.3.5    It

Code ;~It selects a to-infinitive clause (IP-INF-CLR). For a call of the verb_complements_by_code rule of (4.45), the word list should only have content for a to-infinitive clause.

(4.45)
verb_complements_by_code(';~It',[],filled_sbj,active,L,L0) -->
  ip_to_inf('-CLR',[],L,L0).

    Parsing word list (4.46) as a sentence leads to the verb_complements_by_code call seen with (4.47).

(4.46)
[w('PRO','We'), w('MD',';~cat_Vi','will'), w('NEG','not'), w('VB',';~It','hesitate'), w('TO','to'), w('VB',';~Ip','go'), w('RP','further'), w('PUNC','.')]
(4.47)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Ip','go'), w('RP','further')]), parse(verb_complements_by_code(';~It',[],filled_sbj,active)).

(IP-INF-CLR (TO to)
            (VB;~Ip go)
            (ADVP-CLR (RP further)))

yes

The word list for (4.47) is left with content to identify a to-infinitive clause. Consequently, success happens with (4.45) with its ip_to_inf call.

    Parsing word list (4.48) as a sentence leads to the verb_complements_by_code call seen with (4.49).

(4.48)
[w('PRO','We'), w('VBD',';~It','waited'), w('P-CONN','for'), w('PRO','it'), w('TO','to'), w('VB',';~I','start'), w('PUNC','.')]
(4.49)
| ?- tphrase_set_string([w('P-CONN','for'), w('PRO','it'), w('TO','to'), w('VB',';~I','start')]), parse(verb_complements_by_code(';~It',[],filled_sbj,active)).

(IP-INF-CLR (P-CONN for)
            (NP-SBJ (PRO it))
            (TO to)
            (VB;~I start))

yes

The word list for (4.49) is left with content to identify a to-infinitive clause with a clause initial for connective word and material for a subject noun phrase prior to the to word. Consequently, success happens with (4.45) with its ip_to_inf call.


4.4    Mono-transitive verbs

This section establishes selection criteria for mono-transitive verbs.

4.4.1    Tn

Code ;~Tn selects a noun phrase with object function (NP-OB1). For calls of the verb_complements_by_code rules of (4.50) with filled_sbj and active settings, the object noun phrase can occur either:

When the Voice setting is passive:

(4.50)
verb_complements_by_code(';~Tn',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L0).
verb_complements_by_code(';~Tn',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L) -->
  [].
verb_complements_by_code(';~Tn',[],filled_sbj,passive,L,L) -->
  [].

    Parsing word list (4.51) as a sentence leads to the verb_complements_by_code call seen with (4.52).

(4.51)
[w('D','The'), w('N','teacher'), w('VBD',';~Tn','scolded'), w('NPR','John'), w('PUNC','.')]
(4.52)
| ?- tphrase_set_string([w('NPR','John')]), parse(verb_complements_by_code(';~Tn',[],filled_sbj,active)).

(NP-OB1 (NPR John))

yes

The word list for (4.52) is left with a proper noun word, so content to identify a noun phrase. Consequently, success happens with [rule 1] of (4.50) with its noun_phrase call.

    Parsing word list (4.53) as a sentence leads to the verb_complements_by_code call seen with (4.54).

(4.53)
[w('D','a'), w('N','student'), w('RPRO','that'), w('D','the'), w('N','teacher'), w('VBD',';~Tn','scolded')]
(4.54)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn',[np(node('*ICH*-114',[]))],filled_sbj,active)).

(NP-OB1 *ICH*-114)

yes

While the word list is empty for (4.54), there is Store information for a noun phrase that has yet to integrate with the overall parse structure. Consequently, success happens with [rule 2] of (4.50)

    Parsing word list (4.55) as a sentence leads to the verb_complements_by_code call seen with (4.56).

(4.55)
[w('NPR','John'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn','scolded'), w('PUNC','.')]
(4.56)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn',[],filled_sbj,passive)).

yes

The word list is empty for (4.56). Although the Store information is also empty, the clause Type information is set to passive, and so success is possible with [rule 3] of (4.50).

4.4.2    Tn.p

Code ;~Tn.p selects a noun phrase with object function (NP-OB1) and an adverbial particle that is the head of an adverb phrase with a function closely related to the verb meaning (ADVP-CLR). For calls of the verb_complements_by_code rules of (4.57) with filled_sbj and active settings, either:

When the Voice setting is passive, either:

(4.57)
verb_complements_by_code(';~Tn.p',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  adverb_phrase('-CLR',particle,L1,L0).
verb_complements_by_code(';~Tn.p',[],filled_sbj,active,L,L0) -->
  adverb_phrase('-CLR',particle,L,L1),
  noun_phrase('-OB1',non_privileged,L1,L0).
verb_complements_by_code(';~Tn.p',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  adverb_phrase('-CLR',particle,L,L0).
verb_complements_by_code(';~Tn.p',[advp(ICH)],filled_sbj,active,[node('ADVP-CLR',[ICH])|L],L0) -->
  noun_phrase('-OB1',non_privileged,L,L0).
verb_complements_by_code(';~Tn.p',[],filled_sbj,passive,L,L0) -->
  adverb_phrase('-CLR',particle,L,L0).
verb_complements_by_code(';~Tn.p',[advp(ICH)],filled_sbj,passive,[node('ADVP-CLR',[ICH])|L],L) -->
  [].

    Parsing word list (4.58) as a sentence leads to the verb_complements_by_code call seen with (4.59).

(4.58)
[w('NPR','Susan'), w('VBD',';~Tn.p','turned'), w('D','the'), w('N','gas'), w('RP','on'), w('PUNC','.')]
(4.59)
| ?- tphrase_set_string([w('D','the'), w('N','gas'), w('RP','on')]), parse(verb_complements_by_code(';~Tn.p',[],filled_sbj,active)).

( (NP-OB1 (D the)
          (N gas))
  (ADVP-CLR (RP on)))

yes

The success of (4.59) is possible with [rule 1] of (4.57).

    Parsing word list (4.60) as a sentence leads to the verb_complements_by_code call seen with (4.61).

(4.60)
[w('NPR','Nasha'), w('VBD',';~Tn.p','sucked'), w('RP','in'), w('PRO;_genm_','her'), w('N','breath'), w('PUNC','.')]
(4.61)
| ?- tphrase_set_string([w('RP','in'), w('PRO;_genm_','her'), w('N','breath')]), parse(verb_complements_by_code(';~Tn.p',[],filled_sbj,active)).

( (ADVP-CLR (RP in))
  (NP-OB1 (NP-GENV (PRO;_genm_ her))
          (N breath)))

yes

The success of (4.61) is possible with [rule 2] of (4.57).

    Parsing word list (4.62) as a noun phrase leads to the verb_complements_by_code call seen with (4.63).

(4.62)
[w('ADJR','more'), w('N','stuff'), w('TO','to'), w('VB',';~Tn.p','put'), w('RP','in')]
(4.63)
| ?- tphrase_set_string([w('RP','in')]), parse(verb_complements_by_code(';~Tn.p',[np(node('*T*',[]))],filled_sbj,active)).

( (NP-OB1 *T*)
  (ADVP-CLR (RP in)))

yes

The success of (4.63) is possible with [rule 3] of (4.57).

    Parsing word list (4.64) as a sentence leads to the verb_complements_by_code call seen with (4.65).

(4.64)
[w('PRO','I'), w('VBP',';~Tw','wonder'), w('WADV','where'), w('PRO','she'), w('HVP',';~cat_Ve','<apos>s'), w('VVN',';~Tn.p','put'), w('D','the'), w('NS','dogs'), w('PUNC','.')]
(4.65)
| ?- tphrase_set_string([w('D','the'), w('NS','dogs')]), parse(verb_complements_by_code(';~Tn.p',[advp(node('*ICH*-158',[]))],filled_sbj,active)).

( (ADVP-CLR *ICH*-158)
  (NP-OB1 (D the)
          (NS dogs)))

yes

The success of (4.65) is possible with [rule 4] of (4.57).

    Parsing word list (4.66) as a sentence leads to the verb_complements_by_code call seen with (4.67).

(4.66)
[w('D','The'), w('N','straw'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn.p','peeled'), w('RP','off'), w('PUNC','.')]
(4.67)
| ?- tphrase_set_string([w('RP','off')]), parse(verb_complements_by_code(';~Tn.p',[],filled_sbj,passive)).

(ADVP-CLR (RP off))

yes

The success of (4.67) is possible with [rule 5] of (4.57).

    Parsing word list (4.68) as a sentence leads to the verb_complements_by_code call seen with (4.69).

(4.68)
[w('PRO','I'), w('VBP',';~Tw','wonder'), w('WADV','where'), w('D','the'), w('NS','dogs'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Tn.p','put'), w('PUNC','.')]
(4.69)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn.p',[advp(node('*ICH*-168',[]))],filled_sbj,passive)).

(ADVP-CLR *ICH*-168)

yes

The success of (4.69) is possible with [rule 6] of (4.57).

4.4.3    Tn.pr

Code ;~Tn.pr selects a noun phrase with object function (NP-OB1) and a preposition phrase with a function closely related to the verb meaning (PP-CLR). For calls of the verb_complements_by_code rules of (4.70) with filled_sbj and active settings, either:

When Voice setting is passive, either:

(4.70)
verb_complements_by_code(';~Tn.pr',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  preposition_phrase('-CLR',non_privileged,L1,L0).
verb_complements_by_code(';~Tn.pr',[],filled_sbj,active,L,L0) -->
  preposition_phrase('-CLR',non_privileged,L,L1),
  noun_phrase('-OB1',non_privileged,L1,L0).
verb_complements_by_code(';~Tn.pr',[],filled_sbj,active,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  preposition_phrase('-CLR',non_privileged,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,[node('PP-CLR',[Role,node('NP',[ICH])])|L0]),
  role([Role],[]).
verb_complements_by_code(';~Tn.pr',[pp(ICH)],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,[node('PP-CLR',[ICH])|L0]).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  preposition_phrase('-CLR',non_privileged,L,L0).
verb_complements_by_code(';~Tn.pr',[],filled_sbj,passive,L,L0) -->
  preposition_phrase('-CLR',non_privileged,L,L0).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_sbj,passive,[node('PP-CLR',[Role,node('NP',[ICH])])|L],L) -->
  role([Role],[]).
verb_complements_by_code(';~Tn.pr',[pp(ICH)],filled_sbj,passive,[node('PP-CLR',[ICH])|L],L) -->
  [].

    Parsing word list (4.71) as a sentence leads to the verb_complements_by_code call seen with (4.72).

(4.71)
[w('PRO','It'), w('VBD',';~Tn.pr','filled'), w('PRO','me'), w('P-ROLE','with'), w('N','fear'), w('PUNC','.')]
(4.72)
| ?- tphrase_set_string([w('PRO','me'), w('P-ROLE','with'), w('N','fear')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_sbj,active)).

( (NP-OB1 (PRO me))
  (PP-CLR (P-ROLE with)
          (NP (N fear))))

yes

The success of (4.72) is possible with [rule 1] of (4.70).

    Parsing word list (4.73) as a sentence leads to the verb_complements_by_code call seen with (4.74).

(4.73)
[w('NPR','taskW'), w('VBP',';~Tn.pr','runs'), w('P-ROLE','in'), w('D','a'), w('N','taskwindow'), w('D','an'), w('N','executable'), w('PUNC','.')]
(4.74)
| ?- tphrase_set_string([w('P-ROLE','in'), w('D','a'), w('N','taskwindow'), w('D','an'), w('N','executable')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_sbj,active)).

( (PP-CLR (P-ROLE in)
          (NP (D a)
              (N taskwindow)))
  (NP-OB1 (D an)
          (N executable)))

yes

The success of (4.74) is possible with [rule 2] of (4.70).

    Parsing word list (4.75) as a sentence leads to the verb_complements_by_code call seen with (4.76).

(4.75)
[w('PRO','I'), w('VBP',';~Tn.pr','leave'), w('PRO;_provisional_','it'), w('P-ROLE','to'), w('PRO','you'), w('TO','to'), w('VB',';~I','decide'), w('PUNC','.')]
(4.76)
| ?- tphrase_set_string([w('PRO;_provisional_','it'), w('P-ROLE','to'), w('PRO','you'), w('TO','to'), w('VB',';~I','decide')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_sbj,active)).

( (NP-OB1 (PRO;_provisional_ it))
  (PP-CLR (P-ROLE to)
          (NP (PRO you)))
  (IP-INF-NOB1 (TO to)
               (VB;~I decide)))

yes

The success of (4.76) is possible with [rule 3] of (4.70).

    Parsing word list (4.77) as a noun phrase leads to the verb_complements_by_code call seen with (4.78).

(4.77)
[w('D','the'), w('NS','people'), w('RPRO','that'), w('PRO','I'), w('VBP',';~Tn.pr','take'), w('N','items'), w('P-ROLE','over_to')]
(4.78)
| ?- tphrase_set_string([w('N','items'), w('P-ROLE','over_to')]), parse(verb_complements_by_code(';~Tn.pr',[np(node('*ICH*-212',[]))],filled_sbj,active)).

( (NP-OB1 (N items))
  (PP-CLR (P-ROLE over_to)
          (NP *ICH*-212)))

yes

The success of (4.78) is possible with [rule 4] of (4.70).

    Parsing word list (4.79) as a noun phrase leads to the verb_complements_by_code call seen with (4.80).

(4.79)
[w('D','the'), w('NS','people'), w('P-ROLE','over_to'), w('RPRO','who'), w('PRO','I'), w('VBP',';~Tn.pr','take'), w('N','items')]
(4.80)
| ?- tphrase_set_string([w('N','items')]), parse(verb_complements_by_code(';~Tn.pr',[pp(node('*ICH*-222',[]))],filled_sbj,active)).

( (NP-OB1 (N items))
  (PP-CLR *ICH*-222))

yes

The success of (4.80) is possible with [rule 5] of (4.70).

    Parsing word list (4.81) as a noun phrase leads to the verb_complements_by_code call seen with (4.82).

(4.81)
[w('D','the'), w('NS','items'), w('RPRO','that'), w('PRO','I'), w('VBP',';~Tn.pr','take'), w('P-ROLE','over_to'), w('PRO;_genm_','my'), w('N','mother')]
(4.82)
| ?- tphrase_set_string([w('P-ROLE','over_to'), w('PRO;_genm_','my'), w('N','mother')]), parse(verb_complements_by_code(';~Tn.pr',[np(node('*ICH*-232',[]))],filled_sbj,active)).

( (NP-OB1 *ICH*-232)
  (PP-CLR (P-ROLE over_to)
          (NP (NP-GENV (PRO;_genm_ my))
              (N mother))))

yes

The success of (4.82) is possible with [rule 6] of (4.70).

    Parsing word list (4.83) as a sentence leads to the verb_complements_by_code call seen with (4.84).

(4.83)
[w('Q','Two'), w('NS','certificates'), w('BEP',';~cat_Ve_passive_','are'), w('VVN',';~Tn.pr','pinned'), w('P-ROLE','on'), w('D','the'), w('N','wall'), w('PUNC','.')]
(4.84)
| ?- tphrase_set_string([w('P-ROLE','on'), w('D','the'), w('N','wall')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_sbj,passive)).

(PP-CLR (P-ROLE on)
        (NP (D the)
            (N wall)))

yes

The success of (4.84) is possible with [rule 7] of (4.70).

    Parsing word list (4.85) as a noun phrase leads to the verb_complements_by_code call seen with (4.86).

(4.85)
[w('D','the'), w('N','place'), w('PRO','he'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn.pr','put'), w('P-ROLE','on')]
(4.86)
| ?- tphrase_set_string([w('P-ROLE','on')]), parse(verb_complements_by_code(';~Tn.pr',[np(node('*T*',[]))],filled_sbj,passive)).

(PP-CLR (P-ROLE on)
        (NP *T*))

yes

The success of (4.86) is possible with [rule 8] of (4.70).

    Parsing word list (4.87) as a noun phrase leads to the verb_complements_by_code call seen with (4.88).

(4.87)
[w('D','the'), w('N','place'), w('P-ROLE','on'), w('RPRO','which'), w('PRO','he'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn.pr','put')]
(4.88)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn.pr',[pp(node('*ICH*-242',[]))],filled_sbj,passive)).

(PP-CLR *ICH*-242)

yes

The success of (4.88) is possible with [rule 9] of (4.70).

4.4.4    Tf

Code ;~Tf selects a that-clause with object function (CP-THT-OB1). For a call of the verb_complements_by_code rule of (4.89), there has to be content from the word list for a that-clause.

(4.89)
verb_complements_by_code(';~Tf',Store,filled_sbj,active,L,L0) -->
  cp_that('-OB1',_,Store,L,L0).

    Parsing word list (4.90) as a sentence leads to the verb_complements_by_code call seen with (4.91).

(4.90)
[w('WPRO','What'), w('DOP','','do'), w('PRO','you'), w('VB',';~Tf','suppose'), w('D','an'), w('N','exploring'), w('N','party'), w('MD',';~cat_Vi','would'), w('VB',';~Tn','find'), w('PUNC','?')]
(4.91)
| ?- tphrase_set_string([w('D','an'), w('N','exploring'), w('N','party'), w('MD',';~cat_Vi','would'), w('VB',';~Tn','find')]), parse(verb_complements_by_code(';~Tf',[np(node('*ICH*-192',[]))],filled_sbj,active)).

(CP-THT-OB1 (IP-SUB (NP-SBJ (D an)
                            (N exploring)
                            (N party))
                    (MD;~cat_Vi would)
                    (IP-INF-CAT (VB;~Tn find)
                                (NP-OB1 *ICH*-192))))

yes

4.4.5    Tw

Code ;~Tw selects an embedded question clause with object function (CP-QUE-OB1). For a call of the verb_complements_by_code rule of (4.92), there has to be content from the word list for an embedded question clause.

(4.92)
verb_complements_by_code(';~Tw',Store,filled_sbj,active,L,L0) -->
  cp_embedded_que('-OB1',Store,L,L0).

    Parsing word list (4.93) as a sentence leads to the verb_complements_by_code call seen with (4.94).

(4.93)
[w('D','A'), w('N','parse'), w('VBP',';~Tw','tells'), w('WADV','how'), w('N','information'), w('VBP',';~Ipr','flows'), w('P-ROLE','through'), w('N','structure'), w('PUNC','.')]
(4.94)
| ?- tphrase_set_string([w('WADV','how'), w('N','information'), w('VBP',';~Ipr','flows'), w('P-ROLE','through'), w('N','structure')]), parse(verb_complements_by_code(';~Tw',[],filled_sbj,active)).

(CP-QUE-OB1 (IP-SUB (ADVP-NIM (WADV how))
                    (NP-SBJ (N information))
                    (VBP;~Ipr flows)
                    (PP-CLR (P-ROLE through)
                            (NP (N structure)))))

yes

    Parsing word list (4.95) as a sentence leads to the verb_complements_by_code call seen with (4.96).

(4.95)
[w('PRO','I'), w('DOP','','do'), w('NEG;_clitic_','n<apos>t'), w('VB',';~Tw','know'), w('WPRO','what'), w('TO','to'), w('DO',';~Tn','do'), w('PUNC','.')]
(4.96)
| ?- tphrase_set_string([w('WPRO','what'), w('TO','to'), w('DO',';~Tn','do')]), parse(verb_complements_by_code(';~Tw',[],filled_sbj,active)).

(CP-QUE-OB1 (IP-INF (NP-363 (WPRO what))
                    (TO to)
                    (DO;~Tn do)
                    (NP-OB1 *ICH*-363)))

yes

4.4.6    Tr

Code ;~Tr selects an utterance that is reported speech with object function (utterance-OB1). For calls of the verb_complements_by_code rules of (4.97), the object utterance can occur either:

(4.97)
verb_complements_by_code(';~Tr',[],filled_sbj,active,L,L0) -->
  optional_punc_non_final(L,L3),
  punc(left_quotation_mark,L3,L2),
  utterance('-OB1',L2,L1),
  punc(right_quotation_mark,L1,L0).
verb_complements_by_code(';~Tr',[utterance(ICH)],filled_sbj,active,[node('utterance-OB1',[ICH])|L],L) -->
  [].

    Parsing word list (4.98) as a sentence leads to the verb_complements_by_code call seen with (4.99).

(4.98)
[w('PRO','He'), w('VBD',';~Tr','said'), w('PULQ','<ldquo>'), w('PRO','I'), w('BEP',';~cat_Vg','<apos>m'), w('VAG',';~Ipr','going'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.'), w('PURQ','<rdquo>'), w('PUNC','.')]
(4.99)
| ?- tphrase_set_string([w('PULQ','<ldquo>'), w('PRO','I'), w('BEP',';~cat_Vg','<apos>m'), w('VAG',';~Ipr','going'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.'), w('PURQ','<rdquo>')]), parse(verb_complements_by_code(';~Tr',[],filled_sbj,active)).

( (PULQ <ldquo>)
  (utterance-OB1 (IP-MAT (NP-SBJ (PRO I))
                         (BEP;~cat_Vg <apos>m)
                         (IP-PPL-CAT (VAG;~Ipr going)
                                     (PP-CLR (P-ROLE to)
                                             (NP (N bed))))
                         (PUNC .)))
  (PURQ <rdquo>))

yes

The success of (4.99) is possible with [rule 1] of (4.97).

    Parsing word list (4.100) as a sentence leads to the verb_complements_by_code call seen with (4.101).

(4.100)
[w('PULQ','<ldquo>'), w('D','A'), w('N','paradox'), w('PUNC','.'), w('PURQ','<rdquo>'), w('PUNC',','), w('NPR','Nasha'), w('VBD',';~Tr','said'), w('PUNC','.')]
(4.101)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tr',[utterance(node('*ICH*-224',[]))],filled_sbj,active)).

(utterance-OB1 *ICH*-224)

yes

The success of (4.101) is possible with [rule 2] of (4.97).

4.4.7    Tt

Code ;~Tt selects a to-infinitive clause with object function (IP-INF-OB1). For a call of the verb_complements_by_code rule of (4.102), there has to be content from the word list for a to-infinitive clause.

(4.102)
verb_complements_by_code(';~Tt',Store,filled_sbj,active,L,L0) -->
  ip_to_inf('-OB1',Store,L,L0).

    Parsing word list (4.103) as a sentence leads to the verb_complements_by_code call seen with (4.104).

(4.103)
[w('PRO','We'), w('HVD',';~cat_Ve','had'), w('VVN',';~Tt','planned'), w('TO','to'), w('VB',';~I','meet'), w('PUNC','.')]
(4.104)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','meet')]), parse(verb_complements_by_code(';~Tt',[],filled_sbj,active)).

(IP-INF-OB1 (TO to)
            (VB;~I meet))

yes

4.4.8    Tnt

Code ;~Tnt selects a noun phrase with derived object function (NP-DOB1) and a to-infinitive clause with object function (IP-INF-OB1). For calls of the verb_complements_by_code rules of (4.105) with filled_sbj and active settings, while content for the to-infinitive clause comes from the word list, the derived object noun phrase can occur either:

When the Voice setting is passive:

There is also the possibility of a provisional object:

(4.105)
verb_complements_by_code(';~Tnt',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-DOB1',non_privileged,L,[node('IP-INF-OB1',VL)|L0]),
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_by_code(';~Tnt',Store,filled_sbj,active,[node('NP-DOB1',[node('PRO;_expletive_',[node(Word,[])])]),node('IP-INF-OB1',VL)|L],L) -->
  [w('PRO;_expletive_',Word)],
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_by_code(';~Tnt',[np(ICH)],filled_sbj,active,[node('NP-DOB1',[ICH]),node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer([],filled_sbj,active,VL,[]).
verb_complements_by_code(';~Tnt',Store,filled_sbj,passive,[node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_by_code(';~Tnt',Store,filled_sbj,active,[node('NP-DOB1',[node('PRO;_provisional_',[node(Word,[])])]),node('IP-INF-OB1',VL)|L],L0) -->
  [w('PRO;_provisional_',Word)],
  to_inf_layer(Store,filled_sbj,active,VL,[]),
  notional_item('-NOB1',L,L0).

Note that the to-infinitive clause integrates into the parse with the call of to_inf_layer (see section 6.3) in all of the rules of (4.105). This has the consequence that there can be no for-introduced subject internal to the object to-infinitive clause, ensuring no disruption of control inheritance from the derived object (/subject when passive).

    Parsing word list (4.106) as a sentence leads to the verb_complements_by_code call seen with (4.107).

(4.106)
[w('PRO','We'), w('VBP',';~Tnt','want'), w('PRO','you'), w('TO','to'), w('VB',';~I','know'), w('PUNC','.')]
(4.107)
| ?- tphrase_set_string([w('PRO','you'), w('TO','to'), w('VB',';~I','know')]), parse(verb_complements_by_code(';~Tnt',[],filled_sbj,active)).

( (NP-DOB1 (PRO you))
  (IP-INF-OB1 (TO to)
              (VB;~I know)))

yes

The success of (4.107) is possible with [rule 1] of (4.105).

    Parsing word list (4.108) as a sentence leads to the verb_complements_by_code call seen with (4.109).

(4.108)
[w('NPR','John'), w('VBD',';~Tnt','needed'), w('PRO;_expletive_','it'), w('TO','to'), w('VB',';~I','rain'), w('PUNC','.')]
(4.109)
| ?- tphrase_set_string([w('PRO;_expletive_','it'), w('TO','to'), w('VB',';~I','rain')]), parse(verb_complements_by_code(';~Tnt',[],filled_sbj,active)).

( (NP-DOB1 (PRO;_expletive_ it))
  (IP-INF-OB1 (TO to)
              (VB;~I rain)))

yes

The success of (4.109) is possible with [rule 2] of (4.105).

    Parsing word list (4.110) as a noun phrase leads to the verb_complements_by_code call seen with (4.111).

(4.110)
[w('NS','people'), w('RPRO','who'), w('PRO','it'), w('VBP',';~Tnt','believes'), w('TO','to'), w('BE',';~La','be'), w('ADJ','subversive')]
(4.111)
| ?- tphrase_set_string([w('TO','to'), w('BE',';~La','be'), w('ADJ','subversive')]), parse(verb_complements_by_code(';~Tnt',[np(node('*ICH*-243',[]))],filled_sbj,active)).

( (NP-DOB1 *ICH*-243)
  (IP-INF-OB1 (TO to)
              (BE;~La be)
              (ADJP-PRD2 (ADJ subversive))))

yes

The success of (4.111) is possible with [rule 3] of (4.105).

    Parsing word list (4.112) as a sentence leads to the verb_complements_by_code call seen with (4.113).

(4.112)
[w('PRO','We'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Tnt','allowed'), w('TO','to'), w('VB',';~I','go'), w('PUNC','.')]
(4.113)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','go')]), parse(verb_complements_by_code(';~Tnt',[],filled_sbj,passive)).

(IP-INF-OB1 (TO to)
            (VB;~I go))

yes

The success of (4.113) is possible with [rule 4] of (4.105).

    Parsing word list (4.114) as a sentence leads to the verb_complements_by_code call seen with (4.115).

(4.114)
[w('NPR','Kim'), w('VBD',';~Tnt','expected'), w('PRO;_provisional_','it'), w('TO','to'), w('BE',';~La','be'), w('ADJ','easy'), w('TO','to'), w('VB',';~Tn','impress'), w('NPR','Sandy'), w('PUNC','.')]
(4.115)
| ?-  tphrase_set_string([w('PRO;_provisional_','it'), w('TO','to'), w('BE',';~La','be'), w('ADJ','easy'), w('TO','to'), w('VB',';~Tn','impress'), w('NPR','Sandy')]), parse(verb_complements_by_code(';~Tnt',[],filled_sbj,active)).

( (NP-DOB1 (PRO;_provisional_ it))
  (IP-INF-OB1 (TO to)
              (BE;~La be)
              (ADJP-PRD2 (ADJ easy)))
  (IP-INF-NOB1 (TO to)
               (VB;~Tn impress)
               (NP-OB1 (NPR Sandy))))

yes

The success of (4.115) is possible with [rule 5] of (4.105).

4.4.9    Tni

Code ;~Tni selects a noun phrase with derived object function (NP-DOB1) and a bare infinitive clause with object function (IP-INF-OB1). For calls of the verb_complements_by_code rules of (4.116), while content for the bare infinitive clause comes from the word list, the derived object noun phrase can occur either:

(4.116)
verb_complements_by_code(';~Tni',[],filled_sbj,active,L,L0) -->
  noun_phrase('-DOB1',non_privileged,L,[node('IP-INF-OB1',VL)|L0]),
  verb_phrase_layer([],filled_sbj,infinitive,active,VL,[]).
verb_complements_by_code(';~Tni',[np(ICH)],filled_sbj,active,[node('NP-DOB1',[ICH]),node('IP-INF-OB1',VL)|L],L) -->
  verb_phrase_layer([],filled_sbj,infinitive,active,VL,[]).

    Parsing word list (4.117) as a sentence leads to the verb_complements_by_code call seen with (4.118).

(4.117)
[w('PRO','You'), w('MD',';~cat_Vi','can'), w('VB',';~Tni','see'), w('D','the'), w('N','blood'), w('VB',';~Ipr','run'), w('P-ROLE','from'), w('PRO;_genm_','their'), w('N','face'), w('PUNC','.')]
(4.118)
| ?- tphrase_set_string([w('D','the'), w('N','blood'), w('VB',';~Ipr','run'), w('P-ROLE','from'), w('PRO;_genm_','their'), w('N','face')]), parse(verb_complements_by_code(';~Tni',[],filled_sbj,active)).

( (NP-DOB1 (D the)
           (N blood))
  (IP-INF-OB1 (VB;~Ipr run)
              (PP-CLR (P-ROLE from)
                      (NP (NP-GENV (PRO;_genm_ their))
                          (N face)))))

yes

The success of (4.118) is possible with [rule 1] of (4.116).

    Parsing word list (4.119) as a sentence leads to the verb_complements_by_code call seen with (4.120).

(4.119)
[w('EX','There'), w('BEP',';~ex_V','is'), w('D;_nphd_','someone'), w('RPRO','whom'), w('NPR','Helen'), w('VBD',';~Tni','saw'), w('VB',';~Tn','answer'), w('D','the'), w('N','phone'), w('PUNC','.')]
(4.120)
| ?- tphrase_set_string([w('VB',';~Tn','answer'), w('D','the'), w('N','phone')]), parse(verb_complements_by_code(';~Tni',[np(node('*ICH*-253',[]))],filled_sbj,active)).

( (NP-DOB1 *ICH*-253)
  (IP-INF-OB1 (VB;~Tn answer)
              (NP-OB1 (D the)
                      (N phone))))

yes

The success of (4.120) is possible with [rule 2] of (4.116).

4.4.10    Tg

Code ;~Tg selects a present participle (-ing) clause with object function (IP-PPL-OB1). For a call of the verb_complements_by_code rule of (4.121), there has to be content from the word list for a present participle (-ing) clause.

(4.121)
verb_complements_by_code(';~Tg',Store,filled_sbj,active,L,L0) -->
  ip_ppl_active('-OB1',Store,filled_sbj,ing_participle,L,L0).

    Parsing word list (4.122) as a sentence leads to the verb_complements_by_code call seen with (4.123).

(4.122)
[w('VB',';~Tg','Stop'), w('VAG',';~I','shouting'), w('PUNC','.')]
(4.123)
| ?- tphrase_set_string([w('VAG',';~I','shouting')]), parse(verb_complements_by_code(';~Tg',[],filled_sbj,active)).

(IP-PPL-OB1 (VAG;~I shouting))

yes

4.4.11    Tng

Code ;~Tng selects a noun phrase with derived object function (NP-DOB1) and a present participle (-ing) clause with object function (IP-PPL-OB1). For calls of the verb_complements_by_code rules of (4.124) with filled_sbj and active settings, while content for the participle clause comes from the word list, the derived object noun phrase can occur either:

When the Voice setting is passive:

(4.124)
verb_complements_by_code(';~Tng',[],filled_sbj,active,L,L0) -->
  noun_phrase('-DOB1',non_privileged,L,L1),
  ip_ppl_active('-OB1',[],filled_sbj,ing_participle,L1,L0).
verb_complements_by_code(';~Tng',[np(ICH)],filled_sbj,active,[node('NP-DOB1',[ICH])|L],L0) -->
  ip_ppl_active('-OB1',[],filled_sbj,ing_participle,L,L0).
verb_complements_by_code(';~Tng',[],filled_sbj,passive,L,L0) -->
  ip_ppl_active('-OB1',[],filled_sbj,ing_participle,L,L0).

Note that ip_ppl_active (see section 5.4.3) in all of the rules of (4.124) takes the filled_sbj setting. This ensure no disruption of control inheritance from the derived object (/subject when passive).

    Parsing word list (4.125) as a sentence leads to the verb_complements_by_code call seen with (4.126).

(4.125)
[w('PRO','She'), w('MD',';~cat_Vi','could'), w('VB',';~Tng','feel'), w('PRO','it'), w('VAG',';~I','coming'), w('PUNC','.')]
(4.126)
| ?- tphrase_set_string([w('PRO','it'), w('VAG',';~I','coming')]), parse(verb_complements_by_code(';~Tng',[],filled_sbj,active)).

( (NP-DOB1 (PRO it))
  (IP-PPL-OB1 (VAG;~I coming)))

yes

The success of (4.126) is possible with [rule 1] of (4.124).

    Parsing word list (4.127) as a sentence leads to the verb_complements_by_code call seen with (4.128).

(4.127)
[w('EX','There'), w('BEP',';~ex_V','is'), w('D;_nphd_','someone'), w('RPRO','whom'), w('NPR','Helen'), w('VBD',';~Tng','saw'), w('VAG',';~Tn','hoeing'), w('NS','onions'), w('PUNC','.')]
(4.128)
| ?- tphrase_set_string([w('VAG',';~Tn','hoeing'), w('NS','onions')]), parse(verb_complements_by_code(';~Tng',[np(node('*ICH*-263',[]))],filled_sbj,active)).

( (NP-DOB1 *ICH*-263)
  (IP-PPL-OB1 (VAG;~Tn hoeing)
              (NP-OB1 (NS onions))))

yes

The success of (4.128) is possible with [rule 2] of (4.124).

    Parsing word list (4.129) as a sentence leads to the verb_complements_by_code call seen with (4.130).

(4.129)
[w('D','The'), w('NS','raiders'), w('MD',';~cat_Vi','can'), w('BE',';~cat_Ve_passive_','be'), w('VVN',';~Tng','seen'), w('VAG',';~Ipr','hovering'), w('P-ROLE','around'), w('D','the'), w('N','surface'), w('PUNC','.')]
(4.130)
| ?- tphrase_set_string([w('VAG',';~Ipr','hovering'), w('P-ROLE','around'), w('D','the'), w('N','surface')]), parse(verb_complements_by_code(';~Tng',[],filled_sbj,passive)).

(IP-PPL-OB1 (VAG;~Ipr hovering)
            (PP-CLR (P-ROLE around)
                    (NP (D the)
                        (N surface))))

yes

The success of (4.130) is possible with [rule 3] of (4.124).

4.4.12    Tsg

Code ;~Tsg selects a noun phrase that is the internal subject (-SBJ) of a selected present participle (-ing) clause with object function (IP-PPL-OB1). For calls of the verb_complements_by_code rules of (4.131) with filled_sbj and active settings, content for the noun phrase and the participle clause comes from the word list, with the internal form of noun phrase being either:

(4.131)
verb_complements_by_code(';~Tsg',[],filled_sbj,active,[node('IP-PPL3-OB1',[node('NP-SBJ',NL)|VL])|L],L) -->
  noun_phrase_genm_layer(non_privileged,NL,[]),
  verb_phrase_layer([],filled_sbj,ing_participle,active,VL,[]).
verb_complements_by_code(';~Tsg',[],filled_sbj,active,[node('IP-PPL3-OB1',[node('NP-SBJ',NL)|VL])|L],L) -->
  noun_phrase_top(non_privileged,NL,[]),
  verb_phrase_layer([],filled_sbj,ing_participle,active,VL,[]).

    Parsing word list (4.132) as a sentence leads to the verb_complements_by_code call seen with (4.133).

(4.132)
[w('DOP','','Do'), w('NEG;_clitic_','n<apos>t'), w('PRO','you'), w('VB',';~Tsg','remember'), w('PRO;_genm_','my'), w('VAG',';~Dn.*','telling'), w('PRO','you'), w('PUNC','?')]
(4.133)
| ?- tphrase_set_string([w('PRO;_genm_','my'), w('VAG',';~Dn.*','telling'), w('PRO','you')]), parse(verb_complements_by_code(';~Tsg',[],filled_sbj,active)).

(IP-PPL3-OB1 (NP-SBJ (PRO;_genm_ my))
             (VAG;~Dn.* telling)
             (NP-OB2 (PRO you)))

yes

The success of (4.133) is possible with [rule 1] of (4.131).

    Parsing word list (4.134) as a sentence leads to the verb_complements_by_code call seen with (4.135).

(4.134)
[w('DOP','','Do'), w('NEG;_clitic_','n<apos>t'), w('PRO','you'), w('VB',';~Tsg','remember'), w('PRO','me'), w('VAG',';~Dn.*','telling'), w('PRO','you'), w('PUNC','?')]
(4.135)
| ?- tphrase_set_string([w('PRO','me'), w('VAG',';~Dn.*','telling'), w('PRO','you')]), parse(verb_complements_by_code(';~Tsg',[],filled_sbj,active)).

(IP-PPL3-OB1 (NP-SBJ (PRO me))
             (VAG;~Dn.* telling)
             (NP-OB2 (PRO you)))

yes

The success of (4.135) is possible with [rule 2] of (4.131).


4.5    Ditransitive verbs

This section establishes selection criteria for ditransitive verbs.

4.5.1    Dn.n

Code ;~Dn.n selects a noun phrase with indirect object function (NP-OB2) and a noun phrase with direct object function (NP-OB1). For calls of the verb_complements_by_code rules of (4.136) with filled_sbj and active settings, either:

When the Voice setting is passive, either:

(4.136)
verb_complements_by_code(';~Dn.n',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,L1),
  noun_phrase('-OB1',non_privileged,L1,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  noun_phrase('-OB2',non_privileged,L,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_sbj,active,[node('NP-OB2',[ICH])|L],L0) -->
  noun_phrase('-OB1',non_privileged,L,L0).
verb_complements_by_code(';~Dn.n',[],filled_sbj,passive,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_sbj,passive,[node('NP-OB1',[ICH])|L],L) -->
  [].

    Parsing word list (4.137) as a sentence leads to the verb_complements_by_code call seen with (4.138).

(4.137)
[w('N','Daddy'), w('VBD',';~Dn.n','bought'), w('PRO','me'), w('D','a'), w('ADJ','new'), w('N','bike'), w('PUNC','.')]
(4.138)
| ?- tphrase_set_string([w('PRO','me'), w('D','a'), w('ADJ','new'), w('N','bike')]), parse(verb_complements_by_code(';~Dn.n',[],filled_sbj,active)).

( (NP-OB2 (PRO me))
  (NP-OB1 (D a)
          (ADJP (ADJ new))
          (N bike)))

yes

The success of (4.138) is possible with [rule 1] of (4.136).

    Parsing word list (4.139) as a noun phrase leads to the verb_complements_by_code call seen with (4.140).

(4.139)
[w('D','the'), w('N','task'), w('PRO','he'), w('VBD',';~Dn.n','set'), w('PNX','himself')]
(4.140)
| ?- tphrase_set_string([w('PNX','himself')]), parse(verb_complements_by_code(';~Dn.n',[np(node('*T*',[]))],filled_sbj,active)).

( (NP-OB1 *T*)
  (NP-OB2 (PNX himself)))

( (NP-OB2 *T*)
  (NP-OB1 (PNX himself)))

yes

The success of (4.140) is possible with [rule 2] of (4.136).

    Parsing word list (4.141) as a sentence leads to the verb_complements_by_code call seen with (4.142).

(4.141)
[w('D','the'), w('N','student'), w('PRO','he'), w('VBD',';~Dn.n','set'), w('D','the'), w('N','task')]
(4.142)
| ?- tphrase_set_string([w('D','the'), w('N','task')]), parse(verb_complements_by_code(';~Dn.n',[np(node('*T*',[]))],filled_sbj,active)).

( (NP-OB1 *T*)
  (NP-OB2 (D the)
          (N task)))

( (NP-OB2 *T*)
  (NP-OB1 (D the)
          (N task)))

yes

The success of (4.142) is possible with [rule 3] of (4.136).

    Parsing word list (4.143) as a sentence leads to the verb_complements_by_code call seen with (4.144).

(4.143)
[w('PRO','We'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Dn.n','played'), w('Q','two'), w('NS','recordings'), w('PUNC','.')]
(4.144)
| ?- tphrase_set_string([w('Q','two'), w('NS','recordings')]), parse(verb_complements_by_code(';~Dn.n',[],filled_sbj,passive)).

(NP-OB1 (Q two)
        (NS recordings))

yes

The success of (4.144) is possible with [rule 4] of (4.136).

    Parsing word list (4.145) as a noun phrase leads to the verb_complements_by_code call seen with (4.146).

(4.145)
[w('Q;_nphd_','everything'), w('Q;_nphd_','everyone'), w('HVP',';~cat_Ve','has'), w('BEN',';~cat_Ve_passive_','been'), w('VVN',';~Dn.n','taught')]
(4.146)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Dn.n',[np(node('*T*',[]))],filled_sbj,passive)).

(NP-OB1 *T*)

yes

The success of (4.146) is possible with [rule 5] of (4.136).

4.5.2    Dn.f

Code ;~Dn.f selects a noun phrase with indirect object function (NP-OB2) and a that-clause with direct object function (CP-THT-OB1). For calls of the verb_complements_by_code rules of (4.147) with filled_sbj and active settings:

When the Voice setting is passive:

(4.147)
verb_complements_by_code(';~Dn.f',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,L1),
  cp_that('-OB1',_,Store,L1,L0).
verb_complements_by_code(';~Dn.f',Store,filled_sbj,passive,L,L0) -->
  cp_that('-OB1',_,Store,L,L0).

Note how, for both rules of (4.147), inherited Store information passes on to the cp_that call.

    Parsing word list (4.148) as a sentence leads to the verb_complements_by_code call seen with (4.149).

(4.148)
[w('D;_nphd_','That'), w('BEP',';~equ_Vw','is'), w('WPRO','what'), w('D','the'), w('N','advice'), w('VBP',';~Dn.f','tells'), w('PRO','us'), w('PRO','we'), w('MD',';~cat_Vi','must'), w('DO',';~Tn','do'), w('PUNC','.')]
(4.149)
| ?- tphrase_set_string([w('PRO','us'), w('PRO','we'), w('MD',';~cat_Vi','must'), w('DO',';~Tn','do')]), parse(verb_complements_by_code(';~Dn.f',[np(node('*ICH*-274',[]))],filled_sbj,active)).

( (NP-OB2 (PRO us))
  (CP-THT-OB1 (IP-SUB (NP-SBJ (PRO we))
                      (MD;~cat_Vi must)
                      (IP-INF-CAT (DO;~Tn do)
                                  (NP-OB1 *ICH*-274)))))

yes

The success of (4.149) is possible with [rule 1] of (4.147).

    Parsing word list (4.150) as a sentence leads to the verb_complements_by_code call seen with (4.151).

(4.150)
[w('PRO','We'), w('VBD',';~cat_Ve_passive_','got'), w('VVN',';~Dn.f','told'), w('C','that'), w('D','that'), w('N','laser'), w('MD',';~cat_Vi','can'), w('VB',';~Ipr','cut'), w('P-ROLE','through'), w('N','concrete'), w('PUNC','.')]
(4.151)
| ?- tphrase_set_string([w('C','that'), w('D','that'), w('N','laser'), w('MD',';~cat_Vi','can'), w('VB',';~Ipr','cut'), w('P-ROLE','through'), w('N','concrete')]), parse(verb_complements_by_code(';~Dn.f',[],filled_sbj,passive)).

(CP-THT-OB1 (IP-SUB (C that)
                    (NP-SBJ (D that)
                            (N laser))
                    (MD;~cat_Vi can)
                    (IP-INF-CAT (VB;~Ipr cut)
                                (PP-CLR (P-ROLE through)
                                        (NP (N concrete))))))

yes

The success of (4.151) is possible with [rule 2] of (4.147).

4.5.3    Dn.w

Code ;~Dn.w selects a noun phrase with indirect object function (NP-OB2) and an embedded question clause with direct object function (CP-QUE-OB1). For calls of the verb_complements_by_code rules of (4.152) with filled_sbj and active settings:

When the Voice setting is passive:

(4.152)
verb_complements_by_code(';~Dn.w',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,L1),
  cp_embedded_que('-OB1',Store,L1,L0).
verb_complements_by_code(';~Dn.w',Store,filled_sbj,passive,L,L0) -->
  cp_embedded_que('-OB1',Store,L,L0).

Note how, for both rules of (4.147), inherited Store information passes on to the cp_embedded_que call.

    Parsing word list (4.153) as a sentence leads to the verb_complements_by_code call seen with (4.154).

(4.153)
[w('PRO;_genm_','My'), w('N','uncle'), w('VBD',';~Dn.w','showed'), w('PRO','me'), w('WADV','how'), w('TO','to'), w('VB',';~Tn','milk'), w('D','the'), w('NS','cows'), w('PUNC','.')]
(4.154)
| ?- tphrase_set_string([w('PRO','me'), w('WADV','how'), w('TO','to'), w('VB',';~Tn','milk'), w('D','the'), w('NS','cows')]), parse(verb_complements_by_code(';~Dn.w',[],filled_sbj,active)).

( (NP-OB2 (PRO me))
  (CP-QUE-OB1 (IP-INF (ADVP-NIM (WADV how))
                      (TO to)
                      (VB;~Tn milk)
                      (NP-OB1 (D the)
                              (NS cows)))))

yes

The success of (4.154) is possible with [rule 1] of (4.152).

    Parsing word list (4.155) as a sentence leads to the verb_complements_by_code call seen with (4.156).

(4.155)
[w('PRO','They'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Dn.w','asked'), w('WQ','if'), w('PRO','they'), w('VBD',';~Tf','believed'), w('NPR','Windows_98'), w('BED',';~Ln','was'), w('D','the'), w('ADJ','correct'), w('N','system'), w('TO','to'), w('HV',';~Tn','have'), w('PUNC','.')]
(4.156)
| ?- tphrase_set_string([w('WQ','if'), w('PRO','they'), w('VBD',';~Tf','believed'), w('NPR','Windows_98'), w('BED',';~Ln','was'), w('D','the'), w('ADJ','correct'), w('N','system'), w('TO','to'), w('HV',';~Tn','have')]), parse(verb_complements_by_code(';~Dn.w',[],filled_sbj,passive)).

(CP-QUE-OB1 (IP-SUB (WQ if)
                    (NP-SBJ (PRO they))
                    (VBD;~Tf believed)
                    (CP-THT-OB1 (IP-SUB (NP-SBJ (NPR Windows_98))
                                        (BED;~Ln was)
                                        (NP-PRD2 (D the)
                                                 (ADJP (ADJ correct))
                                                 (N system)
                                                 (IP-INF-REL (TO to)
                                                             (HV;~Tn have)
                                                             (NP-OB1 *T*)))))))

yes

The success of (4.156) is possible with [rule 2] of (4.152).

4.5.4    Dn.r

Code ;~Dn.r selects a noun phrase with indirect object function (NP-OB2) and an utterance that is reported speech with direct object function (utterance-OB1). For calls of the verb_complements_by_code rules of (4.157) with filled_sbj and active settings:

When the Voice setting is passive:

(4.157)
verb_complements_by_code(';~Dn.r',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,L4),
  optional_punc_non_final(L4,L3),
  punc(left_quotation_mark,L3,L2),
  utterance('-OB1',L2,L1),
  punc(right_quotation_mark,L1,L0).
verb_complements_by_code(';~Dn.r',[],filled_sbj,passive,L,L0) -->
  optional_punc_non_final(L,L3),
  punc(left_quotation_mark,L3,L2),
  utterance('-OB1',L2,L1),
  punc(right_quotation_mark,L1,L0).

    Parsing word list (4.158) as a sentence leads to the verb_complements_by_code call seen with (4.159).

(4.158)
[w('PRO','She'), w('VBD',';~Dn.r','asked'), w('D','the'), w('NPR','Prime'), w('NPR','Minister'), w('PULQ','<ldquo>'), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','<rdquo>'), w('PUNC','.')]
(4.159)
| ?- tphrase_set_string([w('D','the'), w('NPR','Prime'), w('NPR','Minister'), w('PULQ','<ldquo>'), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','<rdquo>')]), parse(verb_complements_by_code(';~Dn.r',[],filled_sbj,active)).

( (NP-OB2 (D the)
          (NPR Prime)
          (NPR Minister))
  (PULQ <ldquo>)
  (utterance-OB1 (CP-QUE-MAT (IP-SUB (BEP;~La Is)
                                     (NP-SBJ (PRO it))
                                     (ADJP-PRD2 (ADJ true)))
                             (PUNC ?)))
  (PURQ <rdquo>))

yes

The success of (4.159) is possible with [rule 1] of (4.157).

    Parsing word list (4.160) as a sentence leads to the verb_complements_by_code call seen with (4.161).

(4.160)
[w('D','The'), w('NPR','Prime'), w('NPR','Minister'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Dn.r','asked'), w('PULQ','<ldquo>'), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','<rdquo>'), w('PUNC','.')]
(4.161)
| ?- tphrase_set_string([w('PULQ','<ldquo>'), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','<rdquo>')]), parse(verb_complements_by_code(';~Dn.r',[],filled_sbj,passive)).

( (PULQ <ldquo>)
  (utterance-OB1 (CP-QUE-MAT (IP-SUB (BEP;~La Is)
                                     (NP-SBJ (PRO it))
                                     (ADJP-PRD2 (ADJ true)))
                             (PUNC ?)))
  (PURQ <rdquo>))

yes

The success of (4.161) is possible with [rule 2] of (4.157).

4.5.5    Dn.t

Code ;~Dn.t selects a noun phrase with indirect object function (NP-OB2) and a to-infinitive clause with direct object function (IP-INF-OB1). For calls of the verb_complements_by_code rules of (4.162) with filled_sbj and active settings:

When the Voice setting is passive:

(4.162)
verb_complements_by_code(';~Dn.t',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,[node('IP-INF-OB1',VL)|L0]),
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_by_code(';~Dn.t',Store,filled_sbj,passive,[node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer(Store,filled_sbj,active,VL,[]).

Note that the to-infinitive clause integrates into the parse with the call of to_inf_layer (see section 6.3) in both rules of (4.105). This has the consequence that there can be no for-introduced subject internal to the object to-infinitive clause, ensuring no disruption of control inheritance from the indirect object (/subject when passive). Also, note how the calls of to_inf_layer inherit any Store information.

    Parsing word list (4.163) as a sentence leads to the verb_complements_by_code call seen with (4.164).

(4.163)
[w('PRO','I'), w('VBD',';~Dn.t','asked'), w('NPR','Andrew'), w('TO','to'), w('HV',';~Tn','have'), w('D','a'), w('N','go'), w('PUNC','.')]
(4.164)
| ?- tphrase_set_string([w('NPR','Andrew'), w('TO','to'), w('HV',';~Tn','have'), w('D','a'), w('N','go')]), parse(verb_complements_by_code(';~Dn.t',[],filled_sbj,active)).

( (NP-OB2 (NPR Andrew))
  (IP-INF-OB1 (TO to)
              (HV;~Tn have)
              (NP-OB1 (D a)
                      (N go))))

yes

The success of (4.164) is possible with [rule 1] of (4.162).

    Parsing word list (4.165) as a sentence leads to the verb_complements_by_code call seen with (4.166).

(4.165)
[w('PRO','I'), w('HVP',';~cat_Ve','have'), w('ADV','now'), w('BEN',';~cat_Ve_passive_','been'), w('VVN',';~Dn.t','forbidden'), w('TO','to'), w('VB',';~Tn','make'), w('D;_nphd_','anything'), w('PUNC','.')]
(4.166)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Tn','make'), w('D;_nphd_','anything')]), parse(verb_complements_by_code(';~Dn.t',[],filled_sbj,passive)).

(IP-INF-OB1 (TO to)
            (VB;~Tn make)
            (NP-OB1 (D;_nphd_ anything)))

yes

The success of (4.166) is possible with [rule 2] of (4.162).

4.5.6    Dn.*

Code ;~Dn.* selects a noun phrase with indirect object function (NP-OB2) and there is no element with direct object function. For a call of the verb_complements_by_code rule of (4.167), there has to be content from the word list for a noun phrase.

(4.167)
verb_complements_by_code(';~Dn.*',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB2',non_privileged,L,L0).

    Parsing word list (4.168) as a sentence leads to the verb_complements_by_code call seen with (4.169).

(4.168)
[w('PRO','You'), w('DOD','','did'), w('VB',';~Dn.*','tell'), w('PRO','me'), w('PUNC','.')]
(4.169)
| ?- tphrase_set_string([w('PRO','me')]), parse(verb_complements_by_code(';~Dn.*',[],filled_sbj,active)).

(NP-OB2 (PRO me))

yes

4.5.7    Dpr.n

Code ;~Dpr.n selects a preposition phrase with indirect object function (PP-OB2) and a noun phrase with direct object function (NP-OB1). For calls of the verb_complements_by_code rules of (4.170) with filled_sbj and active settings, either:

When the Voice setting is passive:

(4.170)
verb_complements_by_code(';~Dpr.n',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  preposition_phrase('-OB2',non_privileged,L1,L0).
verb_complements_by_code(';~Dpr.n',[],filled_sbj,active,L,L0) -->
  preposition_phrase('-OB2',non_privileged,L,L1),
  noun_phrase('-OB1',non_privileged,L1,L0).
verb_complements_by_code(';~Dpr.n',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  preposition_phrase('-OB2',non_privileged,L,L0).
verb_complements_by_code(';~Dpr.n',[pp(ICH)],filled_sbj,active,[node('PP-OB2',[ICH])|L],L0) -->
  noun_phrase('-OB1',non_privileged,L,L0).
verb_complements_by_code(';~Dpr.n',[],filled_sbj,passive,L,L0) -->
  preposition_phrase('-OB2',non_privileged,L,L0).

    Parsing word list (4.171) as a sentence leads to the verb_complements_by_code call seen with (4.172).

(4.171)
[w('N','Daddy'), w('VBD',';~Dpr.n','bought'), w('D','a'), w('ADJ','new'), w('N','bike'), w('P-ROLE','for'), w('PRO','me'), w('PUNC','.')]
(4.172)
| ?- tphrase_set_string([w('D','a'), w('ADJ','new'), w('N','bike'), w('P-ROLE','for'), w('PRO','me')]), parse(verb_complements_by_code(';~Dpr.n',[],filled_sbj,active)).

( (NP-OB1 (D a)
          (ADJP (ADJ new))
          (N bike))
  (PP-OB2 (P-ROLE for)
          (NP (PRO me))))

yes

The success of (4.172) is possible with [rule 1] of (4.170).

    Parsing word list (4.173) as a sentence leads to the verb_complements_by_code call seen with (4.174).

(4.173)
[w('PRO','I'), w('VBP',';~Tt','want'), w('TO','to'), w('VB',';~Dpr.n','say'), w('P-ROLE','to'), w('PRO','you'), w('D;_nphd_','something'), w('PUNC','.')]
(4.174)
| ?- tphrase_set_string([w('P-ROLE','to'), w('PRO','you'), w('D;_nphd_','something')]), parse(verb_complements_by_code(';~Dpr.n',[],filled_sbj,active)).

( (PP-OB2 (P-ROLE to)
          (NP (PRO you)))
  (NP-OB1 (D;_nphd_ something)))

yes

The success of (4.174) is possible with [rule 2] of (4.170).

    Parsing word list (4.175) as a noun phrase leads to the verb_complements_by_code call seen with (4.176).

(4.175)
[w('D','the'), w('ADJ','maximum'), w('N','loan'), w('RPRO','that'), w('D','the'), w('N','state'), w('MD',';~cat_Vi','could'), w('VB',';~Dpr.n','make'), w('P-ROLE','to'), w('D','a'), w('N','project')]
(4.176)
| ?- tphrase_set_string([w('P-ROLE','to'), w('D','a'), w('N','project')]), parse(verb_complements_by_code(';~Dpr.n',[np(node('*ICH*-283',[]))],filled_sbj,active)).

( (NP-OB1 *ICH*-283)
  (PP-OB2 (P-ROLE to)
          (NP (D a)
              (N project))))

yes

The success of (4.176) is possible with [rule 3] of (4.170).

    Parsing word list (4.177) as a sentence leads to the verb_complements_by_code call seen with (4.178).

(4.177)
[w('NS','Details'), w('P-ROLE','of'), w('Q','all'), w('NS','negotiations'), w('BEP',';~cat_Ve_passive_','are'), w('VVN',';~Dpr.n','sent'), w('P-ROLE','to'), w('N','Head'), w('N','Office'), w('PUNC','.')]
(4.178)
| ?- tphrase_set_string([w('P-ROLE','to'), w('N','Head'), w('N','Office')]), parse(verb_complements_by_code(';~Dpr.n',[],filled_sbj,passive)).

(PP-OB2 (P-ROLE to)
        (NP (N Head)
            (N Office)))

yes

The success of (4.178) is possible with [rule 4] of (4.170).

4.5.8    Dpr.f

Code ;~Dpr.f selects a preposition phrase with indirect object function (PP-OB2) and a that-clause with direct object function (NP-OB1). For a call of the verb_complements_by_code rule of (4.179), there has to be content from the word list for a preposition phrase followed by a that-clause.

(4.179)
verb_complements_by_code(';~Dpr.f',Store,filled_sbj,active,L,L0) -->
  preposition_phrase('-OB2',non_privileged,L,L1),
  cp_that('-OB1',_,Store,L1,L0).

    Parsing word list (4.180) as a sentence leads to the verb_complements_by_code call seen with (4.181).

(4.180)
[w('PRO','They'), w('DOD','','did'), w('NEG;_clitic_','n<apos>t'), w('VB',';~Dpr.f','say'), w('P-ROLE','to'), w('D','the'), w('N','man'), w('C','that'), w('PRO','they'), w('BED',';~La','were'), w('ADJ','sorry'), w('PUNC','.')]
(4.181)
| ?- tphrase_set_string([w('P-ROLE','to'), w('D','the'), w('N','man'), w('C','that'), w('PRO','they'), w('BED',';~La','were'), w('ADJ','sorry')]), parse(verb_complements_by_code(';~Dpr.f',[],filled_sbj,active)).

( (PP-OB2 (P-ROLE to)
          (NP (D the)
              (N man)))
  (CP-THT-OB1 (IP-SUB (C that)
                      (NP-SBJ (PRO they))
                      (BED;~La were)
                      (ADJP-PRD2 (ADJ sorry)))))

yes

4.5.9    Dpr.r

Code ;~Dpr.r selects a preposition phrase with indirect object function (PP-OB2) and an utterance that is reported speech with direct object function (utterance-OB1). For a call of the verb_complements_by_code rule of (4.182), there has to be content from the word list for a preposition followed by left quotation punctuation followed by an utterance followed by right quotation punctuation.

(4.182)
verb_complements_by_code(';~Dpr.r',[],filled_sbj,active,L,L0) -->
  preposition_phrase('-OB2',non_privileged,L,L4),
  optional_punc_non_final(L4,L3),
  punc(left_quotation_mark,L3,L2),
  utterance('-OB1',L2,L1),
  punc(right_quotation_mark,L1,L0).

    Parsing word list (4.183) as a sentence leads to the verb_complements_by_code call seen with (4.184).

(4.183)
[w('PRO','She'), w('VBD',';~Dpr.r','said'), w('P-ROLE','to'), w('PRO','me'), w('PULQ','<ldquo>'), w('BEP',';~cat_Vg','are'), w('PRO','you'), w('VAG',';~I','going'), w('PUNC','?'), w('PURQ','<rdquo>'), w('PUNC','.')]
(4.184)
| ?- tphrase_set_string([w('P-ROLE','to'), w('PRO','me'), w('PULQ','<ldquo>'), w('BEP',';~cat_Vg','are'), w('PRO','you'), w('VAG',';~I','going'), w('PUNC','?'), w('PURQ','<rdquo>')]), parse(verb_complements_by_code(';~Dpr.r',[],filled_sbj,active)).

( (PP-OB2 (P-ROLE to)
          (NP (PRO me)))
  (PULQ <ldquo>)
  (utterance-OB1 (CP-QUE-MAT (IP-SUB (BEP;~cat_Vg are)
                                     (NP-SBJ (PRO you))
                                     (IP-PPL-CAT (VAG;~I going)))
                             (PUNC ?)))
  (PURQ <rdquo>))

yes

4.6    Complex-transitive verbs

This section establishes selection criteria for complex-transitive verbs.

4.6.1    Cn.a

Code ;~Cn.a selects a noun phrase with object function (NP-OB1) and an adjective phrase with object predicative function (ADJP-PRD). For calls of the verb_complements_by_code rules of (4.185) with filled_sbj and active settings, either:

When the Voice setting is passive:

(4.185)
verb_complements_by_code(';~Cn.a',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  adjective_phrase('-PRD',non_privileged,L1,L0).
verb_complements_by_code(';~Cn.a',[],filled_sbj,active,L,L0) -->
  adjective_phrase('-PRD',non_privileged,L,L1),
  noun_phrase('-OB1',non_privileged,L1,L0).
verb_complements_by_code(';~Cn.a',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  adjective_phrase('-PRD',non_privileged,L,L0).
verb_complements_by_code(';~Cn.a',[],filled_sbj,active,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  adjective_phrase('-PRD',non_privileged,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Cn.a',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-DOB1',non_privileged,L,L2),
  adjective_phrase('-PRD',non_privileged,L2,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer(Store,filled_sbj,passive,VL,[]).
verb_complements_by_code(';~Cn.a',[np(ICH)],filled_sbj,active,[node('NP-DOB1',[ICH])|L],L0) -->
  adjective_phrase('-PRD',non_privileged,L,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer([],filled_sbj,passive,VL,[]).
verb_complements_by_code(';~Cn.a',[],filled_sbj,passive,L,L0) -->
  adjective_phrase('-PRD',non_privileged,L,L0).
verb_complements_by_code(';~Cn.a',[],filled_sbj,passive,L,L0) -->
  adjective_phrase('-PRD',non_privileged,L,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer([],filled_sbj,passive,VL,[]).

    Parsing word list (4.186) as a sentence leads to the verb_complements_by_code call seen with (4.187).

(4.186)
[w('D','The'), w('ADJ','setting'), w('N','sun'), w('VBD',';~Cn.a','painted'), w('D','the'), w('ADJ','western'), w('N','sky'), w('ADJ','red'), w('PUNC','.')]
(4.187)
| ?- tphrase_set_string([w('D','the'), w('ADJ','western'), w('N','sky'), w('ADJ','red')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,active)).

( (NP-OB1 (D the)
          (ADJP (ADJ western))
          (N sky))
  (ADJP-PRD (ADJ red)))

yes

The success of (4.187) is possible with [rule 1] of (4.185).

    Parsing word list (4.188) as a sentence leads to the verb_complements_by_code call seen with (4.189).

(4.188)
[w('PRO','He'), w('VBD',';~Cn.a','flung'), w('ADJ','open'), w('D','the'), w('N','canopy'), w('PUNC','.')]
(4.189)
| ?- tphrase_set_string([w('ADJ','open'), w('D','the'), w('N','canopy')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,active)).

( (ADJP-PRD (ADJ open))
  (NP-OB1 (D the)
          (N canopy)))

yes

The success of (4.189) is possible with [rule 2] of (4.185).

    Parsing word list (4.190) as a noun phrase leads to the verb_complements_by_code call seen with (4.191).

(4.190)
[w('PRO;_genm_','her'), w('NS','habits'), w('RPRO','that'), w('Q;_nphd_','most'), w('MD',';~cat_Vi','would'), w('VB',';~Cn.a','find'), w('ADJ','annoying')]
(4.191)
| ?- tphrase_set_string([w('ADJ','annoying')]), parse(verb_complements_by_code(';~Cn.a',[np(node('*ICH*-296',[]))],filled_sbj,active)).

( (NP-OB1 *ICH*-296)
  (ADJP-PRD (ADJ annoying)))

yes

The success of (4.191) is possible with [rule 3] of (4.185).

    Parsing word list (4.192) as a sentence leads to the verb_complements_by_code call seen with (4.193).

(4.192)
[w('D','The'), w('N','decline'), w('VBP',';~Cn.a','makes'), w('PRO;_provisional_','it'), w('ADJR','easier'), w('TO','to'), w('VB',';~I','accept'), w('PUNC','.')]
(4.193)
| ?- tphrase_set_string([w('PRO;_provisional_','it'), w('ADJR','easier'), w('TO','to'), w('VB',';~I','accept')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,active)).

( (NP-OB1 (PRO;_provisional_ it))
  (ADJP-PRD (ADJR easier))
  (IP-INF-NOB1 (TO to)
               (VB;~I accept)))

yes

The success of (4.193) is possible with [rule 4] of (4.185).

    Parsing word list (4.194) as a sentence leads to the verb_complements_by_code call seen with (4.195).

(4.194)
[w('PRO','I'), w('VBP',';~Cn.a','find'), w('D;_nphd_','this'), w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe'), w('PUNC','.')]
(4.195)
| ?- tphrase_set_string([w('D;_nphd_','this'), w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,active)).

( (NP-DOB1 (D;_nphd_ this))
  (ADJP-PRD (ADJ difficult))
  (IP-INF-NOB1 (NP-LGS *)
               (TO to)
               (VB;~Tn believe)))

yes

The success of (4.195) is possible with [rule 5] of (4.185).

    Parsing word list (4.196) as a sentence leads to the verb_complements_by_code call seen with (4.197).

(4.196)
[w('WPRO','What'), w('DOD','','did'), w('PRO','you'), w('VB',';~Cn.a','find'), w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe'), w('PUNC','?')]
(4.197)
| ?- tphrase_set_string([w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe')]), parse(verb_complements_by_code(';~Cn.a',[np(node('*ICH*-311',[]))],filled_sbj,active)).

( (NP-DOB1 *ICH*-311)
  (ADJP-PRD (ADJ difficult))
  (IP-INF-NOB1 (NP-LGS *)
               (TO to)
               (VB;~Tn believe)))

yes

The success of (4.197) is possible with [rule 6] of (4.185).

    Parsing word list (4.198) as a sentence leads to the verb_complements_by_code call seen with (4.199).

(4.198)
[w('D','The'), w('ADJ','western'), w('N','sky'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.a','painted'), w('ADJ','red'), w('PUNC','.')]
(4.199)
| ?- tphrase_set_string([w('ADJ','red')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,passive)).

(ADJP-PRD (ADJ red))

yes

The success of (4.199) is possible with [rule 7] of (4.185).

    Parsing word list (4.200) as a sentence leads to the verb_complements_by_code call seen with (4.201).

(4.200)
[w('D;_nphd_','This'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.a','found'), w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe'), w('PUNC','.')]
(4.201)
| ?- tphrase_set_string([w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe')]), parse(verb_complements_by_code(';~Cn.a',[],filled_sbj,passive)).

( (ADJP-PRD (ADJ difficult))
  (IP-INF-NOB1 (NP-LGS *)
               (TO to)
               (VB;~Tn believe)))

yes

The success of (4.201) is possible with [rule 8] of (4.185).

4.6.2    Cn.n

Code ;~Cn.n selects a noun phrase with object function (NP-OB1) and a noun phrase with object predicative function (NP-PRD). For calls of the verb_complements_by_code rules of (4.202) with filled_sbj and active settings, either:

When the Voice setting is passive, either:

(4.202)
verb_complements_by_code(';~Cn.n',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  noun_phrase('-PRD',non_privileged,L1,L0).
verb_complements_by_code(';~Cn.n',[],filled_sbj,active,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  noun_phrase('-PRD',non_privileged,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Cn.n',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH])|L],L0) -->
  noun_phrase('-PRD',non_privileged,L,L0).
verb_complements_by_code(';~Cn.n',[],filled_sbj,passive,L,L0) -->
  noun_phrase('-PRD',non_privileged,L,L0).
verb_complements_by_code(';~Cn.n',[np(ICH)],filled_sbj,passive,[node('NP-PRD',[ICH])|L],L) -->
  [].

    Parsing word list (4.203) as a sentence leads to the verb_complements_by_code call seen with (4.204).

(4.203)
[w('PRO','He'), w('HVP',';~cat_Ve','has'), w('VVN',';~Cn.n','made'), w('PRO','it'), w('PRO;_ppge_','his'), w('PUNC','.')]
(4.204)
| ?- tphrase_set_string([w('PRO','it'), w('PRO;_ppge_','his')]), parse(verb_complements_by_code(';~Cn.n',[],filled_sbj,active)).

( (NP-OB1 (PRO it))
  (NP-PRD (NP-GENV (PRO;_ppge_ his))))

yes

The success of (4.204) is possible with [rule 1] of (4.202).

    Parsing word list (4.205) as a sentence leads to the verb_complements_by_code call seen with (4.206).

(4.205)
[w('VB',';~Cn.n','Make'), w('PRO;_provisional_','it'), w('D','a'), w('N','rule'), w('TO','to'), w('VB',';~Ip','get'), w('RP','up'), w('PUNC','.')]
(4.206)
| ?- tphrase_set_string([w('PRO;_provisional_','it'), w('D','a'), w('N','rule'), w('TO','to'), w('VB',';~Ip','get'), w('RP','up')]), parse(verb_complements_by_code(';~Cn.n',[],filled_sbj,active)).

( (NP-OB1 (PRO;_provisional_ it))
  (NP-PRD (D a)
          (N rule))
  (IP-INF-NOB1 (TO to)
               (VB;~Ip get)
               (ADVP-CLR (RP up))))

yes

The success of (4.206) is possible with [rule 2] of (4.202).

    Parsing word list (4.207) as a noun phrase leads to the verb_complements_by_code call seen with (4.208).

(4.207)
[w('D','a'), w('N','kitten'), w('RPRO','who'), w('PRO','we'), w('VBD',';~Cn.n','called'), w('NPR','Ruffels')]
(4.208)
| ?- tphrase_set_string([w('NPR','Ruffels')]), parse(verb_complements_by_code(';~Cn.n',[np(node('*ICH*-301',[]))],filled_sbj,active)).

( (NP-OB1 *ICH*-301)
  (NP-PRD (NPR Ruffels)))

yes

The success of (4.208) is possible with [rule 3] of (4.202).

    Parsing word list (4.209) as a sentence leads to the verb_complements_by_code call seen with (4.210).

(4.209)
[w('D','The'), w('N','kitten'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.n','called'), w('NPR','Ruffels'), w('PUNC','.')]
(4.210)
| ?- tphrase_set_string([w('NPR','Ruffels')]), parse(verb_complements_by_code(';~Cn.n',[],filled_sbj,passive)).

(NP-PRD (NPR Ruffels))

yes

The success of (4.210) is possible with [rule 4] of (4.202).

    Parsing word list (4.211) as a sentence leads to the verb_complements_by_code call seen with (4.212).

(4.211)
[w('WPRO','What'), w('BED',';~cat_Ve_passive_','was'), w('D','the'), w('N','city'), w('VVN',';~Cn.n','called'), w('PUNC','?')]
(4.212)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Cn.n',[np(node('*ICH*-314',[]))],filled_sbj,passive)).

(NP-PRD *ICH*-314)

yes

The success of (4.212) is possible with [rule 5] of (4.202).

4.6.3    Cn.n/a

Code ;~Cn.n/a selects a noun phrase with object function (NP-OB1) and a preposition phrase with object predicative function (PP-PRD). For calls of the verb_complements_by_code rules of (4.213) with filled_sbj and active settings:

When the Voice setting is passive:

(4.213)
verb_complements_by_code(';~Cn.n/a',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  preposition_phrase('-PRD',non_privileged,L1,L0).
verb_complements_by_code(';~Cn.n/a',[],filled_sbj,passive,L,L0) -->
  preposition_phrase('-PRD',non_privileged,L,L0).

    Parsing word list (4.214) as a noun phrase leads to the verb_complements_by_code call seen with (4.215).

(4.214)
[w('PRO','They'), w('VBD',';~Cn.n/a','accepted'), w('PRO','it'), w('P-ROLE','as'), w('D','a'), w('ADJ','natural'), w('N','thing'), w('PUNC','.')]
(4.215)
| ?- tphrase_set_string([w('PRO','it'), w('P-ROLE','as'), w('D','a'), w('ADJ','natural'), w('N','thing')]), parse(verb_complements_by_code(';~Cn.n/a',[],filled_sbj,active)).

( (NP-OB1 (PRO it))
  (PP-PRD (P-ROLE as)
          (NP (D a)
              (ADJP (ADJ natural))
              (N thing))))

yes
verb_complements_by_code

The success of (4.215) is possible with [rule 1] of (4.213).

    Parsing word list (4.216) as a noun phrase leads to the verb_complements_by_code call seen with (4.217).

(4.216)
[w('D','The'), w('N','alliance'), w('VBD',';~cat_Ve_passive_','became'), w('VVN',';~Cn.n/a','known'), w('P-ROLE','as'), w('D','the'), w('NPR','Delian'), w('NPR','League'), w('PUNC','.')]
(4.217)
| ?- tphrase_set_string([w('P-ROLE','as'), w('D','the'), w('NPR','Delian'), w('NPR','League')]), parse(verb_complements_by_code(';~Cn.n/a',[],filled_sbj,passive)).

(PP-PRD (P-ROLE as)
        (NP (D the)
            (NPR Delian)
            (NPR League)))

yes

The success of (4.217) is possible with [rule 2] of (4.213).

4.6.4    Cn.pr

Code ;~Cn.pr selects a noun phrase with object function (NP-OB1) and a preposition phrase with object predicative function (PP-PRD). For calls of the verb_complements_by_code rules of (4.218) with filled_sbj and active settings:

When the Voice setting is passive:

(4.218)
verb_complements_by_code(';~Cn.pr',[],filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  preposition_phrase('-PRD',non_privileged,L1,L0).
verb_complements_by_code(';~Cn.pr',[],filled_sbj,passive,L,L0) -->
  preposition_phrase('-PRD',non_privileged,L,L0).

    Parsing word list (4.219) as a noun phrase leads to the verb_complements_by_code call seen with (4.220).

(4.219)
[w('NPR','Geoffrey'), w('MD',';~cat_Vi','could'), w('VB',';~Cn.pr','imagine'), w('PNX','himself'), w('P-ROLE','in'), w('D','an'), w('ADJ','upper'), w('N','gallery'), w('PUNC','.')]
(4.220)
| ?- tphrase_set_string([w('PNX','himself'), w('P-ROLE','in'), w('D','an'), w('ADJ','upper'), w('N','gallery')]), parse(verb_complements_by_code(';~Cn.pr',[],filled_sbj,active)).

( (NP-OB1 (PNX himself))
  (PP-PRD (P-ROLE in)
          (NP (D an)
              (ADJP (ADJ upper))
              (N gallery))))

yes

The success of (4.220) is possible with [rule 1] of (4.218).

    Parsing word list (4.221) as a noun phrase leads to the verb_complements_by_code call seen with (4.222).

(4.221)
[w('NPR','Thorn'), w('BEP',';~cat_Ve_passive_','is'), w('VVN',';~Cn.pr','involved'), w('P-ROLE','in'), w('ADJ','parallel'), w('N','computing'), w('PUNC','.')]
(4.222)
| ?- tphrase_set_string([w('P-ROLE','in'), w('ADJ','parallel'), w('N','computing')]), parse(verb_complements_by_code(';~Cn.pr',[],filled_sbj,passive)).

(PP-PRD (P-ROLE in)
        (NP (ADJP (ADJ parallel))
            (N computing)))

yes

The success of (4.222) is possible with [rule 2] of (4.218).

4.6.5    Cn.t

Code ;~Cn.t selects a noun phrase with object function (NP-OB1) and a to-infinitive clause with object predicative function (IP-INF-PRD). For calls of the verb_complements_by_code rules of (4.223) with filled_sbj and active settings, while content for the to-infinitive clause comes from the word list, the derived object noun phrase can occur either:

When the Voice setting is passive:

(4.223)
verb_complements_by_code(';~Cn.t',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,[node('IP-INF-PRD',VL)|L0]),
  to_inf_layer(Store,filled_sbj,active,VL,[]).
verb_complements_by_code(';~Cn.t',[np(ICH)],filled_sbj,active,[node('NP-OB1',[ICH]),node('IP-INF-PRD',VL)|L],L) -->
  to_inf_layer([],filled_sbj,active,VL,[]).
verb_complements_by_code(';~Cn.t',Store,filled_sbj,passive,[node('IP-INF-PRD',VL)|L],L) -->
  to_inf_layer(Store,filled_sbj,active,VL,[]).

    Parsing word list (4.224) as a sentence leads to the verb_complements_by_code call seen with (4.225).

(4.224)
[w('PRO','I'), w('VBD',';~Cn.t','persuaded'), w('PRO','it'), w('TO','to'), w('VB',';~Ipr','get'), w('P-ROLE','off'), w('PRO','me'), w('PUNC','.')]
(4.225)
| ?- tphrase_set_string([w('PRO','it'), w('TO','to'), w('VB',';~Ipr','get'), w('P-ROLE','off'), w('PRO','me')]), parse(verb_complements_by_code(';~Cn.t',[],filled_sbj,active)).

( (NP-OB1 (PRO it))
  (IP-INF-PRD (TO to)
              (VB;~Ipr get)
              (PP-CLR (P-ROLE off)
                      (NP (PRO me)))))

yes

The success of (4.225) is possible with [rule 1] of (4.223).

    Parsing word list (4.226) as a noun phrase leads to the verb_complements_by_code call seen with (4.227).

(4.226)
[w('D','the'), w('N','person'), w('RPRO','that'), w('PRO','he'), w('MD',';~cat_Vi','<apos>ll'), w('VB',';~Cn.t','get'), w('TO','to'), w('DO',';~Tn','do'), w('PRO;_genm_','his'), w('ADJ','dirty'), w('N','work')]
(4.227)
| ?- tphrase_set_string([w('TO','to'), w('DO',';~Tn','do'), w('PRO;_genm_','his'), w('ADJ','dirty'), w('N','work')]), parse(verb_complements_by_code(';~Cn.t',[np(node('*ICH*-325',[]))],filled_sbj,active)).

( (NP-OB1 *ICH*-325)
  (IP-INF-PRD (TO to)
              (DO;~Tn do)
              (NP-OB1 (NP-GENV (PRO;_genm_ his))
                      (ADJP (ADJ dirty))
                      (N work))))

yes

The success of (4.227) is possible with [rule 2] of (4.223).

    Parsing word list (4.228) as a sentence leads to the verb_complements_by_code call seen with (4.229).

(4.228)
[w('ADJ','Such'), w('NS','receptors'), w('BEP',';~cat_Ve_passive_','are'), w('VVN',';~Cn.t','thought'), w('TO','to'), w('BE',';~Ln','be'), w('NS','neurons'), w('PUNC','.')]
(4.229)
| ?- tphrase_set_string([w('TO','to'), w('BE',';~Ln','be'), w('NS','neurons')]), parse(verb_complements_by_code(';~Cn.t',[],filled_sbj,passive)).

(IP-INF-PRD (TO to)
            (BE;~Ln be)
            (NP-PRD2 (NS neurons)))

yes

The success of (4.229) is possible with [rule 3] of (4.223).

4.6.6    Cn.i

Code ;~Cn.i selects a noun phrase with object function (NP-OB1) and a bare infinitive clause with object predicative function (IP-INF-PRD). For a call of the verb_complements_by_code rule of (4.230), there has to be content from the word list for a noun phrase followed by a bare infinitive clause.

(4.230)
verb_complements_by_code(';~Cn.i',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,[node('IP-INF-PRD',VL)|L0]),
  verb_phrase_layer(Store,filled_sbj,infinitive,active,VL,[]).

    Parsing word list (4.231) as a sentence leads to the verb_complements_by_code call seen with (4.232).

(4.231)
[w('VB',';~Cn.i','Let'), w('PRO','me'), w('HV',';~Tn','have'), w('D','a'), w('N','go'), w('PUNC','.')]
(4.232)
| ?- tphrase_set_string([w('PRO','me'), w('HV',';~Tn','have'), w('D','a'), w('N','go')]), parse(verb_complements_by_code(';~Cn.i',[],filled_sbj,active)).

( (NP-OB1 (PRO me))
  (IP-INF-PRD (HV;~Tn have)
              (NP-OB1 (D a)
                      (N go))))

yes

4.6.7    Cn.g

Code ;~Cn.g selects a noun phrase with object function (NP-OB1) and a present participle (-ing) clause with object predicative function (IP-PPL-PRD). For calls of the verb_complements_by_code rules of (4.233) with filled_sbj and active settings:

When the Voice setting is passive:

(4.233)
verb_complements_by_code(';~Cn.g',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  ip_ppl_active('-PRD',Store,filled_sbj,ing_participle,L1,L0).
verb_complements_by_code(';~Cn.g',Store,filled_sbj,passive,L,L0) -->
  ip_ppl_active('-PRD',Store,filled_sbj,ing_participle,L,L0).

    Parsing word list (4.234) as a sentence leads to the verb_complements_by_code call seen with (4.235).

(4.234)
[w('ADV','So'), w('PRO','they'), w('HVD',';~cat_Ve','<apos>d'), w('VVN',';~Cn.g','got'), w('D','a'), w('ADJ','ticking'), w('N','clock'), w('VAG',';~I','running'), w('PUNC','.')]
(4.235)
| ?- tphrase_set_string([w('D','a'), w('ADJ','ticking'), w('N','clock'), w('VAG',';~I','running')]), parse(verb_complements_by_code(';~Cn.g',[],filled_sbj,active)).

( (NP-OB1 (D a)
          (ADJP (ADJ ticking))
          (N clock))
  (IP-PPL-PRD (VAG;~I running)))

yes

The success of (4.235) is possible with [rule 1] of (4.233).

    Parsing word list (4.236) as a sentence leads to the verb_complements_by_code call seen with (4.237).

(4.236)
[w('D','The'), w('N','unit'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.g','assumed'), w('VAG',';~I','working'), w('PUNC','.')]
(4.237)
| ?- tphrase_set_string([w('VAG',';~I','working')]), parse(verb_complements_by_code(';~Cn.g',[],filled_sbj,passive)).

(IP-PPL-PRD (VAG;~I working))

yes

The success of (4.237) is possible with [rule 2] of (4.233).


4.7    VP24 verbs

This section details VP24 codes from Hornby (1975).

4.7.1    VP24A

Code ;~VP24A selects a noun phrase with object function (NP-OB1) and a passive voice past participle (-ed/-en) clause with object predicative function (IP-PPL-PRD). The ;~VP24A code is used when the verb is neither GET with the ;~VP24C meaning nor HAVE. For calls of the verb_complements_by_code rules of (4.238) with filled_sbj and active settings:

When the Voice setting is passive:

(4.238)
verb_complements_by_code(';~VP24A',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  ip_ppl_passive('-PRD',Store,filled_sbj,en_participle,L1,L0).
verb_complements_by_code(';~VP24A',Store,filled_sbj,passive,L,L0) -->
  ip_ppl_passive('-PRD',Store,filled_sbj,en_participle,L,L0).

    Parsing word list (4.239) as a sentence leads to the verb_complements_by_code call seen with (4.240).

(4.239)
[w('PRO','She'), w('VBD',';~VP24A','made'), w('PRO','me'), w('VVN',';~Tn.pr','obliged'), w('P-ROLE','to'), w('PRO','her'), w('PUNC','.')]
(4.240)
| ?- tphrase_set_string([w('PRO','me'), w('VVN',';~Tn.pr','obliged'), w('P-ROLE','to'), w('PRO','her')]), parse(verb_complements_by_code(';~VP24A',[],filled_sbj,active)).

( (NP-OB1 (PRO me))
  (IP-PPL-PRD (NP-LGS *)
              (VVN;~Tn.pr obliged)
              (PP-CLR (P-ROLE to)
                      (NP (PRO her)))))

yes

The success of (4.240) is possible with [rule 1] of (4.238).

    Parsing word list (4.241) as a sentence leads to the verb_complements_by_code call seen with (4.242).

(4.241)
[w('D','A'), w('ADJ','prominent'), w('N','journalist'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~VP24A','found'), w('VVN',';~Cn.a','shot'), w('ADJ','dead'), w('PUNC','.')]
(4.242)
| ?- tphrase_set_string([w('VVN',';~Cn.a','shot'), w('ADJ','dead')]), parse(verb_complements_by_code(';~VP24A',[],filled_sbj,passive)).

(IP-PPL-PRD (NP-LGS *)
            (VVN;~Cn.a shot)
            (ADJP-PRD (ADJ dead)))

yes

The success of (4.242) is possible with [rule 2] of (4.238).

4.7.2    VP24B

Code ;~VP24B selects a noun phrase with object function (NP-OB1) and a passive voice past participle (-ed/-en) clause with predicative function (IP-PPL-PRD). The ;~VP24B code is used when the main verb is HAVE indicating what its subject experiences, undergoes or suffers. For a call of the verb_complements_by_code rule of (4.243), there has to be content from the word list for a noun phrase followed by a passive voice past participle clause.

(4.243)
verb_complements_by_code(';~VP24B',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  ip_ppl_passive('-PRD',Store,filled_sbj,en_participle,L1,L0).

    Parsing word list (4.244) as a sentence leads to the verb_complements_by_code call seen with (4.245).

(4.244)
[w('PRO','I'), w('HVD',';~cat_Ve','<apos>d'), w('HVN',';~VP24B','had'), w('D','a'), w('N','novel'), w('VVN',';~Tn','published'), w('PUNC','.')]
(4.245)
| ?- tphrase_set_string([w('D','a'), w('N','novel'), w('VVN',';~Tn','published')]), parse(verb_complements_by_code(';~VP24B',[],filled_sbj,active)).

( (NP-OB1 (D a)
          (N novel))
  (IP-PPL-PRD (NP-LGS *)
              (VVN;~Tn published)))

yes

4.7.3    VP24C

Code ;~VP24C selects a noun phrase with object function (NP-OB1) and a passive voice past participle (-ed/-en) clause with predicative function (IP-PPL-PRD). The ;~VP24C code is used when the main verb is HAVE or GET meaning ‘cause to be’. For a call of the verb_complements_by_code rule of (4.246), there has to be content from the word list for a noun phrase followed by a passive voice past participle clause.

(4.246)
verb_complements_by_code(';~VP24C',Store,filled_sbj,active,L,L0) -->
  noun_phrase('-OB1',non_privileged,L,L1),
  ip_ppl_passive('-PRD',Store,filled_sbj,en_participle,L1,L0).

    Parsing word list (4.247) as a sentence leads to the verb_complements_by_code call seen with (4.248).

(4.247)
[w('PRO','She'), w('HVP',';~cat_Ve','<apos>s'), w('VVN',';~VP24C','got'), w('PRO;_genm_','her'), w('N','hair'), w('VVN',';~Tn','cut'), w('PUNC','.')]
(4.248)
| ?- tphrase_set_string([w('PRO;_genm_','her'), w('N','hair'), w('VVN',';~Tn','cut')]), parse(verb_complements_by_code(';~VP24C',[],filled_sbj,active)).

( (NP-OB1 (NP-GENV (PRO;_genm_ her))
          (N hair))
  (IP-PPL-PRD (NP-LGS *)
              (VVN;~Tn cut)))

yes

4.8    Existential verbs

This section establishes selection criteria for existential verbs.

4.8.1    ex_V

Code ;~ex_V selects a noun phrase with existential subject function (NP-ESBJ). For calls of the verb_complements_by_code rules of (4.249), the selected noun phrase occurs either:

(4.249)
verb_complements_by_code(';~ex_V',[],there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,L0).
verb_complements_by_code(';~ex_V',[np(ICH)],there_sbj,active,[node('NP-ESBJ',[ICH])|L],L) -->
  [].

    Parsing word list (4.250) as a sentence leads to the verb_complements_by_code call seen with (4.251).

(4.250)
[w('EX','There'), w('BEP',';~ex_V','are'), w('ADJ','other'), w('NS','complications'), w('PUNC','.')]
(4.251)
| ?- tphrase_set_string([w('ADJ','other'), w('NS','complications')]), parse(verb_complements_by_code(';~ex_V',[],there_sbj,active)).

(NP-ESBJ (ADJP (ADJ other))
         (NS complications))

yes

The success of (4.251) is possible with [rule 1] of (4.249).

    Parsing word list (4.252) as a sentence leads to the verb_complements_by_code call seen with (4.253).

(4.252)
[w('WADV','How'), w('ADJ','many'), w('NS','flats'), w('BEP',';~ex_V','are'), w('EX','there'), w('PUNC','?')]
(4.253)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~ex_V',[np(node('*ICH*-338',[]))],there_sbj,active)).

(NP-ESBJ *ICH*-338)

yes

The success of (4.253) is possible with [rule 2] of (4.249).

4.8.2    ex_Vp

Code ;~ex_Vp selects a noun phrase with existential subject function (NP-ESBJ) and an adverbial particle that is the head of an adverb phrase (ADVP-CLR). For a call of the verb_complements_by_code rule of (4.254), while content for the adverb phrase has to come from the word list as an adverbial particle, the noun phrase can occur either:

(4.254)
verb_complements_by_code(';~ex_Vp',[],there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,L1),
  adverb_phrase('-CLR',particle,L1,L0).
verb_complements_by_code(';~ex_Vp',[np(ICH)],there_sbj,active,[node('NP-ESBJ',[ICH])|L],L0) -->
  adverb_phrase('-CLR',particle,L,L0).

    Parsing word list (4.255) as a sentence leads to the verb_complements_by_code call seen with (4.256).

(4.255)
[w('EX','There'), w('BEP',';~ex_Vp','<apos>s'), w('Q;_nphd_','nothing'), w('ADV','there'), w('PUNC','.')]
(4.256)
| ?- tphrase_set_string([w('Q;_nphd_','nothing'), w('ADV','there')]), parse(verb_complements_by_code(';~ex_Vp',[],there_sbj,active)).

( (NP-ESBJ (Q;_nphd_ nothing))
  (ADVP-CLR (ADV there)))

yes

The success of (4.256) is possible with [rule 1] of (4.254).

    Parsing word list (4.257) as a sentence leads to the verb_complements_by_code call seen with (4.258).

(4.257)
[w('WADV','How'), w('ADJ','many'), w('NS','flats'), w('BEP',';~ex_Vp','are'), w('EX','there'), w('ADV','here'), w('PUNC','?')]
(4.258)
| ?- tphrase_set_string([w('ADV','here')]), parse(verb_complements_by_code(';~ex_Vp',[np(node('*ICH*-338',[]))],there_sbj,active)).

( (NP-ESBJ *ICH*-338)
  (ADVP-CLR (ADV here)))

yes

The success of (4.258) is possible with [rule 2] of (4.254).

4.8.3    ex_Vpr

Code ;~ex_Vpr selects a noun phrase with existential subject function (NP-ESBJ) and a preposition phrase (PP-CLR). For a call of the verb_complements_by_code rule of (4.259), there has to be content from the word list for a noun phrase followed by a preposition phrase.

(4.259)
verb_complements_by_code(';~ex_Vpr',[],there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,L1),
  preposition_phrase('-CLR',non_privileged,L1,L0).

    Parsing word list (4.260) as a sentence leads to the verb_complements_by_code call seen with (4.261).

(4.260)
[w('EX','There'), w('BED',';~ex_Vpr','was'), w('ADJ','open'), w('N','mockery'), w('P-ROLE','in'), w('PRO;_genm_','his'), w('N','tone'), w('PUNC','.')]
(4.261)
| ?- tphrase_set_string([w('ADJ','open'), w('N','mockery'), w('P-ROLE','in'), w('PRO;_genm_','his'), w('N','tone')]), parse(verb_complements_by_code(';~ex_Vpr',[],there_sbj,active)).

( (NP-ESBJ (ADJP (ADJ open))
           (N mockery))
  (PP-CLR (P-ROLE in)
          (NP (NP-GENV (PRO;_genm_ his))
              (N tone))))

yes

4.8.4    ex_cat_Vt

Code ;~ex_cat_Vt selects a noun phrase with existential subject function (NP-ESBJ) and a to-infinitive clause with catenative complement function (IP-INF-CAT). For a call of the verb_complements_by_code rule of (4.262), while content for the to-infinitive clause has to come from the word list, the noun phrase can occur either:

(4.262)
verb_complements_by_code(';~ex_cat_Vt',Store,there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,[node('IP-INF-CAT',VL)|L0]),
  to(VL,VL1),
  verb_phrase_layer(Store,filled_sbj,infinitive,active,VL1,[]).
verb_complements_by_code(';~ex_cat_Vt',[np(ICH)|Store],there_sbj,active,[node('NP-ESBJ',[ICH]),node('IP-INF-CAT',VL)|L],L) -->
  to(VL,VL1),
  verb_phrase_layer(Store,filled_sbj,infinitive,active,VL1,[]).

    Parsing word list (4.263) as a sentence leads to the verb_complements_by_code call seen with (4.264).

(4.263)
[w('EX','There'), w('BEP',';~ex_cat_Vt','is'), w('Q','no'), w('N','evidence'), w('TO','to'), w('VB',';~Tf','prove'), w('NPR','Hollis'), w('BED',';~Ln','was'), w('D','a'), w('ADJ','Russian'), w('N','mole'), w('PUNC','.')]
(4.264)
| ?- tphrase_set_string([w('Q','no'), w('N','evidence'), w('TO','to'), w('VB',';~Tf','prove'), w('NPR','Hollis'), w('BED',';~Ln','was'), w('D','a'), w('ADJ','Russian'), w('N','mole')]), parse(verb_complements_by_code(';~ex_cat_Vt',[],there_sbj,active)).

( (NP-ESBJ (Q no)
           (N evidence))
  (IP-INF-CAT (TO to)
              (VB;~Tf prove)
              (CP-THT-OB1 (IP-SUB (NP-SBJ (NPR Hollis))
                                  (BED;~Ln was)
                                  (NP-PRD2 (D a)
                                           (ADJP (ADJ Russian))
                                           (N mole))))))

yes

The success of (4.264) is possible with [rule 1] of (4.262).

4.8.5    ex_cat_Vt_passive_

Code ;~ex_cat_Vt_passive_ selects a noun phrase with existential subject function (NP-ESBJ) and a passive voice to-infinitive clause with catenative complement function (IP-INF-CAT). For a call of the verb_complements_by_code rule of (4.265), while content for the to-infinitive clause has to come from the word list, the noun phrase can occur either:

(4.265)
verb_complements_by_code(';~ex_cat_Vt_passive_',Store,there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,[node('IP-INF-CAT',VL)|L0]),
  {
    member(SbjType,[filled_sbj,unfilled_sbj])
  },
  to_inf_layer(Store,SbjType,passive,VL,[]).
verb_complements_by_code(';~ex_cat_Vt_passive_',[np(ICH)|Store],there_sbj,active,[node('NP-ESBJ',[ICH]),node('IP-INF-CAT',VL)|L],L) -->
  {
    member(SbjType,[filled_sbj,unfilled_sbj])
  },
  to_inf_layer(Store,SbjType,passive,VL,[]).

    Parsing word list (4.266) as a sentence leads to the verb_complements_by_code call seen with (4.267).

(4.266)
[w('WPRO','What'), w('BEP',';~ex_cat_Vt_passive_','is'), w('EX','there'), w('P-CONN','for'), w('PRO','her'), w('TO','to'), w('DO',';~Tn','do'), w('PUNC','?')]
(4.267)
| ?- tphrase_set_string([w('P-CONN','for'), w('PRO','her'), w('TO','to'), w('DO',';~Tn','do')]), parse(verb_complements_by_code(';~ex_cat_Vt_passive_',[np(node('*ICH*-348',[]))],there_sbj,active)).

( (NP-ESBJ *ICH*-348)
  (IP-INF-CAT (P-CONN for)
              (NP-LGS (PRO her))
              (TO to)
              (DO;~Tn do)))

yes

The success of (4.267) is possible with [rule 1] of (4.265).

4.8.6    ex_cat_Vg

Code ;~ex_cat_Vg selects a noun phrase with existential subject function (NP-ESBJ) and a present participle (-ing) clause with catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.268), while content for the participle clause has to come from the word list, the noun phrase can occur either:

(4.268)
verb_complements_by_code(';~ex_cat_Vg',Store,there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,L1),
  ip_ppl_active('-CAT',Store,filled_sbj,ing_participle,L1,L0).
verb_complements_by_code(';~ex_cat_Vg',[np(ICH)|Store],there_sbj,active,[node('NP-ESBJ',[ICH])|L],L0) -->
  ip_ppl_active('-CAT',Store,filled_sbj,ing_participle,L,L0).

    Parsing word list (4.269) as a sentence leads to the verb_complements_by_code call seen with (4.270).

(4.269)
[w('EX','There'), w('BEP',';~ex_cat_Vg','<apos>s'), w('D','a'), w('N','bear'), w('VAG',';~Ipr','sitting'), w('P-ROLE','in'), w('D','the'), w('N','corner'), w('PUNC','.')]
(4.270)
| ?- tphrase_set_string([w('D','a'), w('N','bear'), w('VAG',';~Ipr','sitting'), w('P-ROLE','in'), w('D','the'), w('N','corner')]), parse(verb_complements_by_code(';~ex_cat_Vg',[],there_sbj,active)).

( (NP-ESBJ (D a)
           (N bear))
  (IP-PPL-CAT (VAG;~Ipr sitting)
              (PP-CLR (P-ROLE in)
                      (NP (D the)
                          (N corner)))))

yes

The success of (4.270) is possible with [rule 1] of (4.268).

4.8.7    ex_cat_Ve_passive_

Code ;~ex_cat_Ve_passive_ selects a noun phrase with existential subject function (NP-ESBJ) and a passive voice past participle (-ed/-en) clause with catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.271), while content for the participle clause has to come from the word list, the noun phrase can occur either:

(4.271)
verb_complements_by_code(';~ex_cat_Ve_passive_',Store,there_sbj,active,L,L0) -->
  noun_phrase('-ESBJ',non_privileged,L,L1),
  ip_ppl_passive('-CAT',Store,filled_sbj,en_participle,L1,L0).
verb_complements_by_code(';~ex_cat_Ve_passive_',[np(ICH)|Store],there_sbj,active,[node('NP-ESBJ',[ICH])|L],L0) -->
  ip_ppl_passive('-CAT',Store,filled_sbj,en_participle,L,L0).

    Parsing word list (4.272) as a sentence leads to the verb_complements_by_code call seen with (4.273).

(4.272)
[w('EX','There'), w('BEP',';~ex_cat_Ve_passive_','<apos>s'), w('D;_nphd_','something'), w('VVN',';~Tn.pr','inscribed'), w('P-ROLE','on'), w('D;_nphd_','this'), w('PUNC','.')]
(4.273)
| ?- tphrase_set_string([w('D;_nphd_','something'), w('VVN',';~Tn.pr','inscribed'), w('P-ROLE','on'), w('D;_nphd_','this')]), parse(verb_complements_by_code(';~ex_cat_Ve_passive_',[],there_sbj,active)).

( (NP-ESBJ (D;_nphd_ something))
  (IP-PPL-CAT (NP-LGS *)
              (VVN;~Tn.pr inscribed)
              (PP-CLR (P-ROLE on)
                      (NP (D;_nphd_ this)))))

yes

The success of (4.273) is possible with [rule 1] of (4.271).


4.9    Equative verbs

This section establishes selection criteria for equative verbs.

4.9.1    equ_Vf

Code ;~equ_Vf selects a that-clause with subject predicative function (CP-THT-PRD2). For a call of the verb_complements_by_code rule of (4.274), there has to be content from the word list for a that-clause.

(4.274)
verb_complements_by_code(';~equ_Vf',[],filled_sbj,active,L,L0) -->
  cp_that('-PRD2',_,[],L,L0).

    Parsing word list (4.275) as a sentence leads to the verb_complements_by_code call seen with (4.276).

(4.275)
[w('PRO;_genm_','My'), w('N','excuse'), w('BED',';~equ_Vf','was'), w('C','that'), w('PRO','I'), w('HVD',';~Tn','had'), w('NS','lessons'), w('TO','to'), w('VB',';~Tn','prepare'), w('PUNC','.')]
(4.276)
| ?- tphrase_set_string([w('C','that'), w('PRO','I'), w('HVD',';~Tn','had'), w('NS','lessons'), w('TO','to'), w('VB',';~Tn','prepare')]), parse(verb_complements_by_code(';~equ_Vf',[],filled_sbj,active)).

(CP-THT-PRD2 (IP-SUB (C that)
                     (NP-SBJ (PRO I))
                     (HVD;~Tn had)
                     (NP-OB1 (NS lessons)
                             (IP-INF-REL (TO to)
                                         (VB;~Tn prepare)
                                         (NP-OB1 *T*)))))

yes

4.9.2    equ_Vw

Code ;~equ_Vw selects an embedded question clause with subject predicative function (CP-QUE-PRD2). For a call of the verb_complements_by_code rule of (4.277), there has to be content from the word list for an embedded question clause.

(4.277)
verb_complements_by_code(';~equ_Vw',[],filled_sbj,active,L,L0) -->
  cp_embedded_que('-PRD2',[],L,L0).

    Parsing word list (4.278) as a sentence leads to the verb_complements_by_code call seen with (4.279).

(4.278)
[w('D;_nphd_','That'), w('BEP',';~equ_Vw','is'), w('WADV','how'), w('PRO','I'), w('VBD',';~Tt','learnt'), w('TO','to'), w('VB',';~I','ride'), w('PUNC','.')]
(4.279)
| ?- tphrase_set_string([w('WADV','how'), w('PRO','I'), w('VBD',';~Tt','learnt'), w('TO','to'), w('VB',';~I','ride')]), parse(verb_complements_by_code(';~equ_Vw',[],filled_sbj,active)).

(CP-QUE-PRD2 (IP-SUB (ADVP-NIM (WADV how))
                     (NP-SBJ (PRO I))
                     (VBD;~Tt learnt)
                     (IP-INF-OB1 (TO to)
                                 (VB;~I ride))))

yes

    Parsing word list (4.280) as a sentence leads to the verb_complements_by_code call seen with (4.281).

(4.280)
[w('BEP',';~equ_Vw','Is'), w('D;_nphd_','that'), w('WPRO','what'), w('TO','to'), w('VB',';~Tn.pr','say'), w('P-ROLE','to'), w('N','people'), w('PUNC','?')]
(4.281)
| ?- tphrase_set_string([w('WPRO','what'), w('TO','to'), w('VB',';~Tn.pr','say'), w('P-ROLE','to'), w('N','people')]), parse(verb_complements_by_code(';~equ_Vw',[],filled_sbj,active)).

(CP-QUE-PRD2 (IP-INF (NP-1717 (WPRO what))
                     (TO to)
                     (VB;~Tn.pr say)
                     (NP-OB1 *ICH*-1717)
                     (PP-CLR (P-ROLE to)
                             (NP (N people)))))

yes

4.9.3    equ_Vt

Code ;~equ_Vt selects a to-infinitive clause with subject predicative function (IP-INF-PRD2). For a call of the verb_complements_by_code rule of (4.282), there has to be content from the word list for a to-infinitive clause.

(4.282)
verb_complements_by_code(';~equ_Vt',[],filled_sbj,active,L,L0) -->
  ip_to_inf('-PRD2',[],L,L0).

    Parsing word list (4.283) as a sentence leads to the verb_complements_by_code call seen with (4.284).

(4.283)
[w('D;_nphd_','This'), w('BEP',';~equ_Vt','is'), w('TO','to'), w('VB',';~Dn.n','give'), w('D','the'), w('N','application'), w('D','an'), w('N','iconbar'), w('N','menu'), w('PUNC','.')]
(4.284)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Dn.n','give'), w('D','the'), w('N','application'), w('D','an'), w('N','iconbar'), w('N','menu')]), parse(verb_complements_by_code(';~equ_Vt',[],filled_sbj,active)).

(IP-INF-PRD2 (TO to)
             (VB;~Dn.n give)
             (NP-OB2 (D the)
                     (N application))
             (NP-OB1 (D an)
                     (N iconbar)
                     (N menu)))

yes

4.9.4    equ_Vg

Code ;~equ_Vg selects a present participle (-ing) clause with subject predicative function (IP-PPL-PRD2). For a call of the verb_complements_by_code rule of (4.285), there has to be content from the word list for a participle clause.

(4.285)
verb_complements_by_code(';~equ_Vg',[],filled_sbj,active,[node('IP-PPL-PRD2',IL)|L],L) -->
  ip_ppl_adverbial_layer(filled_sbj,ing_participle,IL,[]).
verb_complements_by_code(';~equ_Vg',[],filled_sbj,active,[node('IP-PPL3-PRD2',IL)|L],L) -->
  ip_ppl_adverbial_layer(unfilled_sbj,ing_participle,IL,[]).

    Parsing word list (4.286) as a sentence leads to the verb_complements_by_code call seen with (4.287).

(4.286)
[w('D;_nphd_','One'), w('P-ROLE','of'), w('PRO;_genm_','my'), w('ADJ','funny'), w('NS','stories'), w('BEP',';~equ_Vg','is'), w('VAG',';~cat_Vt','trying'), w('TO','to'), w('VB',';~Tn','debug'), w('D','the'), w('N','interface'), w('PUNC','.')]
(4.287)
| ?- tphrase_set_string([w('VAG',';~cat_Vt','trying'), w('TO','to'), w('VB',';~Tn','debug'), w('D','the'), w('N','interface')]), parse(verb_complements_by_code(';~equ_Vg',[],filled_sbj,active)).

(IP-PPL3-PRD2 (VAG;~cat_Vt trying)
              (IP-INF-CAT (TO to)
                          (VB;~Tn debug)
                          (NP-OB1 (D the)
                                  (N interface))))

yes

The success of (4.287) is possible with [rule 1] of (4.285).

    Parsing word list (4.288) as a sentence leads to the verb_complements_by_code call seen with (4.289).

(4.288)
[w('D','The'), w('ADJ','first'), w('N','thing'), w('PRO','he'), w('VBD',';~Tn','saw'), w('BED',';~equ_Vg','was'), w('N','Mr.'), w('NPR','McGregor'), w('VAG',';~Tn','hoeing'), w('NS','onions'), w('PUNC','.')]
(4.289)
| ?- tphrase_set_string([w('N','Mr.'), w('NPR','McGregor'), w('VAG',';~Tn','hoeing'), w('NS','onions')]), parse(verb_complements_by_code(';~equ_Vg',[],filled_sbj,active)).

(IP-PPL3-PRD2 (NP-SBJ (N Mr.)
                      (NPR McGregor))
              (VAG;~Tn hoeing)
              (NP-OB1 (NS onions)))

The success of (4.289) is possible with [rule 2] of (4.285).


4.10    Catenative verbs

This section establishes selection criteria for catenative verbs.

4.10.1    cat_Vt

Code ;~cat_Vt selects a to-infinitive clause with catenative complement function (IP-INF-CAT). For a call of the verb_complements_by_code rule of (4.290), there has to be content from the word list for a to-infinitive clause.

(4.290)
verb_complements_by_code(';~cat_Vt',Store,SbjType,active,[node('IP-INF-CAT',VL)|L],L) -->
  to(VL,VL1),
  verb_phrase_layer(Store,SbjType,infinitive,active,VL1,[]).

    Parsing word list (4.291) as a sentence leads to the verb_complements_by_code call seen with (4.292).

(4.291)
[w('D','A'), w('N','ship'), w('HVD',';~cat_Vt','had'), w('TO','to'), w('VB',';~I','sink'), w('','.')]
(4.292)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','sink')]), parse(verb_complements_by_code(';~cat_Vt',[],filled_sbj,active)).

(IP-INF-CAT (TO to)
            (VB;~I sink))

yes

4.10.2    cat_Vt_passive_

Code ;~cat_Vt_passive_ selects a passive voice to-infinitive clause with catenative complement function (IP-INF-CAT). For a call of the verb_complements_by_code rule of (4.293), there has to be content from the word list for a passive voice to-infinitive clause.

(4.293)
verb_complements_by_code(';~cat_Vt_passive_',Store,filled_sbj,active,[node('IP-INF-CAT',VL)|L],L) -->
  {
    member(SbjType,[filled_sbj,unfilled_sbj])
  },
  to_inf_layer(Store,SbjType,passive,VL,[]).
(4.294)
[w('D','The'), w('N','government'), w('BEP',';~cat_Vt_passive_','is'), w('TO','to'), w('VB',';~Tn','blame'), w('PUNC','.')]
(4.295)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Tn','blame')]), parse(verb_complements_by_code(';~cat_Vt_passive_',[],filled_sbj,active)).

(IP-INF-CAT (NP-LGS *)
            (TO to)
            (VB;~Tn blame))

yes
(4.296)
[w('D;_nphd_','One'), w('BEP',';~cat_Vt_passive_','is'), w('P-CONN','for'), w('PRO','them'), w('TO','to'), w('VB',';~Tn','sign'), w('CONJ','and'), w('VB',';~Tn.p','send'), w('RP','back'), w('PUNC','.')]
(4.297)
| ?- tphrase_set_string([w('P-CONN','for'), w('PRO','them'), w('TO','to'), w('VB',';~Tn','sign'), w('CONJ','and'), w('VB',';~Tn.p','send'), w('RP','back')]), parse(verb_complements_by_code(';~cat_Vt_passive_',[],filled_sbj,active)).

(IP-INF-CAT (P-CONN for)
            (NP-LGS (PRO them))
            (TO to)
            (ILYR (ILYR (VB;~Tn sign))
                  (CONJP (CONJ and)
                         (ILYR (VB;~Tn.p send)
                               (ADVP-CLR (RP back))))))

yes

4.10.3    cat_Vi

Code ;~cat_Vi selects a bare infinitive clause with catenative complement function (IP-INF-CAT). For a call of the verb_complements_by_code rule of (4.298), there has to be content from the word list for a bare infinitive clause.

(4.298)
verb_complements_by_code(';~cat_Vi',Store,SbjType,active,[node('IP-INF-CAT',VL)|L],L) -->
  verb_phrase_layer(Store,SbjType,infinitive,active,VL,[]).

    Parsing word list (4.299) as a sentence leads to the verb_complements_by_code call seen with (4.300).

(4.299)
[w('PRO','It'), w('VBD',';~cat_Vi','helped'), w('VB',';~Tn','cut'), w('D','the'), w('N','cost'), w('PUNC','.')]
(4.300)
| ?- tphrase_set_string([w('VB',';~Tn','cut'), w('D','the'), w('N','cost')]), parse(verb_complements_by_code(';~cat_Vi',[],filled_sbj,active)).

(IP-INF-CAT (VB;~Tn cut)
            (NP-OB1 (D the)
                    (N cost)))

yes

4.10.4    cat_Vg

Code ;~cat_Vg selects a present participle (-ing) clause with active voice and catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.301), there has to be content from the word list for a participle clause.

(4.301)
verb_complements_by_code(';~cat_Vg',Store,SbjType,active,L,L0) -->
  ip_ppl_active('-CAT',Store,SbjType,ing_participle,L,L0).

    Parsing word list (4.302) as a sentence leads to the verb_complements_by_code call seen with (4.303).

(4.302)
[w('D','A'), w('N','ship'), w('BED',';~cat_Vg','was'), w('VAG',';~I','sinking'), w('PUNC','.')]
(4.303)
| ?- tphrase_set_string([w('VAG',';~I','sinking')]), parse(verb_complements_by_code(';~cat_Vg',[],filled_sbj,active)).

(IP-PPL-CAT (VAG;~I sinking))

yes

4.10.5    cat_Vg_passive_

Code ;~cat_Vg_passive_ selects a passive voice present participle (-ing) clause with catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.304), there has to be content from the word list for a passive voice participle clause.

(4.304)
verb_complements_by_code(';~cat_Vg_passive_',Store,SbjType,active,L,L0) -->
  ip_ppl_passive('-CAT',Store,SbjType,ing_participle,L,L0).

    Parsing word list (4.305) as a sentence leads to the verb_complements_by_code call seen with (4.306).

(4.305)
[w('PRO;_genm_','His'), w('NS','wounds'), w('VBP',';~cat_Vg_passive_','need'), w('VAG',';~Tn','dressing'), w('PUNC','.')]
(4.306)
| ?- tphrase_set_string([w('VAG',';~Tn','dressing')]), parse(verb_complements_by_code(';~cat_Vg_passive_',[],filled_sbj,active)).

(IP-PPL-CAT (NP-LGS *)
            (VAG;~Tn dressing))

yes

4.10.6    cat_Ve

Code ;~cat_Ve selects a participle (-ed/-en) clause with active past and catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.310), the participle clause should form the content of the word list.

(4.307)
verb_complements_by_code(';~cat_Ve',Store,SbjType,active,L,L0) -->
  ip_ppl_active('-CAT',Store,SbjType,en_participle,L,L0).

    Parsing word list (4.308) as a sentence leads to the verb_complements_by_code call seen with (4.309).

(4.308)
[w('D','A'), w('N','ship'), w('HVD',';~cat_Ve','had'), w('VVN',';~I','sunk'), w('PUNC','.')]
(4.309)
| ?- tphrase_set_string([w('VVN',';~I','sunk')]), parse(verb_complements_by_code(';~cat_Ve',[],filled_sbj,active)).

(IP-PPL-CAT (VVN;~I sunk))

yes

4.10.7    cat_Ve_passive_

Code ;~cat_Ve_passive_ selects a passive voice past participle (-ed/-en) clause with catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.310), the passive voice participle clause should form the content of the word list.

(4.310)
verb_complements_by_code(';~cat_Ve_passive_',Store,SbjType,active,L,L0) -->
  ip_ppl_passive('-CAT',Store,SbjType,en_participle,L,L0).

    Parsing word list (4.311) as a sentence leads to the verb_complements_by_code call seen with (4.312).

(4.311)
[w('D','A'), w('N','ship'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn','sunk'), w('PUNC','.')]
(4.312)
| ?- tphrase_set_string([w('VVN',';~Tn','sunk')]), parse(verb_complements_by_code(';~cat_Ve_passive_',[],filled_sbj,active)).

(IP-PPL-CAT (NP-LGS *)
            (VVN;~Tn sunk))

yes

Question

In contrast to (4.309) and (4.312) above, why do the queries of (4.313) and (4.314) fail?

(4.313)
| ?- tphrase_set_string([w('D','A'), w('N','ship'), w('HVD',';~cat_Ve','had'), w('VVN',';~Tn','sunk'), w('PUNC','.')]), parse(sentence).

no
(4.314)
| ?- tphrase_set_string([w('D','A'), w('N','ship'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~I','sunk'), w('PUNC','.')]), parse(sentence).

no