Language Parsing

<b>Has this ever happened to you?</b>


	Entering CoolGame 2.0, 05/03/01 08:51 GMT
	Logging on as user Stillflame...

	Welcome.
	>look around

	You don't see any 'around'.
	>look

	You're standing in a cheap hotel room.  The air is warm
	and stale.  You see your clothes lying in front of your feet.
	>pick up my clothes

	You don't know how to 'pick'.
	>get my clothes

	You don't see any 'my'.
	>get clothes

	You pick up your clothes.
	>put on my clothes

	You don't know how to 'put'.
	>equip clothes

	You put on your clothes.
	...

This is not a friendly user interface at all! There was very little communication going on in that sceanario, for either side. The game expected certain commands, and ONLY certain commands to be issued. The user expected to be able to interpret what ze reads as an acurate description of the environment ze is playing in. Worse still is that of a user trying to speak interactively or realistically to a game-controlled character: it just doesn't work. In the past, there have been structures which attempted to address this (keyword speaking, limited choice of responses, &c.), none of which have, in my opinion, created a seamless or realistic world. The game interface described above is very limited, too limited for an implementation of a game like F&aelig;rieMUD?, or anything else intending to be a truly excellent game involving text as a gateway of communication.

Here is some of what we'll need:

  • Sentence Parsing - The game needs to be able to separate words for what they are and how they relate to each other. Enter Link Parser.
  • Word Definitions - If a word is unknown, there needs to be some path to finding out what that word means and how to apply it to the situation at hand. Dictionaries are a start, and so would be a Thesaurus. Instead, we can kick it into full spectrum with the most excellent Word Net.
  • Putting it all together - The mechanics of involved in taking the words as they are typed and turning them into a command to be interpreted by the game will involve lots of magic. Hopefully, by the time this stage is at hand, our young adept will have grown to meet its requirements (or enlisted more help).

— --

Another cool thing I think WordNet will allow us to do is flesh out a heirarchy of world classes. I'm planning on tying the Meta Class builder? into the WordNet heirarchy so that if you want to create a Basket class, for example, it would search for any hypernyms of basket which are as yet undefined:

Sense 1
basket, handbasket -- (a container that is usually woven 
and has handles)

  => container -- (something that holds things, especially
	  for transport or storage)

	 => instrumentality, instrumentation -- (an artifact (or
		 system of artifacts) that is instrumental in 
		 accomplishing some end)

		=> artifact, artefact -- (a man-made object)

		  => object, physical object -- (a physical (tangible
			  and visible) entity; "it was full of rackets, 
			  balls and other objects")

			 => entity, something -- (anything having existence
				 (living or nonliving))

Any of these which are not yet defined would be suggested, and perhaps automatically generated, and the class heirarchy could thus be kept consistent. Not only that, but the relationships of object instances in the game would match the conceptual one in Wordnet so that parsing things like 'get all the containers' will become much easier.

Stillflame - 13 May 2001
GedTheGreysHain - 14 May 2001 [Wrapped example in gameConsole DIV, added notes on WordNet]