Omitting the adjective part from the identifier will just not associate an adjective with the object (only a noun).
The possessive adjective is not used (or supported) right now. I'd just focus on giving objects one adjective. I'd say in the case of the gnome's really big hat, just use
big_hat : object "gnome's really big hat" start_at = "vault";
Multiple objects can share the same verb and adjective, using numeric suffixes:
big_hat_1 : object "troll's really big hat" start_at = "vault";
Disambiguation for all the system commands is automatic, but for user match commands, you'll have to disambiguate manually (for now). This implementation will be changing, but not before the end of this jam.