Inheriting from head-valence-phrase and putting a single argument on the slash list

error_messages
hpsg
grammar_matrix
analyses

#1

I’m trying to code a series of rules that require a head-daughter with an empty slash list and copy the index from the one of my head daughter’s valence items onto the parent’s slash list. The motivation for this is a resumption-like phenomenon in a language where an external phrase (topic, S-embedding) can overtly realize a coreferenced argument belonging to a lower clause’s verb. This happens for realized and non-realized lower-clause arguments, so I was trying to create a parent rule type that was cross-inheritable with subj-head, head-subj, head-opt-subj, etc. The theoretical, abstract parent rule says “my head-daughter has an empty slash list, and I am putting one item’s index from its arg-st onto my slash list.” I don’t think I can say “some item on the arg-st” so I’m having to code that bit out by hand, but that’s fine.

It appears however I have a problem because all of these rules (head-subj, head-comp, head-opt-subj, head-opt-comp, etc) inherit from head-valence-phrase, and head-valence-phrase says that my head-daughter’s slash list is my slash list. So when I naively tried to write my rule:

head-opt-subj-slash-phrase := decl-head-opt-subj-phrase &
[ SYNSEM.NON-LOCAL.SLASH <! [ LOCAL.CONT.HOOK.INDEX #index ] !>,
HEAD-DTR.SYNSEM [ LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX #index ] >,
NON-LOCAL.SLASH <! !> ] ].

…my grammar does not compile:

Cyclic check found cycle at < HEAD-DTR : SYNSEM : NON-LOCAL : SLASH : LIST : REST >
Unification failed - cyclic result

Is there any way for me to get around this aside from the slightly horrible task of rewriting all the valency reduction rules?


#2

This is because of the “lexical threading” analysis of SLASH, which is baked fairly deeply into the Grammar Matrix. The associated analysis of resumptive pronouns creates resumptive pronouns which themselves have non-empty SLASH values (coindexed with their own INDEX). Would that work for you?


#3

I’m not familiar with the term “lexical threading” here - does this just mean that SLASH is determined lexically and cannot be altered along until you get a new head value?

I actually do have resumptive pronouns with non-empty SLASH values but I need that to somehow be coindexed with an argument on the verb. I don’t know how to enforce that unless I place the verbal argument’s index on the SLASH.

But I also have almost the inverse of the typical resumption case. There is a pronoun or agreement marker VP-internally which is (in some cases obligatorily) coindexed with a VP-external NP, so I think I do have to put the VP-internal item on the SLASH, then discharge it with a head-filler rule.


#4

“Lexical threading” means that the head daughter ‘gathers up’ the SLASH values of its dependents and passes them up to the mother. This analysis is due to Bouma, Malouf & Sag (2001, I think). The ERG (and thus the Matrix) do this for selected arguments, but have the rules do the append for adjuncts.

I don’t see how what you describe differs from a typical resumption case, except maybe that it isn’t (very) long distance?

At any rate, what I would expect to work is:

(1) For independent resumptive pronouns: They have non-empty SLASH values which point to their own INDEX. They should probably also be RESTR < >, so you don’t get two _n_rels with the same ARG0. From there, the lexical threading will mean that the verb and its projections have non-empty SLASH until the head-filler rule discharges it.

(2) For affixes that function as resumptive pronouns… I’d first want to know how you can tell this isn’t just agreement, but assuming that it isn’t, then the morphology puts something on the verb’s SLASH list.


#5

Thanks for your help Emily!

I believe the affixes are resumptive because they can obligatorily coindex and enter into agreement with topicalized NPs one level embedding up, e.g. outside a “know that” or “see that” clause.

There were two reasons I tried to put the resumption (adding an argument’s index to the SLASH list) inside the phrase rules instead of by doubling the number of pronouns, one idiosyncratic and one more serious.

  1. Idiosyncratic: I find the doubling of lexical material unsatisfying, especially when (as in the case of resumption) there doesn’t seem to be a semantic difference between the two entries.

  2. More serious: It is possible for the VP-internal argument to be an NP. Consider the glossed example (i) below.

(i) that.the.first 3S-make god person
PROi,topic [3S-make godNP,j personNP,i]VP/S
‘God made that person first.’

I think I need to somehow get the NP “person” onto the SLASH list of “make”, so that it can be coindexed with the topicalized pronoun. Or perhaps I am missing something and I can coindex them another way?


#6

Actually coindexing two full NPs is going to lead to broken MRSs — you can’t have the same index be the ARG0 of two different relations (and bound by two different quantifiers).

If you actually want to get to examples like your (i), then you probably want to represent the coreference with an ICONS constraint saying that the variables for the PRO (let’s say x1) and person (x2) are identified. One way to do that: A non-branching phrase structure rule over the NP that adds the ICONS constraint and puts in a SLASH element with INDEX x1.

You could also use a rule like that with your pronouns, and treat them as real pronouns.

But: Why is everyone so afraid of homophony?


#7

A fair amount has happened off the board, so I’ll summarize the relevant bits:

I tried adding to the verb’s SLASH list, but (pace Emily) there are constraints on the verbs that make their SLASH a function of their argument’s SLASH values. So I have to modify the argument’s values, not the parent’s values That is, I tried the following kind of rule:

slash-subj-lex-rule := slash-subj-lex-rule-super &
  [ SYNSEM [ NON-LOCAL.SLASH <! [ LOCAL.CONT.HOOK.LTOP #larg ] !>,
             LOCAL.CONT.ICONS <! qeq & [ HARG #harg,
                                         LARG #larg ] !> ],
    DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < [ OPT +,
                                      LOCAL.CONT.HOOK.LTOP #harg ] > ].

This is bad (as I understand it) because I should be modifying the argument’s SLASH, not the verb’s.

I also have another problem which is that, even with all the SLASHing functions removed from my grammar, my filler-gap rule (basic-head-filler-phrase & head-initial) is happy to add any and all items to VPs with nothing on their SLASH list. This makes my grammar wildly overgenerate. I did some investigation and it appears that my VPs all (again, even without the version of the grammar with the above rule) have a SLASH that is a 0-1-dlist, so the filler-gap is happy to hallucinate an item of length one on the SLASH list. I’m not sure how to keep this rule from firing.


#8

As an update, this is my rule as it stands:

slash-subj-lex-rule := slash-subj-lex-rule-super &
  [ SYNSEM.LOCAL [ CONT.ICONS <! qeq & [ HARG #harg,
                                         LARG #larg ] !>,
                   CAT.VAL.SUBJ < [ OPT +,
                                    LOCAL.CONT.HOOK.LTOP #harg,
                                    NON-LOCAL.SLASH <! [ LOCAL.CONT.HOOK.LTOP #larg ] !> ] > ] ].

This rule never fires (for some reason I cannot discern - manual unification works fine!). Its parallel rule (which only inherits from slash-subj-lex-rule-super) fires in normal parsing. Here is my gap-filler:

left-dislocated-arg-phrase := basic-head-filler-phrase & head-final &
  [ NON-HEAD-DTR.SYNSEM.LOCAL.CONT.HOOK.ICONS-KEY focus-or-topic ].

This rule always is possible, even if the SLASH of the verb has not been specified. Again, this is because every verb in my lexicon inherits a slash of 0-1-dlist from the Matrix, and so the parser happily unifies the NON-HEAD-DTR of this rule with the verb’s underspecified SLASH list. I feel like I don’t have a good understanding of how we’re utilizing SLASH here.


#9

A couple of comments:

(1) You definitely don’t want a qeq on the ICONS list. The constraints that go there relate individuals (x’s and e’s) to each other (hence ICONS). Probably the only ones currently defined in the Matrix are the information structure ones that Sanghoun created. I don’t know if the current ERG has the anaphora-related ones in or not and what they are called.

(2) Do you want this rule to shorten the SUBJ list or not? This version isn’t shortening it, but then you might as well have the (resumptive) pronoun itself have a non-empty SLASH list and you don’t need the rule.

(3) extra-subj would be a good model if you mean to shorten the SUBJ list (though that’s a phrase structure rule, not a lex rule).

(4) Apparently non-slashed verbs happily combining as the head of head-filler is symptomatic of underconstrained SLASH values somewhere. It’s all diff-list appends, so if you have something that doesn’t constrain its SLASH list, everything will be constrained. Basically: All lex items should inherit from basic-zero-arg, basic-one-arg etc and all lex rules should be sure to copy up NON-LOCAL. In terms of debugging, treat this like you would a case where EPs go missing from the RELS list and try to find the smallest constituent with the problem.


#10

(1) I thought the qeq on the ICONS list was what you suggested in your office (clearly not - I have misunderstood some important point). We were trying to get the two indexes (the one on the VP-internal NP/pronoun and the external topic NP/pronoun) to be qeq to each other, and I thought that was happening on ICONS but I may have misunderstood and it should be HCONS. Should I be constraining these values on HCONS?

(2) I do not want it to shorten the SUBJ list. The reason that I have the rule this way is to avoid doubling the lexical entries for agreement markers - one SLASHed and one not. One reason I try to avoid introducing this homophony is so I can model dialect differences or diachronic change by modifying a grammatical rule once rather than adding or removing X * 2 lexical entries. My original way of doing this was to have a phrase-structure rule modify the SLASH list, but my understanding now is that this violates lexical threading. Or could I still make this SLASH addition via a unary phrase structure rule?

(4) My verbs are all inheriting from one of: intransitive-lex-item, transitive-lex-item, ditransitive-lex-item in the Matrix, and these types inherit from basic-#-arg, so I thought it would’ve been alright but will do some more digging.


#11

Re ICONS — it’s definitely ICONS if anything. HCONS is for handle constraints, and that models scope underspecification. ICONS models relations between indices, including information structural constraints but also “eq” and “neq” for binding: http://moin.delph-in.net/SaarlandIconsErg I was saying “eq” today, and I guess you heard “qeq”…

But: Can we back up to data here? What kind of example is this rule meant for (in IGT)?

Also — if you recall, the ICONS analysis goes with semantically contentful resumptives, i.e. pron_rel contributing ones. Is that what you’re doing here?

Finally, what happens if you just instantiate the extracted subject rule (extr-subj)?


#12

Good questions. The kind of examples this rule is meant for are the ones below:

(1) the other.masci 3fS-order daughter 3fS-throw-3mOi river
“The others she ordered her daughter to throw (them) into the river.”

(2) 1S-want 1S-tell 3mSi-believe=REL and 3mSi-make=REL matsigenkai.
“I want to tell what they believe and what they make, the Matsigenka.”

(3) 1POSS-brother.in.lawi 1S-leave=3mOi 3mOi-pursue monkey.
“My brother in law I left pursuing a monkey.”

(4) Kinteronii PRO.MASCi be.master.of earthquakes
Kinteroni is the master of earthquakes”

(5) that PRO.first.onei 3mSj-make=REL Godj personi [3mS-name-3mO NAME and NAME].
“Those first people that God made […he named Kinteroni and Pareni]”

There’s both a left-dislocated (1, 3, 4) and right-dislocated (2) position, and it can coreference with either a standalone pronoun or an affix, but critically it must be one or the other.

Certain free pronouns must be coreferenced with either an agreement marker (not shown) or an NP in a filled gap (4). We discussed not giving these pronouns a pron_rel.

The reason I wanted initially to allow NPs to resumpt was (5), where it would be [O-GAP] [VSO], but I think I can bracket that one so that it is [OVS] [O-GAP]. This keeps the pronoun VP-internal, so the pronoun can introduce the gap.

I don’t see the extr-subj rule in the Matrix version I have. Assuming it’s something to generate from the customization system, but I’m a bit out of time today to go generate it, and will look into it Friday or next week.


#13

You should definitely have basic-extracted-subj-phrase in matrix.tdl, and that’s what you’ll want to create an instance of (with perhaps a Matsigenka-specific subtype in matsigenka.tdl intervening).

So, to recap, there were two ideas we were discussion:

(1) The resumptive pronouns introduce an EP (pron_rel, plus actually the associated exist_q_rel). In this case, you can’t directly co-index, because then you’ll have two quantifiers with the same bound variable. So instead, you can introduce an eq (NB: not qeq) constraint on ICONS, relating the two (still distinct) indices.

(2) The resumptive pronouns are semantically empty, in the sense of being [ RELS <! !> ]. The INDEX of the resumptive pronouns is identified with both the argument position they fill (as would be true in (1) as well) and the element of some SLASH list. In the case of stand-alone resumptive pronouns, this would be their own SLASH list, which is then amalgamated by the verb they are a dependent of. In the case of affixes, you’ll probably just want the verb to undergo the (syntactic) extr-subj and extr-comps rules, which you can create by instantiating the relevant types from matrix.tdl.

I think we decided that (2) would be preferable, especially since your putative example of a resumptive, non-pronominal NP, could be reanalyzed as right dislocation.


#14

Following up on the meeting this morning, I’m implementing the morphological analysis for gapping, which works quite nicely. However, my gap-filler rule is firing even when the slash list 0-1dlist.

Here’s my rules:

slash-subj-lex-rule := slash-subj-lex-rule-super & val-change-only-lex-rule &
  [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < >,
                           COMPS #comps,
                           SPR #spr ],
    DTR.SYNSEM.LOCAL.CAT.VAL [ SUBJ < gap & [ OPT + ] >,
                               COMPS #comps,
                               SPR #spr ] ].

no-slash-subj-lex-rule := slash-subj-lex-rule-super & add-only-no-ccont-rule.

left-dislocated-arg-phrase := basic-head-filler-phrase & head-final &
  [ NON-HEAD-DTR.SYNSEM.LOCAL.CONT.HOOK.ICONS-KEY focus-or-topic ].

When I parse a simple sentence, “kemari i-a-ak-i” (tapir 3mS-go-PERF-REALIS), I get a lot of extra parses, because left-dislocated-arg-phrase will happily pick up a no-slash-subj-lex-rule, and I get a dangling tapir_rel that is not connected to anything in the MRS. I’m not sure what is leading to this.


#15

If left-dislocate-arg-phrase is applying without slash-subj-rule, then that suggests that something is leaving SLASH underspecified. 0-1-dlist looks suspiciously underspecified. Can you post one of the problematic trees?


#16

Hmm, I’m not sure how to post the tree with all its data. Here is a screen shot:

34 PM

The top S is left-dislocated-arg
The top VP is no-slash-subj-lex.

When I look at the parse chart, that VP node (no-slash-subj-lex) has a SLASH list that is of type 0-1dlist, and I don’t know why.

This tree is in addition to the one with the same structure, but where the top S is the SUBJ-HEAD rule (which is correct).


#17

I think I see – your left-dislocated-arg-phrase should insist on [ SUBJ < > ] on the head daughter. Since the subject hasn’t been picked up, the SLASH is still underspecified (don’t know what might be coming in from the subject).


#18

So I made that specification and that mostly reduced it, yay!

left-dislocated-arg-phrase := basic-head-filler-phrase & head-final &
  [ HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < >,
    NON-HEAD-DTR.SYNSEM.LOCAL.CONT.HOOK.ICONS-KEY focus-or-topic ].

I do still have this pair of trees (oddly), which are identical except the S -> VP rule.

05 PM

The lower S is is SLASH-SUBJ-LEX and the top or near-top VP is LEFT-DISLOCATED-ARG. The issue appears to be that the SLASH-SUBJ-LEX is putting something on the SUBJ list that is underspecified. The left tree’s highest VP node has a VAL.SUBJ unexpressed-reg, and the right tree’s highest VP node has a VAL.SUBJ list. I’m not sure why these things are being generated. I can get rid of the rightmost tree by adding SYNSEM.LOCAL.CAT.VAL.SUBJ < > to left-dislocated-arg-phrase above but don’t know why it’s needed.


#19

It’s needed because nothing else is constraining the VAL features of this rule (apparently), and VAL features left underspecified will let the relevant phrase structure rules go to town…