[MUD-Dev] common server design

Cynbe ru Taren cynbe at laurel.actlab.utexas.edu
Tue Aug 12 23:54:22 New Zealand Standard Time 1997

| >Another approach is to model it as closely as possible on natural
| >English, to the extent that typing in
| >prompt> how do i fight
| >should bring up the appropriate help section.
| I don't see that this is an exception to the concept of having user
| commands follow a simple and uniform expression syntax.

This may or may not be relevant, but I believe most folks have a
greatly exaggerated notion of the suitability of "natural language"
for programming and user interfaces, among other things, almost
wholly unsupported by theory or experiment within either field.

On the programming front, this notion is, imho, simply dead wrong:
Natural language is a highly efficient code for communication between
human intelligences, magnificently badly suited to
programming. Everyone who has had to express precise algorithms
throughout history has, I believe the record shows, rapidly evolved
away from natural language.  Algol, conceptual parent of most of
today's programming languages, wasn't originally intended as a
programming language, recall (electronic computers not having been
invented yet) it was a pure and simple reaction to the inadequacy of
existing tools (including natural language) for the task of expressing
algorithms precisely and concisely.

On the UI front, "natural language" is only going to be effective if
the UI includes a system which can reasonably substitute for a human
intelligence in the relevant field of discourse -- which can
reasonably be said to "understand" the conversational topic.  This
means something considerably more sophisticated than what Eliza (say)
does, in general.
  Failing that, I believe you'll find that UI experiments show that
promising "natural language" simply confuses and frustrates users at
first, raising expectations the system cannot fulfill, then results
in them learning by induction what the system -can- in fact deal
with, and dropping all the elements it can't.  (Most "natural language"
systems in fact completely ignore a major proportion of the input,
despite having implicitly promised to process it, and extract just
a few keywords and content words.  This means the user is wasting time
entering the rest, and users naturally wind up resenting having their
time wasted.) [1]

Of course, in a game/art context, frustrating the user may be the
point of the exercise, and normal UI design considerations may not
apply. :)


[1] This doesn't mean that playing off natural language intuitions is
a bad idea -- C didn't pull 'if' 'while' 'else' 'do' ... out of thin
air.  But nobody calls C a natural language processor just because it
uses a few keywords from Anglish...!

More information about the MUD-Dev mailing list