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:
(4) Man dar khorshild-am mehmun ro davat mi-kon-am
I to house-my guest SPF invitation DUR-do-1.sg
I invite a (specific) guest to my house
Stream: | [[mehmun!D],[d!case!N],[ro!case],[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[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],[ro!case],[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[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: | [[ro!case],[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | |
SO: | [d!case[d][mehmun]]
|
Step 3.
Merge [ro!case] and [d!case[d][mehmun]]
Label from [ro!case] (syntactic head merging with a non-head)
Inherit interpretable feature(s) [f(theta),f(phi,[3,sg,n])] from [d!case[d][mehmun]]
Push [d!case[d][mehmun]] (unvalued uF) onto stack
Stream: | [[[davat!D],[V!N]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][mehmun]]
|
SO: | [ro!case[ro][d!case[d][mehmun]]]
|
Step 4.
Begin substream
Stream: | [[davat!D],[V!N]] |
Stack (⥥): | |
SO: | []
|
Step 5.
Head of stream [davat!D] is the initial SO
Stream: | [[V!N]] |
Stack (⥥): | |
SO: | [davat!D]
|
Step 6.
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 7.
Stream: | [[V[davat][V]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][mehmun]]
|
SO: | [ro!case[ro][d!case[d][mehmun]]]
|
Step 8.
[ro!case[ro][d!case[d..][mehmun..]]] values gen case on [d!case[d][mehmun]]
Internal merge selected
Merge [ro!case[ro][d[d..][mehmun..]]] and [d[d][mehmun]]
Label from [ro!case[ro][d[d..][mehmun..]]] (edge feature)
Stream: | [[V[davat][V]],[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [d[d][mehmun]]
|
SO: | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]]
|
Step 9.
Merge [V[davat][V]] and [ro!case[d[d..][mehmun..]][ro[ro..][d..]]]
Label from [V[davat][V]] (syntactic head merging with a non-head)
Theta-mark [ro!case[d[d..][mehmun..]][ro[ro..][d..]]]
Push [ro!case[d[d..][mehmun..]][ro[ro..][d..]]] (unvalued uF) onto stack
Stream: | [[[khorshid!D],[poss1sg!case!N],[dar]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [V[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]
|
Step 10.
Begin substream
Stream: | [[khorshid!D],[poss1sg!case!N],[dar]] |
Stack (⥥): | |
SO: | []
|
Step 11.
Head of stream [khorshid!D] is the initial SO
Stream: | [[poss1sg!case!N],[dar]] |
Stack (⥥): | |
SO: | [khorshid!D]
|
Step 12.
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 13.
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 14.
Stream: | [[dar[dar][poss1sg[poss1sg][khorshid]]],[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [V[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]
|
Step 15.
Pair-merge [dar[dar][poss1sg[poss1sg][khorshid]]] and [V[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]
Stream: | [[spf],[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | <[V[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]],[dar[dar][poss1sg[poss1sg][khorshid]]]>
|
Step 16.
Merge [spf] and <[dar[dar][poss1sg[poss1sg..][khorshid..]]],[V[ro!case[d..][ro..]][V[davat..][V..]]]>
Label from [spf] (only projecting head)
Stream: | [[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]
|
Step 17.
Internal merge selected
Merge [spf<[dar[dar..][poss1sg..]],[V[ro..][V..]]>[spf]] and [ro!case[d[d..][mehmun..]][ro[ro..][d..]]]
Label from [spf<[dar[dar..][poss1sg..]],[V[ro..][V..]]>[spf]] (edge feature)
Stream: | [[v*!phi],[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [spf[ro!case[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]]
|
Step 18.
Merge [v*!phi] and [spf[ro!case[d..][ro..]][spf<[dar..],[V..]>[spf..]]]
Label from [v*!phi] (syntactic head merging with a non-head)
[ro!case[d[d..][mehmun..]][ro[ro..][d..]]] values uPhi on [v*!phi]
[v*] values acc case on [ro!case[d[d..][mehmun..]][ro[ro..][d..]]]
Stream: | [[[man!D],[d!case!N]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]
|
Step 19.
Begin substream
Stream: | [[man!D],[d!case!N]] |
Stack (⥥): | |
SO: | []
|
Step 20.
Head of stream [man!D] is the initial SO
Stream: | [[d!case!N]] |
Stack (⥥): | |
SO: | [man!D]
|
Step 21.
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 22.
Stream: | [[d!case[d][man]],[kard],[dur],[T!phi],[c]] |
Stack (⥥): | [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]
|
Step 23.
Merge [v*[spf[ro..][spf..]][v*]] and [d!case[d][man]]
Label from [v*[spf[ro..][spf..]][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]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [v*[d!case[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]]
|
Step 24.
Merge [kard] and [v*[d!case[d..][man..]][v*[spf..][v*..]]]
Label from [kard] (syntactic head merging with a non-head)
Stream: | [[dur],[T!phi],[c]] |
Stack (⥥): | [d!case[d][man]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [kard[v*[d!case[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]]
|
Step 25.
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]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [dur[kard[v*[d!case[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]][dur]]
|
Step 26.
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]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [T[dur[kard[v*[d[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]][dur]][T]]
|
Step 27.
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]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [T[d[d][man]][T[dur[kard[v*[d[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]][dur]][T]]]
|
Step 28.
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]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [c[c][T[d[d][man]][T[dur[kard[v*[d[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]][dur]][T]]]]
|
Step 29.
Local Extent boundary at [c[c][T[d..][T..]]]
New boundary (b) marker stacked
Stream: | [] |
Stack (⥥): | b [d[d][man]] [ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]] [d[d][mehmun]]
|
SO: | [c[c][T[d[d][man]][T[dur[kard[v*[d[d][man]][v*[spf[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][spf<[dar[dar][poss1sg[poss1sg][khorshid]]],[V[ro[d[d][mehmun]][ro[ro][d[d][mehmun]]]][V[davat][V]]]>[spf]]][v*]]][kard]][dur]][T]]]]
|
Parse:
Spell-out:
man mehmun ro dar -am khorshid davat kard mi= t(pres,[1,sg]) (after morpheme realization)
man mehmun ro dar khorshid -am davat mi= kard t(pres,[1,sg]) (after affix-hop)
man mehmun ro dar khorshid -am davat mi= kon #am (after morpheme realization, stage 2)
man mehmun ro dar khorshid-am davat mi-kon-am
One derivation found.
Computational Cost:
Merge: 18, Agree: 14, Unify: 0, Push: 3, Boundaries: 1, Inject: 0
Non-TOS access: 0, Pop: 0, Depth cost: 22
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 | 26 | 27 | 28 | 29 |
Stack depth: | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 2 | 0 | 0 | 0 | 2 | 3 | 3 | 3 | 3 | 3 | 3 | 4 |