I haven’t checked the code, but I seem to recall Woodley (the author of
mrs-compare) saying that he does a string comparison of the two MRSs after doing a deterministic relabeling of the variables. If he doesn’t reorder the MRSs, that could cause differences. I could be wrong about this, because this seems overly brittle.
— edit: I was misremembering a comment in the mrs-compare.c code. It’s actually compared by doing
mrs_subsumes(x, y) && mrs_subsumes(y, x), which I think is the same as calculating a variable bijection, but I’m not sure of the details. :end edit—
We’ve talked about replacing it with PyDelphin’s
delphin.mrs.compare.isomorphic() function (see https://github.com/delph-in/pydelphin/wiki/delphin.mrs.compare#isomorphic), which calculates a bijection of variables (if one exists, they are isomorphic), but I don’t think such a change has been committed yet.