Actually, this is not quite right. For initial presentation, we have allowed a certain amount of confusion between the thing itself, and its name. Really, the frame for Adam would look something like:
frame-27: name: ("Adam") sex: (frame-2) spouse: (frame-28) child: (frame-29 frame-30 frame-31)
A frame has two different types of name.
True names are the pointers from one frame to another that actually represent the structure of the knowledge base. Public names are for communication with other agents.
For ease of debugging and interaction, when a frame is created with a simple public name, Algernon attempts to generate a true name that has the same or similar printed representation. Similarly, the user interface attempts to retrieve the desired frame, whether you type its true name or its public name. However, this should be treated as a happy coincidence when it happens.