Minimalist Machine Derivations

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

Examples:

  • Modeling of Coreference Relations in Multi-Object Constructions. (Fong & Ginsburg, 2012b). collapse
    Example Instruction stream (clickable) Notes
    (2)(a) I showed John1 himself1 in the mirror [john, d, he, self, 'G', [mirror, the, in], show, 'v*', [i, d], 'Tpast', c] Determiner self heads a Local Extent (LE).
    Doubling constituent (DC) self-he-John triggers stacking of John.
    TOS John is merged to the edge of G.
    (2)(b) I showed John1 to himself1 in the mirror [john, d, he, self, to:p, [mirror, the, in], show, 'v*', [i, d], 'Tpast', c] (Same as (2a) but (2b) uses the lexical counterpart to G.)
    (3)(b) *I showed himself1 John1 in the mirror [john, d, he, self, 'G', [mirror, the, in], show, 'v*', [i, d], 'Tpast', c] Cannot be derived.
    DC is he-John, cannot be John-he
    (John-he would result in stacking he and deriving Condition C violations.)
    Therefore the stream is the same as for (2a).
    (16)(a) *I showed John1 him1 in the mirror [john, d, he, d, 'G', [mirror, the, in], show, 'v*', [i, d], 'Tpast', c] Does not converge.
    DC he-John.
    John not on the stack, not available for G theta-merge.
    (No LE boundary, no stacking triggered.)
    (16)(b) *I showed John1 to him1 in the mirror [john, d, he, d, to:p, [mirror, the, in], show, 'v*', [i, d], 'Tpast', c] Same analysis as in (16a).
    (4) Pictures of himself1 worry John1 [john, d, he, self, of, pictures, d, caus_p, worry, caus_v, 'T', c] Determiner self heads a LE.
    Doubling constituent (DC) self-he-John triggers stacking of John.
    CAUSp does not assign Case to the DC object.
    TOS John theta-merges to the edge of CAUSp.
    CAUSv values ACC Case for John and also heads a LE.
    At CAUSvP, restacking of pictures of himself occurs.
    [Note: John is not subject to restacking.
    Stack elements introduced by self are subject to the condition that they may only be stacked once, i.e. must be "used" (merged) in the current LE.]

    T picks up TOS pictures of himself.
    [Note: A copy of John inside pictures of himself is raised to edge of T. However,John must be spelled out at edge of CAUSp.]
    (21) Pictures of him1 worry John1 [john, d, he, d, of, pictures, d, caus_p, worry, caus_v, 'T', c] Does not converge.
    DC he-John.
    John not on the stack, not available for theta-merge to CAUSp's edge.
    (No LE boundary, no stacking triggered.)
  • Machine Parameters: expand

    Animation:
    (2)(b) I showed John1 to himself1 in the mirror

    Derivation:
    (2)(b) I showed John1 to himself1 in the mirror

    Stream:[[john!D],[d!case!N],[he!D],[self!case!N],[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):
    SO:[]

    Step 1.

    Head of stream [john!D] is the initial SO
    Stream:[[d!case!N],[he!D],[self!case!N],[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    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:[[he!D],[self!case!N],[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):
    SO:[d!case[d][john]]
    Doubling Constitutent (DC) merge

    Step 3.

    Merge [he!D] and [d!case[d][john]]
    Label from [he!D] (head merging with a non-head)
    Push [d!case[d][john]] (unvalued uF) onto stack
    Stream:[[self!case!N],[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):inactive([d!case[d][john]])
    SO:[he!D[he!D][d!case[d][john]]]

    Step 4.

    Merge [self!case!N] and [he!D[he!D][d!case[d..][john..]]]
    Label from [self!case!N] (head merging with a non-head)
    Inherit interpretable feature(s) [f(phi,[3,sg,m])] from [he!D[he!D][d!case[d..][john..]]]
    [self!case!N] values D on [he!D[he!D][d!case[d..][john..]]]
    [he[he][d!case[d..][john..]]] values N on [self!case!N]
    Stream:[[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):inactive([d!case[d][john]])
    SO:[self!case[self][he[he][d!case[d][john]]]]

    Step 5.

    Local Extent boundary at [self!case[self][he[he..][d..]]]
    Inactive stack element inactive([d!case[d][john]]) found
    New boundary (b) marker stacked
    Restack [d!case[d][john]] onto stack
    Stream:[[to],[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):once([d!case[d][john]])
    b
    SO:[self!case[self][he[he][d!case[d][john]]]]

    Step 6.

    Merge [to] and [self!case[self][he[he..][d..]]]
    Label from [to] (head merging with a non-head)
    Theta-mark [self!case[self][he[he..][d..]]]
    [to] values obq case on [self!case[self][he[he..][d..]]]
    Stream:[[[mirror!D],[the!case!N],[in]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):once([d!case[d][john]])
    b
    SO:[to[to][self[self][he[he][d!case[d][john]]]]]

    Step 7.

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

    Step 8.

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

    Step 9.

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

    Step 10.

    Merge [in] and [the!case[the][mirror]]
    Label from [in] (head merging with a non-head)
    Theta-mark [the!case[the][mirror]]
    [in] values obq case on [the!case[the][mirror]]
    Stream:[]
    Stack (⥥):
    SO:[in[in][the[the][mirror]]]
    End substream, SO [in[in][the[the][mirror]]] re-inserted into main stream

    Step 11.

    Stream:[[in[in][the[the][mirror]]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):once([d!case[d][john]])
    b
    SO:[to[to][self[self][he[he][d!case[d][john]]]]]

    Step 12.

    Internal merge selected
    Merge [to[to][self[self..][he..]]] and [d!case[d][john]]
    Label from [to[to][self[self..][he..]]] (edge feature)
    Theta-mark [d!case[d][john]]
    Stream:[[in[in][the[the][mirror]]],[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):[d!case[d][john]]
    b
    SO:[to[d!case[d][john]][to[to][self[self][he[he][d[d][john]]]]]]

    Step 13.

    Pair-merge [in[in][the[the][mirror]]] and [to[d!case[d][john]][to[to][self[self][he[he][d[d][john]]]]]]
    Stream:[[show],[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):[d!case[d][john]]
    b
    SO:<[to[d!case[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>

    Step 14.

    Merge [show] and <[to[d!case[d..][john..]][to[to..][self..]]],[in[in][the[the..][mirror..]]]>
    Label from [show] (head merging with a non-head)
    Stream:[[v*!phi],[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):[d!case[d][john]]
    b
    SO:[show[show]<[to[d!case[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]

    Step 15.

    Merge [v*!phi] and [show[show]<[to[d..][to..]],[in[in..][the..]]>]
    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:[[[i!D],[d!case!N]],[Tpast!phi],[c]]
    Stack (⥥):[d[d][john]]
    b
    SO:[v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]

    Step 16.

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

    Step 17.

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

    Step 18.

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

    Step 19.

    Stream:[[d!case[d][i]],[Tpast!phi],[c]]
    Stack (⥥):[d[d][john]]
    b
    SO:[v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]

    Step 20.

    Merge [v*[v*][show[show..]<[to..],[in..]>]] and [d!case[d][i]]
    Label from [v*[v*][show[show..]<[to..],[in..]>]] (edge feature)
    Theta-mark [d!case[d][i]]
    Push [d!case[d][i]] (unvalued uF) onto stack
    Stream:[[Tpast!phi],[c]]
    Stack (⥥):[d!case[d][i]]
    [d[d][john]]
    b
    SO:[v*[d!case[d][i]][v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]]

    Step 21.

    Merge [Tpast!phi] and [v*[d!case[d..][i..]][v*[v*..][show..]]]
    Label from [Tpast!phi] (head merging with a non-head)
    [d!case[d][i]] values uPhi on [Tpast!phi]
    [Tpast] values nom case on [d!case[d][i]]
    Stream:[[c]]
    Stack (⥥):[d[d][i]]
    [d[d][john]]
    b
    SO:[Tpast[Tpast][v*[d[d][i]][v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]]]

    Step 22.

    Internal merge selected
    Merge [Tpast[Tpast][v*[d..][v*..]]] and [d[d][i]]
    Label from [Tpast[Tpast][v*[d..][v*..]]] (edge feature)
    Stream:[[c]]
    Stack (⥥):[d[d][i]]
    [d[d][john]]
    b
    SO:[Tpast[d[d][i]][Tpast[Tpast][v*[d[d][i]][v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]]]]

    Step 23.

    Merge [c] and [Tpast[d[d..][i..]][Tpast[Tpast..][v*..]]]
    Label from [c] (head merging with a non-head)
    Stream:[]
    Stack (⥥):[d[d][i]]
    [d[d][john]]
    b
    SO:[c[c][Tpast[d[d][i]][Tpast[Tpast][v*[d[d][i]][v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]]]]]

    Step 24.

    Local Extent boundary at [c[c][Tpast[d..][Tpast..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [d[d][i]]
    [d[d][john]]
    b
    SO:[c[c][Tpast[d[d][i]][Tpast[Tpast][v*[d[d][i]][v*[v*][show[show]<[to[d[d][john]][to[to][self[self][he[he][d[d][john]]]]]],[in[in][the[the][mirror]]]>]]]]]]

    Parse:
    Spell-out:
    i -ed(sg) show -acc john to -self -obq he in the mirror (after morpheme realization)
    i show -ed(sg) john -acc to he -obq -self in the mirror (after affix-hop)
    i show -ed(sg) john -acc to he -obq -self in the mirror (after morpheme realization, stage 2)
    i showed john to himself in the mirror  

    One derivation found.
    Computational Cost:
    Merge: 15, Agree: 14, Unify: 0, Push: 2, Boundaries: 2, Inject: 1
    Non-TOS access: 0, Pop: 0, Depth cost: 19
    Step:0123456789101112131415161718192021222324
    Stack depth:0001122000022222000233334

    Back to top