Closed kowey closed 11 years ago
Imported from trac issue 31. Created by kowey on 1970-01-01T01:20:53, last modified: 1970-01-01T01:20:53
Trac comment by kowey on 1970-01-01 01:20:53:
It seems to be t150 in the XMG-GenI integration demo
Trac comment by kowey on 1970-01-01 01:20:53:
In the debugger, it happens at iteration 142 (or 141?)
Trac comment by kowey on 1970-01-01 01:20:53:
I can confirm that GenI 0.17.4 makes it through this. So either this is a regression or something else has changed that reveals the error.
If I understand correctly, this bug means we're trying to register more than one substitution for a variable, which doesn't make sense because normally once you've registered a substitution that variable is gone. I think this means that we're basically just failing to propagate substitutions somewhere...
This makes me want a better abstraction over unification.
Trac comment by kowey on 1970-01-01 01:20:53:
Cool! This may not be a unification bug after all, but a repeated adjunction. Why are we getting this?
Trac comment by kowey on 1970-01-01 01:20:53:
Resolved by: Fri Sep 25 17:16:00 CEST 2009 Eric Kow E.Y.Kow@brighton.ac.uk
Fix #31 - unification bug cause by failure to propagate.
We do top and bottom unification after adjunction; however, the nodes that we were doing unification on did not have the latest substitutions from the adjunction test applied to them.
I'm still not sure why this is a regression from GenI 0.17, but that's a future question to research.
Note also that this bug would not have been caught without the pattern-matching style allowed by languages such as Haskell or one of the MLs. We simply would have silently accepted the anomalous situation and the user would have been none the wiser. I consider this a succesful application of the "Dead Programs Don't Lie" principle. So yay Haskell!
Yikes!
geni: Bug in GenI! prependToSubst: Eric broke unification. Prepending K-t-73 twice
geni -m dist/build/grammar/valuation-sem.geni -l dist/build/lexicon/lemmas.glex -s suite/verbs --testcase=t110 --batchdir=/tmp/b