Minimalist Machine Derivations

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

Examples:

  • Test cases from A Course in GB Syntax (Lasnik & Uriagereka,1988). collapse
    Example Instruction stream (clickable) Notes
    Strong Crossover
    Who1 thinks (that) Mary likes him1 [who, q, he, d, like, 'v*', [mary, d], 'T', c_eQ, think, v_unerg, 'T', c_Q] Doubling Constituent (DC) he-who object of embedded verb like.
    Two derivations.
    [Note: Need to allow c stack search to find (inactive) who.]
    Who1 thinks (that) Mary likes him2 [he, d, like, 'v*', [mary, d], 'T', c_e, think, v_unerg, [who, q], 'T', c_Q] No DC.
    He is object of embedded verb like.
    Who is subject of matrix verb think.
    Two derivations.
    *Who1 does he1 think Mary likes No DC analysis possible.
    Who1 does he2 think (that) Mary likes [who, q, like, 'v*', [mary, d], 'T', c_eQ, think, v_unerg, [he, d], 'T', c_Q] No DC.
    Who object of embedded verb like.
    He subject of matrix verb think.
    Two derivations.
  • Machine Parameters: expand

    Animation:
    Who1 thinks (that) Mary likes him2

    Derivation:
    Who1 thinks (that) Mary likes him2

    Stream:[[he!D],[d!case!N],[like],[v*!phi],[[mary!D],[d!case!N]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[]

    Step 1.

    Head of stream [he!D] is the initial SO
    Stream:[[d!case!N],[like],[v*!phi],[[mary!D],[d!case!N]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[he!D]

    Step 2.

    Merge [d!case!N] and [he!D]
    Label from [d!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,m])] from [he!D]
    [d!case!N] values D on [he!D]
    [he] values N on [d!case!N]
    Stream:[[like],[v*!phi],[[mary!D],[d!case!N]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[d!case[d][he]]

    Step 3.

    Merge [like] and [d!case[d][he]]
    Label from [like] (head merging with a non-head)
    Theta-mark [d!case[d][he]]
    Push [d!case[d][he]] (unvalued uF) onto stack
    Stream:[[v*!phi],[[mary!D],[d!case!N]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d!case[d][he]]
    SO:[like[like][d!case[d][he]]]

    Step 4.

    Merge [v*!phi] and [like[like][d!case[d..][he..]]]
    Label from [v*!phi] (head merging with a non-head)
    [d!case[d][he]] values uPhi on [v*!phi]
    [v*] values acc case on [d!case[d][he]]
    Stream:[[[mary!D],[d!case!N]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][he]]
    SO:[v*[v*][like[like][d[d][he]]]]

    Step 5.

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

    Step 6.

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

    Step 7.

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

    Step 8.

    Stream:[[d!case[d][mary]],[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][he]]
    SO:[v*[v*][like[like][d[d][he]]]]

    Step 9.

    Merge [v*[v*][like[like..][d..]]] and [d!case[d][mary]]
    Label from [v*[v*][like[like..][d..]]] (edge feature)
    Theta-mark [d!case[d][mary]]
    Push [d!case[d][mary]] (unvalued uF) onto stack
    Stream:[[T!phi],[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d!case[d][mary]]
    [d[d][he]]
    SO:[v*[d!case[d][mary]][v*[v*][like[like][d[d][he]]]]]

    Step 10.

    Merge [T!phi] and [v*[d!case[d..][mary..]][v*[v*..][like..]]]
    Label from [T!phi] (head merging with a non-head)
    [d!case[d][mary]] values uPhi on [T!phi]
    [T] values nom case on [d!case[d][mary]]
    Stream:[[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][mary]]
    [d[d][he]]
    SO:[T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]

    Step 11.

    Internal merge selected
    Merge [T[T][v*[d..][v*..]]] and [d[d][mary]]
    Label from [T[T][v*[d..][v*..]]] (edge feature)
    Stream:[[ce!T],[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][mary]]
    [d[d][he]]
    SO:[T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]

    Step 12.

    Merge [ce!T] and [T[d[d..][mary..]][T[T..][v*..]]]
    Label from [ce!T] (head merging with a non-head)
    [d[d][mary]] values T on [ce!T]
    Internal merge selected
    Merge [ce[ce][T[d..][T..]]] and [d[d][mary]]
    Label from [ce[ce][T[d..][T..]]] (edge feature)
    Stream:[[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][mary]]
    [d[d][he]]
    SO:[ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]

    Step 13.

    Local Extent boundary at [ce[d[d..][mary..]][ce[ce..][T..]]]
    New boundary (b) marker stacked
    Stream:[[think],[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):b
    [d[d][mary]]
    [d[d][he]]
    SO:[ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]

    Step 14.

    Merge [think] and [ce[d[d..][mary..]][ce[ce..][T..]]]
    Label from [think] (head merging with a non-head)
    Theta-mark [ce[d[d..][mary..]][ce[ce..][T..]]]
    Stream:[[vunerg],[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):b
    [d[d][mary]]
    [d[d][he]]
    SO:[think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]

    Step 15.

    Merge [vunerg] and [think[think][ce[d..][ce..]]]
    Label from [vunerg] (head merging with a non-head)
    Stream:[[[who!D],[q!case!N!scope]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):b
    [d[d][mary]]
    [d[d][he]]
    SO:[vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]

    Step 16.

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

    Step 17.

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

    Step 18.

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

    Stream:[[q!case!scope[q!scope][who]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):b
    [d[d][mary]]
    [d[d][he]]
    SO:[vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]

    Step 20.

    Merge [vunerg[vunerg][think[think..][ce..]]] and [q!case!scope[q!scope][who]]
    Label from [vunerg[vunerg][think[think..][ce..]]] (edge feature)
    Theta-mark [q!case!scope[q!scope][who]]
    Push [q!case!scope[q!scope][who]] (unvalued uF) onto stack
    Stream:[[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!case!scope[q!scope][who]]
    b
    [d[d][mary]]
    [d[d][he]]
    SO:[vunerg[q!case!scope[q!scope][who]][vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]]

    Step 21.

    Merge [T!phi!v] and [vunerg[q!case!scope[q..][who..]][vunerg[vunerg..][think..]]]
    Label from [T!phi!v] (head merging with a non-head)
    [q!case!scope[q!scope][who]] values uPhi on [T!phi!v]
    [T!v] values nom case on [q!case!scope[q!scope][who]]
    Relativized TOS search for iF(v) skipping [q!scope[q!scope][who]]
    [T!v] attracts [vunerg[q!scope[q..][who..]][vunerg[vunerg..][think..]]]
    Merge [T[T][vunerg[q..][vunerg..]]] and [vunerg]
    Label from [T[T][vunerg[q..][vunerg..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    b
    [d[d][mary]]
    [d[d][he]]
    SO:[T[vunerg][T[T][vunerg[q!scope[q!scope][who]][vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]]]]

    Step 22.

    Internal merge selected
    Merge [T[vunerg][T[T..][vunerg..]]] and [q!scope[q!scope][who]]
    Label from [T[vunerg][T[T..][vunerg..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    b
    [d[d][mary]]
    [d[d][he]]
    SO:[T[q!scope[q!scope][who]][T[vunerg][T[T][vunerg[q!scope[q!scope][who]][vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]]]]]

    Step 23.

    Merge [cQ!wh!T] and [T[q!scope[q..][who..]][T[vunerg..][T..]]]
    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][T[q..][T..]]] and [q[q][who]]
    Label from [cQ[cQ][T[q..][T..]]] (edge feature)
    Stream:[]
    Stack (⥥):[q[q][who]]
    b
    [d[d][mary]]
    [d[d][he]]
    SO:[cQ[q[q][who]][cQ[cQ][T[q[q][who]][T[vunerg][T[T][vunerg[q[q][who]][vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]]]]]]]

    Step 24.

    Local Extent boundary at [cQ[q[q..][who..]][cQ[cQ..][T..]]]
    New boundary (b) marker stacked
    Stream:[]
    Stack (⥥):b
    [q[q][who]]
    b
    [d[d][mary]]
    [d[d][he]]
    SO:[cQ[q[q][who]][cQ[cQ][T[q[q][who]][T[vunerg][T[T][vunerg[q[q][who]][vunerg[vunerg][think[think][ce[d[d][mary]][ce[ce][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][d[d][he]]]]]]]]]]]]]]]]]
    CI: wh-question

    Parse: