From W3C Wiki
When two agents are communicating via a KR language (such as KIF or RDF) it can be useful to establish a new name for something. Here's an illustration, in English, but the same thing works in KR languages.
Alice: There's this guy. I'll call him "Charlie". Bob: Okay. Tell me more about Charlie. Alice: Charlie is tall and dark. Bob: Is Charlie handsome? Alice: No.
How could Alice and Bob have that conversation without inventing the name "Charlie"?
Alice: There's this guy. Bob: Okay. Tell me more about him. Alice: He is tall and dark. Bob: Is he handsome? Alice: No.
So we could use a pronoun, if we had conversational state. Of course, we only have a few distinct pronouns so this gets messy. And KR languages don't usually have pronouns that work between messages.
Alice: I met several interesting people this weekend. Let's see. There's Charlie, David, Ellen, and Frank. Bob: Okay. Tell me more about him. Alice: Huh? Which "him"? Bob: The first guy. Alice: Oh, he's tall and dark, and his roommate is the bass player for Faded Rhino. Bob: Is he handsome? Alice: Is who handsome? Charlie or his roommate? ...
You probably want to DefineYourTerms.