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:
(5) John was arrested
Derivation:
(5) John was arrested
Stream: | [[john!D],[d!case!N],[arrest],[prt!phi!case],[v~],[Tpast!phi],[c]] |
Stack (⥥): | |
SO: | []
|
Step 1.
Head of stream [john!D] is the initial SO
Stream: | [[d!case!N],[arrest],[prt!phi!case],[v~],[Tpast!phi],[c]] |
Stack (⥥): | |
SO: | [john!D]
|
Step 2.
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: | [[arrest],[prt!phi!case],[v~],[Tpast!phi],[c]] |
Stack (⥥): | |
SO: | [d!case[d][john]]
|
Step 3.
Merge [arrest] and [d!case[d][john]]
Label from [arrest] (syntactic head merging with a non-head)
Theta-mark [d!case[d][john]]
Push [d!case[d][john]] (unvalued uF) onto stack
Stream: | [[prt!phi!case],[v~],[Tpast!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [arrest[arrest][d!case[d][john]]]
|
Step 4.
Merge [prt!phi!case] and [arrest[arrest][d!case[d..][john..]]]
Label from [prt!phi!case] (syntactic head merging with a non-head)
[d!case[d][john]] values uPhi on [prt!phi!case]
Unified case feature on [prt!case] and [d!case[d][john]]
Stream: | [[v~],[Tpast!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [prt[prt][arrest[arrest][d!case[d][john]]]]
|
Step 5.
Internal merge selected
Merge [prt[prt][arrest[arrest..][d..]]] and [d!case[d][john]]
Label from [prt[prt][arrest[arrest..][d..]]] (edge feature)
Stream: | [[v~],[Tpast!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [prt[d!case[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]
|
Step 6.
Merge [v~] and [prt[d!case[d..][john..]][prt[prt..][arrest..]]]
Label from [v~] (syntactic head merging with a non-head)
[v~] checks theta on [d!case[d][john]]
Stream: | [[Tpast!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [v~[v~][prt[d!case[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]
|
Step 7.
Internal merge selected
Merge [v~[v~][prt[d..][prt..]]] and [d!case[d][john]]
Label from [v~[v~][prt[d..][prt..]]] (edge feature)
Stream: | [[Tpast!phi],[c]] |
Stack (⥥): | [d!case[d][john]]
|
SO: | [v~[d!case[d][john]][v~[v~][prt[d[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]]
|
Step 8.
Merge [Tpast!phi] and [v~[d!case[d..][john..]][v~[v~..][prt..]]]
Label from [Tpast!phi] (syntactic head merging with a non-head)
[d!case[d][john]] values uPhi on [Tpast!phi]
[Tpast] values nom case on [d!case[d][john]]
Stream: | [[c]] |
Stack (⥥): | [d[d][john]]
|
SO: | [Tpast[Tpast][v~[d[d][john]][v~[v~][prt[d[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]]]
|
Step 9.
Internal merge selected
Merge [Tpast[Tpast][v~[d..][v~..]]] and [d[d][john]]
Label from [Tpast[Tpast][v~[d..][v~..]]] (edge feature)
Stream: | [[c]] |
Stack (⥥): | [d[d][john]]
|
SO: | [Tpast[d[d][john]][Tpast[Tpast][v~[d[d][john]][v~[v~][prt[d[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]]]]
|
Step 10.
Merge [c] and [Tpast[d[d..][john..]][Tpast[Tpast..][v~..]]]
Label from [c] (syntactic head merging with a non-head)
Stream: | [] |
Stack (⥥): | [d[d][john]]
|
SO: | [c[c][Tpast[d[d][john]][Tpast[Tpast][v~[d[d][john]][v~[v~][prt[d[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]]]]]
|
Step 11.
Local Extent boundary at [c[c][Tpast[d..][Tpast..]]]
New boundary (b) marker stacked
Stream: | [] |
Stack (⥥): | b [d[d][john]]
|
SO: | [c[c][Tpast[d[d][john]][Tpast[Tpast][v~[d[d][john]][v~[v~][prt[d[d][john]][prt[prt][arrest[arrest][d[d][john]]]]]]]]]]
|
Parse:
Spell-out:
John -ed(sg) be -en arrest (after morpheme realization)
John be -ed(sg) arrest -en (after affix-hop)
John be -ed(sg) arrest -en (after morpheme realization, stage 2)
John was arrested
One derivation found.
Computational Cost:
Merge: 9, Agree: 6, Unify: 1, 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 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 2 |