is there away to use a pronoun like ‘himself’ or ‘herself’ in an NPC conversation?
like, “ask the giant albino zookeeper about himself.”
i can’t simply add ‘himself’ to the (dict *) because the NPCs are all in scope as topics (they have to be able to discuss each other) and the parser will disambiguate who the himself or herself refers to.
Not the most elegant solution, perhaps, but I would make a special #reflexive topic that responds to himself, herself, yourself, etc, then redirect asking/telling about it to asking/telling about the noun.
Heh, I never even considered this. Your solution is simpler than mine conceptually. Of course it will work and it is elegant (plus no need for new grammar).
Gender irelevant:
(topic keyword @himself)
(topic keyword @herself implies @himself)
(perform [ask $Person about himself])
(try [ask $Person about $Person])
Gender enforced:
(topic keyword @himself)
(topic keyword @herself)
(perform [ask $Person about himself])
(male $Person)
(try [ask $Person about $Person])
(perform [ask $Person about herself])
(female $Person)
(try [ask $Person about $Person])
Remind me again, why am I trying to redirect himself/herself to an object? Why not just
(topic keyword @himself)
(topic keyword @herself implies @himself)
(perform [ask $Actor about himself])
(self descr $Actor)
%% And just add a new predicate to person objects for self description
#alex
(name *) Alex
(male *)
(proper *)
(descr *) A nondescript animate human being.
(self descr *) “I'm Alex, the gardener.”
(animate *)
The problem there is you also have to handle “ask Alex about Alex”, and per DRY, I like to implement the functionality of an action in only one place. (With your self descr predicate that’s not really an issue, but that’s why my instincts say to do a redirect.)
I have seen it expanded as Write Every Time as well. Then there is MOIST(Modularize Only If Something Tangible) and DAMP(Don’t Abstract Methods Prematurely). I don’t know why programmer’s are so obsessed with towels.