Minimalist Machine Derivations

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

Examples:

  • On Phases (Chomsky, 2008): collapse
    Example Instruction stream (clickable) Notes
    (5)(ii) Of which car did they find the driver?
    Which car did they find the driver of?
    [car, which, of, driver, the, find, 'v*', [they, d], 'Tpast', c_Q] Optional pied-piping: two derivations.
    (6)(ii) *Of which car did the driver cause a scandal? [scandal, a, cause, 'v*', [car, which, of, driver, the],'Tpast', c_Q] Subject island.
    Crashes as cQ cannot access wh-DP which car. wh-DP on the stack is blocked by stack entry the driver of which car.
    Constraint: if [A .. [B ..]] is pushed onto the stack, and [B ..] from a substream is already on the stack, A subsumes B and renders B unavailable on the stack.
    [Implementation: a subconstituent check is performed whenever something is pushed on the stack. B is removed from the stack.]
    (7)(ii) Of which car was the driver awarded a prize?
    Which car was the driver of awarded a prize?
    [car, which, of, driver, the, [prize, a, 'G2'], award, prt, 'v~', 'Tpast', c_Q] Chomsky: Parallel extraction to edge of cQ and T.
    Implementation: assume pair-merge for the driver of which car (object) and a prize (adjunct).
    Assume also that the adjunct doesn't pied-pipe here.
    [Normally pair-merged SOs do move together. G2 has feature no_pied_pipe, which blocks it from being placed on the stack.]
    cQ targets of which car
    T targets TOS the driver of which car.
    Optional pied-piping: two derivations.
  • Machine Parameters: expand

    Animation:
    (6)(ii) *Of which car did the driver cause a scandal?

    Derivation:
    (6)(ii) *Of which car did the driver cause a scandal?

    Stream:[[scandal!D],[a!case!N],[cause],[v*!phi],[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):
    SO:[]

    Step 1.

    Head of stream [scandal!D] is the initial SO
    Stream:[[a!case!N],[cause],[v*!phi],[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):
    SO:[scandal!D]

    Step 2.

    Merge [a!case!N] and [scandal!D]
    Label from [a!case!N] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [scandal!D]
    [a!case!N] values D on [scandal!D]
    [scandal] values N on [a!case!N]
    Stream:[[cause],[v*!phi],[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):
    SO:[a!case[a][scandal]]

    Step 3.

    Merge [cause] and [a!case[a][scandal]]
    Label from [cause] (head merging with a non-head)
    Theta-mark [a!case[a][scandal]]
    Push [a!case[a][scandal]] (unvalued uF) onto stack
    Stream:[[v*!phi],[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[a!case[a][scandal]]
    SO:[cause[cause][a!case[a][scandal]]]

    Step 4.

    Merge [v*!phi] and [cause[cause][a!case[a..][scandal..]]]
    Label from [v*!phi] (head merging with a non-head)
    [a!case[a][scandal]] values uPhi on [v*!phi]
    [v*] values acc case on [a!case[a][scandal]]
    Stream:[[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[a[a][scandal]]
    SO:[v*[v*][cause[cause][a[a][scandal]]]]

    Step 5.

    Begin substream
    Stream:[[car!D],[which!case!N!scope],[of],[driver!D],[the!case!N]]
    Stack (тее):
    SO:[]

    Step 6.

    Head of stream [car!D] is the initial SO
    Stream:[[which!case!N!scope],[of],[driver!D],[the!case!N]]
    Stack (тее):
    SO:[car!D]

    Step 7.

    Merge [which!case!N!scope] and [car!D]
    Label from [which!case!N!scope] (head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [car!D]
    [which!case!N!scope] values D on [car!D]
    [car] values N on [which!case!N!scope]
    Stream:[[of],[driver!D],[the!case!N]]
    Stack (тее):
    SO:[which!case!scope[which!scope][car]]

    Step 8.

    Merge [of] and [which!case!scope[which!scope][car]]
    Label from [of] (head merging with a non-head)
    Theta-mark [which!case!scope[which!scope][car]]
    [of] values obq case on [which!case!scope[which!scope][car]]
    Push [which!scope[which!scope][car]] (unvalued uF) onto stack
    Stream:[[driver!D],[the!case!N]]
    Stack (тее):[which!scope[which!scope][car]]
    SO:[of[of][which!scope[which!scope][car]]]

    Step 9.

    Merge [driver!D] and [of[of][which!scope[which..][car..]]]
    Label from [driver!D] (head merging with a non-head)
    Stream:[[the!case!N]]
    Stack (тее):[which!scope[which!scope][car]]
    SO:[driver!D[driver!D][of[of][which!scope[which!scope][car]]]]

    Step 10.

    Merge [the!case!N] and [driver!D[driver!D][of[of..][which..]]]
    Label from [the!case!N] (head merging with a non-head)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [driver!D[driver!D][of[of..][which..]]]
    [the!case!N] values D on [driver!D[driver!D][of[of..][which..]]]
    [driver[driver][of[of..][which..]]] values N on [the!case!N]
    Stream:[]
    Stack (тее):[which!scope[which!scope][car]]
    SO:[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    End substream, SO [the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]] re-inserted into main stream
    Substream stack [[which!scope[which!scope][car]]] merged with main stack

    Step 11.

    Stream:[[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[which!scope[which!scope][car]]
    [a[a][scandal]]
    SO:[v*[v*][cause[cause][a[a][scandal]]]]

    Step 12.

    Merge [v*[v*][cause[cause..][a..]]] and [the!case[the][driver[driver..][of..]]]
    Label from [v*[v*][cause[cause..][a..]]] (edge feature)
    Theta-mark [the!case[the][driver[driver..][of..]]]
    Subconstituent [which!scope[which!scope][car]] from a substream removed from stack, [the!case[the][driver[driver..][of..]]] subsumes it
    Push [the!case[the][driver[driver..][of..]]] (unvalued uF) onto stack
    Stream:[[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[v*[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]

    Step 13.

    Merge [Tpast!phi!v] and [v*[the!case[the..][driver..]][v*[v*..][cause..]]]
    Label from [Tpast!phi!v] (head merging with a non-head)
    [the!case[the][driver[driver..][of..]]] values uPhi on [Tpast!phi!v]
    [Tpast!v] values nom case on [the!case[the][driver[driver..][of..]]]
    Relativized TOS search for iF(v) skipping [the[the][driver[driver..][of..]]]
    Relativized TOS search for iF(v) skipping [a[a][scandal]]
    [Tpast!v] attracts [v*[the[the..][driver..]][v*[v*..][cause..]]]
    Merge [Tpast[Tpast][v*[the..][v*..]]] and [v*]
    Label from [Tpast[Tpast][v*[the..][v*..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (тее):[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]

    Step 14.

    Internal merge selected
    Merge [Tpast[v*][Tpast[Tpast..][v*..]]] and [the[the][driver[driver..][of..]]]
    Label from [Tpast[v*][Tpast[Tpast..][v*..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (тее):[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[Tpast[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]]

    Step 15.

    Merge [cQ!wh!T] and [Tpast[the[the..][driver..]][Tpast[v*..][Tpast..]]]
    Label from [cQ!wh!T] (head merging with a non-head)
    Relativized TOS search for iF(wh) skipping [the[the][driver[driver..][of..]]]
    Relativized TOS search for iF(wh) skipping [a[a][scandal]]
    Merge stream C [cQ!wh!T] and SO [Tpast[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]] failed
    No possible action for stream [[cQ!wh!T]] and [Tpast[the[the..][driver..]][Tpast[v*..][Tpast..]]]
    Push [of[of][which!scope[which..][car..]]] (unvalued uF) onto stack
    Stream:[[driver!D],[the!case!N]]
    Stack (тее):[of[of][which!scope[which!scope][car]]]
    SO:[of[of][which!scope[which!scope][car]]]

    Step 16.

    Merge [driver!D] and [of[of][which!scope[which..][car..]]]
    Label from [driver!D] (head merging with a non-head)
    Stream:[[the!case!N]]
    Stack (тее):[of[of][which!scope[which!scope][car]]]
    SO:[driver!D[driver!D][of[of][which!scope[which!scope][car]]]]

    Step 17.

    Merge [the!case!N] and [driver!D[driver!D][of[of..][which..]]]
    Label from [the!case!N] (head merging with a non-head)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [driver!D[driver!D][of[of..][which..]]]
    [the!case!N] values D on [driver!D[driver!D][of[of..][which..]]]
    [driver[driver][of[of..][which..]]] values N on [the!case!N]
    Stream:[]
    Stack (тее):[of[of][which!scope[which!scope][car]]]
    SO:[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    End substream, SO [the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]] re-inserted into main stream
    Substream stack [[of[of][which!scope[which!scope][car]]]] merged with main stack

    Step 18.

    Stream:[[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]],[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[of[of][which!scope[which!scope][car]]]
    [a[a][scandal]]
    SO:[v*[v*][cause[cause][a[a][scandal]]]]

    Step 19.

    Merge [v*[v*][cause[cause..][a..]]] and [the!case[the][driver[driver..][of..]]]
    Label from [v*[v*][cause[cause..][a..]]] (edge feature)
    Theta-mark [the!case[the][driver[driver..][of..]]]
    Subconstituent [of[of][which!scope[which..][car..]]] from a substream removed from stack, [the!case[the][driver[driver..][of..]]] subsumes it
    Push [the!case[the][driver[driver..][of..]]] (unvalued uF) onto stack
    Stream:[[Tpast!phi!v],[cQ!wh!T]]
    Stack (тее):[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[v*[the!case[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]

    Step 20.

    Merge [Tpast!phi!v] and [v*[the!case[the..][driver..]][v*[v*..][cause..]]]
    Label from [Tpast!phi!v] (head merging with a non-head)
    [the!case[the][driver[driver..][of..]]] values uPhi on [Tpast!phi!v]
    [Tpast!v] values nom case on [the!case[the][driver[driver..][of..]]]
    Relativized TOS search for iF(v) skipping [the[the][driver[driver..][of..]]]
    Relativized TOS search for iF(v) skipping [a[a][scandal]]
    [Tpast!v] attracts [v*[the[the..][driver..]][v*[v*..][cause..]]]
    Merge [Tpast[Tpast][v*[the..][v*..]]] and [v*]
    Label from [Tpast[Tpast][v*[the..][v*..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (тее):[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]

    Step 21.

    Internal merge selected
    Merge [Tpast[v*][Tpast[Tpast..][v*..]]] and [the[the][driver[driver..][of..]]]
    Label from [Tpast[v*][Tpast[Tpast..][v*..]]] (edge feature)
    Stream:[[cQ!wh!T]]
    Stack (тее):[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]]
    [a[a][scandal]]
    SO:[Tpast[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]]

    Step 22.

    Merge [cQ!wh!T] and [Tpast[the[the..][driver..]][Tpast[v*..][Tpast..]]]
    Label from [cQ!wh!T] (head merging with a non-head)
    Relativized TOS search for iF(wh) skipping [the[the][driver[driver..][of..]]]
    Relativized TOS search for iF(wh) skipping [a[a][scandal]]
    Merge stream C [cQ!wh!T] and SO [Tpast[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][Tpast[v*][Tpast[Tpast][v*[the[the][driver[driver][of[of][which!scope[which!scope][car]]]]][v*[v*][cause[cause][a[a][scandal]]]]]]]] failed
    No possible action for stream [[cQ!wh!T]] and [Tpast[the[the..][driver..]][Tpast[v*..][Tpast..]]]
    No derivations found.
    Computational Cost:
    Merge: 19, Agree: 17, Unify: 0, Push: 5, Boundaries: 0, Inject: 0
    Non-TOS access: 8, Pop: 0, Depth cost: 8
    Step:0123456789101112131415161718192021
    Stack depth:0001100011122221112222

    Back to top