Minimalist Machine Derivations

Files: grammar.pl / m12.pl / Back to homepage

Examples:

  • Examples from A New Approach to Tough-Constructions (Fong & Ginsburg, 2014).
    Doubling Constituent (DC) approach. collapse
    Example Instruction stream (clickable) Notes
    (1) John is easy to please [john, d, pro, please, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] Doubling Constituent (DC) pro-John.
    At the Local Extent (LE) boundary, the embedded CP, John (with unvalued uCase) is re-stacked.
    T picks up TOS John.
    (2) The violin is easy to play the sonata on [violin, the, pro, on, [sonata, the], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] DC pro-the-violin.
    At the LE boundary, the embedded CP, the violin (with unvalued uCase) is re-stacked.
    Matrix T picks up TOS the violin.
    (3) *What sonata is the violin easy to play on? [violin, the, pro, on, [sonata, what:d], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c_Q] Does not converge.
    DC pro-the-violin.
    what sonata is stacked (uScope).
    At the LE boundary, the embedded CP, what sonata (unvalued uScope) and the violin (unvalued uCase) are re-stacked.
    Matrix T fails to agree with TOS what sonata: nom Case clashes with acc Case assigned by embedded v*.
    (4) The sonata is easy to play on this violin [violin, this, on, [sonata, the, pro], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] DC pro-the-sonata.
    At the LE boundary, the embedded CP, the sonata (unvalued uCase) is restacked.
    Matrix T picks up TOS the sonata.
    (5) What violin is the sonata easy to play on? [violin, what:d, on, [sonata, the, pro], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c_Q] DC pro-the-sonata.
    what violin is stacked (uScope).
    At the LE boundary, the embedded CP, the sonata (unvalued uCase) and what violin (unvalued uScope) are restacked.
    Matrix T picks up TOS the sonata.
    cQ finds iWh what violin.
    (6) Linguists are tough to please [linguists, d, pro, please, 'v*', ['PRO', d0], 'Tinf', c, tough, v_be, 'T', c] (Same as (1).)
    DC pro-linguists.
    At the LE boundary, the embedded CP, linguists (with unvalued uCase) is re-stacked.
    T picks up TOS linguists.
    (7) It is tough to please linguists [linguists, d, please,'v*', ['PRO', d0], 'Tinf', c, tough, v_be, it, 'T', c] v* assigns Case to linguists.
    (No restacking is done at the LE boundary, the embedded CP.)
    Expletive it merge to the edge of vbe.
    Agree(matrix T,it) obtains.
    (8) The book is easy to put on the table [table, the, on, [book, the, pro], put, 'v*', ['PRO', d0], 'Tinf', c, easy, 'v_be', 'T', c] (Same as (4).)
    DC pro-the-book.
    At the LE boundary, the embedded CP, the book (unvalued uCase) is restacked.
    Matrix T picks up TOS the book.
    (9) What table is the book easy to put on? [table, what:d, on, [book, the, pro], put, 'v*', ['PRO', d0], 'Tinf', c, easy, 'v_be', 'T', c_Q] (Same as (5).)
    what table is stacked (uScope).
    DC pro-the-book.
    At the LE boundary, the embedded CP, the book (unvalued uCase) and what table (unvalued uScope) are restacked.
    Matrix T picks up TOS the book.
    cQ finds iWh what table.
  • Machine Parameters: expand

    Animation:
    (5) What violin is the sonata easy to play on?

    Derivation:
    (5) What violin is the sonata easy to play on?

    Stream:[[violin!D],[what!case!N!scope],[on],[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[]

    Step 1.

    Head of stream [violin!D] is the initial SO
    Stream:[[what!case!N!scope],[on],[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[violin!D]

    Step 2.

    Merge [what!case!N!scope] and [violin!D]
    Label from [what!case!N!scope] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [violin!D]
    [what!case!N!scope] values D on [violin!D]
    [violin] values N on [what!case!N!scope]
    Stream:[[on],[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[what!case!scope[what!scope][violin]]

    Step 3.

    Merge [on] and [what!case!scope[what!scope][violin]]
    Label from [on] (head merging with a non-head)
    Theta-mark [what!case!scope[what!scope][violin]]
    [on] values obq case on [what!case!scope[what!scope][violin]]
    Push [what!scope[what!scope][violin]] (unvalued uF) onto stack
    Stream:[[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[what!scope[what!scope][violin]]
    SO:[on[on][what!scope[what!scope][violin]]]

    Step 4.

    Begin substream
    Stream:[[sonata!D],[the!case!N],[pro!case]]
    Stack (⥥):
    SO:[]

    Step 5.

    Head of stream [sonata!D] is the initial SO
    Stream:[[the!case!N],[pro!case]]
    Stack (⥥):
    SO:[sonata!D]

    Step 6.

    Merge [the!case!N] and [sonata!D]
    Label from [the!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [sonata!D]
    [the!case!N] values D on [sonata!D]
    [sonata] values N on [the!case!N]
    Stream:[[pro!case]]
    Stack (⥥):
    SO:[the!case[the][sonata]]
    Doubling Constitutent (DC) merge

    Step 7.

    Merge [pro!case] and [the!case[the][sonata]]
    Label from [pro!case] (head merging with a non-head)
    Inherit interpretable feature(s) [f(theta),f(phi,[3,sg,n])] from [the!case[the][sonata]]
    Push [the!case[the][sonata]] (unvalued uF) onto stack
    Stream:[]
    Stack (⥥):inactive([the!case[the][sonata]])
    SO:[pro!case[pro][the!case[the][sonata]]]
    End substream, SO [pro!case[pro][the!case[the][sonata]]] re-inserted into main stream
    Substream stack [inactive([the!case[the][sonata]])] merged with main stack

    Step 8.

    Stream:[[pro!case[pro][the!case[the][sonata]]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[on[on][what!scope[what!scope][violin]]]

    Step 9.

    Merge [on[on][what!scope[what..][violin..]]] and [pro!case[pro][the!case[the..][sonata..]]]
    Label from [on[on][what!scope[what..][violin..]]] (edge feature)
    Theta-mark [pro!case[pro][the!case[the..][sonata..]]]
    Push [pro!case[pro][the!case[the..][sonata..]]] (unvalued uF) onto stack
    Stream:[[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro!case[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[on[pro!case[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]

    Step 10.

    Merge [play] and [on[pro!case[pro..][the..]][on[on..][what..]]]
    Label from [play] (head merging with a non-head)
    Stream:[[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro!case[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[play[play][on[pro!case[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]

    Step 11.

    Merge [v*!phi] and [play[play][on[pro..][on..]]]
    Label from [v*!phi] (head merging with a non-head)
    [pro!case[pro][the!case[the..][sonata..]]] values uPhi on [v*!phi]
    [v*] values acc case on [pro!case[pro][the!case[the..][sonata..]]]
    Stream:[[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]

    Step 12.

    Begin substream
    Stream:[[PRO!D],[d0!case!N]]
    Stack (⥥):
    SO:[]

    Step 13.

    Head of stream [PRO!D] is the initial SO
    Stream:[[d0!case!N]]
    Stack (⥥):
    SO:[PRO!D]

    Step 14.

    Merge [d0!case!N] and [PRO!D]
    Label from [d0!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [PRO!D]
    [d0!case!N] values D on [PRO!D]
    [PRO] values N on [d0!case!N]
    Stream:[]
    Stack (⥥):
    SO:[d0!case[d0][PRO]]
    End substream, SO [d0!case[d0][PRO]] re-inserted into main stream

    Step 15.

    Stream:[[d0!case[d0][PRO]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]

    Step 16.

    Merge [v*[v*][play[play..][on..]]] and [d0!case[d0][PRO]]
    Label from [v*[v*][play[play..][on..]]] (edge feature)
    Theta-mark [d0!case[d0][PRO]]
    Push [d0!case[d0][PRO]] (unvalued uF) onto stack
    Stream:[[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0!case[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[v*[d0!case[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]

    Step 17.

    Merge [Tinf!phi] and [v*[d0!case[d0..][PRO..]][v*[v*..][play..]]]
    Label from [Tinf!phi] (head merging with a non-head)
    [d0!case[d0][PRO]] values uPhi on [Tinf!phi]
    [Tinf] values nullCase case on [d0[d0][PRO]]
    Stream:[[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]

    Step 18.

    Internal merge selected
    Merge [Tinf[Tinf][v*[d0..][v*..]]] and [d0[d0][PRO]]
    Label from [Tinf[Tinf][v*[d0..][v*..]]] (edge feature)
    Stream:[[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]

    Step 19.

    Merge [c] and [Tinf[d0[d0..][PRO..]][Tinf[Tinf..][v*..]]]
    Label from [c] (head merging with a non-head)
    Stream:[[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [what!scope[what!scope][violin]]
    SO:[c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]

    Step 20.

    Local Extent boundary at [c[c][Tinf[d0..][Tinf..]]]
    Inactive stack element inactive([the!case[the][sonata]]) found
    Stack element [what!scope[what!scope][violin]] with unvalued uF found
    New boundary (b) marker stacked
    Restack [what!scope[what!scope][violin]] onto stack
    Restack [the!case[the][sonata]] onto stack
    Stream:[[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]

    Step 21.

    Merge [easy] and [c[c][Tinf[d0..][Tinf..]]]
    Label from [easy] (head merging with a non-head)
    Stream:[[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]

    Step 22.

    Merge [vbe] and [easy[easy][c[c..][Tinf..]]]
    Label from [vbe] (head merging with a non-head)
    Stream:[[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]

    Step 23.

    Internal merge selected
    Merge [vbe[vbe][easy[easy..][c..]]] and [the!case[the][sonata]]
    Label from [vbe[vbe][easy[easy..][c..]]] (edge feature)
    Preference: [vbe] edge merge from the stack (not stream)
    Stream:[[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[vbe[the!case[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]

    Step 24.

    Merge [T!phi!v] and [vbe[the!case[the..][sonata..]][vbe[vbe..][easy..]]]
    Label from [T!phi!v] (head merging with a non-head)
    [the!case[the][sonata]] values uPhi on [T!phi!v]
    [T!v] values nom case on [the!case[the][sonata]]
    Relativized TOS search for iF(v) skipping [the[the][sonata]]
    Relativized TOS search for iF(v) skipping [what!scope[what!scope][violin]]
    [T!v] attracts [vbe[the[the..][sonata..]][vbe[vbe..][easy..]]]
    Merge [T[T][vbe[the..][vbe..]]] and [vbe]
    Label from [T[T][vbe[the..][vbe..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]

    Step 25.

    Internal merge selected
    Merge [T[vbe][T[T..][vbe..]]] and [the[the][sonata]]
    Label from [T[vbe][T[T..][vbe..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]]

    Step 26.

    Merge [cQ!wh!T] and [T[the[the..][sonata..]][T[vbe..][T..]]]
    Label from [cQ!wh!T] (head merging with a non-head)
    Relativized TOS search for iF(wh) skipping [the[the][sonata]]
    [what!scope[what!scope][violin]] values wh on [cQ!wh!T]
    [the[the][sonata]] values T on [cQ!T]
    Internal merge selected
    Merge [cQ[cQ][T[the..][T..]]] and [the[the][sonata]]
    Label from [cQ[cQ][T[the..][T..]]] (edge feature)
    [cQ] values uscope on [what!scope[what!scope][violin]]
    Merge [cQ[the[the..][sonata..]][cQ[cQ..][T..]]] and [what[what][violin]]
    Label from [cQ[the[the..][sonata..]][cQ[cQ..][T..]]] (edge feature)
    Stream:[]
    Stack (⥥):[the[the][sonata]]
    [what[what][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[what[what][violin]][cQ[the[the][sonata]][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]

    Step 27.

    Local Extent boundary at [cQ[what[what..][violin..]][cQ[the..][cQ..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [the[the][sonata]]
    [what[what][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[what[what][violin]][cQ[the[the][sonata]][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]
    Conceptual-Intensional (CI) Interface: [cQ] + edge [[what[what][violin]],[the[the][sonata]]] constitutes an ill-formed interrogative!

    Backtrack

    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [what!scope[what!scope][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]]
    re-doing step 26

    Step 28.

    [cQ!T] attracts [T[the[the..][sonata..]][T[vbe..][T..]]]
    Internal merge selected
    Merge [cQ[cQ][T[the..][T..]]] and [vbe]
    Label from [cQ[cQ][T[the..][T..]]] (edge feature)
    Merge [cQ[vbe][cQ[cQ..][T..]]] and [T]
    Label from [cQ[vbe][cQ[cQ..][T..]]] (edge feature)
    [cQ] values uscope on [what!scope[what!scope][violin]]
    Merge [cQ[T][cQ[vbe..][cQ..]]] and [what[what][violin]]
    Label from [cQ[T][cQ[vbe..][cQ..]]] (edge feature)
    Stream:[]
    Stack (⥥):[the[the][sonata]]
    [what[what][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[what[what][violin]][cQ[T][cQ[vbe][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]]

    Step 29.

    Local Extent boundary at [cQ[what[what..][violin..]][cQ[T..][cQ..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [the[the][sonata]]
    [what[what][violin]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[what[what][violin]][cQ[T][cQ[vbe][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]]
    CI: wh-question

    Parse:
    Spell-out:
    what violin -s be the sonata easy to play on (after morpheme realization)
    what violin be -s the sonata easy to play on (after affix-hop)
    what violin be -s the sonata easy to play on (after morpheme realization, stage 2)
    what violin is the sonata easy to play on  

    Backtrack

    Stream:[[on],[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[what!case!scope[what!scope][violin]]
    re-doing step 3

    Step 30.

    Push [on[on][what!scope[what..][violin..]]] (unvalued uF) onto stack
    Stream:[[[sonata!D],[the!case!N],[pro!case]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[on[on][what!scope[what!scope][violin]]]
    SO:[on[on][what!scope[what!scope][violin]]]

    Step 31.

    Begin substream
    Stream:[[sonata!D],[the!case!N],[pro!case]]
    Stack (⥥):
    SO:[]

    Step 32.

    Head of stream [sonata!D] is the initial SO
    Stream:[[the!case!N],[pro!case]]
    Stack (⥥):
    SO:[sonata!D]

    Step 33.

    Merge [the!case!N] and [sonata!D]
    Label from [the!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [sonata!D]
    [the!case!N] values D on [sonata!D]
    [sonata] values N on [the!case!N]
    Stream:[[pro!case]]
    Stack (⥥):
    SO:[the!case[the][sonata]]
    Doubling Constitutent (DC) merge

    Step 34.

    Merge [pro!case] and [the!case[the][sonata]]
    Label from [pro!case] (head merging with a non-head)
    Inherit interpretable feature(s) [f(theta),f(phi,[3,sg,n])] from [the!case[the][sonata]]
    Push [the!case[the][sonata]] (unvalued uF) onto stack
    Stream:[]
    Stack (⥥):inactive([the!case[the][sonata]])
    SO:[pro!case[pro][the!case[the][sonata]]]
    End substream, SO [pro!case[pro][the!case[the][sonata]]] re-inserted into main stream
    Substream stack [inactive([the!case[the][sonata]])] merged with main stack

    Step 35.

    Stream:[[pro!case[pro][the!case[the][sonata]]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[on[on][what!scope[what!scope][violin]]]

    Step 36.

    Merge [on[on][what!scope[what..][violin..]]] and [pro!case[pro][the!case[the..][sonata..]]]
    Label from [on[on][what!scope[what..][violin..]]] (edge feature)
    Theta-mark [pro!case[pro][the!case[the..][sonata..]]]
    Push [pro!case[pro][the!case[the..][sonata..]]] (unvalued uF) onto stack
    Stream:[[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro!case[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[on[pro!case[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]

    Step 37.

    Merge [play] and [on[pro!case[pro..][the..]][on[on..][what..]]]
    Label from [play] (head merging with a non-head)
    Stream:[[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro!case[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[play[play][on[pro!case[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]

    Step 38.

    Merge [v*!phi] and [play[play][on[pro..][on..]]]
    Label from [v*!phi] (head merging with a non-head)
    [pro!case[pro][the!case[the..][sonata..]]] values uPhi on [v*!phi]
    [v*] values acc case on [pro!case[pro][the!case[the..][sonata..]]]
    Stream:[[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]

    Step 39.

    Begin substream
    Stream:[[PRO!D],[d0!case!N]]
    Stack (⥥):
    SO:[]

    Step 40.

    Head of stream [PRO!D] is the initial SO
    Stream:[[d0!case!N]]
    Stack (⥥):
    SO:[PRO!D]

    Step 41.

    Merge [d0!case!N] and [PRO!D]
    Label from [d0!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [PRO!D]
    [d0!case!N] values D on [PRO!D]
    [PRO] values N on [d0!case!N]
    Stream:[]
    Stack (⥥):
    SO:[d0!case[d0][PRO]]
    End substream, SO [d0!case[d0][PRO]] re-inserted into main stream

    Step 42.

    Stream:[[d0!case[d0][PRO]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]

    Step 43.

    Merge [v*[v*][play[play..][on..]]] and [d0!case[d0][PRO]]
    Label from [v*[v*][play[play..][on..]]] (edge feature)
    Theta-mark [d0!case[d0][PRO]]
    Push [d0!case[d0][PRO]] (unvalued uF) onto stack
    Stream:[[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0!case[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[v*[d0!case[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]

    Step 44.

    Merge [Tinf!phi] and [v*[d0!case[d0..][PRO..]][v*[v*..][play..]]]
    Label from [Tinf!phi] (head merging with a non-head)
    [d0!case[d0][PRO]] values uPhi on [Tinf!phi]
    [Tinf] values nullCase case on [d0[d0][PRO]]
    Stream:[[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]

    Step 45.

    Internal merge selected
    Merge [Tinf[Tinf][v*[d0..][v*..]]] and [d0[d0][PRO]]
    Label from [Tinf[Tinf][v*[d0..][v*..]]] (edge feature)
    Stream:[[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]

    Step 46.

    Merge [c] and [Tinf[d0[d0..][PRO..]][Tinf[Tinf..][v*..]]]
    Label from [c] (head merging with a non-head)
    Stream:[[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    inactive([the!case[the][sonata]])
    [on[on][what!scope[what!scope][violin]]]
    SO:[c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]

    Step 47.

    Local Extent boundary at [c[c][Tinf[d0..][Tinf..]]]
    Inactive stack element inactive([the!case[the][sonata]]) found
    Stack element [on[on][what!scope[what..][violin..]]] with unvalued uF found
    New boundary (b) marker stacked
    Restack [on[on][what!scope[what..][violin..]]] onto stack
    Restack [the!case[the][sonata]] onto stack
    Stream:[[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]

    Step 48.

    Merge [easy] and [c[c][Tinf[d0..][Tinf..]]]
    Label from [easy] (head merging with a non-head)
    Stream:[[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]

    Step 49.

    Merge [vbe] and [easy[easy][c[c..][Tinf..]]]
    Label from [vbe] (head merging with a non-head)
    Stream:[[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the!case[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]

    Step 50.

    Internal merge selected
    Merge [vbe[vbe][easy[easy..][c..]]] and [the!case[the][sonata]]
    Label from [vbe[vbe][easy[easy..][c..]]] (edge feature)
    Preference: [vbe] edge merge from the stack (not stream)
    Stream:[[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[the!case[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the!case[the][sonata]]]
    SO:[vbe[the!case[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]

    Step 51.

    Merge [T!phi!v] and [vbe[the!case[the..][sonata..]][vbe[vbe..][easy..]]]
    Label from [T!phi!v] (head merging with a non-head)
    [the!case[the][sonata]] values uPhi on [T!phi!v]
    [T!v] values nom case on [the!case[the][sonata]]
    Relativized TOS search for iF(v) skipping [the[the][sonata]]
    Relativized TOS search for iF(v) skipping [on[on][what!scope[what..][violin..]]]
    [T!v] attracts [vbe[the[the..][sonata..]][vbe[vbe..][easy..]]]
    Merge [T[T][vbe[the..][vbe..]]] and [vbe]
    Label from [T[T][vbe[the..][vbe..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]

    Step 52.

    Internal merge selected
    Merge [T[vbe][T[T..][vbe..]]] and [the[the][sonata]]
    Label from [T[vbe][T[T..][vbe..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]]

    Step 53.

    Merge [cQ!wh!T] and [T[the[the..][sonata..]][T[vbe..][T..]]]
    Label from [cQ!wh!T] (head merging with a non-head)
    Relativized TOS search for iF(wh) skipping [the[the][sonata]]
    [on[on][what!scope[what..][violin..]]] values wh on [cQ!wh!T]
    [the[the][sonata]] values T on [cQ!T]
    Internal merge selected
    Merge [cQ[cQ][T[the..][T..]]] and [the[the][sonata]]
    Label from [cQ[cQ][T[the..][T..]]] (edge feature)
    [cQ] values uscope on [what!scope[what!scope][violin]]
    Merge [cQ[the[the..][sonata..]][cQ[cQ..][T..]]] and [on[on][what[what..][violin..]]]
    Label from [cQ[the[the..][sonata..]][cQ[cQ..][T..]]] (edge feature)
    Stream:[]
    Stack (⥥):[the[the][sonata]]
    [on[on][what[what][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[on[on][what[what][violin]]][cQ[the[the][sonata]][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]

    Step 54.

    Local Extent boundary at [cQ[on[on..][what..]][cQ[the..][cQ..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [the[the][sonata]]
    [on[on][what[what][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[on[on][what[what][violin]]][cQ[the[the][sonata]][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]
    Conceptual-Intensional (CI) Interface: [cQ] + edge [[on[on][what[what][violin]]],[the[the][sonata]]] constitutes an ill-formed interrogative!

    Backtrack

    Stream:[[cQ!wh!T]]
    Stack (⥥):[the[the][sonata]]
    [on[on][what!scope[what!scope][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what!scope[what!scope][violin]]]]]]]]]]]]]]]]
    re-doing step 53

    Step 55.

    [cQ!T] attracts [T[the[the..][sonata..]][T[vbe..][T..]]]
    Internal merge selected
    Merge [cQ[cQ][T[the..][T..]]] and [vbe]
    Label from [cQ[cQ][T[the..][T..]]] (edge feature)
    Merge [cQ[vbe][cQ[cQ..][T..]]] and [T]
    Label from [cQ[vbe][cQ[cQ..][T..]]] (edge feature)
    [cQ] values uscope on [what!scope[what!scope][violin]]
    Merge [cQ[T][cQ[vbe..][cQ..]]] and [on[on][what[what..][violin..]]]
    Label from [cQ[T][cQ[vbe..][cQ..]]] (edge feature)
    Stream:[]
    Stack (⥥):[the[the][sonata]]
    [on[on][what[what][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[on[on][what[what][violin]]][cQ[T][cQ[vbe][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]]

    Step 56.

    Local Extent boundary at [cQ[on[on..][what..]][cQ[T..][cQ..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [the[the][sonata]]
    [on[on][what[what][violin]]]
    b
    [d0[d0][PRO]]
    [pro[pro][the[the][sonata]]]
    SO:[cQ[on[on][what[what][violin]]][cQ[T][cQ[vbe][cQ[cQ][T[the[the][sonata]][T[vbe][T[T][vbe[the[the][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][on[pro[pro][the[the][sonata]]][on[on][what[what][violin]]]]]]]]]]]]]]]]]]]]
    CI: wh-question

    Parse:
    Spell-out:
    on what violin -s be the sonata easy to play (after morpheme realization)
    on what violin be -s the sonata easy to play (after affix-hop)
    on what violin be -s the sonata easy to play (after morpheme realization, stage 2)
    on what violin is the sonata easy to play  

    2 derivations found.
    Computational Cost:
    Merge: 46, Agree: 31, Unify: 0, Push: 8, Boundaries: 6, Inject: 4
    Non-TOS access: 6, Pop: 0, Depth cost: 126
    Step:01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
    Stack depth:000100012333000344445555555656100012333000344445555555656

    Back to top