NameIt

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"?

Perhaps:


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 may want to use a DescriptiveName and/or GlobalNaming.

You probably want to DefineYourTerms.