Example 1 (Construction semantics)
S/np-nt-adv_sNOPTS
S
EH1UNSPEC_LOC_RELE1ARG1EARG2XH3H1XNINDEXH1SANCHORH2SLABELHNANCHORESINDEX
S1 -> N S
HOOK: LABEL, INDEX, ANCHOR
Step 0. Reading off XML
S: [H2, E, H1 ]
N: [?, X, H ]
RULE: H3:UNSPEC_LOC (E1)
H3:ARG1(E)
H3:ARG2(X)
ING(H3,H1)
HOOK: [ H2, E, H1 ]
Step 1
Alternative to INGs
a new anchor variable is introduced, so that each label
associated with an EP also has an anchor
S: [H2, E, A1 ]
N: [?, X, A ]
RULE: H3:A3:UNSPEC_LOC (E1)
A3:ARG1(E)
A3:ARG2(X)
H3=H1
HOOK: [ H2, E, A1 ]
All an anchor should be doing is a) acting as an anchor to some ARG,
b) being passed up to a hook anchor. Hence we can systematically
replace H variables in anchor slots.
Step 2
Conversion to algebra:
Rule slots: [H2, E, A1]S-, [?, X, A ]N-
Rule hook: [H2, E, A1]
Application order: ((rule S-) N-) (or the opposite, since it doesn't
matter here - when does it matter???)
i.e., we simply interpret the specification of the daughters' hooks as slots.
Here the names of the slots are given as the names of the daughters,
with - to indicate non-scopal.
If the hook had not been completely specified, we use the hook values
of the daughter which is interpreted as the semhead.
Example 2
S/np_vpNPVP
VP
EH3ARG1XXNPINDEXH3VPANCHOREVPINDEX
S-> NP VP
HOOK: LABEL, INDEX, ANCHOR
Step 0. Reading off XML
VP: [?, E, H3 ]
NP: [?, X, ? ]
RULE: H3:ARG1(X)
(there should really have been an ING here, but we'll put these in by default
for the non-scopal cases)
HOOK: [ H1, E, H3 ]
Step 1. Replacing anchor variables.
VP: [?, E, A3 ]
NP: [?, X, ? ]
RULE: A3:ARG1(X)
HOOK: [ H1, E, A3 ]
Step 2.
Conversion to algebra:
Rule slots: [?, E, A3 ]VP-, [?, X, ? ]NP-
Rule hook: [ H1, E, A3 ]
Application order: ((rule VP-) NP-) (again, this doesn't actually matter)
Example 3: scope
V1/v_infVVP
V
EARG2H1H1H3H3VPLABELHVLABELEVINDEXH2VPANCHOR
V1 -> V VP
HOOK: LABEL, INDEX, ANCHOR
Step 0. Reading off XML
V: [H, E, ? ]
VP: [H3, ?, H2 ]
RULE: H:ARG2(H1)
H1 qeq H3
HOOK: [ H, E, ? ]
Step 1. Replacing anchor variables.
V: [H, E, ? ]
VP: [H3, ?, A2 ]
RULE: A:ARG2(H1)
H1 qeq H3
HOOK: [ H, E, ? ]
Bug here in that anchor variable is spurious? Should be passing up
V's anchor (maybe happening by virtue of V being semhead anyway)?
Step 2.
Conversion to algebra:
Rule slots: [H, E, A ]V-, [H3, ?, A2 ]VP+
Rule hook: [ H, E, A ]
Application order: ((rule V-) VP+)
RULE A:ARG2(H1)
H1 qeq H3
First application: assuming V is [H8, E8, A8] [ H8:A8:expect(E8) ]
Rule slots: [H3, ?, A2 ]VP+
Rule hook: [ H, E, A ]
A:ARG2(H1)
H1 qeq H3
A8:expect(E8)
H=H8, E=E8, A=A8
Second application: assuming VP is [H9, E9, A9] [ H9:A9:sleep(E9) ]
Rule hook: [ H, E, A ]
A:ARG2(H1)
H1 qeq H3
A8:expect(E8)
A9:sleep(E9)
H=H8, E=E8, A=A8, H3=H9, A2=A9
i.e., [ H, E, A ] [ H:A:expect(E), A:ARG2(H1), H1 qeq H3, H3:A9:sleep(E9) ]