Minimalist Machine Derivations

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

Examples:

  • Tough-Constructions. A Case-theoretic approach. collapse
    Example Instruction stream (clickable) Notes
    (1) John is easy to please [john, d, please, 'v_unerg', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] John (with unvalued uCase) is stacked after merge with please.
    vunerg doesn't assign Case to John.
    Tinf assigns null Case to PRO.
    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, on_nc, [sonata, the], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] onnc (no case) selects for the violin but does not assign it Case.
    At the Local Extent (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, on_nc, [sonata, what:d], play, 'v*', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c_Q] Does not converge.
    onnc (no case) selects for the violin but does not assign it Case.
    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], play, 'v_unerg', ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c] on assigns Case to this violin.
    vunerg doesn't assign Case to 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], play, v_unerg, ['PRO', d0], 'Tinf', c, easy, v_be, 'T', c_Q] on assigns Case to this violin.
    vunerg doesn't assign Case to the sonata.
    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, please, v_unerg, ['PRO', d0], 'Tinf', c, tough, v_be, 'T', c] (Same as (1).)
    Linguists (with unvalued uCase) is stacked after merge with please.
    vunerg doesn't assign Case to linguists.
    Tinf assigns null Case to PRO.
    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], put, v_unerg, ['PRO', d0], 'Tinf', c, easy, 'v_be', 'T', c] (Same as (4).)
    on assigns Case to the table.
    vunerg doesn't assign Case to 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], put, v_unerg, ['PRO', d0], 'Tinf', c, easy, 'v_be', 'T', c_Q] (Same as (5).)
    on assigns Case to what table.
    vunerg doesn't assign Case to 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:
    (3) *What sonata is the violin easy to play on?

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

    Stream:[[violin!D],[the!case!N],[onnc],[[sonata!D],[what!case!N!scope]],[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:[[the!case!N],[onnc],[[sonata!D],[what!case!N!scope]],[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 [the!case!N] and [violin!D]
    Label from [the!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [violin!D]
    [the!case!N] values D on [violin!D]
    [violin] values N on [the!case!N]
    Stream:[[onnc],[[sonata!D],[what!case!N!scope]],[play],[v*!phi],[[PRO!D],[d0!case!N]],[Tinf!phi],[c],[easy],[vbe],[T!phi!v],[cQ!wh!T]]
    Stack (тее):
    SO:[the!case[the][violin]]

    Step 3.

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

    Step 4.

    Begin substream
    Stream:[[sonata!D],[what!case!N!scope]]
    Stack (тее):
    SO:[]

    Step 5.

    Head of stream [sonata!D] is the initial SO
    Stream:[[what!case!N!scope]]
    Stack (тее):
    SO:[sonata!D]

    Step 6.

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

    Step 7.

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

    Step 8.

    Merge [onnc[onnc][the!case[the..][violin..]]] and [what!case!scope[what!scope][sonata]]
    Label from [onnc[onnc][the!case[the..][violin..]]] (edge feature)
    Theta-mark [what!case!scope[what!scope][sonata]]
    Push [what!case!scope[what!scope][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 (тее):[what!case!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[onnc[what!case!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]

    Step 9.

    Merge [play] and [onnc[what!case!scope[what..][sonata..]][onnc[onnc..][the..]]]
    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 (тее):[what!case!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[play[play][onnc[what!case!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]

    Step 10.

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

    Step 11.

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

    Step 12.

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

    Step 13.

    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 14.

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

    Step 15.

    Merge [v*[v*][play[play..][onnc..]]] and [d0!case[d0][PRO]]
    Label from [v*[v*][play[play..][onnc..]]] (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]]
    [what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[v*[d0!case[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]

    Step 16.

    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]]
    [what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]

    Step 17.

    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]]
    [what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]

    Step 18.

    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]]
    [what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    SO:[c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]]

    Step 19.

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

    Step 20.

    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 (тее):[what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    b
    [d0[d0][PRO]]
    SO:[easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]]]

    Step 21.

    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 (тее):[what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    b
    [d0[d0][PRO]]
    SO:[vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]]]]

    Step 22.

    Internal merge selected
    Merge [vbe[vbe][easy[easy..][c..]]] and [what!scope[what!scope][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 (тее):[what!scope[what!scope][sonata]]
    [the!case[the][violin]]
    b
    [d0[d0][PRO]]
    SO:[vbe[what!scope[what!scope][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]]]]]

    Step 23.

    Merge [T!phi!v] and [vbe[what!scope[what..][sonata..]][vbe[vbe..][easy..]]]
    Label from [T!phi!v] (head merging with a non-head)
    [what!scope[what!scope][sonata]] values uPhi on [T!phi!v]
    [T!v] values nom case on [what!scope[what!scope][sonata]]
    Fail: goal [what!scope[what!scope][sonata]] has acc Case
    Merge stream T [T!phi!v] with SO [vbe[what!scope[what!scope][sonata]][vbe[vbe][easy[easy][c[c][Tinf[d0[d0][PRO]][Tinf[Tinf][v*[d0[d0][PRO]][v*[v*][play[play][onnc[what!scope[what!scope][sonata]][onnc[onnc][the!case[the][violin]]]]]]]]]]]]] failed
    No possible action for stream [[T!phi!v],[cQ!wh!T]] and [vbe[what!scope[what..][sonata..]][vbe[vbe..][easy..]]]
    No derivations found.
    Computational Cost:
    Merge: 15, Agree: 12, Unify: 0, Push: 3, Boundaries: 1, Inject: 2
    Non-TOS access: 0, Pop: 0, Depth cost: 24
    Step:012345678910111213141516171819202122
    Stack depth:00010001222000233334444

    Back to top