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 does he2 think (that) Mary likes

    Derivation:
    Who1 does he2 think (that) Mary likes

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

    Step 1.

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

    Step 2.

    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:[[like],[v*!phi],[[mary!D],[d!case!N]],[T!phi],[ceQ!wh!T],[think],[vunerg],[[he!D],[d!case!N]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):
    SO:[q!case!scope[q!scope][who]]

    Step 3.

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

    Step 4.

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

    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],[ceQ!wh!T],[think],[vunerg],[[he!D],[d!case!N]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    SO:[v*[v*][like[like][q!scope[q!scope][who]]]]

    Step 9.

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

    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:[[ceQ!wh!T],[think],[vunerg],[[he!D],[d!case!N]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][mary]]
    [q!scope[q!scope][who]]
    SO:[T[T][v*[d[d][mary]][v*[v*][like[like][q!scope[q!scope][who]]]]]]

    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:[[ceQ!wh!T],[think],[vunerg],[[he!D],[d!case!N]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[d[d][mary]]
    [q!scope[q!scope][who]]
    SO:[T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][q!scope[q!scope][who]]]]]]]

    Step 12.

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

    Step 13.

    Local Extent boundary at [ceQ[q!scope[q..][who..]][ceQ[d..][ceQ..]]]
    Stack element [q!scope[q!scope][who]] with unvalued uF found
    New boundary (b) marker stacked
    Restack [q!scope[q!scope][who]] onto stack
    Stream:[[think],[vunerg],[[he!D],[d!case!N]],[T!phi!v],[cQ!wh!T]]
    Stack (⥥):[q!scope[q!scope][who]]
    b
    [d[d][mary]]
    SO:[ceQ[q!scope[q!scope][who]][ceQ[d[d][mary]][ceQ[ceQ][T[d[d][mary]][T[T][v*[d[d][mary]][v*[v*][like[like][q!scope[q!scope][who]]]]]]]]]]

    Step 14.

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

    Step 15.

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

    Step 16.

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

    Step 17.

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

    Step 18.

    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:[]
    Stack (⥥):
    SO:[d!case[d][he]]
    End substream, SO [d!case[d][he]] re-inserted into main stream

    Step 19.

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