Can include a constraint directly but not as a supertype?

This has to be something obvious that I am not seeing.

I have a type:

vmip3s0 :=
%suffix (vmip3s vmip3s)
pres-ind_ilr &  
  [ SYNSEM.LOCAL.CAT [ HEAD.AUX -, VAL.SUBJ < [ LOCAL.AGR.PNG.PN sing ] > ] ].

I want to take the SUBJ constraint out and include it as a second supertype:

subj_sg_ilr := infl-ltow-rule & 
  [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.AGR.PNG.PN sing ] > ].

But I don’t seem to be able to do this:

vmip3s0 :=
%suffix (vmip3s vmip3s)
pres-ind_ilr &  subj_sg_ilr & 
  [ SYNSEM.LOCAL.CAT.HEAD.AUX - ].

because pres-ind_ilr fails to get unified with subj_sg_ilr.

unify failed at path: 
  might have been trying to unify types pres-ind_ilr + subj_sg_ilr

I don’t understand why:

pres-ind_ilr :=  ind-vfin_ilr & 
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE pres ].

ind-vfin_ilr :=  vfin_ilr & 
[ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD ind ] ].

vfin_ilr :=  verb_ilr & 
[ SYNSEM.LOCAL.CAT.HEAD [ PRD non-prd,
                          VFORM fin ] ].

verb_ilr :=  infl-ltow-rule & 
[ SYNSEM.LOCAL.CAT.HEAD verb ].

What’s the problem?

I do seem to be able to do this:

pres_subj_sg_ilr := pres-ind_ilr & subj_sg_ilr.

vmip3s0 :=
%suffix (vmip3s vmip3s)
pres_subj_sg_ilr & 
  [ SYNSEM.LOCAL.CAT.HEAD.AUX - ].

Is inflr.tdl somehow special, allowing only one supertype?..

Our formalism (at least for the LKB) makes the strong assumption that leaf types (including lexical entries and `leaf’ lexical rules such as the ones defined in your inflr.tdl, as well as ‘leaf’ syntactic constructions) do not allow multiple inheritance. So you’ll need to define a new type in one of the (non-leaf) types files that expresses the various constraints you want, and then have your inflectional rule for vmip3s0 inherit from that single new type.

2 Likes

The LKB actually makes the assumption that the lexical entries, grammar rules and lexical rules etc are not types. They are just feature structures which have been given an identifier. This avoids us having an absolutely enormous type hierarchy, which could cause implementation issues.

1 Like