Grr… Probably most simple, but I don’t get it. I have an “entry gate” and a “gate key”, and I’d like to keep those names, if only to understand some mechanics.
unlock gate
(the gate key with the gate key)
That doesn’t seem to be something you can unlock.
unlock entry gate
(with the gate key)
That doesn’t seem to fit the lock.
1.) How do I sort or prioritize items so that the first assumption (“unlock gate key”) is replaced by a better one (“unlock entry gate”)?
2.) How do I overwrite the system report (“doesn’t seem to fit”) with something different (“Although… doesn’t match… perhaps…”)?
Have you looked at the Locksmith extension? That might help with some of your issues.
As for disambiguation, that’s just a matter of hard work. It’ll always be hard to disambiguate - to the extent where I might even leave the word “gate” out of the actual object name:
The gate-key unlocks the gate. The printed name of the gate-key is "gate key". Understand "key" as the gate-key.
An instead rule should do it. I think the required conditions for when it should fire would be as follows:
Instead of unlocking something with something when
the noun does not provide a matching key or
the matching key of the noun is not the second noun,
say "Although... doesn't match... perhaps...".