This issue is a bit of a mess. Simply saying “Some ears are a part of every person” creates an object called “[whatever the person’s name is]'s ears” – in this case “John Jacob Jingleheimer Schmidt’s ears,” and I do believe that’s the last time I’ll type that out in full – so “John’s ears” doesn’t work, because “John’s” isn’t a word in the name of the ears. Note that “x john ears” does work. Which is unsatisfactory, since we’d like to allow “John’s” to refer to parts of John, as well as synonyms (“x boy’s ears,” if “boy” is understood as a synonym for JJJS).
This bit of code gets at least part of the way there; it inserts a space before 's in any command, so the 's can be processed as a separate word, and then takes the “[name] 's” to refer to anything that the named thing encloses. (If you just want to refer to parts, you can change “enclosure” to “incorporation.”)
[code]After reading a command:
let X be indexed text;
let X be the player’s command;
replace the text “'s” in X with " [’]s";
change the text of the player’s command to X.
Understand “[something related by reversed enclosure] 's” as a thing.
Understand “my” as a thing when the player encloses the item
described.[/code]
But then some other potentially screwy stuff can happen. See the discussion around here; that’s where the bug comes in. You might also want to read some of the previous discussion (though the first piece of code I posted there was somewhat buggy on its own terms and also copied in wrong, and then Endosphere and I talked past each other for a while).
Here’s another relevant discussion; it seems that if you combine this with “The player is Sally” you get a whole bunch of new issues, thanks to the mysterious “yourself” object. And here’s a thread relevant to that (I think that’s the one with Endosphere’s solution to the problem mentioned in the previously linked thread.
…anyway, hopefully the first bit of code I posted is enough to get you started.
[Your second post went up while I was typing – that’s odd.]