Chapter 6

Clause subordination


6.1    Introduction

This chapter is about integrating clause subordination into a parse. A clause can be subordinate in virtue of being an argument for a containing clause, such as providing an object. Rules for clause arguments are discussed in section 6.2 (for that-clauses), section 6.3 (for to-infinitive clauses) and section 6.4 (for embedded questions). Section 6.4 also notes the possibility for embedded questions to serve as the complement component of preposition phrases.

    When a subordinate clause has a subject role within the containing clause, it will often occur as a notional subject extraposed to the right edge of the containing clause and in co-occurrence with a provisional subject it of the containing clause. Section 6.5 notes how parsing can capture the ripple effect connecting a provisional subject it and an extraposed notional subject. Similarly, section 6.6 shows the tough-construction with its ripple effect connecting a derived subject noun phrase and an extraposed notional subject that is a to-infinitive clause.

    A clause can also be the subordinate component of a subordinate conjunction, which is covered in section 6.7. Section 6.8 includes the possibility of having a participle clause as the selected complement of a preposition to give a preposition phrase.

    In section 6.9, subordination is also seen to occur with relative clauses, where a clause possibly with an initial relative pronoun and with an absence elsewhere of a selected clause item acts as a modifier. Section 6.10 adds support for cleft constructions.

    The chapter ends with a look at the V_as_though/as_if/like-construction in section 6.11.


6.2    CP-THT (that-clause)

A that-clause is an embedded clause with a finite verb. This may have the complementizer that (tagged C) as the clause initial word. A that-clause has a maximal constituent with the CP-THT tag that can take function information as a tag extension from the Ext parameter of the cp_that rules of (6.1).

    [Rule 1] of (6.1) will construct a CP-THT that has as its only element a finite clause layer (IP-SUB), which in turn contains all the clause content gathered with a clause_that_layer rule of (6.3), including any clause initial complementizer. Presence or absence of an initial complementizer can depend on the Type parameter, which is set to either:

    If there is conjunction at the highest level of a that-clause, then this happens inside the IP-SUB layer within an ILYR (clause internal) layer constructed with [rule 2] of (6.1), which in turn calls recursive cp_that_tail of (6.2), which, through additional calls of clause_that_layer, picks up from the word list the content for conjuncts that occur after the first conjunct.

(6.1)
cp_that(Ext,Type,Store,[node(Label,[node('IP-SUB',IL)])|L],L) -->
  {
    atom_concat('CP-THT',Ext,Label)
  },
  clause_that_layer(Type,Store,IL,[]).
cp_that(Ext,Type,Store,[node(Label,[node('IP-SUB',[node('ILYR',[node('ILYR',IL)|CL])])])|L],L) -->
  {
    atom_concat('CP-THT',Ext,Label)
  },
  clause_that_layer(Type,Store,IL,[]),
  cp_that_tail(Type,Store,CL,[]).
(6.2)
cp_that_tail(Type,Store,[node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
  conj(CONJ),
  clause_that_layer(Type,Store,IL,[]).
cp_that_tail(Type,Store,[PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
  punc(non_final,[PU],[]),
  clause_that_layer(Type,Store,IL,[]),
  cp_that_tail(Type,Store,L,L0).

    The internal content for (a conjunct of) a that-clause follows from the clause_that_layer rules of (6.3). The exact rule called can depend on:

[Rule 1] applies if the word list has no that-complementizer and no clause subject and there is a noun phrase to inherit from the Store parameter. [Rule 2] applies if there is a that-complementizer and content from the word list for a clause with subject. [Rule 3] applies if there is no that-complementizer but there is content from the word list for a clause with subject.

(6.3)
clause_that_layer(without_c,[np(ICH)|Store],[node('NP-SBJ',[ICH])|L],L0) -->
  clause_middle_layer(Store,filled_sbj,L,L0).
clause_that_layer(with_c,Store,L,L0) -->
  comp(L,L1),
  clause_top_layer(statement_order,Store,L1,L0).
clause_that_layer(without_c,Store,L,L0) -->
  clause_top_layer(statement_order,Store,L,L0).

    As an example with a that-clause that is the object complement of think, consider (6.4).

(6.4)
| ?- tphrase_set_string([w('WPRO','Who'), w('DOP','','do'), w('PRO','you'), w('VB',';~Tf','think'), w('MD',';~cat_Vi','will'), w('VB',';~Ip','arrive'), w('RP','early'), w('PUNC','?')]), parse(sentence).

(CP-QUE-MAT (IP-SUB (NP-588 (WPRO Who))
                    (DOP do)
                    (NP-SBJ (PRO you))
                    (VB;~Tf think)
                    (CP-THT-OB1 (IP-SUB (NP-SBJ *ICH*-588)
                                        (MD;~cat_Vi will)
                                        (IP-INF-CAT (VB;~Ip arrive)
                                                    (ADVP-CLR (RP early))))))
            (PUNC ?))

yes

The calls of (6.5) show cp_that taking -OB1 function information as an extension to the CP-THT tag and inheriting a Store parameter that contains np(node('*ICH*-163',[])). This inherited np(node('*ICH*-163',[])) is then removed from the Store parameter so that it can function as the subject of the that-clause through a call of [rule 1] of clause_that_layer, which goes on to call clause_middle_layer.

(6.5)
sentence
clause_top_layer matrix_interrogative
noun_phrase -163 interrogative
noun_phrase_top interrogative
noun_head_full interrogative

[w('WPRO','Who')]
clause_top_layer matrix_constituent_interrogative [np(node('*ICH*-163',[]))]
operator_layer

[w('DOP','','do')]
optional_clitic_negation

[]
subject filled_sbj
noun_phrase -SBJ non_interrogative
noun_phrase_top non_interrogative
noun_head_full non_interrogative

[w('PRO','you')]
verb_phrase_layer [np(node('*ICH*-163',[]))] filled_sbj infinitive active
verb infinitive ;~Tf

[w('VB',';~Tf','think')]
verb_complements_top_layer ;~Tf [np(node('*ICH*-163',[]))] filled_sbj active
verb_complements_by_code ;~Tf [np(node('*ICH*-163',[]))] filled_sbj active
cp_that -OB1 [np(node('*ICH*-163',[]))]
clause_that_layer [np(node('*ICH*-163',[]))]
clause_middle_layer filled_sbj
have_be_or_md_finite_layer ;~cat_Vi
modal ;~cat_Vi

[w('MD',';~cat_Vi','will')]
optional_clitic_negation

[]
verb_complements_top_layer ;~cat_Vi filled_sbj active
verb_complements_by_code ;~cat_Vi filled_sbj active
verb_phrase_layer filled_sbj infinitive active
verb infinitive ;~Ip

[w('VB',';~Ip','arrive')]
verb_complements_top_layer ;~Ip filled_sbj active
verb_complements_by_code ;~Ip filled_sbj active
adverb_phrase -CLR particle
adverb_phrase_layer particle
adv particle

[w('RP','early')]
punc final_question

[w('PUNC','?')]

    More examples where a that-clause is an object argument are seen in sections 4.4.4 (with code ;~Tf), 4.5.2 (with code ;~Dn.f) and 4.5.8 (with code ;~Dpr.f).

Question

Example (6.6) differs from (6.4) above by including a complementizer (w('C','that')) with the consequence that parsing fails. (This is an example of the so-called that-trace effect.) In contrast, parsing succeeds for (6.7) despite the inclusion of a complementizer. Why does this contrast occur?

(6.6)
[w('WPRO','Who'), w('DOP','','do'), w('PRO','you'), w('VB',';~Tf','think'), w('C','that'), w('MD',';~cat_Vi','will'), w('VB',';~Ip','arrive'), w('RP','early'), w('PUNC','?')]
(6.7)
[w('WPRO','Who'), w('DOP','','do'), w('PRO','you'), w('VB',';~Tf','think'), w('C','that'), w('PRO','you'), w('MD',';~cat_Vi','will'), w('VB',';~Tni','see'), w('VB',';~Ip','arrive'), w('RP','early'), w('PUNC','?')]

6.3    IP-INF with to inside (to-infinitive clause)

A to-infinitive clause is a non-finite clause with a to word (see section 2.10) and a following verb in the infinitive form. In addition to being able to extend the same clause as part of a catenative construction (as seen in section 5.4.2), a to-infinitive clause can also form a distinct clause that is an argument for a containing clause. Examples where a to-infinitive clause is an object argument are seen in sections 4.4.7 (with code ;~Tt), 4.4.8 (with code ;~Tnt), 4.5.5 (with code ;~Dn.t) and 4.6.1 (with code ;~Cn.a when there is a provisional object it).

    A to-infinitive clause can be created with the rules of to_inf_layer in (6.8). The first three rules of to_inf_layer are non-recursive and pick up from the word list an initial to word. These three rules differ as follows:

    There are two rules to enable introduction of a clause initial connective particle (which is always for) followed by content for a subject element from which the SbjType replaces an inherited unfilled_sbj value. These two rules differ as follows:

    There is also [rule 6] to start a conjunction structure where to_inf_layer adds all conjuncts with calls to to_inf_tail of (6.9) gathering non-initial conjuncts.

(6.8)
to_inf_layer(Store,SbjType,Voice,L,L0) -->
  {
    Voice == active
  },
  to(L,L1),
  verb_phrase_layer(Store,SbjType,infinitive,Voice,L1,L0).
to_inf_layer(Store,SbjType,Voice,[node('NP-LGS',[node('*',[])])|L],L0) -->
  {
    Voice == passive
  },
  to(L,L1),
  verb_phrase_layer(Store,SbjType,infinitive,Voice,L1,L0).
to_inf_layer(Store,SbjType,Voice,L,L0) -->
  {
    Voice == lgs_passive
  },
  to(L,L1),
  verb_phrase_layer(Store,SbjType,infinitive,passive,L1,L0).
to_inf_layer(Store,SbjType0,Voice,L,L0) -->
  {
    SbjType0 == unfilled_sbj,
    Voice == active
  },
  conn(L,L2),
  subject(SbjType,L2,L1),
  to_inf_layer(Store,SbjType,Voice,L1,L0).
to_inf_layer(Store,SbjType0,Voice,L,L0) -->
  {
    SbjType0 == unfilled_sbj,
    Voice == passive
  },
  conn(L,L2),
  noun_phrase('-LGS',non_privileged,L2,L1),
  to_inf_layer(Store,filled_sbj,lgs_passive,L1,L0).
to_inf_layer(Store,SbjType,Voice,[node('ILYR',[node('ILYR',IL)|CL])|L],L) -->
  to_inf_layer(Store,SbjType,Voice,IL,[]),
  to_inf_tail(Store,SbjType,Voice,CL,[]).
(6.9)
to_inf_tail(Store,SbjType,Voice,[node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
  conj(CONJ),
  to_inf_layer(Store,SbjType,Voice,IL,[]).
to_inf_tail(Store,SbjType,Voice,[PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
  punc(non_final,[PU],[]),
  to_inf_layer(Store,SbjType,Voice,IL,[]),
  to_inf_tail(Store,SbjType,Voice,L,L0).

6.4    CP-QUE projections that are embedded question clauses

An embedded question clause is formed by having an initial clause component that is either:

(i)
an embedded question clause marker tagged WQ, which is either whether or if
(ii)
a phrase with interrogative type information

A clause with (i) is an embedded yes/no question. A clause with (ii) is a constituent question. The internal clause can be missing a selected item when case (ii) holds. In addition to the possibilities of (i) and (ii), internally an embedded question clause can be either:

    The maximal constituent of an embedded question clause has the CP-QUE tag, together with any extension from the Ext parameter taken by cp_embedded_que of (6.10). A cp_embedded_que call can involve a subsequent call of clause_embedded_que_finite_top_layer to gather under an immediately embedded IP-SUB projection the content of either:

A cp_embedded_que call can also involve a subsequent call of clause_embedded_que_to_inf_top_layer to gather under an immediately embedded IP-INF projection the content of either:

(6.10)
cp_embedded_que(Ext,Store,[node(Label,[node('IP-SUB',IL)])|L],L) -->
  {
    atom_concat('CP-QUE',Ext,Label)
  },
  clause_embedded_que_finite_top_layer(Store,IL,[]).
cp_embedded_que(Ext,Store,[node(Label,[node('IP-SUB',[node('ILYR',[node('ILYR',IL)|CL])])])|L],L) -->
  {
    atom_concat('CP-QUE',Ext,Label)
  },
  clause_embedded_que_finite_top_layer(Store,IL,[]),
  cp_embedded_que_finite_tail(Store,CL,[]).
cp_embedded_que(Ext,Store,[node(Label,[node('IP-INF',IL)])|L],L) -->
  {
    atom_concat('CP-QUE',Ext,Label)
  },
  clause_embedded_que_to_inf_top_layer(Store,IL,[]).
cp_embedded_que(Ext,Store,[node(Label,[node('IP-INF',[node('ILYR',[node('ILYR',IL)|CL])])])|L],L) -->
  {
    atom_concat('CP-QUE',Ext,Label)
  },
  clause_embedded_que_to_inf_top_layer(Store,IL,[]),
  cp_embedded_que_to_inf_tail(Store,CL,[]).
(6.11)
cp_embedded_que_finite_tail(Store,[node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
  conj(CONJ),
  clause_embedded_que_finite_top_layer(Store,IL,[]).
cp_embedded_que_finite_tail(Store,[PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
  punc(non_final,[PU],[]),
  clause_embedded_que_finite_top_layer(Store,IL,[]),
  cp_embedded_que_finite_tail(Store,L,L0).
(6.12)
cp_embedded_que_to_inf_tail(Store,[node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
  conj(CONJ),
  clause_embedded_que_to_inf_top_layer(Store,IL,[]).
cp_embedded_que_to_inf_tail(Store,[PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
  punc(non_final,[PU],[]),
  clause_embedded_que_to_inf_top_layer(Store,IL,[]),
  cp_embedded_que_to_inf_tail(Store,L,L0).

6.4.1    Embedded question clauses that are finite clauses with statement word order

The clause_embedded_que_finite_top_layer rules of (6.13) collect the content of an embedded question clause that is a finite clause with statement word order. This gives rules that differ in how the embedded question is introduced:

(6.13)
clause_embedded_que_finite_top_layer(Store,L,L0) -->
  comp_wq(L,L1),
  clause_top_layer(statement_order,Store,L1,L0).
clause_embedded_que_finite_top_layer(Store,L,L0) -->
  {
    gensym('-',Index),
    atom_concat('*ICH*',Index,ICH)
  },
  noun_phrase(Index,interrogative,L,L1),
  clause_embedded_que_finite_lower_layer([np(node(ICH,[]))|Store],L1,L0).
clause_embedded_que_finite_top_layer(Store,L,L0) -->
  {
    gensym('-',Index),
    atom_concat('*ICH*',Index,ICH)
  },
  adverb_phrase(Index,interrogative,L,L1),
  clause_top_layer(statement_order,[advp(node(ICH,[]))|Store],L1,L0).
clause_embedded_que_finite_top_layer(Store,L,L0) -->
  adverb_phrase('-NIM',interrogative,L,L1),
  clause_top_layer(statement_order,Store,L1,L0).

    Calls to clause_embedded_que_finite_lower_layer of (6.14) differ in their treatment of the stored noun phrase index of the embedded question:

(6.14)
clause_embedded_que_finite_lower_layer([np(ICH)|Store],[node('NP-SBJ',[ICH])|L],L0) -->
  clause_middle_layer(Store,filled_sbj,L,L0).
clause_embedded_que_finite_lower_layer(Store,L,L0) -->
  clause_top_layer(statement_order,Store,L,L0).

    As an example with an embedded question clause that is a finite clause with an initial embedded question clause marker and that is the object complement of asked, consider (6.15).

(6.15)
| ?- tphrase_set_string([w('PRO','He'), w('VBD',';~Dn.w','asked'), w('PRO','her'), w('WQ','whether'), w('PRO','she'), w('MD',';~cat_Vi','would'), w('VB',';~Ip','arrive'), w('RP','early'), w('PUNC','.')]), parse(sentence).

(IP-MAT (NP-SBJ (PRO He))
        (VBD;~Dn.w asked)
        (NP-OB2 (PRO her))
        (CP-QUE-OB1 (IP-SUB (WQ whether)
                            (NP-SBJ (PRO she))
                            (MD;~cat_Vi would)
                            (IP-INF-CAT (VB;~Ip arrive)
                                        (ADVP-CLR (RP early)))))
        (PUNC .))

yes

Calls to reach the output of (6.15) follow (6.16).

(6.16)
sentence
clause_top_layer statement_order
subject filled_sbj
noun_phrase -SBJ non_interrogative
noun_phrase_top non_interrogative
noun_head_full non_interrogative

[w('PRO','He')]
verb_phrase_layer filled_sbj finite active
verb finite ;~Dn.w

[w('VBD',';~Dn.w','asked')]
verb_complements_top_layer ;~Dn.w filled_sbj active
verb_complements_by_code ;~Dn.w filled_sbj active
noun_phrase -OB2 non_privileged
noun_phrase_top non_privileged
noun_head_full non_privileged

[w('PRO','her')]
cp_embedded_que -OB1
clause_embedded_que_finite_top_layer
comp_wq

[w('WQ','whether')]
clause_top_layer statement_order
subject filled_sbj
noun_phrase -SBJ non_interrogative
noun_phrase_top non_interrogative
noun_head_full non_interrogative

[w('PRO','she')]
clause_middle_layer filled_sbj
have_be_or_md_finite_layer ;~cat_Vi
modal ;~cat_Vi

[w('MD',';~cat_Vi','would')]
optional_clitic_negation

[]
verb_complements_top_layer ;~cat_Vi filled_sbj active
verb_complements_by_code ;~cat_Vi filled_sbj active
verb_phrase_layer filled_sbj infinitive active
verb infinitive ;~Ip

[w('VB',';~Ip','arrive')]
verb_complements_top_layer ;~Ip filled_sbj active
verb_complements_by_code ;~Ip filled_sbj active
adverb_phrase -CLR particle
adverb_phrase_layer particle
adv particle

[w('RP','early')]
punc final

[w('PUNC','.')]

Question

Why do the success and failure results of (6.17)–(6.19) obtain?

(6.17)
| ?- tphrase_set_string([w('PRO','They'), w('VBP',';~Tw','know'), w('WPRO','who'), w('PRO','they'), w('MD',';~cat_Vi','should'), w('VB',';~Tn','invite'), w('PUNC','.')]), parse(sentence).

(IP-MAT (NP-SBJ (PRO They))
        (VBP;~Tw know)
        (CP-QUE-OB1 (IP-SUB (NP-419 (WPRO who))
                            (NP-SBJ (PRO they))
                            (MD;~cat_Vi should)
                            (IP-INF-CAT (VB;~Tn invite)
                                        (NP-OB1 *ICH*-419))))
        (PUNC .))
yes
(6.18)
| ?- tphrase_set_string([w('PRO','They'), w('VBP',';~Tw','know'), w('WPRO','who'), w('WPRO','who'), w('MD',';~cat_Vi','should'), w('VB',';~Tn','invite'), w('PUNC','.')]), parse(sentence).

no
(6.19)
| ?- tphrase_set_string([w('PRO','They'), w('VBP',';~Tw','know'), w('WPRO','who'), w('MD',';~cat_Vi','should'), w('VB',';~Tn','invite'), w('WPRO','who'), w('PUNC','.')]), parse(sentence).

(IP-MAT (NP-SBJ (PRO They))
        (VBP;~Tw know)
        (CP-QUE-OB1 (IP-SUB (NP-599 (WPRO who))
                            (NP-SBJ *ICH*-599)
                            (MD;~cat_Vi should)
                            (IP-INF-CAT (VB;~Tn invite)
                                        (NP-OB1 (WPRO who)))))
        (PUNC .))

yes

6.4.2    Embedded question clauses that are to-infinitive clauses

The clause_embedded_que_to_inf_top_layer rules of (6.20) collect the content of an embedded question clause that is a to-infinitive clause. These rules find clause content with to_inf_layer of section 6.3 but differ in how they introduce the embedded question:

(6.20)
clause_embedded_que_to_inf_top_layer(Store,L,L0) -->
  comp_wq(L,L1),
  to_inf_layer(Store,filled_sbj,active,L1,L0).
clause_embedded_que_to_inf_top_layer(Store,L,L0) -->
  {
    gensym('-',Index),
    atom_concat('*ICH*',Index,ICH)
  },
  noun_phrase(Index,interrogative,L,L1),
  to_inf_layer([np(node(ICH,[]))|Store],filled_sbj,active,L1,L0).
clause_embedded_que_to_inf_top_layer(Store,L,L0) -->
  {
    gensym('-',Index),
    atom_concat('*ICH*',Index,ICH)
  },
  adverb_phrase(Index,interrogative,L,L1),
  to_inf_layer([advp(node(ICH,[]))|Store],filled_sbj,active,L1,L0).
clause_embedded_que_to_inf_top_layer(Store,L,L0) -->
  adverb_phrase('-NIM',interrogative,L,L1),
  to_inf_layer(Store,filled_sbj,active,L1,L0).

    As an example with an embedded question clause that is a to-infinitive clause with an initial stored noun phrase containing a WH-pronoun (WPRO) and that is the object complement of wondered, consider (6.21).

(6.21)
| ?- tphrase_set_string([w('PRO','She'), w('VBD',';~Tw','wondered'), w('WPRO','what'), w('TO','to'), w('DO',';~Tn','do'), w('PUNC','.')]), parse(sentence).

(IP-MAT (NP-SBJ (PRO She))
        (VBD;~Tw wondered)
        (CP-QUE-OB1 (IP-INF (NP-453 (WPRO what))
                            (TO to)
                            (DO;~Tn do)
                            (NP-OB1 *ICH*-453)))
        (PUNC .))

yes

Calls to reach the output of (6.21) follow (6.22).

(6.22)
sentence
clause_top_layer statement_order
subject filled_sbj
noun_phrase -SBJ non_interrogative
noun_phrase_top non_interrogative
noun_head_full non_interrogative

[w('PRO','She')]
clause_middle_layer filled_sbj
verb_phrase_layer filled_sbj finite active
verb finite ;~Tw

[w('VBD',';~Tw','wondered')]
verb_complements_top_layer ;~Tw filled_sbj active
verb_complements_by_code ;~Tw filled_sbj active
cp_embedded_que -OB1
clause_embedded_que_to_inf_top_layer
noun_phrase -453 interrogative
noun_phrase_top interrogative
noun_head_full interrogative

[w('WPRO','what')]
to_inf_layer [np(node('*ICH*-453',[]))] filled_sbj active
to

[w('TO','to')]
verb_phrase_layer [np(node('*ICH*-453',[]))] filled_sbj infinitive active
verb infinitive ;~Tn

[w('DO',';~Tn','do')]
verb_complements_top_layer ;~Tn [np(node('*ICH*-453',[]))] filled_sbj active
verb_complements_by_code ;~Tn [np(node('*ICH*-453',[]))] filled_sbj active

[]
punc final

[w('PUNC','.')]

6.4.3    Embedded questions as preposition complements

We have seen that there are:

  • embedded question clauses that are finite clauses with statement word order
  • embedded question clauses that are to-infinitive clauses.
  • Both types can be preposition complements.

        As an example of a preposition complement that is an embedded question finite clause with statement word order, consider (6.23).

    (6.23)
    | ?- tphrase_set_string([w('ADJ','concerned'), w('P-ROLE','with'), w('WADV','how'), w('PRO','we'), w('MD',';~cat_Vi','can'), w('VB',';~Tn','save'), w('NS','hedgehogs')]), parse(adjective_phrase('-PRD2',non_privileged)).

    (ADJP-PRD2 (ADJ concerned)
               (PP (P-ROLE with)
                   (CP-QUE (IP-SUB (ADVP-NIM (WADV how))
                                   (NP-SBJ (PRO we))
                                   (MD;~cat_Vi can)
                                   (IP-INF-CAT (VB;~Tn save)
                                               (NP-OB1 (NS hedgehogs)))))))

    yes

    Calls to reach the output of (6.23) follow (6.24).

    (6.24)
    adjective_phrase -PRD2 non_privileged
    adjective_phrase_layer non_interrogative
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','concerned')]
    preposition_phrase non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','with')]
    cp_embedded_que
    clause_embedded_que_finite_top_layer
    adverb_phrase -NIM interrogative
    adverb_phrase_layer interrogative
    adv interrogative

    [w('WADV','how')]
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','we')]
    clause_middle_layer filled_sbj
    have_be_or_md_finite_layer ;~cat_Vi
    modal ;~cat_Vi

    [w('MD',';~cat_Vi','can')]
    optional_clitic_negation

    []
    verb_complements_top_layer ;~cat_Vi filled_sbj active
    verb_complements_by_code ;~cat_Vi filled_sbj active
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~Tn

    [w('VB',';~Tn','save')]
    verb_complements_top_layer ;~Tn filled_sbj active
    verb_complements_by_code ;~Tn filled_sbj active
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','hedgehogs')]

        As an example of a preposition complement that is an embedded question to-infinitive clause, consider (6.25).

    (6.25)
    | ?- tphrase_set_string([w('D','the'), w('N','choice'), w('P-ROLE','of'), w('WADV','where'), w('TO','to'), w('VB',';~Tn','buy'), w('PRO;_genm_','my'), w('N','home')]), parse(noun_phrase('',non_privileged)).

    (NP (D the)
        (N choice)
        (PP (P-ROLE of)
            (CP-QUE (IP-INF (ADVP-NIM (WADV where))
                            (TO to)
                            (VB;~Tn buy)
                            (NP-OB1 (NP-GENV (PRO;_genm_ my))
                                    (N home))))))

    yes

    Calls to reach the output of (6.25) follow (6.26).

    (6.26)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','the')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','choice')]
    preposition_phrase non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','of')]
    cp_embedded_que
    clause_embedded_que_to_inf_top_layer
    adverb_phrase -NIM interrogative
    adverb_phrase_layer interrogative
    adv interrogative

    [w('WADV','where')]
    to_inf_layer filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~Tn

    [w('VB',';~Tn','buy')]
    verb_complements_top_layer ;~Tn filled_sbj active
    verb_complements_by_code ;~Tn filled_sbj active
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    noun_phrase_genm_layer non_privileged
    pronoun_genm non_privileged

    [w('PRO;_genm_','my')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','home')]

    6.5    The combination of a provisional it and a notional subject

    [Rule 4] of the subject definition from section 2.5 picks up a word with word class PRO;_provisional_ which can only be an instance of it. In doing so, the SbjType gets the provisional_sbj setting. This begins a ripple effect, with provisional_sbj needing to change to filled_sbj. This change is made by [rule 3] of verb_complements_top_layer from section 4.1, repeated here as (6.27), which needs to find a notional subject (-NSBJ) to the right of all the other selected complements of the verb.

    (6.27)
    verb_complements_top_layer(Code,Store,provisional_sbj,Voice,L-L0) -->
      verb_complements_top_layer(Code,Store,filled_sbj,Voice,L-L1),
      notional_item('-NSBJ',L1-L0).

        A call to notional_item of (6.28) finds a notional subject, which will be a clause with an -NSBJ extension that is either:

    (6.28)
    notional_item(Ext,L,L0) -->
      cp_that(Ext,_,[],L,L0).
    notional_item(Ext,L,L0) -->
      cp_embedded_que(Ext,[],L,L0).
    notional_item(Ext,L,L0) -->
      ip_to_inf(Ext,[],L,L0).
    notional_item(Ext,L,L0) -->
      ip_ppl_active(Ext,[],filled_sbj,ing_participle,L,L0).

    6.5.1    The notional subject as a that-clause

    As an example with the combination of a provisional it and a that-clause notional subject, consider (6.29).

    (6.29)
    | ?- tphrase_set_string([w('PRO;_provisional_','It'), w('BED',';~La','was'), w('ADJ','good'), w('C','that'), w('PRO','he'), w('DOD','did'), w('NEG;_clitic_','n<apos>t'), w('VB',';~I','come'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO;_provisional_ It))
            (BED;~La was)
            (ADJP-PRD2 (ADJ good))
            (CP-THT-NSBJ (IP-SUB (C that)
                                 (NP-SBJ (PRO he))
                                 (DOD did)
                                 (NEG;_clitic_ n<apos>t)
                                 (VB;~I come)))
            (PUNC .))

    yes

    Calls to reach the output of (6.29) follow (6.30).

    (6.30)
    sentence
    clause_top_layer statement_order
    subject provisional

    [w('PRO;_provisional_','It')]
    clause_middle_layer provisional
    have_be_or_md_finite_layer ;~La

    [w('BED',';~La','was')]
    optional_clitic_negation

    []
    verb_complements_top_layer ;~La provisional active
    verb_complements_top_layer ;~La provisional active
    verb_complements_by_code ;~La filled_sbj active
    adjective_phrase -PRD2 non_privileged
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','good')]
    notional_sbj
    cp_that -NSBJ
    clause_that_layer
    comp

    [w('C','that')]
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','he')]
    clause_middle_layer filled_sbj
    operator_layer

    [w('DOD','','did')]
    optional_clitic_negation

    [w('NEG;_clitic_','n<apos>t')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~I

    [w('VB',';~I','come')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    punc final

    [w('PUNC','.')]

    6.5.2    The notional subject as a to-infinitive clause

    [Rule 3] for notional_item of (6.28) above calls the ip_to_inf rule of (6.31), which subsequently finds content for a to-infinitive clause with a call to to_inf_top_layer of (6.32). This gives overall structure labelled IP-INF, together with any extension from the Ext parameter.

    (6.31)
    ip_to_inf(Ext,Store,[node(Label,VL)|L],L) -->
      {
        atom_concat('IP-INF',Ext,Label)
      },
      to_inf_top_layer(Store,VL,[]).
    (6.32)
    to_inf_top_layer(Store,L,L0) -->
      to_inf_layer(Store,unfilled_sbj,active,L,L0).
    to_inf_top_layer(Store,L,L0) -->
      to_inf_layer(Store,filled_sbj,active,L,L0).

    Both rules of to_inf_top_layer call to_inf_layer of section 6.3. They differ in the values taken by the SbjType parameter:

  • unfilled_sbj
  • filled_sbj
  •     As an example with the combination of a provisional it and a to-infinitive clause notional subject, consider (6.29).

    (6.33)
    | ?- tphrase_set_string([w('PRO;_provisional_','It'), w('ADV','always'), w('VBP',';~Dn.n','gives'), w('PRO','me'), w('D','a'), w('N','twist'), w('ADV','inside'), w('TO','to'), w('VB',';~Tn','hear'), w('PRO','it'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO;_provisional_ It))
            (ADVP-NIM (ADV always))
            (VBP;~Dn.n gives)
            (NP-OB2 (PRO me))
            (NP-OB1 (D a)
                    (N twist))
            (ADVP-NIM (ADV inside))
            (IP-INF-NSBJ (TO to)
                         (VB;~Tn hear)
                         (NP-OB1 (PRO it)))
            (PUNC .))

    yes

    Calls to reach the output of (6.33) follow (6.34).

    (6.34)
    sentence
    clause_top_layer statement_order
    subject provisional

    [w('PRO;_provisional_','It')]
    clause_middle_layer provisional
    adverb_phrase -NIM non_privileged
    adverb_phrase_layer non_privileged
    adv non_privileged

    [w('ADV','always')]
    clause_middle_layer provisional
    verb_phrase_layer _provisional finite active
    verb finite ;~Dn.n

    [w('VBP',';~Dn.n','gives')]
    verb_complements_top_layer ;~Dn.n provisional active
    verb_complements_top_layer ;~Dn.n filled_sbj active
    verb_complements_top_layer ;~Dn.n filled_sbj active
    verb_complements_by_code ;~Dn.n filled_sbj active
    noun_phrase -OB2 non_privileged
    noun_phrase_top non_privileged
    noun_head_full non_privileged

    [w('PRO','me')]
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','twist')]
    adverbial
    adverb_phrase -NIM non_privileged
    adverb_phrase_layer non_privileged
    adv non_privileged

    [w('ADV','inside')]
    notional_item -NSBJ
    ip_to_inf -NSBJ
    to_inf_top_layer
    to_inf_layer filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~Tn

    [w('VB',';~Tn','hear')]
    verb_complements_top_layer ;~Tn filled_sbj active
    verb_complements_by_code ;~Tn filled_sbj active
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_head_full non_privileged

    [w('PUNC','.')]
    punc final

    [w('PUNC','.')]

    6.6    The tough-construction

    [Rule 6] of the subject definition from section 2.5 picks up content for a non_interrogative noun phrase with subject function information (NP-SBJ). In doing so, the SbjType gets the derived_sbj setting. This SbjType setting also occurs with [rule 10] of clause_top_layer from section 5.2 for a derived subject that is an interrogative noun phrase.

        A derived_sbj setting for the clause SbjType parameter begins a ripple effect that leads to a tough-construction, with the derived_sbj setting needing to change to the filled_sbj setting.

        The change from derived_sbj to filled_sbj is made by either [rule 2] or [rule 3] of verb_complements_top_layer from section 4.1. [rule 1] is repeated here as (6.35) and [rule 2] is (6.36).

    (6.35)
    verb_complements_top_layer(';~La',Store,derived_sbj,active,L,L0) -->
      verb_complements_top_layer(';~La',[],filled_sbj,active,L,[node('IP-INF-NSBJ',VL)|L0]),
      {
        member(SbjType,[filled_sbj,unfilled_sbj])
      },
      to_inf_layer(Store,SbjType,passive,VL,[]).
    (6.36)
    verb_complements_top_layer(';~La',Store,derived_sbj,active,L,L0) -->
      verb_complements_top_layer(';~La',[],filled_sbj,active,L,[node('IP-INF-NSBJ',VL)|L0]),
      to_inf_layer(Store,filled_sbj,active,VL,[]).

        Both rules need to find a notional subject that comes after the selected complement of a linking verb with code ;~La, which will be an adjective phrase with subject predicative function. Also, for both rules, the notional subject is a to-infinitive clause (IP-INF-NSBJ) with content found by calling to_inf_layer of section 6.3. The rules differ with respect to the internal content of their to-infinitive clause:

        As an example with a derived subject to trigger a tough-construction that leads to a to-infinitive clause notional subject where the Voice setting is passive and the SbjType sets to unfilled_sbj, consider (6.37).

    (6.37)
    | ?- tphrase_set_string( [w('D','The'), w('N','breaststroke'), w('BEP',';~La','is'), w('ADJ','hard'), w('P-CONN','for'), w('PRO','me'), w('TO','to'), w('VB',';~Tn','explain'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (D The)
                    (N breaststroke))
            (BEP;~La is)
            (ADJP-PRD2 (ADJ hard))
            (IP-INF-NSBJ (P-CONN for)
                         (NP-LGS (PRO me))
                         (TO to)
                         (VB;~Tn explain))
            (PUNC .))

    yes

    Calls to reach the output of (6.37) follow (6.38).

    (6.38)
    sentence
    clause_top_layer statement_order
    subject derived_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','The')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','breaststroke')]
    clause_middle_layer derived_sbj
    verb_phrase_layer derived_sbj finite active
    verb finite ;~La

    [w('BEP',';~La','is')]
    verb_complements_top_layer ;~La derived_sbj active
    verb_complements_top_layer ;~La filled_sbj active
    verb_complements_by_code ;~La filled_sbj active
    adjective_phrase -PRD2 non_privileged
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','hard')]
    to_inf_layer unfilled_sbj passive
    conn

    [w('P-CONN','for')]
    noun_phrase -LGS non_privileged
    noun_phrase_top non_privileged
    noun_head_full non_privileged

    [w('PRO','me')]
    to_inf_layer filled_sbj lgs_passive
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive passive
    verb infinitive ;~Tn

    [w('VB',';~Tn','explain')]
    verb_complements_top_layer ;~Tn filled_sbj passive
    verb_complements_by_code ;~Tn filled_sbj passive

    []
    punc final

    [w('PUNC','.')]

        As an example with a derived subject and a to-infinitive clause notional subject where the Voice setting is active and the SbjType setting is filled_sbj, consider (6.39).

    (6.39)
    | ?- tphrase_set_string([w('NPR','Voyager'), w('BEP',';~La','is'), w('ADJ','likely'), w('TO','to'), w('VB',';~In/pr','survive'), w('D','a'), w('ADJ','billion'), w('NS','years'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (NPR Voyager))
            (BEP;~La is)
            (ADJP-PRD2 (ADJ likely))
            (IP-INF-NSBJ (TO to)
                         (VB;~In/pr survive)
                         (NP-CLR (D a)
                                 (ADJP (ADJ billion))
                                 (NS years)))
            (PUNC .))

    yes

    Calls to reach the output of (6.39) follow (6.40).

    (6.40)
    sentence
    clause_top_layer statement_order
    subject derived_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NPR','Voyager')]
    clause_middle_layer derived_sbj
    verb_phrase_layer derived_sbj finite active
    verb finite ;~La

    [w('BEP',';~La','is')]
    verb_complements_top_layer ;~La derived_sbj active
    verb_complements_top_layer ;~La filled_sbj active
    verb_complements_by_code ;~La filled_sbj active
    adjective_phrase -PRD2 non_privileged
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','likely')]
    to_inf_layer filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~In/pr

    [w('VB',';~In/pr','survive')]
    verb_complements_top_layer ;~In/pr filled_sbj active
    verb_complements_by_code ;~In/pr filled_sbj active
    noun_phrase -CLR non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    adjective_phrase non_privileged
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','billion')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','years')]
    punc final

    [w('PUNC','.')]

    Question

    Consider (6.41) and (6.42). What are the parse results, if any? Do the results reflect your expectations? Can you describe the cause of any parse failure?

    (6.41)
    [w('PRO;_provisional_','It'), w('BEP',';~La','is'), w('ADJ','likely'), w('P-CONN','for'), w('D','the'), w('N','spacecraft'), w('TO','to'), w('VB',';~I','survive'), w('PUNC','.')]
    (6.42)
    [w('NPR','Voyager'), w('BEP',';~La','is'), w('ADJ','likely'), w('P-CONN','for'), w('D','the'), w('N','spacecraft'), w('TO','to'), w('VB',';~I','survive'), w('PUNC','.')]

    6.7    Subordinate conjunction

    This section focuses on rules able to integrate the subordinate clause component of subordinate conjunctions. These subordinate clauses can reside in containing clauses at locations where preposition phrases with an adverbial function role and adverb phrases are also able to occur, which are typically clause initial or clause final positions. Integration from a containing clause happens while the content of the containing clause is identified with clause_top_layer or verb_phrase_layer rules (both from section 5.2) that subsequently call adverbial from section 2.10. To detect the subordinate clause of a subordinate conjunction, adverbial calls the scon_clause rules of (6.43).

        The rules of (6.43) differ in regard to the type of the subordinate clause contained, that is, either:

    There is also:

    (6.43)
    scon_clause([node('PP-SCON',PL)|L],L) -->
      conn(PL,[node('IP-ADV',IL)]),
      clause_top_layer(statement_order,[],IL,[]).
    scon_clause([node('PP-SCON',PL)|L],L) -->
      conn(PL,[node('IP-INF2;IP-INF',VL)]),
      to_inf_layer([],filled_sbj,active,VL,[]).
    scon_clause([node('PP-SCON',PL)|L],L) -->
      conn(PL,[node('IP-PPL2;IP-PPL',IL)]),
      {
        member(Infl,[hag_participle,en_participle,ing_participle])
      },
      ip_ppl_adverbial_layer(filled_sbj,Infl,IL,[]).
    scon_clause([node('PP-SCON',PL)|L],L) -->
      conn(PL,[node('IP-PPL3',IL)]),
      {
        member(Infl,[hag_participle,en_participle,ing_participle])
      },
      ip_ppl_adverbial_layer(unfilled_sbj,Infl,IL,[]).
    scon_clause([node('PP',[PP1|CL])|L],L) -->
      scon_clause([PP1],[]),
      scon_clause_tail(CL,[]).
    (6.44)
    scon_clause_tail([node('CONJP',[CONJ,PP])|L],L) -->
      conj(CONJ),
      scon_clause([PP],[]).
    scon_clause_tail([PU,node('CONJP',[PP])|L],L0) -->
      punc(non_final,[PU],[]),
      scon_clause([PP],[]),
      scon_clause_tail(L,L0).

    6.7.1    Subordinate conjunction with finite adverbial clauses

    As an example with a finite adverbial clause (IP-ADV) introduced by the subordinate conjunction word (P-CONN) because, consider (6.45).

    (6.45)
    | ?- tphrase_set_string([w('VB',';~I','Tread'), w('ADV','softly'), w('P-CONN','because'), w('PRO','you'), w('VBP',';~Ipr','tread'), w('P-ROLE','on'), w('PRO;_genm_','my'), w('NS','dreams'), w('PUNC','.')]), parse(sentence).

    (IP-IMP (VB;~I Tread)
            (ADVP-NIM (ADV softly))
            (PP-SCON (P-CONN because)
                     (IP-ADV (NP-SBJ (PRO you))
                             (VBP;~Ipr tread)
                             (PP-CLR (P-ROLE on)
                                     (NP (NP-GENV (PRO;_genm_ my))
                                         (NS dreams)))))
            (PUNC .))

    yes

    Calls to reach the result of (6.45) follow (6.46).

    (6.46)
    sentence
    verb_phrase_layer filled_sbj imperative active
    verb_phrase_layer filled_sbj imperative active
    verb_phrase_layer filled_sbj imperative active
    verb imperative ;~I

    [w('VB',';~I','Tread')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ~I filled_sbj active

    []
    adverbial
    adverb_phrase -NIM non_privileged
    adverb_phrase_layer non_privileged
    adv non_privileged

    [w('ADV','softly')]
    adverbial
    scon_clause
    conn

    [w('P-CONN','because')]
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','you')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~Ipr

    [w('VBP',';~Ipr','tread')]
    verb_complements_top_layer ;~Ipr filled_sbj active
    verb_complements_by_code ;~Ipr filled_sbj active
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','on')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    noun_phrase_genm_layer non_privileged
    pronoun_genm non_privileged

    [w('PRO;_genm_','my')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','dreams')]
    punc_final

    [w('PUNC','.')]

    6.7.2    Subordinate conjunction with to-infinitive clauses

    As an example with a to-infinitive clause (IP-INF) introduced by the subordinate conjunction word (P-CONN) in_order, consider (6.47).

    (6.47)
    | ?- tphrase_set_string([w('PRO','I'), w('VBP',';~Tt','need'), w('TO','to'), w('VB',';~Tn','spread'), w('PRO;_genm_','my'), w('NS','wings'), w('CONJ','and'), w('VB',';~I','fly'), w('PUNC',','), w('P-CONN','in_order'), w('TO','to'), w('VB',';~Ip','come'), w('RP','back'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO I))
            (VBP;~Tt need)
            (IP-INF-OB1 (TO to)
                        (ILYR (ILYR (VB;~Tn spread)
                                    (NP-OB1 (NP-GENV (PRO;_genm_ my))
                                            (NS wings)))
                              (CONJP (CONJ and)
                                     (ILYR (VB;~I fly)))))
            (PUNC ,)
            (PP-SCON (P-CONN in_order)
                     (IP-INF2;IP-INF (TO to)
                                     (VB;~Ip come)
                                     (ADVP-CLR (RP back))))
            (PUNC .))

    yes

    Calls to reach the output of (6.47) follow (6.48).

    (6.48)
    sentence
    clause_top_layer statement_order
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','I')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~Tt

    [w('VBP',';~Tt','need')]
    verb_complements_top_layer ;~Tt filled_sbj active
    verb_complements_by_code ;~Tt filled_sbj active
    ip_to_inf -OB1
    to_inf_top_layer
    to_inf_layer filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive active
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~Tn

    [w('VB',';~Tn','spread')]
    verb_complements_top_layer ;~Tn filled_sbj active
    verb_complements_by_code ;~Tn filled_sbj active
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    noun_phrase_genm_layer non_privileged
    pronoun_genm non_privileged

    [w('PRO;_genm_','my')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','wings')]
    verb_phrase_tail filled_sbj infinitive active
    conj

    [w('CONJ','and')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~I

    [w('VB',';~I','fly')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    optional_punc_non_final
    punc non_final

    [w('PUNC',',')]
    adverbial
    scon_clause
    conn

    [w('P-CONN','in_order')]
    to_inf_layer filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer filled_sbj infinitive active
    verb infinitive ;~Ip

    [w('VB',';~Ip','come')]
    verb_complements_top_layer ;~Ip filled_sbj active
    verb_complements_by_code ;~Ip filled_sbj active
    adverb_phrase -CLR particle
    adverb_phrase_layer particle
    adv particle

    [w('RP','back')]
    punc final

    [w('PUNC','.')]

    6.7.3    Subordinate conjunction with participle clauses

    The ip_ppl_active rule from section 5.4.3 creates complements for catenative verbs (IP-PPL-CAT), notional subjects (IP-PPL-NSBJ) and objects (IP-PPL-OB1). But subordinate conjunction offers an opportunity for more content to be part of a participle clause.

        The possibilities for extra content arise with the ip_ppl_adverbial_layer rules of (6.49). These rules add the possibility of:

    [Rule 2] can only be called if the Infl setting is hag_participle, which is only possible with subordinate conjunction.

        Also, in addition to the participle clause being a present participle clause with [rule 3], there is also the possibility for the participle clause to be:

    Finally, rules 1–5 can enter into coordination with one another through [rule 6], with non-initial conjuncts gathered by calls to ip_ppl_adverbial_tail of (6.50).

    (6.49)
    ip_ppl_adverbial_layer(SbjType0,Infl,L,L0) -->
      {
        SbjType0 == unfilled_sbj
      },
      subject(SbjType,L,L1),
      ip_ppl_adverbial_layer(SbjType,Infl,L1,L0).
    ip_ppl_adverbial_layer(SbjType,Infl,[node('HAG;~cat_Ve',[node(Word,[])])|L],L0) -->
      {
        Infl == hag_participle
      },
      [w('HAG',';~cat_Ve',Word)],
      ip_ppl_active('-CAT',[],SbjType,en_participle,L,L0).
    ip_ppl_adverbial_layer(SbjType,Infl,L,L0) -->
      {
        Infl == ing_participle
      },
      verb_phrase_layer([],SbjType,Infl,active,L,L0).
    ip_ppl_adverbial_layer(SbjType,Infl,L,L0) -->
      {
        Infl == en_participle
      },
      verb_phrase_layer([],SbjType,Infl,active,L,L0).
    ip_ppl_adverbial_layer(SbjType,Infl,[node('NP-LGS',[node('*',[])])|L],L0) -->
      {
        Infl == en_participle
      },
      verb_phrase_layer([],SbjType,Infl,passive,L,L0).
    ip_ppl_adverbial_layer(SbjType,Infl,[node('ILYR',[node('ILYR',IL)|CL])|L],L) -->
      ip_ppl_adverbial_layer(SbjType,Infl,IL,[]),
      ip_ppl_adverbial_tail(SbjType,Infl,CL,[]).
    (6.50)
    ip_ppl_adverbial_tail(SbjType,Infl,[node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
      conj(CONJ),
      ip_ppl_adverbial_layer(SbjType,Infl,IL,[]).
    ip_ppl_adverbial_tail(SbjType,Infl,[PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
      punc(non_final,[PU],[]),
      ip_ppl_adverbial_layer(SbjType,Infl,IL,[]),
      ip_ppl_adverbial_tail(SbjType,Infl,L,L0).

        As an example with a present participle (-ing) clause (IP-PPL) introduced by the subordinate conjunction word (P-CONN) without from a sentence initial position, consider (6.51).

    (6.51)
    | ?-  tphrase_set_string([w('P-CONN','Without'), w('BAG',';~cat_Ve_passive_','being'), w('VVN',';~Tn','told'), w('PUNC',','), w('D','the'), w('N','chauffeur'), w('VBD',';~Ip','drove'), w('RP','away'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (PP-SCON (P-CONN Without)
                     (IP-PPL2;IP-PPL (BAG;~cat_Ve_passive_ being)
                                     (IP-PPL-CAT (NP-LGS *)
                                                 (VVN;~Tn told))))
            (PUNC ,)
            (NP-SBJ (D the)
                    (N chauffeur))
            (VBD;~Ip drove)
            (ADVP-CLR (RP away))
            (PUNC .))

    yes

    Calls to reach the output of (6.51) follow (6.52).

    (6.52)
    sentence
    clause_top_layer statement_order
    adverbial
    scon_clause
    conn

    [w('P-CONN','Without')]
    ip_ppl_adverbial_layer filled_sbj ing_participle
    verb_phrase_layer filled_sbj ing_participle active
    verb ing_participle ;~cat_Ve_passive_

    [w('BAG',';~cat_Ve_passive_','being')]
    verb_complements_top_layer ;~cat_Ve_passive _filled_sbj active
    verb_complements_by_code ;~cat_Ve_passive _filled_sbj active
    ip_ppl_passive -CAT filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle passive
    verb en_participle ;~Tn

    [w('VVN',';~Tn','told')]
    verb_complements_top_layer ;~Tn filled_sbj passive
    verb_complements_by_code ;~Tn filled_sbj passive

    []
    optional_punc_non_final
    punc non_final

    [w('PUNC',',')]
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','the')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','chauffeur')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~Ip

    [w('VBD',';~Ip','drove')]
    verb_complements_top_layer ;~Ip filled_sbj active
    verb_complements_by_code ;~Ip filled_sbj active
    adverb_phrase -CLR particle
    adverb_phrase_layer particle
    adv particle

    [w('RP','away')]
    punc final

    [w('PUNC','.')]

        As an example with a present participle (-ing) clause (IP-PPL) introduced by the subordinate conjunction word (P-CONN) after from a sentence final position, consider (6.53).

    (6.53)
    | ?-  tphrase_set_string([w('NPR','Blunt'), w('ADV','finally'), w('VBD',';~I','confessed'), w('P-CONN','after'), w('HAG',';~cat_Ve','having'), w('BEN',';~cat_Ve_passive_','been'), w('VVN',';~Dn.n','granted'), w('N','immunity'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (NPR Blunt))
            (ADVP-NIM (ADV finally))
            (VBD;~I confessed)
            (PP-SCON (P-CONN after)
                     (IP-PPL2;IP-PPL (HAG;~cat_Ve having)
                                     (IP-PPL-CAT (BEN;~cat_Ve_passive_ been)
                                                 (IP-PPL-CAT (NP-LGS *)
                                                             (VVN;~Dn.n granted)
                                                             (NP-OB1 (N immunity))))))
            (PUNC .))

    yes

    Calls to reach the output of (6.53) follow (6.54).

    (6.54)
    sentence
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NPR','Blunt')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    adverb_phrase -NIM non_privileged
    adverb_phrase_layer non_privileged
    adv non_privileged

    [w('ADV','finally')]
    verb_phrase_layer filled_sbj finite active
    verb finite ;~I

    [w('VBD',';~I','confessed')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    adverbial
    scon_clause
    conn

    [w('P-CONN','after')]
    ip_ppl_adverbial_layer filled_sbj hag_participle

    [w('HAG',';~cat_Ve','having')]
    ip_ppl_active -CAT filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle active
    verb en_participle ;~cat_Ve_passive_

    [w('BEN',';~cat_Ve_passive_','been')]
    verb_complements_top_layer ;~cat_Ve_passive _filled_sbj active
    verb_complements_by_code ;~cat_Ve_passive _filled_sbj active
    ip_ppl_passive -CAT filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle passive
    verb en_participle ;~Dn.n

    [w('VVN',';~Dn.n','granted')]
    verb_complements_top_layer ;~Dn.n filled_sbj passive
    verb_complements_by_code ;~Dn.n filled_sbj passive
    noun_phrase -OB1 non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','immunity')]
    punc final

    [w('PUNC','.')]

        As an example with a past participle (-ed/-en) clause (IP-PPL) introduced by the subordinate conjunction word (P-CONN) With from a sentence initial position, consider (6.55).

    (6.55)
    | ?-  tphrase_set_string([w('P-CONN','With'), w('PRO;_genm_','their'), w('N','load'), w('P-ROLE','of'), w('NS','bombs'), w('VVN',';~I','gone'), w('PUNC',','), w('D','the'), w('NS','planes'), w('VBD',';~I','moved'), w('ADV','swiftly'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (PP-SCON (P-CONN With)
                     (IP-PPL3 (NP-SBJ (NP-GENV (PRO;_genm_ their))
                                      (N load)
                                      (PP (P-ROLE of)
                                          (NP (NS bombs))))
                              (VVN;~I gone)))
            (PUNC ,)
            (NP-SBJ (D the)
                    (NS planes))
            (VBD;~I moved)
            (ADVP-NIM (ADV swiftly))
            (PUNC .))

    yes

    Calls to reach the output of (6.55) follow (6.56).

    (6.56)
    sentence
    clause_top_layer statement_order
    adverbial
    scon_clause
    conn

    [w('P-CONN','With')]
    ip_ppl_adverbial_layer unfilled_sbj en_participle
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    noun_phrase_genm_layer non_privileged
    pronoun_genm non_privileged

    [w('PRO;_genm_','their')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','load')]
    preposition_phrase non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','of')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','bombs')]
    ip_ppl_adverbial_layer filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle active
    verb en_participle ;~I

    [w('VVN',';~I','gone')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    optional_punc_non_final
    punc non_final

    [w('PUNC',',')]
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','the')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NS','planes')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~I

    [w('VBD',';~I','moved')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    adverbial
    adverb_phrase -NIM non_privileged
    adverb_phrase_layer non_privileged
    adv non_privileged

    [w('ADV','swiftly')]
    punc final

    [w('PUNC','.')]

        As an example with a past participle (-ed/-en) clause (IP-PPL) introduced by the subordinate conjunction word (P-CONN) as_if from a sentence final position, consider (6.57).

    (6.57)
    | ?-  tphrase_set_string([w('NPR','Jones'), w('VBD',';~I','sighed'), w('P-CONN','as_if'), w('VVN',';~Tn','relieved'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (NPR Jones))
            (VBD;~I sighed)
            (PP-SCON (P-CONN as_if)
                     (IP-PPL2;IP-PPL (NP-LGS *)
                                     (VVN;~Tn relieved)))
            (PUNC .))

    yes

    Calls to reach the output of (6.57) follow (6.58).

    (6.58)
    sentence
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('NPR','Jones')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~I

    [w('VBD',';~I','sighed')]
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_top_layer ;~I filled_sbj active
    verb_complements_by_code ;~I filled_sbj active

    []
    adverbial
    scon_clause
    conn

    [w('P-CONN','as_if')]
    ip_ppl_adverbial_layer filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle passive
    verb en_participle ;~Tn

    [w('VVN',';~Tn','relieved')]
    verb_complements_top_layer ;~Tn filled_sbj passive
    verb_complements_by_code ;~Tn filled_sbj passive

    []
    punc final

    [w('PUNC','.')]

    Question

    Why do the success and failure results of (6.59)–(6.61) obtain?

    (6.59)
    | ?- tphrase_set_string([w('NPR','John'), w('BED',';~cat_Vg','was'), w('HAG',';~Tn','having'), w('D','some'), w('N','tea'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (NPR John))
            (BED;~cat_Vg was)
            (IP-PPL-CAT (HAG;~Tn having)
                        (NP-OB1 (D some)
                                (N tea)))
            (PUNC .))

    yes
    (6.60)
    | ?- tphrase_set_string([w('NPR','John'), w('BED',';~cat_Vg','was'), w('HAG',';~cat_Ve','having'), w('BEN',';~cat_Vg','been'), w('HAG',';~Tn','having'), w('D','some'), w('N','tea'), w('PUNC','.')]), parse(sentence).

    no
    (6.61)
    | ?- tphrase_set_string([w('NPR','John'), w('BED',';~La','was'), w('ADJ','happy'), w('P-CONN','_*_'), w('HAG',';~cat_Ve','having'), w('BEN',';~cat_Vg','been'), w('HAG',';~Tn','having'), w('D','some'), w('N','tea'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (NPR John))
            (BED;~La was)
            (ADJP-PRD2 (ADJ happy))
            (PP-SCON (P-CONN _*_)
                     (IP-PPL2;IP-PPL (HAG;~cat_Ve having)
                                     (IP-PPL-CAT (BEN;~cat_Vg been)
                                                 (IP-PPL-CAT (HAG;~Tn having)
                                                             (NP-OB1 (D some)
                                                                     (N tea))))))
            (PUNC .))

    yes

    6.8    Present participle clauses as preposition complements

    It is possible for a present participle (-ing) clause to be the selected complement of a preposition. This follows from the preposition_phrase_layer rule of section 3.5. As an example, consider (6.62).

    (6.62)
    | ?- tphrase_set_string([w('PRO','It'), w('VBD',';~Ipr','sounded'), w('P-ROLE','like'), w('D','a'), w('N','man'), w('VAG',';~Tn','kicking'), w('D','a'), w('N','melon'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO It))
            (VBD;~Ipr sounded)
            (PP-CLR (P-ROLE like)
                    (IP-PPL3 (NP-SBJ (D a)
                                     (N man))
                             (VAG;~Tn kicking)
                             (NP-OB1 (D a)
                                     (N melon))))
            (PUNC .))

    (IP-MAT (NP-SBJ (PRO It))
            (VBD;~Ipr sounded)
            (PP-CLR (P-ROLE like)
                    (NP (D a)
                        (N man)
                        (IP-PPL (VAG;~Tn kicking)
                                (NP-OB1 (D a)
                                        (N melon)))))
            (PUNC .))

    yes

        There are two results in (6.62). It is the first that illustrates a present participle (-ing) clause as the selected complement of a preposition and with an internal subject. Calls to reach this first output follow (6.63).

    (6.63)
    sentence
    clause_top_layer statement_order
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','It')]
    clause_middle_layer filled_sbj
    verb_phrase_layer filled_sbj finite active
    verb finite ;~Ipr

    [w('VBD',';~Ipr','sounded')]
    verb_complements_top_layer ;~Ipr filled_sbj active
    verb_complements_by_code ;~Ipr filled_sbj active
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','like')]
    ip_ppl_adverbial_layer unfilled_sbj ing_participle
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','man')]
    ip_ppl_adverbial_layer filled_sbj ing_participle
    verb_phrase_layer filled_sbj ing_participle active
    verb ing_participle ;~Tn

    [w('VAG',';~Tn','kicking')]
    verb_complements_top_layer ;~Tn filled_sbj active
    verb_complements_by_code ;~Tn filled_sbj active
    noun_phrase -OB1
    noun_phrase_top
    noun_phrase_initial_layer
    determiner_phrase_layer
    det

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','melon')]
    punc final

    [w('PUNC','.')]

        The second result of (6.62) comes from an alternative analysis where the present participle clause is a reduced relative clause. The next section introduces rule support for reduced relative clauses.


    6.9    Relative clauses

    A relative clause occurs inside a noun phrase alongside but after the noun phrase head for which it acts as a modifier, with the noun phrase head contributing a role within the relative clause. This necessitates the wherewithal to integrate the role inside the relative clause with the external noun phrase head. Ways of integration provided by the rules of (6.64) are:

    (6.64)
    relative_clause([node('IP-REL',IL)|L],L) -->
      relative_clause_finite_top_layer(IL,[]).
    relative_clause([node('IP-INF-REL',IL)|L],L) -->
      relative_clause_to_inf_top_layer(IL,[]).
    relative_clause(L,L0) -->
      ip_ppl_active('',[],filled_sbj,ing_participle,L,L0).
    relative_clause(L,L0) -->
      ip_ppl_passive('',[],filled_sbj,en_participle,L,L0).

    6.9.1    Relative clauses that are finite clauses

    A relative clause that is a finite clause introduced with [rule 2] of (6.64) above will, with the rules of (6.65), establish its internal link to the head of the external noun phrase either:

    There is also:

    With the coordination of [rule 7], each conjunct is itself a finite clause with its own way from the rules of (6.65) for establishing its internal link to the head of the external noun phrase.

        It follows that a relative clause that is a finite clause has either:

    An initial phrase of type relative will contain a relative word of which there are different kinds (see section 2.2):

        The relative_clause_finite_top_layer rules of (6.65) collect content for a relative clause that either:

  • has a relative word [rules 1–4]
  • involves a trace [rule 5]
  • contains coordination [rule 6]
  • (6.65)
    relative_clause_finite_top_layer(L,L0) -->
      {
        gensym('-',Index),
        atom_concat('*ICH*',Index,ICH)
      },
      noun_phrase(Index,relative,L,L1),
      relative_clause_finite_inside([np(node(ICH,[]))],L1,L0).
    relative_clause_finite_top_layer(L,L0) -->
      {
        gensym('-',Index),
        atom_concat('*ICH*',Index,ICH)
      },
      preposition_phrase(Index,relative,L,L1),
      clause_top_layer(statement_order,[pp(node(ICH,[]))],L1,L0).
    relative_clause_finite_top_layer(L,L0) -->
      preposition_phrase('-NIM',relative,L,L1),
      clause_top_layer(statement_order,[],L1,L0).
    relative_clause_finite_top_layer(L,L0) -->
      {
        gensym('-',Index),
        atom_concat('*ICH*',Index,ICH)
      },
      adverb_phrase(Index,relative,L,L1),
      clause_top_layer(statement_order,[advp(node(ICH,[]))],L1,L0).
    relative_clause_finite_top_layer(L,L0) -->
      adverb_phrase('-NIM',relative,L,L1),
      clause_top_layer(statement_order,[],L1,L0).
    relative_clause_finite_top_layer(L,L0) -->
      clause_top_layer(statement_order,[np(node('*T*',[]))],L,L0).
    relative_clause_finite_top_layer([node('NP-NIM',[node('*T*',[])])|L],L0) -->
      clause_top_layer(statement_order,[],L,L0).
    relative_clause_finite_top_layer([node('ILYR',[node('ILYR',IL)|CL])|L],L) -->
      relative_clause_finite_top_layer(IL,[]),
      relative_clause_finite_top_tail(CL,[]).

        Coordination with [rule 6] of (6.65) involves recursive calls to relative_clause_finite_top_tail of (6.66) to pick up subsequent conjuncts, where each conjunct has internally either its own relative pronoun or its own trace.

    (6.66)
    relative_clause_finite_top_tail([node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
      conj(CONJ),
      relative_clause_finite_top_layer(IL,[]).
    relative_clause_finite_top_tail([PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
      punc(non_final,[PU],[]),
      relative_clause_finite_top_layer(IL,[]),
      relative_clause_finite_top_tail(L,L0).

        [Rule 1] of (6.65) gives the option of a noun phrase with relative type information and so with a relative word inside. Then there is creation of an index that goes as np(ICH) into the list of inherited stored items for the call to relative_clause_finite_inside of (6.67) to inherit as the subject for the relative clause [rule 1] or as a non-subject [rule 2].

    (6.67)
    relative_clause_finite_inside([np(ICH)],[node('NP-SBJ',[ICH])|L],L0) -->
      clause_middle_layer([],filled_sbj,L,L0).
    relative_clause_finite_inside(Store,L,L0) -->
      clause_top_layer(statement_order,Store,L,L0).

        As an example with relative pronoun (RPRO) that creating a non-subject dependency internally to a relative clause, consider (6.68).

    (6.68)
    | ?- tphrase_set_string([w('D','a'), w('N','fence'), w('RPRO','that'), w('D','a'), w('N','horse'), w('VBD',';~Ipr','jumped'), w('P-ROLE','over')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N fence)
        (IP-REL (NP-124 (RPRO that))
                (NP-SBJ (D a)
                        (N horse))
                (VBD;~Ipr jumped)
                (PP-CLR (P-ROLE over)
                        (NP *ICH*-124))))

    yes

    Calls to reach the output of (6.68) follow (6.69).

    (6.69)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]
    relative_clause
    relative_clause_finite_top_layer
    noun_phrase -124 relative
    noun_phrase_top relative
    noun_head_full relative

    [w('RPRO','that')]
    relative_clause_finite_inside [np(node('*ICH*-124',[]))]
    clause_top_layer statement_order [np(node('*ICH*-124',[]))]
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    clause_middle_layer [np(node('*ICH*-124',[]))] filled_sbj
    verb_phrase_layer [np(node('*ICH*-124',[]))] filled_sbj finite active
    verb finite ;~Ipr

    [w('VBD',';~Ipr','jumped')]
    verb_complements_top_layer ;~Ipr [np(node('*ICH*-124',[]))] filled_sbj active
    verb_complements_by_code ;~Ipr [np(node('*ICH*-124',[]))] filled_sbj active
    role

    [w('P-ROLE','over')]

        As an example with relative pronoun (RPRO) which as part of a preposition phrase with an initial placement inside the relative clause, consider (6.70).

    (6.70)
    | ?- tphrase_set_string([w('D','a'), w('N','fence'), w('P-ROLE','over'), w('RPRO','which'), w('D','a'), w('N','horse'), w('VBD',';~Ipr','jumped')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N fence)
        (IP-REL (PP-138 (P-ROLE over)
                        (NP (RPRO which)))
                (NP-SBJ (D a)
                        (N horse))
                (VBD;~Ipr jumped)
                (PP-CLR *ICH*-138)))

    yes

    Calls to reach the output of (6.70) follow (6.71).

    (6.71)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]
    relative_clause
    relative_clause_finite_top_layer
    preposition_phrase -138 relative
    preposition_phrase_layer relative
    role

    [w('P-ROLE','over')]
    noun_phrase relative
    noun_phrase_top relative
    noun_head_full relative

    [w('RPRO','which')]
    relative_clause_finite_inside [pp(node('*ICH*-138',[]))]
    clause_top_layer statement_order [pp(node('*ICH*-138',[]))]
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    clause_middle_layer [pp(node('*ICH*-138',[]))] filled_sbj
    verb_phrase_layer [pp(node('*ICH*-138',[]))] filled_sbj finite active
    verb finite ;~Ipr

    [w('VBD',';~Ipr','jumped')]
    verb_complements_top_layer ;~Ipr [pp(node('*ICH*-138',[]))] filled_sbj active
    verb_complements_by_code ;~Ipr [pp(node('*ICH*-138',[]))] filled_sbj active

    []

        As an example with genitive relative pronoun (RPRO;_genm_) whose as part of a preposition phrase with an initial placement inside the relative clause, consider (6.72).

    (6.72)
    | ?- tphrase_set_string([w('D','the'), w('N','gardener'), w('P-ROLE','over'), w('RPRO;_genm_','whose'), w('N','fence'), w('D','a'), w('N','horse'), w('VBD',';~Ipr','jumped')]), parse(noun_phrase('',non_privileged)).

    (NP (D the)
        (N gardener)
        (IP-REL (PP-145 (P-ROLE over)
                        (NP (NP-GENV (RPRO;_genm_ whose))
                            (N fence)))
                (NP-SBJ (D a)
                        (N horse))
                (VBD;~Ipr jumped)
                (PP-CLR *ICH*-145)))

    yes

    Calls to reach the output of (6.72) follow (6.73).

    (6.73)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det

    [w('D','the')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','gardener')]
    relative_clause
    relative_clause_finite_top_layer
    preposition_phrase -145 relative
    preposition_phrase_layer relative
    role

    [w('P-ROLE','over')]
    noun_phrase relative
    noun_phrase_top relative
    noun_phrase_initial_layer relative
    determiner_layer relative
    noun_phrase_genm_layer relative
    pronoun_genm relative

    [w('RPRO;_genm_','whose')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]
    relative_clause_finite_inside [pp(node('*ICH*-145',[]))]
    clause_top_layer statement_order [pp(node('*ICH*-145',[]))]
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    clause_middle_layer [pp(node('*ICH*-145',[]))] filled_sbj
    verb_phrase_layer [pp(node('*ICH*-145',[]))] filled_sbj finite active
    verb finite ;~Ipr

    [w('VBD',';~Ipr','jumped')]
    verb_complements_top_layer ;~Ipr [pp(node('*ICH*-145',[]))] filled_sbj active
    verb_complements_by_code ;~Ipr [pp(node('*ICH*-145',[]))] filled_sbj active

    []

        As an example of a non-subject dependency internal to a relative clause without a relative pronoun, consider (6.74).

    (6.74)
    | ?- tphrase_set_string([w('D','a'), w('N','fence'), w('D','a'), w('N','horse'), w('VBD',';~Ipr','jumped'), w('P-ROLE','over')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N fence)
        (IP-REL (NP-SBJ (D a)
                        (N horse))
                (VBD;~Ipr jumped)
                (PP-CLR (P-ROLE over)
                        (NP *T*))))

    yes

    Calls to reach the output of (6.74) follow (6.75).

    (6.75)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]
    relative_clause
    relative_clause_finite_top_layer
    clause_top_layer statement_order [pp(node('*T*',[]))]
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_phrase_initial_layer non_interrogative
    determiner_layer non_interrogative
    det non_interrogative

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    clause_middle_layer [pp(node('*T*',[]))] filled_sbj
    verb_phrase_layer [pp(node('*T*',[]))] filled_sbj finite active
    verb finite ;~Ipr

    [w('VBD',';~Ipr','jumped')]
    verb_complements_top_layer ;~Ipr [pp(node('*T*',[]))] filled_sbj active
    verb_complements_by_code ;~Ipr [pp(node('*T*',[]))] filled_sbj active
    role

    [w('P-ROLE','over')]

        As an example with relative pronoun (RPRO) which creating a subject dependency internally to a relative clause, consider (6.76).

    (6.76)
    | ?- tphrase_set_string([w('D','a'), w('N','horse'), w('RPRO','which'), w('BED',';~cat_Ve_passive_','was'), w('VVN',';~Tn.pr','jumped'), w('P-ROLE','over'), w('D','a'), w('N','fence')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N horse)
        (IP-REL (NP-209 (RPRO which))
                (NP-SBJ *ICH*-209)
                (BED;~cat_Ve_passive_ was)
                (IP-PPL-CAT (NP-LGS *)
                            (VVN;~Tn.pr jumped)
                            (PP-CLR (P-ROLE over)
                                    (NP (D a)
                                    (N fence))))))

    yes

    Calls to reach the output of (6.76) follow (6.77).

    (6.77)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    relative_clause
    relative_clause_finite_top_layer
    noun_phrase -209 relative
    noun_phrase_top relative
    noun_head_full relative

    [w('RPRO','which')]
    relative_clause_finite_inside [np(node('*ICH*-209',[]))]
    clause_middle_layer filled_sbj
    have_be_or_md_finite_layer ;~cat_Ve_passive_

    [w('BED',';~cat_Ve_passive_','was')]
    optional_clitic_negation

    []
    verb_complements_top_layer ;~cat_Ve_passive _filled_sbj active
    verb_complements_by_code ;~cat_Ve_passive _filled_sbj active
    ip_ppl_passive -CAT filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle passive
    verb en_participle ;~Tn.pr

    [w('VVN',';~Tn.pr','jumped')]
    verb_complements_top_layer ;~Tn.pr filled_sbj passive
    verb_complements_by_code ;~Tn.pr filled_sbj passive
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','over')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]

    Question

    Consider (6.78)–(6.81) taken from Gazdar et al (1985, p. 178). (Examples (6.78)–(6.80) are from Williams (1978, p. 34), with (6.81) attributed to Paul Hirshbuhler.) What are the parse results, if any? Do the results reflect your expectations? Can you describe how they arise?

    (6.78)
    [w('PRO','I'), w('VBP',';~Tn','know'), w('D','a'), w('N','man'), w('RPRO','who'), w('NPR','Bill'), w('VBD',';~Tn','saw'), w('CONJ','and'), w('NPR','Mary'), w('VBD',';~Tn','liked'), w('PUNC','.')]
    (6.79)
    [w('PRO','I'), w('VBP',';~Tn','know'), w('D','a'), w('N','man'), w('RPRO','who'), w('VBD',';~Tn','saw'), w('NPR','Bill'), w('CONJ','and'), w('VBD',';~Tn','liked'), w('NPR','Mary'), w('PUNC','.')]
    (6.80)
    [w('PRO','I'), w('VBP',';~Tn','know'), w('D','a'), w('N','man'), w('RPRO','who'), w('NPR','Bill'), w('VBD',';~Tn','saw'), w('CONJ','and'), w('VBD',';~Tn','liked'), w('NPR','Mary'), w('PUNC','.')]
    (6.81)
    [w('PRO','I'), w('VBP',';~Tn','know'), w('D','a'), w('N','man'), w('RPRO','who'), w('NPR','Mary'), w('VBP',';~Tn','likes'), w('CONJ','and'), w('VBP',';~Tf','hopes'), w('MD',';~cat_Vi','will'), w('VB',';~I','win'), w('PUNC','.')]

    6.9.2    Relative clauses that are to-infinitive clauses

    A relative clause that is a to-infinitive clause introduced with [rule 2] of (6.64) above will, with the rules of (6.82), establish its internal link to the head of the external noun phrase either:

    There is also:

    With the coordination of [rule 5], each conjunct is itself a to-infinitive clause with its own way from the rules of (6.82) for establishing its internal link to the head of the external noun phrase.

    (6.82)
    relative_clause_to_inf_top_layer(L,L0) -->
      {
        gensym('-',Index),
        atom_concat('*ICH*',Index,ICH)
      },
      preposition_phrase(Index,relative,L,L1),
      to_inf_top_layer([pp(node(ICH,[]))],L1,L0).
    relative_clause_to_inf_top_layer(L,L0) -->
      preposition_phrase('-NIM',relative,L,L1),
      to_inf_top_layer([],L1,L0).
    relative_clause_to_inf_top_layer(L,L0) -->
      to_inf_top_layer([np(node('*T*',[]))],L,L0).
    relative_clause_to_inf_top_layer([node('NP-SBJ',[node('*T*',[])])|L],L0) -->
      to_inf_layer([],filled_sbj,active,L,L0).
    relative_clause_to_inf_top_layer([node('NP-NIM',[node('*T*',[])])|L],L0) -->
      to_inf_top_layer([],L,L0).
    relative_clause_to_inf_top_layer([node('ILYR',[node('ILYR',IL)|CL])|L],L) -->
      relative_clause_to_inf_top_layer(IL,[]),
      relative_clause_to_inf_top_tail(CL,[]).
    (6.83)
    relative_clause_to_inf_top_tail([node('CONJP',[CONJ,node('ILYR',IL)])|L],L) -->
      conj(CONJ),
      relative_clause_to_inf_top_layer(IL,[]).
    relative_clause_to_inf_top_tail([PU,node('CONJP',[node('ILYR',IL)])|L],L0) -->
      punc(non_final,[PU],[]),
      relative_clause_to_inf_top_layer(IL,[]),
      relative_clause_to_inf_top_tail(L,L0).

        As an example of a relative clause that is a to-infinitive clause with a non-subject internal dependency and with an internal for introduced subject, consider (6.84).

    (6.84)
    | ?- tphrase_set_string([w('D','a'), w('N','horse'), w('P-CONN','for'), w('PRO','me'), w('TO','to'), w('VB',';~Tn.pr','jump'), w('P-ROLE','over'), w('D','a'), w('N','fence')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N horse)
        (IP-INF-REL (P-CONN for)
                    (NP-SBJ (PRO me))
                    (TO to)
                    (VB;~Tn.pr jump)
                    (NP-OB1 *T*)
                    (PP-CLR (P-ROLE over)
                            (NP (D a)
                                (N fence)))))

    yes

    Calls to reach the output of (6.84) follow (6.85).

    (6.85)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    relative_clause
    relative_clause_to_inf_top_layer
    to_inf_top_layer [pp(node('*T*',[]))]
    to_inf_layer [pp(node('*T*',[]))] unfilled_sbj active
    conn

    [w('P-CONN','for')]
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','me')]
    to_inf_layer [pp(node('*T*',[]))] filled_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer [pp(node('*T*',[]))] filled_sbj infinitive active
    verb infinitive ;~Tn.pr

    [w('VB',';~Tn.pr','jump')]
    verb_complements_top_layer ;~Tn.pr [pp(node('*T*',[]))] filled_sbj active
    verb_complements_by_code ;~Tn.pr [pp(node('*T*',[]))] filled_sbj active
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','over')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]

        As word list content for a noun modifier that is a to-infinitive clause without an internal for introduced subject and without a non-subject selected internal dependency, consider (6.86).

    (6.86)
    | ?- tphrase_set_string([w('D','the'), w('N','intention/time/person'), w('TO','to'), w('VB',';~Tn.pr','jump'), w('D','a'), w('N','horse'), w('P-ROLE','over'), w('D','a'), w('N','fence')]), parse(noun_phrase('',non_privileged)).

    (NP (D the)
        (N intention/time/person)
        (IP-INF (TO to)
                (VB;~Tn.pr jump)
                (NP-OB1 (D a)
                        (N horse))
                (PP-CLR (P-ROLE over)
                        (NP (D a)
                            (N fence)))))
    (NP (D the)
        (N intention/time/person)
        (IP-INF-REL (NP-NIM *T*)
                    (TO to)
                    (VB;~Tn.pr jump)
                    (NP-OB1 (D a)
                            (N horse))
                    (PP-CLR (P-ROLE over)
                            (NP (D a)
                                (N fence)))))
    (NP (D the)
        (N intention/time/person)
        (IP-INF-REL (NP-SBJ *T*)
                    (TO to)
                    (VB;~Tn.pr jump)
                    (NP-OB1 (D a)
                            (N horse))
                    (PP-CLR (P-ROLE over)
                            (NP (D a)
                                (N fence)))))

    yes

    There are three parse structures in the results of (6.86), differing in the structure and content of the to-infinitive clause, which is either:

    Question

    Zandvoort (1969, p. 56) points out that the passive infinitive may vary with the active infinitive when functioning as a relative clause, especially after there is and there was. With parse results for (6.87) and (6.88), say why this is so.

    (6.87)
    [w('EX','There'), w('BED',';~ex_V','was'), w('Q','no'), w('N','time'), w('TO','to'), w('VB',';~Tn','lose'), w('PUNC','.')]
    (6.88)
    [w('EX','There'), w('BED',';~ex_V','was'), w('Q','no'), w('N','time'), w('TO','to'), w('BE',';~cat_Ve_passive_','be'), w('VVN',';~Tn','lost'), w('PUNC','.')]

    6.9.3    Reduced relative clauses that are present participle clauses

    Reduced relative clauses can have the form of present participle clauses occurring directly inside a noun phrase whose noun head is modified, so that inside the relative clause there is a present participle (-ing) verb and its complements, but no finite verb and no clause subject.

        As an example of a reduced relative clause consisting of a present participle clause, consider (6.89).

    (6.89)
    | ?- tphrase_set_string([w('D','a'), w('N','horse'), w('VAG',';~Ipr','jumping'), w('P-ROLE','over'), w('D','a'), w('N','fence')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N horse)
        (IP-PPL (VAG;~Ipr jumping)
                (PP-CLR (P-ROLE over)
                        (NP (D a)
                            (N fence)))))

    yes

    Calls to reach the output of (6.89) follow (6.90).

    (6.90)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    relative_clause
    ip_ppl_active filled_sbj ing_participle
    verb_phrase_layer filled_sbj ing_participle active
    verb ing_participle ;~Ipr

    [w('VAG',';~Ipr','jumping')]
    verb_complements_top_layer ;~Ipr filled_sbj active
    verb_complements_by_code ;~Ipr filled_sbj active
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','over')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]

    6.9.4    Reduced relative clauses that are past participle clauses

    In addition to being present participle clauses, reduced relative clauses can also have the form of past participle clauses occurring directly inside a noun phrase whose noun head is modified, so that inside the relative clause there is a past participle (-ed/-en) verb and its complements, but no finite verb and no clause subject.

        As an example of a reduced relative clause consisting of a past participle clause, consider (6.91).

    (6.91)
    | ?- tphrase_set_string([w('D','a'), w('N','horse'), w('VVN',';~Tn.pr','jumped'), w('P-ROLE','over'), w('D','a'), w('N','fence')]), parse(noun_phrase('',non_privileged)).

    (NP (D a)
        (N horse)
        (IP-PPL (NP-LGS *)
                (VVN;~Tn.pr jumped)
                (PP-CLR (P-ROLE over)
                        (NP (D a)
                            (N fence)))))

    yes

    Calls to reach the output of (6.91) follow (6.92).

    (6.92)
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','horse')]
    relative_clause
    ip_ppl_passive filled_sbj en_participle
    verb_phrase_layer filled_sbj en_participle passive
    verb en_participle ;~Tn.pr

    [w('VVN',';~Tn.pr','jumped')]
    verb_complements_top_layer ;~Tn.pr filled_sbj passive
    verb_complements_by_code ;~Tn.pr filled_sbj passive
    preposition_phrase -CLR non_privileged
    preposition_phrase_layer non_privileged
    role

    [w('P-ROLE','over')]
    noun_phrase non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fence')]

    6.10    Cleft constructions

    The extra verb_complements_by_code rules of (6.93) allow coverage of cleft constructions.

    (6.93)
    verb_complements_by_code(';~cleft_Vn',[],cleft_sbj,active,L,L0) -->
      noun_phrase('-FOC',non_privileged,L,[node('IP-CLF',IL)|L0]),
      relative_clause_finite_top_layer(IL,[]).
    verb_complements_by_code(';~cleft_Vn',[np(ICH)],cleft_sbj,active,[node('NP-FOC',[ICH]),node('IP-CLF',IL)|L],L) -->
      relative_clause_finite_top_layer(IL,[]).

        The rules of (6.93) require the verb code ;~cleft_Vn, selecting as complements:

        Both rules of (6.93) require the clause SbjType parameter to be set to the value of cleft_sbj. This SbjType setting is possible with the first subject rule in section 2.5 picking up a word with word class PRO;_cleft_, which can only ever be an instance of it.

        As an example with a cleft construction, consider (6.94).

    (6.94)
    | ?- tphrase_set_string([w('PRO;_cleft_','It'), w('BED',';~cleft_Vn','was'), w('D','an'), w('ADJ','atomic'), w('N','fission'), w('PRO','we'), w('VBD',';~Tn','saw'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO;_cleft_ It))
            (BED;~cleft_Vn was)
            (NP-FOC (D an)
                    (ADJP (ADJ atomic))
                    (N fission))
            (IP-CLF (NP-SBJ (PRO we))
                    (VBD;~Tn saw)
                    (NP-OB1 *T*))
            (PUNC .))

    yes

    Calls to reach the output of (6.94) follow (6.95).

    (6.95)
    sentence
    clause_top_layer statement_order
    subject cleft_sbj

    [w('PRO;_cleft_','It')]
    clause_middle_layer cleft_sbj
    verb_phrase_layer cleft_sbj finite active
    verb finite ;~cleft_Vn

    [w('BED',';~cleft_Vn','was')]
    verb_complements_top_layer ;~cleft_Vn cleft_sbj active
    verb_complements_by_code ;~cleft_Vn cleft_sbj active
    noun_phrase -FOC non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det non_privileged

    [w('D','an')]
    internal_np_higher_layer
    adjective_phrase non_interrogative
    adjective_phrase_layer non_interrogative
    adj non_interrogative

    [w('ADJ','atomic')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','fission')]
    relative_clause_finite_top_layer
    clause_top_layer statement_order [pp(node('*T*',[]))]
    subject filled_sbj
    noun_phrase -SBJ non_interrogative
    noun_phrase_top non_interrogative
    noun_head_full non_interrogative

    [w('PRO','we')]
    clause_middle_layer [pp(node('*T*',[]))] filled_sbj
    verb_phrase_layer [pp(node('*T*',[]))] filled_sbj finite active
    verb finite ;~Tn

    [w('VBD',';~Tn','saw')]
    verb_complements_top_layer ;~Tn [pp(node('*T*',[]))] filled_sbj active
    verb_complements_by_code ;~Tn [pp(node('*T*',[]))] filled_sbj active

    []
    punc final

    [w('PUNC','.')]

    6.11    V_as_though/as_if/like-construction

    The V_as_though/as_if/like-construction involves a verb with a selected adverbial clause.

    Code ;~V_as_though/as_if/like selects an adverbial clause (PP-SCON-MNR) introduced by a subordinating conjunction word (P-CONN), e.g., as_though/as_if/like.

    (6.96)
    verb_complements_by_code(';~V_as_though/as_if/like',Store,there_sbj,active,[node('PP-CLR',PL)|L],L) -->
      role(PL,[node('IP-ADV',IL)]),
      subject(there_sbj,IL,L1),
      clause_middle_layer(Store,there_sbj,L1,[]).
    verb_complements_by_code(';~V_as_though/as_if/like',Store,expletive_sbj,active,[node('PP-CLR',PL)|L],L) -->
      role(PL,[node('IP-ADV',IL)]),
      clause_top_layer(statement_order,Store,IL,[]).
    verb_complements_by_code(';~V_as_though/as_if/like',Store,filled_sbj,active,[node('PP-CLR',PL)|L],L) -->
      role(PL,[node('IP-ADV',IL)]),
      clause_top_layer(statement_order,Store,IL,[]).

        As an example, consider (6.97).

    (6.97)
    | ?- tphrase_set_string([w('PRO;_expletive_','It'), w('VBP',';~V_as_though/as_if/like','looks'), w('P-ROLE','like'), w('EX','there'), w('BEP',';~cat_Vg','is'), w('VAG',';~cat_Vt','going'), w('TO','to'), w('BE',';~ex_V','be'), w('D','a'), w('N','storm'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (NP-SBJ (PRO;_expletive_ It))
            (VBP;~V_as_though/as_if/like looks)
            (PP-CLR (P-ROLE like)
                    (IP-ADV (EX there)
                            (BEP;~cat_Vg is)
                            (IP-PPL-CAT (VAG;~cat_Vt going)
                                        (IP-INF-CAT (TO to)
                                                    (BE;~ex_V be)
                                                    (NP-ESBJ (D a)
                                                             (N storm))))))
            (PUNC .))

    yes

    Calls to reach the output of (6.97) follow (6.98).

    (6.98)
    sentence
    clause_top_layer statement_order
    subject expletive_sbj

    [w('PRO;_expletive_','It')]
    clause_middle_layer expletive_sbj
    verb_phrase_layer expletive_sbj finite active
    verb finite ;~V_as_though/as_if/like

    [w('VBP',';~V_as_though/as_if/like','looks')]
    verb_complements_top_layer ;~V_as_though/as_if/like expletive_sbj active
    verb_complements_by_code ;~V_as_though/as_if/like expletive_sbj active
    role

    [w('P-ROLE','like')]
    clause_top_layer statement_order
    subject there_sbj

    [w('EX','there')]
    clause_middle_layer there_sbj
    verb_phrase_layer there_sbj finite active
    verb finite ;~cat_Vg

    [w('BEP',';~cat_Vg','is')]
    verb_complements_top_layer ;~cat_Vg there_sbj active
    verb_complements_by_code ;~cat_Vg there_sbj active
    ip_ppl_active -CAT there_sbj ing_participle
    verb_phrase_layer there_sbj ing_participle active
    verb ing_participle ;~cat_Vt

    [w('VAG',';~cat_Vt','going')]
    verb_complements_top_layer ;~cat_Vt there_sbj active
    verb_complements_by_code ;~cat_Vt there_sbj active
    to_inf_layer there_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer there_sbj infinitive active
    verb infinitive ;~ex_V

    [w('BE',';~ex_V','be')]
    verb_complements_top_layer ;~ex_V there_sbj active
    verb_complements_by_code ;~ex_V there_sbj active
    noun_phrase -ESBJ non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','storm')]
    punc final

    [w('PUNC','.')]

        As another example, consider (6.99).

    (6.99)
    | ?- tphrase_set_string([w('EX','There'), w('VBP',';~V_as_though/as_if/like','looks'), w('P-ROLE','like'), w('EX','there'), w('BEP',';~cat_Vg','is'), w('VAG',';~cat_Vt','going'), w('TO','to'), w('BE',';~ex_V','be'), w('D','a'), w('N','storm'), w('PUNC','.')]), parse(sentence).

    (IP-MAT (EX There)
            (VBP;~V_as_though/as_if/like looks)
            (PP-CLR (P-ROLE like)
                    (IP-ADV (EX there)
                            (BEP;~cat_Vg is)
                            (IP-PPL-CAT (VAG;~cat_Vt going)
                                        (IP-INF-CAT (TO to)
                                                    (BE;~ex_V be)
                                                    (NP-ESBJ (D a)
                                                             (N storm))))))
            (PUNC .))

    yes

    Calls to reach the output of (6.99) follow (6.100).

    (6.100)
    sentence
    clause_top_layer statement_order
    subject there_sbj

    [w('EX','There')]
    clause_middle_layer there_sbj
    verb_phrase_layer there_sbj finite active
    verb finite ;~V_as_though/as_if/like

    [w('VBP',';~V_as_though/as_if/like','looks')]
    verb_complements_top_layer ;~V_as_though/as_if/like there_sbj active
    verb_complements_by_code ;~V_as_though/as_if/like there_sbj active
    role

    [w('P-ROLE','like')]
    subject there_sbj

    [w('EX','there')]
    clause_middle_layer there_sbj
    verb_phrase_layer there_sbj finite active
    verb finite ;~cat_Vg

    [w('BEP',';~cat_Vg','is')]
    verb_complements_top_layer ;~cat_Vg there_sbj active
    verb_complements_by_code ;~cat_Vg there_sbj active
    ip_ppl_active -CAT there_sbj ing_participle
    verb_phrase_layer there_sbj ing_participle active
    verb ing_participle ;~cat_Vt

    [w('VAG',';~cat_Vt','going')]
    verb_complements_top_layer ;~cat_Vt there_sbj active
    verb_complements_by_code ;~cat_Vt there_sbj active
    to_inf_layer there_sbj active
    to

    [w('TO','to')]
    verb_phrase_layer there_sbj infinitive active
    verb infinitive ;~ex_V

    [w('BE',';~ex_V','be')]
    verb_complements_top_layer ;~ex_V there_sbj active
    verb_complements_by_code ;~ex_V there_sbj active
    noun_phrase -ESBJ non_privileged
    noun_phrase_top non_privileged
    noun_phrase_initial_layer non_privileged
    determiner_layer non_privileged
    det

    [w('D','a')]
    internal_np_higher_layer
    internal_np_lower_layer
    noun

    [w('N','storm')]
    punc final

    [w('PUNC','.')]