Minimalist Machine Derivations

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

Examples:

  • Extra relative clause examples collapse
    Example Instruction stream (clickable) Notes
    (rcx1) the boy John thinks called Mary
    the boy John thinks that called Mary
    [mary, d, call, 'v*', [boy, d_rel], 'Tpast', c_e, think, v_unerg, [john, d], 'T', c_rel, the] Relativize from embedded subject position.
    (rcx2) the student who lives here who studies English [[here, d, live, 'v*', [student, who_rel], 'T', c_rel], [english, d, study, 'v*', [student, who_rel], 'T', c_rel], the] Doubly stacked relative clause. Uses FormSet.
    (rcx3) the student who lives here who studies English who I know >[[here, d, live, 'v*', [student, who_rel], 'T', c_rel], [english, d, study, 'v*', [student, who_rel], 'T', c_rel],[student, who_rel, know, 'v*', [i, d], 'T', c_rel], the] Triply stacked relative clause. Uses FormSet.
  • Machine Parameters: expand

    Animation:
    (rcx2) the student who lives here who studies English

    Derivation:
    (rcx2) the student who lives here who studies English

    Stream:[[[here!D],[d!case!N],[live],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]],[[english!D],[d!case!N],[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]],[the!case!N]]
    Stack (⥥):
    SO:[]

    Step 1.

    Begin substream
    Stream:[[here!D],[d!case!N],[live],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[]

    Step 2.

    Head of stream [here!D] is the initial SO
    Stream:[[d!case!N],[live],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[here!D]

    Step 3.

    Merge [d!case!N] and [here!D]
    Label from [d!case!N] (syntactic head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [here!D]
    [d!case!N] values D on [here!D]
    [here] values N on [d!case!N]
    Stream:[[live],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[d!case[d][here]]

    Step 4.

    Merge [live] and [d!case[d][here]]
    Label from [live] (syntactic head merging with a non-head)
    Theta-mark [d!case[d][here]]
    Push [d!case[d][here]] (unvalued uF) onto stack
    Stream:[[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d!case[d][here]]
    SO:[live[live][d!case[d][here]]]

    Step 5.

    Merge [v*!phi] and [live[live][d!case[d..][here..]]]
    Label from [v*!phi] (syntactic head merging with a non-head)
    [d!case[d][here]] values uPhi on [v*!phi]
    [v*] values acc case on [d!case[d][here]]
    Stream:[[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d[d][here]]
    SO:[v*[v*][live[live][d[d][here]]]]

    Step 6.

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

    Step 7.

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

    Step 8.

    Merge [whorel!case!N] and [student!D]
    Label from [whorel!case!N] (syntactic head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [student!D]
    [student!D] values N on [whorel!case!N]
    Push [student!D] (unvalued uF) onto stack
    Stream:[]
    Stack (⥥):[student!D]
    SO:[whorel!case[whorel][student!D]]
    End substream, SO [whorel!case[whorel][student!D]] re-inserted into main stream
    Substream stack [[student!D]] saved for possible stack merge

    Step 9.

    Stream:[[whorel!case[whorel][student!D]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d[d][here]]
    SO:[v*[v*][live[live][d[d][here]]]]

    Step 10.

    Merge [v*[v*][live[live..][d..]]] and [whorel!case[whorel][student!D]]
    Label from [v*[v*][live[live..][d..]]] (edge feature)
    Theta-mark [whorel!case[whorel][student!D]]
    Saved substream stack [[student!D]] merged with stack
    Push [whorel!case[whorel][student!D]] (unvalued uF) onto stack
    Stream:[[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[whorel!case[whorel][student!D]]
    [student!D]
    [d[d][here]]
    SO:[v*[whorel!case[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]

    Step 11.

    Merge [T!phi] and [v*[whorel!case[whorel..][student..]][v*[v*..][live..]]]
    Label from [T!phi] (syntactic head merging with a non-head)
    [whorel!case[whorel][student!D]] values uPhi on [T!phi]
    [T] values nom case on [whorel!case[whorel][student!D]]
    Stream:[[crel!rel!T!phi]]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][here]]
    SO:[T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]

    Step 12.

    Internal merge selected
    Merge [T[T][v*[whorel..][v*..]]] and [whorel[whorel][student!D]]
    Label from [T[T][v*[whorel..][v*..]]] (edge feature)
    Stream:[[crel!rel!T!phi]]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][here]]
    SO:[T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]

    Step 13.

    Merge [crel!rel!T!phi] and [T[whorel[whorel..][student..]][T[T..][v*..]]]
    Label from [crel!rel!T!phi] (syntactic head merging with a non-head)
    [whorel[whorel][student!D]] values rel on [crel!rel!T!phi]
    [whorel[whorel][student!D]] values T on [crel!T!phi] (economy)
    [whorel[whorel][student!D]] values phi on [crel!phi] (economy)
    [crel] values obq case on [whorel[whorel][student!D]]
    Internal merge selected
    Merge [crel[crel][T[whorel..][T..]]] and [whorel[whorel][student!D]]
    Label from [crel[crel][T[whorel..][T..]]] (edge feature)
    Stream:[]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][here]]
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]]

    Step 14.

    Local Extent boundary at [crel[whorel[whorel..][student..]][crel[crel..][T..]]]
    Stack element [student!D] with unvalued uF found
    New boundary (b) marker stacked
    Restack [student!D] onto stack
    Stream:[]
    Stack (⥥):[student!D]
    b
    [whorel[whorel][student!D]]
    [d[d][here]]
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]]
    End substream, SO [crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]] re-inserted into main stream
    Substream stack [[student!D],b,[whorel[whorel][student!D]],[d[d][here]]] saved for possible stack merge

    Step 15.

    Stream:[[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]],[[english!D],[d!case!N],[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]],[the!case!N]]
    Stack (⥥):
    SO:[]

    Step 16.

    Head of stream [crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]] is the initial SO
    Stream:[[[english!D],[d!case!N],[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]],[the!case!N]]
    Stack (⥥):
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]]

    Step 17.

    Begin substream
    Stream:[[english!D],[d!case!N],[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[]

    Step 18.

    Head of stream [english!D] is the initial SO
    Stream:[[d!case!N],[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[english!D]

    Step 19.

    Merge [d!case!N] and [english!D]
    Label from [d!case!N] (syntactic head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [english!D]
    [d!case!N] values D on [english!D]
    [english] values N on [d!case!N]
    Stream:[[study],[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):
    SO:[d!case[d][english]]

    Step 20.

    Merge [study] and [d!case[d][english]]
    Label from [study] (syntactic head merging with a non-head)
    Theta-mark [d!case[d][english]]
    Push [d!case[d][english]] (unvalued uF) onto stack
    Stream:[[v*!phi],[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d!case[d][english]]
    SO:[study[study][d!case[d][english]]]

    Step 21.

    Merge [v*!phi] and [study[study][d!case[d..][english..]]]
    Label from [v*!phi] (syntactic head merging with a non-head)
    [d!case[d][english]] values uPhi on [v*!phi]
    [v*] values acc case on [d!case[d][english]]
    Stream:[[[student!D],[whorel!case!N]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d[d][english]]
    SO:[v*[v*][study[study][d[d][english]]]]

    Step 22.

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

    Step 23.

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

    Step 24.

    Merge [whorel!case!N] and [student!D]
    Label from [whorel!case!N] (syntactic head with an unvalued uF)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [student!D]
    [student!D] values N on [whorel!case!N]
    Push [student!D] (unvalued uF) onto stack
    Stream:[]
    Stack (⥥):[student!D]
    SO:[whorel!case[whorel][student!D]]
    End substream, SO [whorel!case[whorel][student!D]] re-inserted into main stream
    Substream stack [[student!D]] saved for possible stack merge

    Step 25.

    Stream:[[whorel!case[whorel][student!D]],[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[d[d][english]]
    SO:[v*[v*][study[study][d[d][english]]]]

    Step 26.

    Merge [v*[v*][study[study..][d..]]] and [whorel!case[whorel][student!D]]
    Label from [v*[v*][study[study..][d..]]] (edge feature)
    Theta-mark [whorel!case[whorel][student!D]]
    Saved substream stack [[student!D]] merged with stack
    Push [whorel!case[whorel][student!D]] (unvalued uF) onto stack
    Stream:[[T!phi],[crel!rel!T!phi]]
    Stack (⥥):[whorel!case[whorel][student!D]]
    [student!D]
    [d[d][english]]
    SO:[v*[whorel!case[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]

    Step 27.

    Merge [T!phi] and [v*[whorel!case[whorel..][student..]][v*[v*..][study..]]]
    Label from [T!phi] (syntactic head merging with a non-head)
    [whorel!case[whorel][student!D]] values uPhi on [T!phi]
    [T] values nom case on [whorel!case[whorel][student!D]]
    Stream:[[crel!rel!T!phi]]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][english]]
    SO:[T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]

    Step 28.

    Internal merge selected
    Merge [T[T][v*[whorel..][v*..]]] and [whorel[whorel][student!D]]
    Label from [T[T][v*[whorel..][v*..]]] (edge feature)
    Stream:[[crel!rel!T!phi]]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][english]]
    SO:[T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]

    Step 29.

    Merge [crel!rel!T!phi] and [T[whorel[whorel..][student..]][T[T..][v*..]]]
    Label from [crel!rel!T!phi] (syntactic head merging with a non-head)
    [whorel[whorel][student!D]] values rel on [crel!rel!T!phi]
    [whorel[whorel][student!D]] values T on [crel!T!phi] (economy)
    [whorel[whorel][student!D]] values phi on [crel!phi] (economy)
    [crel] values obq case on [whorel[whorel][student!D]]
    Internal merge selected
    Merge [crel[crel][T[whorel..][T..]]] and [whorel[whorel][student!D]]
    Label from [crel[crel][T[whorel..][T..]]] (edge feature)
    Stream:[]
    Stack (⥥):[whorel[whorel][student!D]]
    [student!D]
    [d[d][english]]
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]]

    Step 30.

    Local Extent boundary at [crel[whorel[whorel..][student..]][crel[crel..][T..]]]
    Stack element [student!D] with unvalued uF found
    New boundary (b) marker stacked
    Restack [student!D] onto stack
    Stream:[]
    Stack (⥥):[student!D]
    b
    [whorel[whorel][student!D]]
    [d[d][english]]
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]]
    End substream, SO [crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]] re-inserted into main stream
    Substream stack [[student!D],b,[whorel[whorel][student!D]],[d[d][english]]] saved for possible stack merge

    Step 31.

    Stream:[[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]],[the!case!N]]
    Stack (⥥):
    SO:[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]]

    Step 32.

    FormSet: set members [crel[whorel[whorel..][student..]][crel[crel..][T..]]] and [crel[whorel[whorel..][student..]][crel[crel..][T..]]]
    Stream:[[the!case!N]]
    Stack (⥥):
    SO:{[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]],[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]]}

    Step 33.

    Merge [student!D] and {[crel[whorel..][crel..]],[crel[whorel..][crel..]]}
    Label from [student!D] (syntactic head merging with a non-head)
    Stream:[[the!case!N]]
    Stack (⥥):
    SO:[student!D[student!D]{[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][live[live][d[d][here]]]]]]]]],[crel[whorel[whorel][student!D]][crel[crel][T[whorel[whorel][student!D]][T[T][v*[whorel[whorel][student!D]][v*[v*][study[study][d[d][english]]]]]]]]]}]

    Step 34.

    Merge [the!case!N] and [student!D[student!D]{[crel..],[crel..]}]
    Label from [the!case!N] (syntactic head merging with a non-head)
    Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [student!D[student!D]{[crel..],[crel..]}]
    [the!case!N] values D on [student!D[student!D]{[crel..],[crel..]}]
    [student[student]{[crel..],[crel..]}] values N on [the!case!N]
    Stream:[]
    Stack (⥥):
    SO:[the!case[the][student[student]{[crel[whorel[whorel][student]][crel[crel][T[whorel[whorel][student]][T[T][v*[whorel[whorel][student]][v*[v*][live[live][d[d][here]]]]]]]]],[crel[whorel[whorel][student]][crel[crel][T[whorel[whorel][student]][T[T][v*[whorel[whorel][student]][v*[v*][study[study][d[d][english]]]]]]]]]}]]

    Parse:
    Spell-out:
    the student who -s live -acc here who -s study -acc English (after morpheme realization)
    the student who live -s here -acc who study -s English -acc (after affix-hop)
    the student who live -s here -acc who study -s English -acc (after morpheme realization, stage 2)
    the student who lives here who studies English  

    One derivation found.
    Computational Cost:
    Merge: 20, Agree: 24, Unify: 0, Push: 6, Boundaries: 2, Inject: 2
    Non-TOS access: 0, Pop: 0, Depth cost: 22
    Step:012345678910111213141516171819202122232425262728293031323334
    Stack depth:00001100113333400000110011333340000

    Back to top