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 is begun 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,Displaced,SbjType,Voice,L,L0) -->
  verb_complements_by_code(Code,Displaced,SbjType,Voice,L,L0).

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

(4.2)
verb_complements_top_layer(Code,Displaced,provisional_subject,Voice,L,L0) -->
  verb_complements_top_layer(Code,Displaced,filled_subject,Voice,L,L1),
  notional_item('-NSBJ',L1,L0).
verb_complements_top_layer(';~La',Displaced,derived_subject,active_voice,L,L0) -->
  verb_complements_top_layer(';~La',[],filled_subject,active_voice,L,[node('IP-INF-NSBJ',VL)|L0]),
  {
    member(SbjType,[filled_subject,unfilled_subject])
  },
  to_inf_layer(Displaced,SbjType,passive_voice,VL,[]).
verb_complements_top_layer(';~La',Displaced,derived_subject,active_voice,L,L0) -->
  verb_complements_top_layer(';~La',[],filled_subject,active_voice,L,[node('IP-INF-NSBJ',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_top_layer(Code,Displaced,SbjType,Voice,L,L0) -->
  {
    member(Code,[';~cat_Vt',';~cat_Vt_passive_',';~cat_Vi',';~cat_Vg',';~cat_Vg_passive_',';~cat_Ve_passive_',';~cat_Ve'])
  },
  neg(L,L1),
  verb_complements_top_layer(Code,Displaced,SbjType,Voice,L1,L0).
verb_complements_top_layer(Code,Displaced,SbjType,Voice,L,L0) -->
  adverbial(L,L1),
  verb_complements_top_layer(Code,Displaced,SbjType,Voice,L1,L0).
verb_complements_top_layer(Code,Displaced,SbjType,Voice,L,L0) -->
  verb_complements_top_layer(Code,Displaced,SbjType,Voice,L,L1),
  adverbial(L1,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.3), either:

(4.3)
verb_complements_by_code(';~La',[],filled_subject,active_voice,L,L0) -->
  adjective_phrase('-PRD2',general,L,L0).
verb_complements_by_code(';~La',[adjp(ICH)],filled_subject,active_voice,[node('ADJP-PRD2',[ICH])|L],L) -->
  [].

Both rules of (4.3) require filled_subject and active_voice parameter settings.

    Parsing the word list of (4.4) as a sentence leads to the verb_complements_by_code call seen with (4.5) that succeeds under rule 1 of (4.3).

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

(ADJP-PRD2 (ADJ tall))

yes

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

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

(ADJP-PRD2 *ICH*-122)

yes

With (4.7), the word list is empty, yet there is information inherited from [w('WADV','How'),w('ADJ','annoying')] of (4.6) for an adjective phrase (adjp(node('*ICH*-122',[]))), allowing the verb_complements_by_code call to succeed under rule 2 of (4.3).


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.8), either:

(4.8)
verb_complements_by_code(';~Ln',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-PRD2',general,L,L0).
verb_complements_by_code(';~Ln',[np(ICH)],filled_subject,active_voice,[node('NP-PRD2',[ICH])|L],L) -->
  [].

Both rules of (4.8) require filled_subject and active_voice parameter settings.

    Parsing the word list of (4.9) as a sentence leads to the verb_complements_by_code call seen with (4.10) that succeeds under rule 1 of (4.8).

(4.9)
[w('PRO','I'), w('VBD',';~Tf','thought'), w('PRO','you'), w('BED',';~Ln','were'), w('D','the'), w('NPR','Egyptian'), w('PUNC','.')]
(4.10)
| ?- tphrase_set_string([w('D','the'), w('NPR','Egyptian')]), parse(verb_complements_by_code(';~Ln',[],filled_subject,active_voice)).

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

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

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

(NP-PRD2 *T*)

yes

With (4.12), the word list is empty, yet there is information about a relative clause trace (np(node('*T*',[]))) (see section 6.8), allowing the verb_complements_by_code call to succeed under rule 2 of (4.8).


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.13) expect an empty word list and no displacement information ([]). They both return the content of L (gathered content of the clause layer) without change. They differ in the setting of the subject parameter:

(4.13)
verb_complements_by_code(';~I',[],filled_subject,active_voice,L,L) -->
  [].
verb_complements_by_code(';~I',[],expletive_subject,active_voice,L,L) -->
  [].

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

(4.14)
[w('PRO','He'), w('VBD',';~I','smiled'), w('PUNC','.')]
(4.15)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~I',[],filled_subject,active_voice)).

yes

Because there is content in (4.14) for a contentful subject ([w('PRO','He')]), the subject parameter is set to filled_subject in (4.15) for success under rule 1 of (4.13). Also note how the result of (4.15) reflects an absence of any tree structure being created.

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

(4.16)
[w('PRO;_expletive_','It'), w('VBD',';~I','rained'), w('PUNC','.')]
(4.17)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~I',[],expletive_subject,active_voice)).

yes

Because there is content in (4.16) for an expletive subject ([w('PRO;_expletive_','It')]), the subject parameter is set to expletive_subject in (4.17) for success under rule 2 of (4.13).


Question:

Why does query (4.18) fail?

(4.18)
| ?- 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.19), either:

(4.19)
verb_complements_by_code(';~Ip',[],filled_subject,active_voice,L,L0) -->
  adverb_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Ip',[advp(ICH)],filled_subject,active_voice,[node('ADVP-CLR',[ICH])|L],L) -->
  [].

    Parsing the word list of (4.20) as a sentence leads to the verb_complements_by_code call seen with (4.21).

(4.20)
[w('NPR','Nasha'), w('VBD',';~Ip','looked'), w('RP','back'), w('PUNC','.')]
(4.21)
| ?- tphrase_set_string([w('RP','back')]), parse(verb_complements_by_code(';~Ip',[],filled_subject,active_voice)).

(ADVP-CLR (RP back))

yes

    Parsing the word list of (4.22) as a sentence leads to the verb_complements_by_code call seen with (4.23).

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

(ADVP-CLR *ICH*-178)

yes

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.24), either:

(4.24)
verb_complements_by_code(';~Ipr',[],filled_subject,active_voice,L,L0) -->
  preposition_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Ipr',[np(ICH)],filled_subject,active_voice,[node('PP-CLR',[Role,node('NP',[ICH])])|L],L) -->
  role([Role],[]).
verb_complements_by_code(';~Ipr',[pp(ICH)],filled_subject,active_voice,[node('PP-CLR',[ICH])|L],L) -->
  [].
verb_complements_by_code(';~Ipr',[],filled_subject,passive_voice,[node('PP-CLR',[Role])|L],L) -->
  role([Role],[]).

    Parsing the word list of (4.25) as a sentence leads to the verb_complements_by_code call seen with (4.26).

(4.25)
[w('PRO','They'), w('VBD',';~Ipr','went'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.')]
(4.26)
| ?- tphrase_set_string([w('P-ROLE','to'), w('N','bed')]), parse(verb_complements_by_code(';~Ipr',[],filled_subject,active_voice)).

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

yes

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

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

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

yes

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

(4.29)
[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.30)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Ipr',[pp(node('*ICH*-182',[]))],filled_subject,active_voice)).

(PP-CLR *ICH*-182)

yes

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

(4.31)
[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.32)
| ?- tphrase_set_string([w('P-ROLE','after')]), parse(verb_complements_by_code(';~Ipr',[],filled_subject,passive_voice)).

(PP-CLR (P-ROLE after))

yes

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.33), either:

(4.33)
verb_complements_by_code(';~In/pr',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~In/pr',[],filled_subject,active_voice,L,L0) -->
  preposition_phrase('-CLR',general,L,L0).

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

(4.34)
[w('PRO','We'), w('VBD',';~In/pr','stayed'), w('D','a'), w('N','fortnight'), w('PUNC','.')]
(4.35)
| ?- tphrase_set_string([w('D','a'), w('N','fortnight')]), parse(verb_complements_by_code(';~In/pr',[],filled_subject,active_voice)).

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

yes

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

(4.36)

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

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

yes

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.38), the word list should only have content for a to-infinitive clause.

(4.38)
verb_complements_by_code(';~It',[],filled_subject,active_voice,L,L0) -->
  ip_to_inf('-CLR',[],L,L0).

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

(4.39)
[w('PRO','We'), w('MD',';~cat_Vi','will'), w('NEG','not'), w('VB',';~It','hesitate'), w('TO','to'), w('VB',';~Ip','go'), w('ADV','further'), w('PUNC','.')]
(4.40)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Ip','go'), w('ADV','further')]), parse(verb_complements_by_code(';~It',[],filled_subject,active_voice)).

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

yes

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

(4.41)
[w('PRO','We'), w('VBD',';~It','waited'), w('P-CONN','for'), w('PRO','it'), w('TO','to'), w('VB',';~I','start'), w('PUNC','.')]
(4.42)
| ?- tphrase_set_string([w('P-CONN','for'), w('PRO','it'), w('TO','to'), w('VB',';~I','start')]), parse(verb_complements_by_code(';~It',[],filled_subject,active_voice)).

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

yes

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.43) with filled_subject and active_voice parameter settings, the object noun phrase can occur either:

When the voice parameter is set to passive_voice:

(4.43)
verb_complements_by_code(';~Tn',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L0).
verb_complements_by_code(';~Tn',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L) -->
  [].
verb_complements_by_code(';~Tn',[],filled_subject,passive_voice,L,L) -->
  [].

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

(4.44)
[w('D','The'), w('N','teacher'), w('VBD',';~Tn','scolded'), w('NPR','John'), w('PUNC','.')]
(4.45)
| ?- tphrase_set_string([w('NPR','John')]), parse(verb_complements_by_code(';~Tn',[],filled_subject,active_voice)).

(NP-OB1 (NPR John))

yes

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

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

(NP-OB1 *ICH*-114)

yes

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

(4.48)
[w('NPR','John'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn','scolded'), w('PUNC','.')]
(4.49)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn',[],filled_subject,passive_voice)).

yes

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.50) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice, either:

(4.50)
verb_complements_by_code(';~Tn.p',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  adverb_phrase('-CLR',general,L1,L0).
verb_complements_by_code(';~Tn.p',[],filled_subject,active_voice,L,L0) -->
  adverb_phrase('-CLR',general,L,L1),
  noun_phrase('-OB1',general,L1,L0).
verb_complements_by_code(';~Tn.p',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  adverb_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Tn.p',[advp(ICH)],filled_subject,active_voice,[node('ADVP-CLR',[ICH])|L],L0) -->
  noun_phrase('-OB1',general,L,L0).
verb_complements_by_code(';~Tn.p',[],filled_subject,passive_voice,L,L0) -->
  adverb_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Tn.p',[advp(ICH)],filled_subject,passive_voice,[node('ADVP-CLR',[ICH])|L],L) -->
  [].

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

(4.51)
[w('NPR','Susan'), w('VBD',';~Tn.p','turned'), w('D','the'), w('N','gas'), w('RP','on'), w('PUNC','.')]
(4.52)
| ?- tphrase_set_string([w('D','the'), w('N','gas'), w('RP','on')]), parse(verb_complements_by_code(';~Tn.p',[],filled_subject,active_voice)).

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

yes

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

(4.53)
[w('NPR','Nasha'), w('VBD',';~Tn.p','sucked'), w('RP','in'), w('PRO;_genm_','her'), w('N','breath'), w('PUNC','.')]
(4.54)
| ?- tphrase_set_string([w('RP','in'), w('PRO;_genm_','her'), w('N','breath')]), parse(verb_complements_by_code(';~Tn.p',[],filled_subject,active_voice)).

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

yes

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

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

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

yes

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

(4.57)
[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.58)
| ?- tphrase_set_string([w('D','the'), w('NS','dogs')]), parse(verb_complements_by_code(';~Tn.p',[advp(node('*ICH*-158',[]))],filled_subject,active_voice)).

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

yes

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

(4.59)
[w('D','The'), w('N','straw'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn.p','peeled'), w('RP','off'), w('PUNC','.')]
(4.60)
| ?- tphrase_set_string([w('RP','off')]), parse(verb_complements_by_code(';~Tn.p',[],filled_subject,passive_voice)).

(ADVP-CLR (RP off))

yes

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

(4.61)
[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.62)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn.p',[advp(node('*ICH*-168',[]))],filled_subject,passive_voice)).

(ADVP-CLR *ICH*-168)

yes

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

(4.63)
[w('WPRO','What'), w('DOP','','do'), w('PRO','you'), w('VB',';~Tw','wonder'), w('WADV','where'), w('PRO','she'), w('HVP',';~cat_Ve','<apos>s'), w('VVN',';~Tn.p','put'), w('PUNC','?')]
(4.64)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn.p',[advp(node('*ICH*-188',[])),np(node('*ICH*-190',[]))],filled_subject,active_voice)).

( (NP-OB1 *ICH*-190)
  (ADVP-CLR *ICH*-188))

yes

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.65) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice, either:

(4.65)
verb_complements_by_code(';~Tn.pr',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  preposition_phrase('-CLR',general,L1,L0).
verb_complements_by_code(';~Tn.pr',[],filled_subject,active_voice,L,L0) -->
  preposition_phrase('-CLR',general,L,L1),
  noun_phrase('-OB1',general,L1,L0).
verb_complements_by_code(';~Tn.pr',[],filled_subject,active_voice,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  preposition_phrase('-CLR',general,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,[node('PP-CLR',[Role,node('NP',[ICH])])|L0]),
  role([Role],[]).
verb_complements_by_code(';~Tn.pr',[pp(ICH)],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,[node('PP-CLR',[ICH])|L0]).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  preposition_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Tn.pr',[],filled_subject,passive_voice,L,L0) -->
  preposition_phrase('-CLR',general,L,L0).
verb_complements_by_code(';~Tn.pr',[np(ICH)],filled_subject,passive_voice,[node('PP-CLR',[Role,node('NP',[ICH])])|L],L) -->
  role([Role],[]).
verb_complements_by_code(';~Tn.pr',[pp(ICH)],filled_subject,passive_voice,[node('PP-CLR',[ICH])|L],L) -->
  [].

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

(4.66)
[w('PRO','It'), w('VBD',';~Tn.pr','filled'), w('PRO','me'), w('P-ROLE','with'), w('N','fear'), w('PUNC','.')]
(4.67)
| ?- tphrase_set_string([w('PRO','me'), w('P-ROLE','with'), w('N','fear')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_subject,active_voice)).

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

yes

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

(4.68)
[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.69)
| ?- 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_subject,active_voice)).

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

yes

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

(4.70)
[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.71)
| ?- 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_subject,active_voice)).

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

yes

    Parsing the word list of (4.72) as a noun phrase leads to the verb_complements_by_code call seen with (4.73).

(4.72)
[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.73)
| ?- tphrase_set_string([w('N','items'), w('P-ROLE','over_to')]), parse(verb_complements_by_code(';~Tn.pr',[np(node('*ICH*-212',[]))],filled_subject,active_voice)).

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

yes

    Parsing the word list of (4.74) as a noun phrase leads to the verb_complements_by_code call seen with (4.75).

(4.74)
[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.75)
| ?- tphrase_set_string([w('N','items')]), parse(verb_complements_by_code(';~Tn.pr',[pp(node('*ICH*-222',[]))],filled_subject,active_voice)).

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

yes

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

(4.76)
[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.77)
| ?- 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_subject,active_voice)).

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

yes

    Parsing the word list of (4.78) as a sentence leads to the verb_complements_by_code call seen with (4.79).

(4.78)
[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.79)
| ?- tphrase_set_string([w('P-ROLE','on'), w('D','the'), w('N','wall')]), parse(verb_complements_by_code(';~Tn.pr',[],filled_subject,passive_voice)).

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

yes

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

(4.80)
[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.81)
| ?- tphrase_set_string([w('P-ROLE','on')]), parse(verb_complements_by_code(';~Tn.pr',[np(node('*T*',[]))],filled_subject,passive_voice)).

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

yes

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

(4.82)
[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.83)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tn.pr',[pp(node('*ICH*-242',[]))],filled_subject,passive_voice)).

(PP-CLR *ICH*-242)

yes

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.84), there has to be content from the word list for a that-clause.

(4.84)
verb_complements_by_code(';~Tf',Displaced,filled_subject,active_voice,L,L0) -->
  cp_that('-OB1',_,Displaced,L,L0).

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

(4.85)
[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.86)
| ?- 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_subject,active_voice)).

(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.87), there has to be content from the word list for an embedded question clause.

(4.87)
verb_complements_by_code(';~Tw',Displaced,filled_subject,active_voice,L,L0) -->
  cp_embedded_que('-OB1',Displaced,L,L0).

    Parsing the word list of (4.88) as a sentence leads to the verb_complements_by_code call seen with (4.89).

(4.88)
[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.89)
| ?- 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_subject,active_voice)).

(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 the word list of (4.90) as a sentence leads to the verb_complements_by_code call seen with (4.91).

(4.90)
[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.91)
| ?- tphrase_set_string([w('WPRO','what'), w('TO','to'), w('DO',';~Tn','do')]), parse(verb_complements_by_code(';~Tw',[],filled_subject,active_voice)).

(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.92), the object utterance can occur either:

(4.92)
verb_complements_by_code(';~Tr',[],filled_subject,active_voice,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_subject,active_voice,[node('utterance-OB1',[ICH])|L],L) -->
  [].

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

(4.93)
[w('PRO','He'), w('VBD',';~Tr','said'), w('PULQ',''), w('PRO','I'), w('BEP',';~cat_Vg','<apos>m'), w('VAG',';~Ipr','going'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.'), w('PURQ',''), w('PUNC','.')]
(4.94)
| ?- tphrase_set_string([w('PULQ',''), w('PRO','I'), w('BEP',';~cat_Vg','<apos>m'), w('VAG',';~Ipr','going'), w('P-ROLE','to'), w('N','bed'), w('PUNC','.'), w('PURQ','')]), parse(verb_complements_by_code(';~Tr',[],filled_subject,active_voice)).

( (PULQ )
  (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 ))

yes

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

(4.95)
[w('PULQ',''), w('D','A'), w('N','paradox'), w('PUNC','.'), w('PURQ',''), w('PUNC',','), w('NPR','Nasha'), w('VBD',';~Tr','said'), w('PUNC','.')]
(4.96)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Tr',[utterance(node('*ICH*-224',[]))],filled_subject,active_voice)).

(utterance-OB1 *ICH*-224)

yes

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.97), there has to be content from the word list for a to-infinitive clause.

(4.97)
verb_complements_by_code(';~Tt',Displaced,filled_subject,active_voice,L,L0) -->
  ip_to_inf('-OB1',Displaced,L,L0).

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

(4.98)
[w('PRO','We'), w('HVD',';~cat_Ve','had'), w('VVN',';~Tt','planned'), w('TO','to'), w('VB',';~I','meet'), w('PUNC','.')]
(4.99)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','meet')]), parse(verb_complements_by_code(';~Tt',[],filled_subject,active_voice)).

(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.100) with filled_subject and active_voice parameter settings, while content for the to-infinitive clause comes from the word list, the derived object noun phrase can occur either:

When the voice parameter is set to passive_voice:

There is also the possibility of a provisional object:

(4.100)
verb_complements_by_code(';~Tnt',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-DOB1',general,L,[node('IP-INF-OB1',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Tnt',[np(ICH)],filled_subject,active_voice,[node('NP-DOB1',[ICH]),node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer([],filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Tnt',Displaced,filled_subject,passive_voice,[node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Tnt',Displaced,filled_subject,active_voice,[node('NP-DOB1',[node('PRO;_provisional_',[node(Word,[])])]),node('IP-INF-OB1',VL)|L],L0) -->
  [w('PRO;_provisional_',Word)],
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]),
  notional_item('-NOB1',L,L0).

Note that the to-infinitive clause is integrated into the parse with the call of to_inf_layer (see section 5.4.2) in all of the rules of (4.100). 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 the word list of (4.101) as a sentence leads to the verb_complements_by_code call seen with (4.102).

(4.101)
[w('PRO','We'), w('VBP',';~Tnt','want'), w('PRO','you'), w('TO','to'), w('VB',';~I','know'), w('PUNC','.')]
(4.102)
| ?- tphrase_set_string([w('PRO','you'), w('TO','to'), w('VB',';~I','know')]), parse(verb_complements_by_code(';~Tnt',[],filled_subject,active_voice)).

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

yes

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

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

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

yes

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

(4.105)
[w('PRO','We'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Tnt','allowed'), w('TO','to'), w('VB',';~I','go'), w('PUNC','.')]
(4.106)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','go')]), parse(verb_complements_by_code(';~Tnt',[],filled_subject,passive_voice)).

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

yes

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

(4.107)
[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.108)
| ?-  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_subject,active_voice)).

( (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

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.109), while content for the bare infinitive clause comes from the word list, the derived object noun phrase can occur either:

(4.109)
verb_complements_by_code(';~Tni',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-DOB1',general,L,[node('IP-INF-OB1',VL)|L0]),
  verb_phrase_layer([],filled_subject,infinitive_inflection,active_voice,VL,[]).
verb_complements_by_code(';~Tni',[np(ICH)],filled_subject,active_voice,[node('NP-DOB1',[ICH]),node('IP-INF-OB1',VL)|L],L) -->
  verb_phrase_layer([],filled_subject,infinitive_inflection,active_voice,VL,[]).

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

(4.110)
[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.111)
| ?- 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_subject,active_voice)).

( (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

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

(4.112)
[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.113)
| ?- tphrase_set_string([w('VB',';~Tn','answer'), w('D','the'), w('N','phone')]), parse(verb_complements_by_code(';~Tni',[np(node('*ICH*-253',[]))],filled_subject,active_voice)).

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

yes

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.114), there has to be content from the word list for a present participle (-ing) clause.

(4.114)
verb_complements_by_code(';~Tg',Displaced,filled_subject,active_voice,L,L0) -->
  ip_ppl_active('-OB1',Displaced,filled_subject,present_participle,L,L0).

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

(4.115)
[w('VB',';~Tg','Stop'), w('VAG',';~I','shouting'), w('PUNC','.')]
(4.116)
| ?- tphrase_set_string([w('VAG',';~I','shouting')]), parse(verb_complements_by_code(';~Tg',[],filled_subject,active_voice)).

(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.117) with filled_subject and active_voice parameter settings, while content for the participle clause comes from the word list, the derived object noun phrase can occur either:

When the voice parameter is set to passive_voice:

(4.117)
verb_complements_by_code(';~Tng',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-DOB1',general,L,L1),
  ip_ppl_active('-OB1',[],filled_subject,present_participle,L1,L0).
verb_complements_by_code(';~Tng',[np(ICH)],filled_subject,active_voice,[node('NP-DOB1',[ICH])|L],L0) -->
  ip_ppl_active('-OB1',[],filled_subject,present_participle,L,L0).
verb_complements_by_code(';~Tng',[],filled_subject,passive_voice,L,L0) -->
  ip_ppl_active('-OB1',[],filled_subject,present_participle,L,L0).

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

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

(4.118)
[w('PRO','She'), w('MD',';~cat_Vi','could'), w('VB',';~Tng','feel'), w('PRO','it'), w('VAG',';~I','coming'), w('PUNC','.')]
(4.119)
| ?- tphrase_set_string([w('PRO','it'), w('VAG',';~I','coming')]), parse(verb_complements_by_code(';~Tng',[],filled_subject,active_voice)).

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

yes

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

(4.120)
[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.121)
| ?- tphrase_set_string([w('VAG',';~Tn','hoeing'), w('NS','onions')]), parse(verb_complements_by_code(';~Tng',[np(node('*ICH*-263',[]))],filled_subject,active_voice)).

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

yes

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

(4.122)
[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.123)
| ?- tphrase_set_string([w('VAG',';~Ipr','hovering'), w('P-ROLE','around'), w('D','the'), w('N','surface')]), parse(verb_complements_by_code(';~Tng',[],filled_subject,passive_voice)).

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

yes

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.124) with filled_subject and active_voice parameter 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.124)
verb_complements_by_code(';~Tsg',[],filled_subject,active_voice,[node('IP-PPL3-OB1',[node('NP-SBJ',NL)|VL])|L],L) -->
  noun_phrase_genm_layer(general,NL,[]),
  verb_phrase_layer([],filled_subject,present_participle,active_voice,VL,[]).
verb_complements_by_code(';~Tsg',[],filled_subject,active_voice,[node('IP-PPL3-OB1',[node('NP-SBJ',NL)|VL])|L],L) -->
  noun_phrase_top(general,NL,[]),
  verb_phrase_layer([],filled_subject,present_participle,active_voice,VL,[]).

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

(4.125)
[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.126)
| ?- tphrase_set_string([w('PRO;_genm_','my'), w('VAG',';~Dn.*','telling'), w('PRO','you')]), parse(verb_complements_by_code(';~Tsg',[],filled_subject,active_voice)).

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

yes

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

(4.127)
[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.128)
| ?- tphrase_set_string([w('PRO','me'), w('VAG',';~Dn.*','telling'), w('PRO','you')]), parse(verb_complements_by_code(';~Tsg',[],filled_subject,active_voice)).

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

yes

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.129) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice, either:

(4.129)
verb_complements_by_code(';~Dn.n',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,L,L1),
  noun_phrase('-OB1',general,L1,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  noun_phrase('-OB2',general,L,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_subject,active_voice,[node('NP-OB2',[ICH])|L],L0) -->
  noun_phrase('-OB1',general,L,L0).
verb_complements_by_code(';~Dn.n',[],filled_subject,passive_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L0).
verb_complements_by_code(';~Dn.n',[np(ICH)],filled_subject,passive_voice,[node('NP-OB1',[ICH])|L],L) -->
  [].

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

(4.130)
[w('N','Daddy'), w('VBD',';~Dn.n','bought'), w('PRO','me'), w('D','a'), w('ADJ','new'), w('N','bike'), w('PUNC','.')]
(4.131)
| ?- tphrase_set_string([w('PRO','me'), w('D','a'), w('ADJ','new'), w('N','bike')]), parse(verb_complements_by_code(';~Dn.n',[],filled_subject,active_voice)).

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

yes

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

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

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

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

yes

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

(4.134)
[w('D','the'), w('N','student'), w('PRO','he'), w('VBD',';~Dn.n','set'), w('D','the'), w('N','task')]
(4.135)
| ?- tphrase_set_string([w('D','the'), w('N','task')]), parse(verb_complements_by_code(';~Dn.n',[np(node('*T*',[]))],filled_subject,active_voice)).

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

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

yes

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

(4.136)
[w('PRO','We'), w('BED',';~cat_Ve_passive_','were'), w('VVN',';~Dn.n','played'), w('Q','two'), w('NS','recordings'), w('PUNC','.')]
(4.137)
| ?- tphrase_set_string([w('Q','two'), w('NS','recordings')]), parse(verb_complements_by_code(';~Dn.n',[],filled_subject,passive_voice)).

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

yes

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

(4.138)
[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.139)
| ?- tphrase_set_string([]), parse(verb_complements_by_code(';~Dn.n',[np(node('*T*',[]))],filled_subject,passive_voice)).

(NP-OB1 *T*)

yes

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.140) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.140)
verb_complements_by_code(';~Dn.f',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,L,L1),
  cp_that('-OB1',_,Displaced,L1,L0).
verb_complements_by_code(';~Dn.f',Displaced,filled_subject,passive_voice,L,L0) -->
  cp_that('-OB1',_,Displaced,L,L0).

Note how, for both rules of (4.140), inherited Displaced information is passed on to the cp_that call.

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

(4.141)
[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.142)
| ?- 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_subject,active_voice)).

( (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

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

(4.143)
[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.144)
| ?- 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_subject,passive_voice)).

(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

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.145) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.145)
verb_complements_by_code(';~Dn.w',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,L,L1),
  cp_embedded_que('-OB1',Displaced,L1,L0).
verb_complements_by_code(';~Dn.w',Displaced,filled_subject,passive_voice,L,L0) -->
  cp_embedded_que('-OB1',Displaced,L,L0).

Note how, for both rules of (4.140), inherited Displaced information is passed on to the cp_embedded_que call.

    Parsing the word list of (4.146) as a sentence leads to the verb_complements_by_code call seen with (4.147).

(4.146)
[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.147)
| ?- 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_subject,active_voice)).

( (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

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

(4.148)
[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.149)
| ?- 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_subject,passive_voice)).

(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

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.150) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.150)
verb_complements_by_code(';~Dn.r',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,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_subject,passive_voice,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 the word list of (4.151) as a sentence leads to the verb_complements_by_code call seen with (4.152).

(4.151)
[w('PRO','She'), w('VBD',';~Dn.r','asked'), w('D','the'), w('NPR','Prime'), w('NPR','Minister'), w('PULQ',''), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ',''), w('PUNC','.')]
(4.152)
| ?- tphrase_set_string([w('D','the'), w('NPR','Prime'), w('NPR','Minister'), w('PULQ',''), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','')]), parse(verb_complements_by_code(';~Dn.r',[],filled_subject,active_voice)).

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

yes

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

(4.153)
[w('D','The'), w('NPR','Prime'), w('NPR','Minister'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Dn.r','asked'), w('PULQ',''), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ',''), w('PUNC','.')]
(4.154)
| ?- tphrase_set_string([w('PULQ',''), w('BEP',';~La','Is'), w('PRO','it'), w('ADJ','true'), w('PUNC','?'), w('PURQ','')]), parse(verb_complements_by_code(';~Dn.r',[],filled_subject,passive_voice)).

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

yes

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.155) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.155)
verb_complements_by_code(';~Dn.t',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,L,[node('IP-INF-OB1',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Dn.t',Displaced,filled_subject,passive_voice,[node('IP-INF-OB1',VL)|L],L) -->
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).

Note that the to-infinitive clause is integrated into the parse with the call of to_inf_layer (see section 5.4.2) in both rules of (4.100). 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 Displaced information.

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

(4.156)
[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.157)
| ?- 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_subject,active_voice)).

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

yes

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

(4.158)
[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.159)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Tn','make'), w('D;_nphd_','anything')]), parse(verb_complements_by_code(';~Dn.t',[],filled_subject,passive_voice)).

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

yes

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.160), there has to be content from the word list for a noun phrase.

(4.160)
verb_complements_by_code(';~Dn.*',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB2',general,L,L0).

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

(4.161)
[w('PRO','You'), w('DOD','','did'), w('VB',';~Dn.*','tell'), w('PRO','me'), w('PUNC','.')]
(4.162)
| ?- tphrase_set_string([w('PRO','me')]), parse(verb_complements_by_code(';~Dn.*',[],filled_subject,active_voice)).

(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.163) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice:

(4.163)
verb_complements_by_code(';~Dpr.n',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  preposition_phrase('-OB2',general,L1,L0).
verb_complements_by_code(';~Dpr.n',[],filled_subject,active_voice,L,L0) -->
  preposition_phrase('-OB2',general,L,L1),
  noun_phrase('-OB1',general,L1,L0).
verb_complements_by_code(';~Dpr.n',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  preposition_phrase('-OB2',general,L,L0).
verb_complements_by_code(';~Dpr.n',[pp(ICH)],filled_subject,active_voice,[node('PP-OB2',[ICH])|L],L0) -->
  noun_phrase('-OB1',general,L,L0).
verb_complements_by_code(';~Dpr.n',[],filled_subject,passive_voice,L,L0) -->
  preposition_phrase('-OB2',general,L,L0).

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

(4.164)
[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.165)
| ?- 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_subject,active_voice)).

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

yes

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

(4.166)
[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.167)
| ?- tphrase_set_string([w('P-ROLE','to'), w('PRO','you'), w('D;_nphd_','something')]), parse(verb_complements_by_code(';~Dpr.n',[],filled_subject,active_voice)).

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

yes

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

(4.168)
[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.169)
| ?- 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_subject,active_voice)).

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

yes

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

(4.170)
[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.171)
| ?- tphrase_set_string([w('P-ROLE','to'), w('N','Head'), w('N','Office')]), parse(verb_complements_by_code(';~Dpr.n',[],filled_subject,passive_voice)).

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

yes

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.172), there has to be content from the word list for a preposition phrase followed by a that-clause.

(4.172)
verb_complements_by_code(';~Dpr.f',Displaced,filled_subject,active_voice,L,L0) -->
  preposition_phrase('-OB2',general,L,L1),
  cp_that('-OB1',_,Displaced,L1,L0).

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

(4.173)
[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.174)
| ?- 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_subject,active_voice)).

( (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.175), 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.175)
verb_complements_by_code(';~Dpr.r',[],filled_subject,active_voice,L,L0) -->
  preposition_phrase('-OB2',general,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 the word list of (4.176) as a sentence leads to the verb_complements_by_code call seen with (4.177).

(4.176)
[w('PRO','She'), w('VBD',';~Dpr.r','said'), w('P-ROLE','to'), w('PRO','me'), w('PULQ',''), w('BEP',';~cat_Vg','are'), w('PRO','you'), w('VAG',';~I','going'), w('PUNC','?'), w('PURQ',''), w('PUNC','.')]
(4.177)
| ?- tphrase_set_string([w('P-ROLE','to'), w('PRO','me'), w('PULQ',''), w('BEP',';~cat_Vg','are'), w('PRO','you'), w('VAG',';~I','going'), w('PUNC','?'), w('PURQ','')]), parse(verb_complements_by_code(';~Dpr.r',[],filled_subject,active_voice)).

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

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.178) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice:

(4.178)
verb_complements_by_code(';~Cn.a',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  adjective_phrase('-PRD',general,L1,L0).
verb_complements_by_code(';~Cn.a',[],filled_subject,active_voice,L,L0) -->
  adjective_phrase('-PRD',general,L,L1),
  noun_phrase('-OB1',general,L1,L0).
verb_complements_by_code(';~Cn.a',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  adjective_phrase('-PRD',general,L,L0).
verb_complements_by_code(';~Cn.a',[],filled_subject,active_voice,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  adjective_phrase('-PRD',general,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Cn.a',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-DOB1',general,L,L2),
  adjective_phrase('-PRD',general,L2,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,passive_voice,VL,[]).
verb_complements_by_code(';~Cn.a',[np(ICH)],filled_subject,active_voice,[node('NP-DOB1',[ICH])|L],L0) -->
  adjective_phrase('-PRD',general,L,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer([],filled_subject,passive_voice,VL,[]).
verb_complements_by_code(';~Cn.a',[],filled_subject,passive_voice,L,L0) -->
  adjective_phrase('-PRD',general,L,L0).
verb_complements_by_code(';~Cn.a',[],filled_subject,passive_voice,L,L0) -->
  adjective_phrase('-PRD',general,L,[node('IP-INF-NOB1',VL)|L0]),
  to_inf_layer([],filled_subject,passive_voice,VL,[]).

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

(4.179)
[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.180)
| ?- tphrase_set_string([w('D','the'), w('ADJ','western'), w('N','sky'), w('ADJ','red')]), parse(verb_complements_by_code(';~Cn.a',[],filled_subject,active_voice)).

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

yes

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

(4.181)
[w('PRO','He'), w('VBD',';~Cn.a','flung'), w('ADJ','open'), w('D','the'), w('N','canopy'), w('PUNC','.')]
(4.182)
| ?- tphrase_set_string([w('ADJ','open'), w('D','the'), w('N','canopy')]), parse(verb_complements_by_code(';~Cn.a',[],filled_subject,active_voice)).

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

yes

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

(4.183)
[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.184)
| ?- tphrase_set_string([w('ADJ','annoying')]), parse(verb_complements_by_code(';~Cn.a',[np(node('*ICH*-296',[]))],filled_subject,active_voice)).

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

yes

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

(4.185)
[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.186)
| ?- 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_subject,active_voice)).

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

yes

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

(4.187)
[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.188)
| ?- 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_subject,active_voice)).

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

yes

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

(4.189)
[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.190)
| ?- 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_subject,active_voice)).

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

yes

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

(4.191)
[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.192)
| ?- tphrase_set_string([w('ADJ','red')]), parse(verb_complements_by_code(';~Cn.a',[],filled_subject,passive_voice)).

(ADJP-PRD (ADJ red))

yes

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

(4.193)
[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.194)
| ?- tphrase_set_string([w('ADJ','difficult'), w('TO','to'), w('VB',';~Tn','believe')]), parse(verb_complements_by_code(';~Cn.a',[],filled_subject,passive_voice)).

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

yes

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.195) with filled_subject and active_voice parameter settings, either:

When the voice parameter is set to passive_voice, either:

(4.195)
verb_complements_by_code(';~Cn.n',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  noun_phrase('-PRD',general,L1,L0).
verb_complements_by_code(';~Cn.n',[],filled_subject,active_voice,[node('NP-OB1',[node('PRO;_provisional_',[node(Word,[])])])|L],L0) -->
  [w('PRO;_provisional_',Word)],
  noun_phrase('-PRD',general,L,L1),
  notional_item('-NOB1',L1,L0).
verb_complements_by_code(';~Cn.n',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH])|L],L0) -->
  noun_phrase('-PRD',general,L,L0).
verb_complements_by_code(';~Cn.n',[],filled_subject,passive_voice,L,L0) -->
  noun_phrase('-PRD',general,L,L0).
verb_complements_by_code(';~Cn.n',[np(ICH)],filled_subject,passive_voice,[node('NP-PRD',[ICH])|L],L) -->
  [].

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

(4.196)
[w('PRO','He'), w('HVP',';~cat_Ve','has'), w('VVN',';~Cn.n','made'), w('PRO','it'), w('PRO;_ppge_','his'), w('PUNC','.')]
(4.197)
| ?- tphrase_set_string([w('PRO','it'), w('PRO;_ppge_','his')]), parse(verb_complements_by_code(';~Cn.n',[],filled_subject,active_voice)).

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

yes

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

(4.198)
[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.199)
| ?- 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_subject,active_voice)).

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

yes

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

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

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

yes

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

(4.202)
[w('D','The'), w('N','kitten'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.n','called'), w('NPR','Ruffels'), w('PUNC','.')]
(4.203)
| ?- tphrase_set_string([w('NPR','Ruffels')]), parse(verb_complements_by_code(';~Cn.n',[],filled_subject,passive_voice)).

(NP-PRD (NPR Ruffels))

yes

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

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

(NP-PRD *ICH*-314)

yes

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.206) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.206)
verb_complements_by_code(';~Cn.n/a',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  preposition_phrase('-PRD',general,L1,L0).
verb_complements_by_code(';~Cn.n/a',[],filled_subject,passive_voice,L,L0) -->
  preposition_phrase('-PRD',general,L,L0).

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

(4.207)
[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.208)
| ?- 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_subject,active_voice)).

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

yes

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

(4.209)
[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.210)
| ?- 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_subject,passive_voice)).

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

yes

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.211) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.211)
verb_complements_by_code(';~Cn.pr',[],filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  preposition_phrase('-PRD',general,L1,L0).
verb_complements_by_code(';~Cn.pr',[],filled_subject,passive_voice,L,L0) -->
  preposition_phrase('-PRD',general,L,L0).

    Parsing the word list of (4.212) as a noun phrase leads to the verb_complements_by_code call seen with (4.213).

(4.212)
[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.213)
| ?- 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_subject,active_voice)).

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

yes

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

(4.214)
[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.215)
| ?- tphrase_set_string([w('P-ROLE','in'), w('ADJ','parallel'), w('N','computing')]), parse(verb_complements_by_code(';~Cn.pr',[],filled_subject,passive_voice)).

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

yes

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.216) with filled_subject and active_voice parameter settings, while content for the to-infinitive clause comes from the word list, the derived object noun phrase can occur either:

When the voice parameter is set to passive_voice:

(4.216)
verb_complements_by_code(';~Cn.t',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,[node('IP-INF-PRD',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Cn.t',[np(ICH)],filled_subject,active_voice,[node('NP-OB1',[ICH]),node('IP-INF-PRD',VL)|L],L) -->
  to_inf_layer([],filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~Cn.t',Displaced,filled_subject,passive_voice,[node('IP-INF-PRD',VL)|L],L) -->
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).

    Parsing the word list of (4.217) as a sentence leads to the verb_complements_by_code call seen with (4.218).

(4.217)
[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.218)
| ?- 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_subject,active_voice)).

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

yes

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

(4.219)
[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.220)
| ?- 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_subject,active_voice)).

( (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

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

(4.221)
[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.222)
| ?- tphrase_set_string([w('TO','to'), w('BE',';~Ln','be'), w('NS','neurons')]), parse(verb_complements_by_code(';~Cn.t',[],filled_subject,passive_voice)).

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

yes

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.223), there has to be content from the word list for a noun phrase followed by a bare infinitive clause.

(4.223)
verb_complements_by_code(';~Cn.i',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,[node('IP-INF-PRD',VL)|L0]),
  verb_phrase_layer(Displaced,filled_subject,infinitive_inflection,active_voice,VL,[]).

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

(4.224)
[w('VB',';~Cn.i','Let'), w('PRO','me'), w('HV',';~Tn','have'), w('D','a'), w('N','go'), w('PUNC','.')]
(4.225)
| ?- tphrase_set_string([w('PRO','me'), w('HV',';~Tn','have'), w('D','a'), w('N','go')]), parse(verb_complements_by_code(';~Cn.i',[],filled_subject,active_voice)).

( (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.226) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.226)
verb_complements_by_code(';~Cn.g',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  ip_ppl_active('-PRD',Displaced,filled_subject,present_participle,L1,L0).
verb_complements_by_code(';~Cn.g',Displaced,filled_subject,passive_voice,L,L0) -->
  ip_ppl_active('-PRD',Displaced,filled_subject,present_participle,L,L0).

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

(4.227)
[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.228)
| ?- tphrase_set_string([w('D','a'), w('ADJ','ticking'), w('N','clock'), w('VAG',';~I','running')]), parse(verb_complements_by_code(';~Cn.g',[],filled_subject,active_voice)).

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

yes

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

(4.229)
[w('D','The'), w('N','unit'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Cn.g','assumed'), w('VAG',';~I','working'), w('PUNC','.')]
(4.230)
| ?- tphrase_set_string([w('VAG',';~I','working')]), parse(verb_complements_by_code(';~Cn.g',[],filled_subject,passive_voice)).

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

yes

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 past participle (-ed/-en) clause with passive voice and 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.231) with filled_subject and active_voice parameter settings:

When the voice parameter is set to passive_voice:

(4.231)
verb_complements_by_code(';~VP24A',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  ip_ppl_passive('-PRD',Displaced,filled_subject,past_participle,L1,L0).
verb_complements_by_code(';~VP24A',Displaced,filled_subject,passive_voice,L,L0) -->
  ip_ppl_passive('-PRD',Displaced,filled_subject,past_participle,L,L0).

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

(4.232)
[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.233)
| ?- 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_subject,active_voice)).

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

yes

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

(4.234)
[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.235)
| ?- tphrase_set_string([w('VVN',';~Cn.a','shot'), w('ADJ','dead')]), parse(verb_complements_by_code(';~VP24A',[],filled_subject,passive_voice)).

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

yes

4.7.2    VP24B

Code ;~VP24B selects a noun phrase with object function (NP-OB1) and a past participle (-ed/-en) clause with passive voice and object 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.236), there has to be content from the word list for a noun phrase followed by a past participle clause.

(4.236)
verb_complements_by_code(';~VP24B',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  ip_ppl_passive('-PRD',Displaced,filled_subject,past_participle,L1,L0).

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

(4.237)
[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.238)
| ?- tphrase_set_string([w('D','a'), w('N','novel'), w('VVN',';~Tn','published')]), parse(verb_complements_by_code(';~VP24B',[],filled_subject,active_voice)).

( (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 past participle (-ed/-en) clause with passive voice and object 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.239), there has to be content from the word list for a noun phrase followed by a past participle clause.

(4.239)
verb_complements_by_code(';~VP24C',Displaced,filled_subject,active_voice,L,L0) -->
  noun_phrase('-OB1',general,L,L1),
  ip_ppl_passive('-PRD',Displaced,filled_subject,past_participle,L1,L0).

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

(4.240)
[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.241)
| ?- tphrase_set_string([w('PRO;_genm_','her'), w('N','hair'), w('VVN',';~Tn','cut')]), parse(verb_complements_by_code(';~VP24C',[],filled_subject,active_voice)).

( (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.242), the selected noun phrase occurs either:

(4.242)
verb_complements_by_code(';~ex_V',[],there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,L0).
verb_complements_by_code(';~ex_V',[np(ICH)],there_subject,active_voice,[node('NP-ESBJ',[ICH])|L],L) -->
  [].

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

(4.243)
[w('EX','There'), w('BEP',';~ex_V','are'), w('ADJ','other'), w('NS','complications'), w('PUNC','.')]
(4.244)
| ?- tphrase_set_string([w('ADJ','other'), w('NS','complications')]), parse(verb_complements_by_code(';~ex_V',[],there_subject,active_voice)).

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

yes

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

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

(NP-ESBJ *ICH*-338)

yes

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.247), while the adverbial particle has to come from an adverb phrase of the word list, the noun phrase can occur either:

(4.247)
verb_complements_by_code(';~ex_Vp',[],there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,L1),
  adverb_phrase('-CLR',general,L1,L0).
verb_complements_by_code(';~ex_Vp',[np(ICH)],there_subject,active_voice,[node('NP-ESBJ',[ICH])|L],L0) -->
  adverb_phrase('-CLR',general,L,L0).

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

(4.248)
[w('EX','There'), w('BEP',';~ex_Vp','<apos>s'), w('Q;_nphd_','nothing'), w('ADV','there'), w('PUNC','.')]
(4.249)
| ?- tphrase_set_string([w('Q;_nphd_','nothing'), w('ADV','there')]), parse(verb_complements_by_code(';~ex_Vp',[],there_subject,active_voice)).

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

yes

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

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

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

yes

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.252), there has to be content from the word list for a noun phrase followed by a preposition phrase.

(4.252)
verb_complements_by_code(';~ex_Vpr',[],there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,L1),
  preposition_phrase('-CLR',general,L1,L0).

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

(4.253)
[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.254)
| ?- 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_subject,active_voice)).

( (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.255), there has to be content from the word list for a noun phrase followed by a to-infinitive clause.

(4.255)
verb_complements_by_code(';~ex_cat_Vt',Displaced,there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,[node('IP-INF-CAT',VL)|L0]),
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).
verb_complements_by_code(';~ex_cat_Vt',[np(ICH)|Displaced],there_subject,active_voice,[node('NP-ESBJ',[ICH]),node('IP-INF-CAT',VL)|L],L) -->
  to_inf_layer(Displaced,filled_subject,active_voice,VL,[]).

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

(4.256)
[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.257)
| ?- 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_subject,active_voice)).

( (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

4.8.5    ex_cat_Vt_passive_

(4.258)
verb_complements_by_code(';~ex_cat_Vt_passive_',Displaced,there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,[node('IP-INF-CAT',VL)|L0]),
  {
    member(SbjType,[filled_subject,unfilled_subject])
  },
  to_inf_layer(Displaced,SbjType,passive_voice,VL,[]).
verb_complements_by_code(';~ex_cat_Vt_passive_',[np(ICH)|Displaced],there_subject,active_voice,[node('NP-ESBJ',[ICH]),node('IP-INF-CAT',VL)|L],L) -->
  {
    member(SbjType,[filled_subject,unfilled_subject])
  },
  to_inf_layer(Displaced,SbjType,passive_voice,VL,[]).

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

(4.259)
[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.260)
| ?- 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_subject,active_voice)).

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

yes

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.261), there has to be content from the word list for a noun phrase followed by a participle clause.

(4.261)
verb_complements_by_code(';~ex_cat_Vg',Displaced,there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,L1),
  ip_ppl_active('-CAT',Displaced,filled_subject,present_participle,L1,L0).
verb_complements_by_code(';~ex_cat_Vg',[np(ICH)|Displaced],there_subject,active_voice,[node('NP-ESBJ',[ICH])|L],L0) -->
  ip_ppl_active('-CAT',Displaced,filled_subject,present_participle,L,L0).

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

(4.262)
[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.263)
| ?- 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_subject,active_voice)).

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

yes

4.8.7    ex_cat_Ve_passive_

Code ;~ex_cat_Ve_passive_ selects a noun phrase with existential subject function (NP-ESBJ) and a past participle (-ed/-en) clause with catenative complement function (IP-PPL-CAT). For a call of the verb_complements_by_code rule of (4.264), there has to be content from the word list for a noun phrase followed by a participle clause.

(4.264)
verb_complements_by_code(';~ex_cat_Ve_passive_',Displaced,there_subject,active_voice,L,L0) -->
  noun_phrase('-ESBJ',general,L,L1),
  ip_ppl_passive('-CAT',Displaced,filled_subject,past_participle,L1,L0).
verb_complements_by_code(';~ex_cat_Ve_passive_',[np(ICH)|Displaced],there_subject,active_voice,[node('NP-ESBJ',[ICH])|L],L0) -->
  ip_ppl_passive('-CAT',Displaced,filled_subject,past_participle,L,L0).

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

(4.265)
[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.266)
| ?- 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_subject,active_voice)).

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

yes

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.267), there has to be content from the word list for a that-clause.

(4.267)
verb_complements_by_code(';~equ_Vf',[],filled_subject,active_voice,L,L0) -->
  cp_that('-PRD2',_,[],L,L0).

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

(4.268)
[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.269)
| ?- 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_subject,active_voice)).

(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.270), there has to be content from the word list for an embedded question clause.

(4.270)
verb_complements_by_code(';~equ_Vw',[],filled_subject,active_voice,L,L0) -->
  cp_embedded_que('-PRD2',[],L,L0).

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

(4.271)
[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.272)
| ?- 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_subject,active_voice)).

(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 the word list of (4.273) as a sentence leads to the verb_complements_by_code call seen with (4.274).

(4.273)
[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.274)
| ?- 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_subject,active_voice)).

(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.275), there has to be content from the word list for a to-infinitive clause.

(4.275)
verb_complements_by_code(';~equ_Vt',[],filled_subject,active_voice,L,L0) -->
  ip_to_inf('-PRD2',[],L,L0).

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

(4.276)
[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.277)
| ?- 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_subject,active_voice)).

(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.278), there has to be content from the word list for a participle clause.

(4.278)
verb_complements_by_code(';~equ_Vg',[],filled_subject,active_voice,[node('IP-PPL-PRD2',IL)|L],L) -->
  ip_ppl_adverbial_layer(filled_subject,IL,[]).
verb_complements_by_code(';~equ_Vg',[],filled_subject,active_voice,[node('IP-PPL3-PRD2',IL)|L],L) -->
  ip_ppl_adverbial_layer(unfilled_subject,IL,[]).

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

(4.279)
[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.280)
| ?- 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_subject,active_voice)).

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

yes

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

(4.281)
[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.282)
| ?- tphrase_set_string([w('N','Mr.'), w('NPR','McGregor'), w('VAG',';~Tn','hoeing'), w('NS','onions')]), parse(verb_complements_by_code(';~equ_Vg',[],filled_subject,active_voice)).

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

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.283), there has to be content from the word list for a to-infinitive clause.

(4.283)
verb_complements_by_code(';~cat_Vt',Displaced,SbjType,active_voice,[node('IP-INF-CAT',VL)|L],L) -->
  to_inf_layer(Displaced,SbjType,active_voice,VL,[]).

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

(4.284)
[w('D','A'), w('N','ship'), w('HVD',';~cat_Vt','had'), w('TO','to'), w('VB',';~I','sink'), w('','.')]
(4.285)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~I','sink')]), parse(verb_complements_by_code(';~cat_Vt',[],filled_subject,active_voice)).

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

yes

4.10.2    cat_Vt_passive_

(4.286)
verb_complements_by_code(';~cat_Vt_passive_',Displaced,filled_subject,active_voice,[node('IP-INF-CAT',VL)|L],L) -->
  {
    member(SbjType,[filled_subject,unfilled_subject])
  },
  to_inf_layer(Displaced,SbjType,passive_voice,VL,[]).
(4.287)
[w('D','The'), w('N','government'), w('BEP',';~cat_Vt_passive_','is'), w('TO','to'), w('VB',';~Tn','blame'), w('PUNC','.')]
(4.288)
| ?- tphrase_set_string([w('TO','to'), w('VB',';~Tn','blame')]), parse(verb_complements_by_code(';~cat_Vt_passive_',[],filled_subject,active_voice)).

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

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.289), there has to be content from the word list for a bare infinitive clause.

(4.289)
verb_complements_by_code(';~cat_Vi',Displaced,SbjType,active_voice,[node('IP-INF-CAT',VL)|L],L) -->
  verb_phrase_layer(Displaced,SbjType,infinitive_inflection,active_voice,VL,[]).

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

(4.290)
[w('PRO','It'), w('VBD',';~cat_Vi','helped'), w('VB',';~Tn','cut'), w('D','the'), w('N','cost'), w('PUNC','.')]
(4.291)
| ?- tphrase_set_string([w('VB',';~Tn','cut'), w('D','the'), w('N','cost')]), parse(verb_complements_by_code(';~cat_Vi',[],filled_subject,active_voice)).

(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.292), there has to be content from the word list for a participle clause.

(4.292)
verb_complements_by_code(';~cat_Vg',Displaced,SbjType,active_voice,L,L0) -->
  ip_ppl_active('-CAT',Displaced,SbjType,present_participle,L,L0).

    Parsing the word list of (4.293) as a sentence leads to the verb_complements_by_code call seen with (4.294).

(4.293)
[w('D','A'), w('N','ship'), w('BED',';~cat_Vg','was'), w('VAG',';~I','sinking'), w('PUNC','.')]
(4.294)
| ?- tphrase_set_string([w('VAG',';~I','sinking')]), parse(verb_complements_by_code(';~cat_Vg',[],filled_subject,active_voice)).

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

yes

4.10.5    cat_Vg_passive_

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

(4.295)
verb_complements_by_code(';~cat_Vg_passive_',Displaced,SbjType,active_voice,L,L0) -->
  ip_ppl_passive('-CAT',Displaced,SbjType,present_participle,L,L0).

    Parsing the word list of (4.296) as a sentence leads to the verb_complements_by_code call seen with (4.297).

(4.296)
[w('PRO;_genm_','His'), w('NS','wounds'), w('VBP',';~cat_Vg_passive_','need'), w('VAG',';~Tn','dressing'), w('PUNC','.')]
(4.297)
| ?- tphrase_set_string([w('VAG',';~Tn','dressing')]), parse(verb_complements_by_code(';~cat_Vg_passive_',[],filled_subject,active_voice)).

(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.301), the participle clause should form the content of the word list.

(4.298)
verb_complements_by_code(';~cat_Ve',Displaced,SbjType,active_voice,L,L0) -->
  ip_ppl_active('-CAT',Displaced,SbjType,past_participle,L,L0).

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

(4.299)
[w('D','A'), w('N','ship'), w('HVD',';~cat_Ve','had'), w('VVN',';~I','sunk'), w('PUNC','.')]
(4.300)
| ?- tphrase_set_string([w('VVN',';~I','sunk')]), parse(verb_complements_by_code(';~cat_Ve',[],filled_subject,active_voice)).

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

yes

4.10.7    cat_Ve_passive_

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

(4.301)
verb_complements_by_code(';~cat_Ve_passive_',Displaced,SbjType,active_voice,L,L0) -->
  ip_ppl_passive('-CAT',Displaced,SbjType,past_participle,L,L0).

    Parsing the word list of (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_Ve_passive_','was'), w('VVN',';~Tn','sunk'), w('PUNC','.')]
(4.303)
| ?- tphrase_set_string([w('VVN',';~Tn','sunk')]), parse(verb_complements_by_code(';~cat_Ve_passive_',[],filled_subject,active_voice)).

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

yes

Question:

Why do the queries of (4.304) and (4.305) fail?

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

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

no