Minimalist Machine Derivations
Files:
grammar.pl /
m12.pl /
Back to homepage
Examples:
Basic sentence patterns:
collapse
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 |
Animation:
(2) John runs
Derivation:
(2) John runs
Stream: | [[run],[vunerg],[[john!D],[d!case!N]],[T!phi],[c]] |
Stack (⥥): | |
SO: | []
|
Step 1.
Head of stream [run] is the initial SO
Stream: | [[vunerg],[[john!D],[d!case!N]],[T!phi],[c]] |
Stack (⥥): | |
SO: | [run]
|
Step 2.
Merge [vunerg] and [run]
Label from [vunerg] (leftmost by default)
Stream: | [[[john!D],[d!case!N]],[T!phi],[c]] |
Stack (⥥): | |
SO: | [vunerg[vunerg][run]]
|
Step 3.
Begin substream
Stream: | [[john!D],[d!case!N]] |
Stack (⥥): | |
SO: | []
|
Step 4.
Head of stream [john!D] is the initial SO
Stream: | [[d!case!N]] |
Stack (⥥): | |
SO: | [john!D]
|
Step 5.
Merge [d!case!N] and [john!D]
Label from [d!case!N] (syntactic head with an unvalued uF)
Inherit interpretable feature(s) [f(phi,[3,sg,n])] from [john!D]
[d!case!N] values D on [john!D]
[john] values N on [d!case!N]
Stream: | [] |
Stack (⥥): | |
SO: | [d!case[d][john]]
|
End substream, SO [d!case[d][john]] re-inserted into main stream
Step 6.
Stream: | [[d!case[d][john]],[T!phi],[c]] |
Stack (⥥): | |
SO: | [vunerg[vunerg][run]]
|
Step 7.
Merge [vunerg[vunerg][run]] and [d!case[d][john]]
Label from [vunerg[vunerg][run]] (edge feature)
Theta-mark [d!case[d][john]]
Push [d!case[d][john]] (unvalued uF) onto stack
Stream: | [[T!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [vunerg[d!case[d][john]][vunerg[vunerg][run]]]
|
Step 8.
Merge [T!phi] and [vunerg[d!case[d..][john..]][vunerg[vunerg..][run..]]]
Label from [T!phi] (syntactic head merging with a non-head)
[d!case[d][john]] values uPhi on [T!phi]
[T] values nom case on [d!case[d][john]]
Stream: | [[c]] |
Stack (⥥): | [d[d][john]]
|
SO: | [T[T][vunerg[d[d][john]][vunerg[vunerg][run]]]]
|
Step 9.
Internal merge selected
Merge [T[T][vunerg[d..][vunerg..]]] and [d[d][john]]
Label from [T[T][vunerg[d..][vunerg..]]] (edge feature)
Stream: | [[c]] |
Stack (⥥): | [d[d][john]]
|
SO: | [T[d[d][john]][T[T][vunerg[d[d][john]][vunerg[vunerg][run]]]]]
|
Step 10.
Merge [c] and [T[d[d..][john..]][T[T..][vunerg..]]]
Label from [c] (syntactic head merging with a non-head)
Stream: | [] |
Stack (⥥): | [d[d][john]]
|
SO: | [c[c][T[d[d][john]][T[T][vunerg[d[d][john]][vunerg[vunerg][run]]]]]]
|
Step 11.
Local Extent boundary at [c[c][T[d..][T..]]]
New boundary (b) marker stacked
Stream: | [] |
Stack (⥥): | b [d[d][john]]
|
SO: | [c[c][T[d[d][john]][T[T][vunerg[d[d][john]][vunerg[vunerg][run]]]]]]
|
Parse:
Spell-out:
John -s run (after morpheme realization)
John run -s (after affix-hop)
John run -s (after morpheme realization, stage 2)
John runs
One derivation found.
Computational Cost:
Merge: 6, Agree: 4, Unify: 0, Push: 1, Boundaries: 1, Inject: 0
Non-TOS access: 0, Pop: 0, Depth cost: 1
Step: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Stack depth: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 2 |