Open goodmami opened 4 years ago
Still an issue. Compiling (with ACE) the customized grammar using the choices file from the Trac issue, I see this:
$ ace -g ace/config.tdl -G mar.dat
reading configuration from `ace/config.tdl'
grammar version Marathi (2020-07-29_09:19:28_UTC)
reading grammar from `ace/../marathi-pet.tdl'
reading types from `ace/../head-types.tdl'
reading types from `ace/../matrix.tdl'
reading types from `ace/../marathi.tdl'
reading types from `ace/../mtr.tdl'
reading lexical entries from `ace/../lexicon.tdl'
reading rules from `ace/../rules.tdl'
reading lexical rules from `ace/../lrules.tdl'
reading lexical rules from `ace/../irules.tdl'
reading instance from `ace/../labels.tdl'
reading instance from `ace/../roots.tdl'
checking for glbs... 57 ms
tdl: requested unification failed
unify failed at path: INFLECTED COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG
might have been trying to unify types + + na-or--
lhs: #D[pronoun_lexeme-noun-lex ARGS: #D[list] STEM: #D[list] SYNSEM: #D[synsem LOCAL: #D[mod-local CONT: #D[*top* RELS: #D[diff-list LIST: #D[cons FIRST: <1>= #D[noun-relation PRED: #D[predsort] WLINK: #D[list] LBL: <2>= #D[handle INSTLOC: #D[string] ] ARG0: <3>= #D[ref-ind INSTLOC: #D[string] SORT: #D[semsort] COG-ST: #D[cog-st] SPECI: #D[bool] PNG: #D[png PERNUM: #D[pernum] GEND: #D[gender] ] ] ] REST: <4>= #D[list] ] LAST: <4> ] HOOK: #D[*top* INDEX: <3> LTOP: <2> ] HCONS: #D[diff-list LIST: <5>= #D[list] LAST: <5> ] ICONS: #D[diff-list LIST: <6>= #D[list] LAST: <6> ] ] COORD: #D[-] CAT: #D[*top* HEAD: #D[noun MOD: #D[null] PRD: #D[bool] KEYS: #D[keys_min] PRON: #D[bool] AUX: #D[bool] FORM: #D[form] CASE: #D[case] ] VAL: #D[*top* SPR: #D[cons FIRST: <7>= #D[*top* LOCAL: #D[*top* CAT: #D[*top* HEAD: #D[det MOD: #D[list] PRD: #D[bool] KEYS: #D[keys_min] PRON: #D[bool] AUX: #D[bool] FORM: #D[form] ] ] ] OPT: #D[+] NON-LOCAL: #D[*top* SLASH: <8>= #D[*top*] REL: <9>= #D[*top*] QUE: <10>= #D[*top*] ] ] REST: #D[null] ] SPEC: #D[null] COMPS: #D[null] SUBJ: #D[null] ] ] ] LKEYS: #D[*top* KEYREL: <1> ] OPT: #D[bool] OPT-CS: #D[cog-st] NON-LOCAL: #D[non-local-min SLASH: <8> REL: <9> QUE: <10> ] L-PERIPH: #D[luk] R-PERIPH: #D[luk] ] KEY-ARG: #D[bool] INFLECTED: #D[inflected TOBE_AUX_INFLECTION-FLAG: #D[luk] TOBECOME_AUX_VERB_LEXEME-AUX-FLAG: #D[luk] PRESENT_LEXICAL_RULE-FLAG: #D[luk] CASE-FLAG: #D[-] TOBECOME_AUX_INFLECTION-FLAG: #D[luk] FUTURE_LEXICAL_RULE-OR-PAST_LEXICAL_RULE-FLAG: #D[luk] F_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] M_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] N_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] VERB_TENSE-FLAG: #D[luk] AUX-FLAG: #D[luk] COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG: #D[+] INTRANS_VERB_LXM-VERB-OR-TRANS_VERB_LXM-VERB-FLAG: #D[luk] VERB_GENDER_FUTURE-OR-VERB_GENDER_PAST-OR-VERB_GENDER_PRESENT-FLAG: #D[luk] TOBE_AUX_VERB_LEXEME-AUX-FLAG: #D[luk] ] ALTS: #D[alts-min] ARG-ST: #D[cons FIRST: <7> REST: #D[null] ] ]
rhs: #D[*top* INFLECTED: #D[*top* F_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] M_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] N_NOUN_LEXEME-NOUN-FLAG: #D[na-or--] COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG: #D[na-or--] ] ]
hint: dagify failed
tdl: top-level error occured near ace/../marathi.tdl:159
Here are the relevant parts from marathi.tdl
:
1sg_pronoun_lexeme-noun-lex := 1sg_noun_lexeme-noun-lex & pronoun_lexeme-noun-lex &
[ INFLECTED [ COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG na-or--,
M_NOUN_LEXEME-NOUN-FLAG na-or--,
F_NOUN_LEXEME-NOUN-FLAG na-or--,
N_NOUN_LEXEME-NOUN-FLAG na-or-- ] ].
pronoun_lexeme-noun-lex := no-spr-noun-lex &
[ INFLECTED [ COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG +,
M_NOUN_LEXEME-NOUN-FLAG na-or--,
F_NOUN_LEXEME-NOUN-FLAG na-or--,
N_NOUN_LEXEME-NOUN-FLAG na-or-- ] ].
The values for INFLECTED.COMMON_NOUN_LEXEME-NOUN-OR-PRONOUN_LEXEME-NOUN-FLAG
are incompatible.
Migrated from Trac:
The attached choices file leads to a grammar that won't load. I think this is something to be checked in validation, but it could be that it's really customization that needs to be fixed. At any rate, the heart of the matter is the interaction between the requires constraints (and flag features) from morphotactics and the ability to define a type hierarchy for nouns. More specifically, if the "requires" constraint points to only one dimension of a cross-classification, we don't want the types from the other dimensions to get the na-or-- value for that constraint.