------------------------------------------------------------------------

Maas-Neotek Robot User's Guide.		      Last Updated: July 1, 1990

------------------------------------------------------------------------

Chapter 1: Source Code
Maas-Neotek Robot source code is available for anonymous ftp from
NL.CS.CMU.EDU [128.2.222.56] in directory /usr/mlm/ftp (the file is
called robot.tar.Z). Be sure to FTP in binary mode, and cd to
/usr/mlm/ftp in one step.

------------------------------------------------------------------------

Chapter 2: General Functions
This chapter describes the general functions of all Maas-Neotek
Exploration robots.

Section 2.1: Information Services
The primary purpose of each Mass-Neotek robot is to aid humans by
answering questions about the Universe and things in it.  This includes
questions about finding other players, rooms, and general information.

Section 2.2: Messages
Maas-Neotek Robots will pass on messages to other players. The command
is 'Tell <player> <msg>'.  Players may ask 'Do you have any mail for
<player>?'

Section 2.3: Paging
Most Maas-Neotek robots will answer pages from players if they can find
a path to the caller's room. This feature is controllable by the robots
owner.  In any case, the robots page back to display their own
location.

Section 2.4: Exploration
The secondary purpose of some Mass-Neotek robots is to explore the
Universe to build up a map for moving about and answering questions
about paths.  Some robots actively explore, and some rely other robot's
maps.

Section 2.5: Note taking
All Maas-Neotek robots have a note taking feature, that allows their
owners to direct them to sit in a certain room, logging all activity in
the room.

Section 2.6: Philanthropy
All Maas-Neotek robots (unless modified by their owners) will gladly
give small amounts of money to players who need it.

Section 2.7: Other functions
Maas-Neotek robots are modifiable by the owner to fulfill a variety of
other functions.  Previous examples include postmaster, bartender, and pet.

------------------------------------------------------------------------

Chapter 3: The Natural Language Interface
Maas-Neotek robots are controlled by spoken messages from the 'say',
'whisper', or 'page' commands. Some commands are reserved for the owner,
some depend on the robot's mode, and most are usable by anyone.

Section 3.1: Overview of Language Interface
A robot will process a message if: (1) it is a whisper or a page,
(2) the robot is alone with the speaker, (3) the robot's name appears
in the message, or (3) the speaker recently talked to the robot.

Section 3.2: Owner control
To deactivate a robot, the owner must say 'Bye <name>'.  Merely
saying 'bye' will not work, the name must appear in the utterance.

Section 3.3: Robot configuration
Robot owners may set the robot configuration by saying '<switch> on' or
'<switch> off', where switch is one of: exploration, paging, terse,
generous, or debugging.

Section 3.4: Motion control
To cause the robot to move, either the owner, or anyone (if paging is
on) may tell the robot to 'go <direction>' or 'go to <room>'.  Also, if
paging is on, the robot can be paged to rooms with unique names.

Section 3.5: Note taking
The owner can tell a robot to 'take notes in <room>' or 'stop taking
notes' to control the note taking feature.

Section 3.6: File commands
Anyone can tell the robot to 'checkpoint' its database files.  The
owner can also tell the robot to 'coredump' or 'dump map'.  'Write
small map' and 'Write reachable map' dump smaller versions of the
current map file.

Section 3.7: Money
The robot's owner can tell it to 'give me all your money' or 'give me
<amount> pennies'.  Other players can ask for handouts by saying 'give
me some pennies'.

Section 3.8: Waiting
When paged to a location, the robot will hang around for a few minutes.
If you are done, you may tell the robot to 'leave' or 'stop hanging
around'.

Section 3.9: Objects
Maas-Neotek robots do not pick up objects, and will politely demure
when asked to do so.

------------------------------------------------------------------------

Chapter 4: Information Services*
This Chapter describes the various information queries handled by most
Maas-Neotek robots.

Section 4.1: Who is here
It can be difficult to tell which people in a room are awake or not.
You may ask the robot 'who is here?' to see a list of people in the
room who are connected.

Section 4.2: Who is around
You may also ask 'Who have you seen?' to find out the players seen most
recently by the robot.  'Who is connected' or 'Who is on' will show the
players logged into the MUD.

Section 4.3: Who is <player>
Maas-Neotek robots now store other player's descriptions and
inventories.  Asking 'Who is X?' will give these as an answer.  You may
also ask 'Who matches Y?' and 'Who carries a Z?'

Section 4.4: When was <player> on
Maas-Neotek robots remember when they last saw a player logged in, even
if that player was in a different room.  Asking 'When was <player> on?'
requests this information.

Section 4.5: Time and Date
All Maas-Neotek robots understand 'What time is it?' and 'What day is
it?'

Section 4.6: Location
All Maas-Neotek robots understand 'Where are we', 'Where are you', and
'Where am I'.

Section 4.7: Status, Wealth
Robot owners may ask 'How much money do you have' and 'What is your
status'.

Section 4.8: Help
Anyone may ask for information and assistance by asking 'Who is your
owner', 'Help', Help <topic>', 'How do I <action>',  'Where is your
manual?', and 'Where is your source?'

------------------------------------------------------------------------

Chapter 5: Mapping functions
This Chapter describes the map query functions common to all
Maas-neotek robots.

Section 5.1: What rooms
To see which rooms have been added to the robot's map most recently,
you may ask 'where have you been'.  To find out about exploration, ask
'how many rooms have you explored'.

Section 5.2: What rooms match <string>
To find out what rooms the robot knows about, you may ask 'what rooms
match <string>', or 'what room descriptions match <string>'.

Section 5.3: Shortest Paths
Anyone may ask for a shortest path by saying 'How do I get from X to
Y?', 'How do I get to X?'  Either X or Y may be the special string
'here'.  Note that the robot may not know all routes.

Section 5.4: Exits
Anyone may ask 'What exits go to <room>' or 'What exits leave <room>?'

Section 5.5: Anyone may ask 'How many rooms are reachable?' to find out
the number of rooms currently connected to the robot's home.

------------------------------------------------------------------------

Chapter 6: Long term memory
Maas-Neotek Robots keep two database files: one is the map containing
information about rooms and exits (often very large), and the other
records information about players.  These are checkpointed every hour.

------------------------------------------------------------------------

Chapter 7: Exploration
This chapter describes briefly the exploration strategy used by
Maas-Neotek robots.

Section 7.1: Exit names
Each Maas-Neotek robot has a list of standard exit names that are used
to explore rooms. If directed to go a different direction by another
player, that exit name is used only for that room.

Section 7.2: Exit list 1
Exit names: 0-12, aft, arch, back, ccw, close, cw, door, down, e, east,
ee, eee, ene, ese, fore, in, leave, left, look around, move around

Section 7.3: Exit list 2
Exit names: n, ne, nn, nne, nnn, nnw, north, nw, open, out, port, rec,
right, s, se, sideways, south, ss, sse, sss, ssw, starboard, sw, up,
w, wait, west, wnw, wsw, ww, www

Section 7.4: Strategy
The robot's exploration scheme is simple: (1) find the first reachable
unexplored room in the map and (2) try all standard exits in that room.
Most rooms are found by this simple process.

Section 7.5: Directed learning
Other players may direct the robot to 'go <direction>' and so teach the
robot new paths (or show the robot that old paths no longer work).
Such exits are stored and become part of the map.

Section 7.6: Room descriptions
When exploring, Maas-Neotek robots may use room descriptions to suggest
additional exit names.  This feature is enabled/disabled by saying 'Use
room descriptions' or 'Do not use room descriptions.'

------------------------------------------------------------------------

Chapter 8: Specialization
Some Maas-Neotek robots may be specialized to perform functions not
described in this manual.  Examples include menial labor, specialized
information retrieval, and quotation services.

------------------------------------------------------------------------

Dr. Michael L. Mauldin (Fuzzy)		School of Computer Science
ARPA: Michael.Mauldin@NL.CS.CMU.EDU	Carnegie Mellon University
Phone: (412) 268-3065			Pittsburgh, PA  15213-3890