Minimalist Machine Derivations
Files:
grammar.pl /
m12.pl /
Back to homepage
Examples:
Basic sentence patterns:
expand
Machine Parameters:
expand
substream_stack | on | Allow transfer of substream stack back to mainstream |
stack_update_larger | off | Replace updated subconstituent of stack element |
pmerge_flag | off | Allow spellout of pair-merge in either order |
inactive_push | on | Push nonhead of DC merge onto the stack inactive(_) |
search | stk | Search SO or stack for unvalued uF to be released |
drop_stack | off | Drop stack items that are two phase boundaries down |
stack_access | local | Local or global access to elements of the stack |
le | on | Local Extent boundary conditions, used to trigger stacking of unvalued uF SOs |
subphrase_check | subsume_ss | Push element onto stack, first check if subconstituent is already there |
c_stack_search | inactive | c stack search normal or can see into inactive wrapped elements |
occ_new_flag | off | if already old, create new, otherwise keep old |
stack_subc | off | if existing subconstituent found on stack, mark old and substitute new on stack |
vprint | on | Print stack as vertical list |
iprint | off | Print inactive(_) wrappers |
occ_debug | off | use @ to indicate occ(V), V a variable |
Derivation:
(3) Man dar khorshild-am mehmun davat mi-kon-am
I to house-my guest invitation DUR-do-1.sg
I invite a guest to my house
Stream: | [[mehmun!D],[d!case!N],[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | |
SO: | []
|
Step 1.
Head of stream [mehmun!D] is the initial SO
Stream: | [[d!case!N],[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | |
SO: | [mehmun!D]
|
Step 2.
Merge [d!case!N] and [mehmun!D]
Label from [d!case!N] (syntactic head with an unvalued uF)
Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [mehmun!D]
[d!case!N] values D on [mehmun!D]
[mehmun] values N on [d!case!N]
Stream: | [[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | |
SO: | [d!case[d][mehmun]]
|
Step 3.
Begin substream
Stream: | [[davat!D],[V!N]] |
Stack (⥥): | |
SO: | []
|
Step 4.
Head of stream [davat!D] is the initial SO
Stream: | [[V!N]] |
Stack (⥥): | |
SO: | [davat!D]
|
Step 5.
Merge [V!N] and [davat!D]
Label from [V!N] (syntactic head with an unvalued uF)
[V!N] values D on [davat!D]
[davat] values N on [V!N]
Stream: | [] |
Stack (⥥): | |
SO: | [V[davat][V]]
|
End substream, SO [V[davat][V]] re-inserted into main stream
Step 6.
Stream: | [[V[davat][V]],[[khorshid!D],[poss1sg!case!N],[dar]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | |
SO: | [d!case[d][mehmun]]
|
Step 7.
Merge [V[davat][V]] and [d!case[d][mehmun]]
Label from [V[davat][V]] (syntactic head merging with a non-head)
Theta-mark [d!case[d][mehmun]]
Push [d!case[d][mehmun]] (unvalued uF) onto stack
Stream: | [[[khorshid!D],[poss1sg!case!N],[dar]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][mehmun]]
|
SO: | [V[d!case[d][mehmun]][V[davat][V]]]
|
Step 8.
Begin substream
Stream: | [[khorshid!D],[poss1sg!case!N],[dar]] |
Stack (⥥): | |
SO: | []
|
Step 9.
Head of stream [khorshid!D] is the initial SO
Stream: | [[poss1sg!case!N],[dar]] |
Stack (⥥): | |
SO: | [khorshid!D]
|
Step 10.
Merge [poss1sg!case!N] and [khorshid!D]
Label from [poss1sg!case!N] (syntactic head with an unvalued uF)
Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [khorshid!D]
[poss1sg!case!N] values D on [khorshid!D]
[khorshid] values N on [poss1sg!case!N]
Stream: | [[dar]] |
Stack (⥥): | |
SO: | [poss1sg!case[poss1sg][khorshid]]
|
Step 11.
Merge [dar] and [poss1sg!case[poss1sg][khorshid]]
Label from [dar] (syntactic head merging with a non-head)
Theta-mark [poss1sg!case[poss1sg][khorshid]]
[dar] values obq case on [poss1sg!case[poss1sg][khorshid]]
Stream: | [] |
Stack (⥥): | |
SO: | [dar[dar][poss1sg[poss1sg][khorshid]]]
|
End substream, SO [dar[dar][poss1sg[poss1sg][khorshid]]] re-inserted into main stream
Step 12.
Stream: | [[dar[dar][poss1sg[poss1sg][khorshid]]],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][mehmun]]
|
SO: | [V[d!case[d][mehmun]][V[davat][V]]]
|
Step 13.
Pair-merge [dar[dar][poss1sg[poss1sg][khorshid]]] and [V[d!case[d][mehmun]][V[davat][V]]]
Stream: | [[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][mehmun]]
|
SO: | <[V[d!case[d][mehmun]][V[davat][V]]],[dar[dar][poss1sg[poss1sg][khorshid]]]>
|
Step 14.
Merge [v*!phi] and <[dar[dar][poss1sg[poss1sg..][khorshid..]]],[V[d!case[d..][mehmun..]][V[davat..][V..]]]>
Label from [v*!phi] (syntactic head with an unvalued uF)
[d!case[d][mehmun]] values uPhi on [v*!phi]
[v*] values acc case on [d!case[d][mehmun]]
Stream: | [[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d[d][mehmun]]
|
SO: | [v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]
|
Step 15.
Begin substream
Stream: | [[man!D],[d!case!N]] |
Stack (⥥): | |
SO: | []
|
Step 16.
Head of stream [man!D] is the initial SO
Stream: | [[d!case!N]] |
Stack (⥥): | |
SO: | [man!D]
|
Step 17.
Merge [d!case!N] and [man!D]
Label from [d!case!N] (syntactic head with an unvalued uF)
Inherit interpretable feature(s) [f(phi,[1,sg,mf])] from [man!D]
[d!case!N] values D on [man!D]
[man] values N on [d!case!N]
Stream: | [] |
Stack (⥥): | |
SO: | [d!case[d][man]]
|
End substream, SO [d!case[d][man]] re-inserted into main stream
Step 18.
Stream: | [[d!case[d][man]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d[d][mehmun]]
|
SO: | [v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]
|
Step 19.
Merge [v*<[dar[dar..][poss1sg..]],[V[d..][V..]]>[v*]] and [d!case[d][man]]
Label from [v*<[dar[dar..][poss1sg..]],[V[d..][V..]]>[v*]] (edge feature)
Theta-mark [d!case[d][man]]
Push [d!case[d][man]] (unvalued uF) onto stack
Stream: | [[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][man]] [d[d][mehmun]]
|
SO: | [v*[d!case[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]]
|
Step 20.
Merge [kard] and [v*[d!case[d..][man..]][v*<[dar..],[V..]>[v*..]]]
Label from [kard] (syntactic head merging with a non-head)
Stream: | [[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][man]] [d[d][mehmun]]
|
SO: | [kard[v*[d!case[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]]
|
Step 21.
Merge [dur] and [kard[v*[d..][v*..]][kard]]
Label from [dur] (syntactic head merging with a non-head)
Stream: | [[T!phi],[c]] |
Stack (⥥): | [d!case[d][man]] [d[d][mehmun]]
|
SO: | [dur[kard[v*[d!case[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]][dur]]
|
Step 22.
Merge [T!phi] and [dur[kard[v*..][kard..]][dur]]
Label from [T!phi] (syntactic head merging with a non-head)
[d!case[d][man]] values uPhi on [T!phi]
[T] values nom case on [d!case[d][man]]
Stream: | [[c]] |
Stack (⥥): | [d[d][man]] [d[d][mehmun]]
|
SO: | [T[dur[kard[v*[d[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]][dur]][T]]
|
Step 23.
Internal merge selected
Merge [T[dur[kard..][dur..]][T]] and [d[d][man]]
Label from [T[dur[kard..][dur..]][T]] (edge feature)
Stream: | [[c]] |
Stack (⥥): | [d[d][man]] [d[d][mehmun]]
|
SO: | [T[d[d][man]][T[dur[kard[v*[d[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]][dur]][T]]]
|
Step 24.
Merge [c] and [T[d[d..][man..]][T[dur..][T..]]]
Label from [c] (syntactic head merging with a non-head)
Stream: | [] |
Stack (⥥): | [d[d][man]] [d[d][mehmun]]
|
SO: | [c[c][T[d[d][man]][T[dur[kard[v*[d[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]][dur]][T]]]]
|
Step 25.
Local Extent boundary at [c[c][T[d..][T..]]]
New boundary (b) marker stacked
Stream: | [] |
Stack (⥥): | b [d[d][man]] [d[d][mehmun]]
|
SO: | [c[c][T[d[d][man]][T[dur[kard[v*[d[d][man]][v*<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[d[d][mehmun]][V[davat][V]]]>[v*]]][kard]][dur]][T]]]]
|
Parse:
Spell-out:
man dar -am khorshid mehmun davat kard mi= t(pres,[1,sg]) (after morpheme realization)
man dar khorshid -am mehmun davat mi= kard t(pres,[1,sg]) (after affix-hop)
man dar khorshid -am mehmun davat mi= kon #am (after morpheme realization, stage 2)
man dar khorshid-am mehmun davat mi-kon-am
One derivation found.
Computational Cost:
Merge: 14, Agree: 13, Unify: 0, Push: 2, Boundaries: 1, Inject: 0
Non-TOS access: 0, Pop: 0, Depth cost: 8
Step: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
Stack depth: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 3 |