Minimalist Machine Derivations

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

Examples:

  • T-to-C Movement: Causes and Consequences. Pesetsky & Torrego (2001). collapse
    Example Instruction stream (clickable) Notes
    (5a) What did Mary buy?
    (5b) *What Mary bought?
    [what:n, q, buy, 'v*', [mary, d], 'Tpast', c_Q] (5a) T to matrix C => do-support.
    (5b) Mary to edge C blocked (FI: exclamatory).
    (5c) *Who did buy the book?
    (5d) Who bought the book?
    [book, the, buy, 'v*', [who, q], 'Tpast', c_Q] No do-support triggered.
    (5c) ruled out by economy.
    (23) What will Mary buy? [what:n, q, buy, 'v*', [mary, d], will, 'T', c_Q] Auxilary will raises to edge of C.
    (24) What did John say that Mary will buy? [what:n, q, buy, 'v*', [mary, d], will, 'T', c_eQ, say, v_unerg, [john, d], 'Tpast', c_Q] Two derivations: (24) T to C realized as that.
    Or that can be omitted. c_eQ hosts wh-movement only.
    (28a) Who did John say will buy the book?
    (28b) *Who did John say that will buy the book?
    [book, the, buy, 'v*', [who, q], will, 'T', c_eQ, say, v_unerg, [john, d], 'Tpast', c_Q] That-trace effect.
    (28b) ruled out by economy.
    (31) Mary thinks that Sue will buy the book
    (33) Mary thinks Sue will buy the book
    [book, the, buy, 'v*', [sue, d], will, 'T', c_e, think, v_unerg, [mary, d], 'T', c] Two derivations: (31) T to embedded C (c_e) realized as that. (33) c_e attracts subject Sue
    (43a) *What a silly book did Mary buy!
    (43b) What a silly book Mary bought!
    [book, silly, a, what:d, q, buy, 'v*', [mary, d], 'Tpast', c_Q] (43a) T to C blocked by CI: exclamative.
    (43b) Mary in edge of C.
    (47a) Bill asked what Mary bought
    (47b) *Bill asked what did Mary buy
    (47c) *Bill asked what that Mary bought
    [what:n, q, buy, 'v*', [mary, d], 'Tpast', c_Qe, ask, v_unerg, [bill, d], 'Tpast', c] Interrogative embedded C does not support T displacement.
    Note: same parse derived twice.
    Extra test cases
    Who was John meeting? [who, q, meet, 'v*', [john, d], prog, 'v~', 'Tpast', c_Q] Object wh-movement. Auxiliary be pied-piping.
    Who was meeting John? [john, d, meet, 'v*', [who, q], prog, 'v~', 'Tpast', c_Q] Subject wh-movement. Auxiliary be pied-piping.
    *Who do you think that saw John?
    Who do you think saw John?
    [john, d, see, 'v*', [who, q], 'Tpast', c_eQ, think, 'v_unerg', [you, d], 'T', c_Q] That-trace effect.
    Economy: no T to C.
    Who do you think that John saw?
    Who do you think John saw?
    [who, q, see, 'v*', [john, d], 'Tpast', c_eQ, think, 'v_unerg', [you, d], 'T', c_Q] Two derivations.
    No that-trace effect with object.
  • Machine Parameters: expand

    Animation:
    Who was meeting John?

    Derivation:
    Who was meeting John?

    Stream:[[john!D],[d!case!N],[meet],[v*!phi],[[who!D],[q!case!N!scope]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[]

    Step 1.

    Head of stream [john!D] is the initial SO
    Stream:[[d!case!N],[meet],[v*!phi],[[who!D],[q!case!N!scope]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[john!D]

    Step 2.

    Merge [d!case!N] and [john!D]
    Label from [d!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [john!D]
    [d!case!N] values D on [john!D]
    [john] values N on [d!case!N]
    Stream:[[meet],[v*!phi],[[who!D],[q!case!N!scope]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[d!case[d][john]]

    Step 3.

    Merge [meet] and [d!case[d][john]]
    Label from [meet] (head merging with a non-head)
    Theta-mark [d!case[d][john]]
    Push [d!case[d][john]] (unvalued uF) onto stack
    Stream:[[v*!phi],[[who!D],[q!case!N!scope]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[d!case[d][john]]
    SO:[meet[meet][d!case[d][john]]]

    Step 4.

    Merge [v*!phi] and [meet[meet][d!case[d..][john..]]]
    Label from [v*!phi] (head merging with a non-head)
    [d!case[d][john]] values uPhi on [v*!phi]
    [v*] values acc case on [d!case[d][john]]
    Stream:[[[who!D],[q!case!N!scope]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][john]]
    SO:[v*[v*][meet[meet][d[d][john]]]]

    Step 5.

    Begin substream
    Stream:[[who!D],[q!case!N!scope]]
    Stack (⥥):
    SO:[]

    Step 6.

    Head of stream [who!D] is the initial SO
    Stream:[[q!case!N!scope]]
    Stack (⥥):
    SO:[who!D]

    Step 7.

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

    Step 8.

    Stream:[[q!case!scope[q!scope][who]],[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][john]]
    SO:[v*[v*][meet[meet][d[d][john]]]]

    Step 9.

    Merge [v*[v*][meet[meet..][d..]]] and [q!case!scope[q!scope][who]]
    Label from [v*[v*][meet[meet..][d..]]] (edge feature)
    Theta-mark [q!case!scope[q!scope][who]]
    Push [q!case!scope[q!scope][who]] (unvalued uF) onto stack
    Stream:[[prog],[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    [d[d][john]]
    SO:[v*[q!case!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]

    Step 10.

    Merge [prog] and [v*[q!case!scope[q..][who..]][v*[v*..][meet..]]]
    Label from [prog] (head merging with a non-head)
    Stream:[[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    [d[d][john]]
    SO:[prog[prog][v*[q!case!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]

    Step 11.

    Internal merge selected
    Merge [prog[prog][v*[q..][v*..]]] and [q!case!scope[q!scope][who]]
    Label from [prog[prog][v*[q..][v*..]]] (edge feature)
    Stream:[[v~],[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    [d[d][john]]
    SO:[prog[q!case!scope[q!scope][who]][prog[prog][v*[q!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]]

    Step 12.

    Merge [v~] and [prog[q!case!scope[q..][who..]][prog[prog..][v*..]]]
    Label from [v~] (head merging with a non-head)
    [v~] checks theta on [q!case!scope[q!scope][who]]
    Stream:[[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    [d[d][john]]
    SO:[v~[v~][prog[q!case!scope[q!scope][who]][prog[prog][v*[q!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]]]

    Step 13.

    Internal merge selected
    Merge [v~[v~][prog[q..][prog..]]] and [q!case!scope[q!scope][who]]
    Label from [v~[v~][prog[q..][prog..]]] (edge feature)
    Stream:[[Tpast!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    [d[d][john]]
    SO:[v~[q!case!scope[q!scope][who]][v~[v~][prog[q!scope[q!scope][who]][prog[prog][v*[q!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]]]]

    Step 14.

    Merge [Tpast!phi!v] and [v~[q!case!scope[q..][who..]][v~[v~..][prog..]]]
    Label from [Tpast!phi!v] (head merging with a non-head)
    [q!case!scope[q!scope][who]] values uPhi on [Tpast!phi!v]
    [Tpast!v] values nom case on [q!case!scope[q!scope][who]]
    Relativized TOS search for iF(v) skipping [q!scope[q!scope][who]]
    Relativized TOS search for iF(v) skipping [d[d][john]]
    [Tpast!v] attracts [v~[q!scope[q..][who..]][v~[v~..][prog..]]]
    Merge [Tpast[Tpast][v~[q..][v~..]]] and [v~]
    Label from [Tpast[Tpast][v~[q..][v~..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    [d[d][john]]
    SO:[Tpast[v~][Tpast[Tpast][v~[q!scope[q!scope][who]][v~[v~][prog[q!scope[q!scope][who]][prog[prog][v*[q!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]]]]]]

    Step 15.

    Internal merge selected
    Merge [Tpast[v~][Tpast[Tpast..][v~..]]] and [q!scope[q!scope][who]]
    Label from [Tpast[v~][Tpast[Tpast..][v~..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    [d[d][john]]
    SO:[Tpast[q!scope[q!scope][who]][Tpast[v~][Tpast[Tpast][v~[q!scope[q!scope][who]][v~[v~][prog[q!scope[q!scope][who]][prog[prog][v*[q!scope[q!scope][who]][v*[v*][meet[meet][d[d][john]]]]]]]]]]]]

    Step 16.

    Merge [cQ!wh!T] and [Tpast[q!scope[q..][who..]][Tpast[v~..][Tpast..]]]
    Label from [cQ!wh!T] (head merging with a non-head)
    [q!scope[q!scope][who]] values wh on [cQ!wh!T]
    [q!scope[q!scope][who]] values T on [cQ!T] (economy)
    Internal merge selected
    [cQ] values uscope on [q!scope[q!scope][who]]
    Merge [cQ[cQ][Tpast[q..][Tpast..]]] and [q[q][who]]
    Label from [cQ[cQ][Tpast[q..][Tpast..]]] (edge feature)
    Stream:[]
    Stack (⥥):[q[q][who]]
    [d[d][john]]
    SO:[cQ[q[q][who]][cQ[cQ][Tpast[q[q][who]][Tpast[v~][Tpast[Tpast][v~[q[q][who]][v~[v~][prog[q[q][who]][prog[prog][v*[q[q][who]][v*[v*][meet[meet][d[d][john]]]]]]]]]]]]]]

    Step 17.

    Local Extent boundary at [cQ[q[q..][who..]][cQ[cQ..][Tpast..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [q[q][who]]
    [d[d][john]]
    SO:[cQ[q[q][who]][cQ[cQ][Tpast[q[q][who]][Tpast[v~][Tpast[Tpast][v~[q[q][who]][v~[v~][prog[q[q][who]][prog[prog][v*[q[q][who]][v*[v*][meet[meet][d[d][john]]]]]]]]]]]]]]
    CI: wh-question

    Parse:
    Spell-out:
    who -ed(sg) be -ing meet -acc john (after morpheme realization)
    who be -ed(sg) meet -ing john -acc (after affix-hop)
    who be -ed(sg) meet -ing john -acc (after morpheme realization, stage 2)
    who was meeting john  

    One derivation found.
    Computational Cost:
    Merge: 14, Agree: 12, Unify: 0, Push: 2, Boundaries: 1, Inject: 0
    Non-TOS access: 2, Pop: 0, Depth cost: 10
    Step:01234567891011121314151617
    Stack depth:000110001222222223

    Back to top