home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Zodiac Super OZ
/
MEDIADEPOT.ISO
/
FILES
/
04
/
SATURN50.ZIP
/
SATURN.DOC
< prev
next >
Wrap
Text File
|
1996-08-18
|
86KB
|
1,971 lines
.R:P
╔═════════════════════════════════╗
║ ║
║ SATURN VERSION 5.0 ║
║ ║
║ ║
║ INTELLIGENT RELATIONAL DATABASE ║
║ ║
║ ║
║ ║
║ USER'S GUIDE ║
║ ║
╚═════════════════════════════════╝
2
2
L---+---T1----+-T--2----T----3--T-+----4T---+---T5----+-T--6----T----7--TR r
.R:Q
System Requirements:
Saturn requires a PC with an 80286 or higher processor and a colour
(CGA,EGA,VGA,SVGA) monitor and at least 4mB of memory, and a hard disk.
MS/PC DOS version 3 or higher is required.
Saturn will operate under Windows as a "Non-windows application". You
should configure Windows to "maximise on use" and provide all available
memory to Saturn.
Note, the shareware evaluation version will only function 20 times, and
will then expire. You will not be able to reinstall the shareware version
of Saturn, but will need to purchase the registered version.
Copyright (c) 1994 Servile Software. All Rights Reserved.
No part of this publication may be reproduced, transmitted, transcribed,
stored in a retrieval system, or translated into any other language or
computer language in whole or in part, in any form or by any means,
whether it be electronic, mechanical, magnetic, optical, manual or
otherwise, without prior written consent of Servile Software.
Servile Software disclaims all warranties as to this software, whether
express or implied, including without limitation any implied warranties of
merchantability, fitness for a particular purpose, functionality, data
integrity or protection.
MS-DOS is a trademark of Microsoft Corporation.
3
Thanks are due to the following people for their patience, assistance and
incentives in the evolution of Saturn from 1993 to 1996;
Malcom Rowe
Deloris Probert
Stephen Yarrow
Dave Mayer
Dave Beecham
4
.R:P
CONTENTS
LET'S GO!...............................7
ABOUT SATURN............................8
STARTING SATURN........................11
SECTION ONE - THE SATURN INTERFACE.....12
SECTION TWO - RETRIEVAL SYSTEM.........18
SECTION THREE - PROGRAMMING SATURN.....28
SECTION FOUR - EXPLORING NLP...........38
APPENDIX - ONE ERROR MESSAGES..........46
APPENDIX TWO - EXAMPLE APPLICATIONS....48
APPENDIX THREE - THE SATURN EDITOR.....50
APPENDIX FOUR - ACKNOWLEDGMENTS........54
.R:Q
6
5
.H:Saturn...User's Guide
.H:
.F:
.F:
.F:...Page $$$...
LET'S GO!
This brief introduction is designed to allow you to start exploring the
power of Saturn immediately. Saturn is a computer program that can be
viewed from two distinct directions. Firstly, Saturn is an intelligent
relational database that can be used to store and retrieve information
(data). Secondly, Saturn is an AI application that can be used to explore
the realms of natural language.
Saturn comes with an educational encyclopaedia file called "general.knb".
When you start Saturn, it tries to read this file. If you want to access a
different knowledge base, include its name when you start Saturn.
For example, to get going with the general knowledge base start Saturn
with the command;
SATURN
To use the example video catalogue knowledge base instead, start Saturn
with the command;
SATURN VIDEO
And then select the QUERY facility from the Saturn Interface menu. You are
now in a position to start playing!
6
ABOUT SATURN
Saturn is an application of that branch of computer science called
"Artificial Intelligence" (AI for short). In its crudest form, Saturn is a
data storage and retrieval system. But there is much more to Saturn than
just providing you with a system for recalling facts. Saturn can "think".
I have used quotation marks around the word "think" because there is some
debate whether computer programs can actually think. Saturn has been
programmed with certain rules that it uses to cross reference the
information it has available to it, and respond accordingly to questions
put to it. These rules generally apply to the English language. In AI
circles this type of computerised process is called "Natural Language
Processing" (NLP for short). The first thing you will notice is that
Saturn accepts questions and commands in ordinary - "natural" - language.
Questions such as "what is a cat?" or more complex questions such as "is
London the capital of England?" Saturn's ability to answer questions is
dependant upon the information it has available to it. This information is
"read" from a file when Saturn is started. By default, Saturn selects a
file with the name "general.knb" to read, but you can instruct Saturn to
read other files instead. Unlike a human mind, Saturn forgets all that it
has read immediately upon being switched off or being instructed to read
another file. This means in practice that instructing Saturn to read one
file, and then subsequent files will result in Saturn forgetting all
information read from the previous files, and only retaining knowledge
from the most recent file. These files are called "knowledge bases".
Having established that Saturn receives all its information by reading a
specified file, it is time to consider how this file is created. Unlike
conventional computer database systems, Saturn does not require its
information to be stored in a rigidly structured manner. Instead,
information is stored as natural language text with a heading preceeding
each item. The title and the text may be in either capitals or lowercase
letters. Saturn makes no distinction bewteen them. This is very similar to
the way in which information is presented in a printed book. A heading is
followed by the body of the text about the heading. For example. Let us
consider that we wish to store some brief information about "the cat". It
is important to stress the term "brief". Because Saturn cross references
information automatically, there is no need and no gain to be had from
being verbose. If consider the information we wish to store about "the
cat" is; "The cat is a genus of carnivorous animal." Then, if we were to
write this down in a notebook we might write:
7
CAT
The cat is a genus of carnivorous animal.
Where the word "CAT" is the title of the text which follows. Saturn
expects information to be presented in a similar manner. Because
computer's are stupid, compared to us humans, we need to specify that the
word "CAT" is in fact a title. Saturn expects titles to be prefixed with
an asterisk, "*" and the information about the cat thus looks like:
*Cat
The cat is a genus of carnivorous animal.
Saturn can also accept information that alters its behaviour. This
"programming" information is of three forms: "replacements", "actions" and
"knowledge tree".
Replacements are words that tell Saturn that one word in fact means
something slightly different. For example. Consider the statement "the
badger is an animal found in England". From this statement an educated
person can deduce that a "badger" is "English". Replacement information is
stored in the format:
+object
replacement
For example:
+English
England
Actions are those words that linguists like to call "verbs". These are the
titles of various actions, such as "run", "beat", "eat" and so on. These
words tell us and also Saturn what something "does". Saturn is informed
that a word is an action by including it in the file prefixed by "@". For
example:
@EAT
Knowledge trees are more complex. These are links between various subjects
that serve to improve the speed and reliability with which Saturn makes
deductions. We know that "all metals are inorganic". We inform Saturn of
this by including in the file a line which states:
/ALL METALS ARE INORGANIC
8
If you are familiar with the computer language "Prolog" you will
appreciate Saturn's free-format for facts and relationships. If you want
to inform the computer that "John likes Mary", in Prolog you would write:
likes(john,mary).
But in Saturn it is only necessary to write:
John likes Mary
Let's take this a step further. Consider the relationship between three
people; John, Mary and Peter. John likes Mary, Mary likes Peter and Peter
likes John. The word "like" is an action (crudely speaking!) so this
information can be presented to Saturn as follows:
@like
*John
John likes Mary.
*Mary
Mary likes Peter.
*Peter
Peter likes John.
Saturn can then answer questions such as:
Q: Who likes John?
A: Peter likes John.
Q: What does John do?
A: Likes Mary.
Q: Who likes Peter?
A: Mary likes Peter.
If we omit the action definition, "@LIKE" from the knowledge base, Saturn
will not be able to answer the question "What does John do?". This is
because Saturn has been programmed to respond to a question about what
something "does" by looking for a) The subject in question, here John and
b) an action word in the text about that subject.
Similarly, if we omit the relationship about Peter and John, and then ask
Saturn "Who likes John", Saturn will not be able to answer accurately, and
so will reply "John likes Mary." This is a quite acceptable confusion.
Consider how you respond to questions you are unsure about. You make a
guess. Saturn does the same. Experimenting in this way is called
"investigating natural language" and is an important area of AI research
in which Saturn can help with research and education into the psychology
of thought processes and language.
9
STARTING SATURN
Saturn is started-up by entering the command SATURN from the DOS prompt.
You can also specify the name of the knowledge base to load. If you don't
specify the name of a knowledge base Saturn will assume GENERAL.KNB, the
general knowledge base.
For example. To Start Saturn with the general knowledge base, you would do
the following;
Firstly, make sure that DOS is set to the directory holding both Saturn
and the general knowledge base. Then enter the command SATURN.
For example. To Start Saturn with a knowledge base called "FAMILY", you
would do the following;
If the family knowledge base is in the same directory as Saturn, then make
sure that DOS is set to the directory holding Saturn and the knowledge
base and enter the command SATURN FAMILY. If, however, the knowledge base
is in a different directory, perhaps C:\DATA\FAMILY, then you would make
sure that DOS is set to the directory holding Saturn and enter the command
SATURN C:\DATA\FAMILY\FAMILY.
Upon starting, Saturn enters a mode called "The Saturn Interface". This is
a cosmetic environment providing a convenient mechanism for selecting the
main Saturn facilities.
10
SECTION ONE
THE SATURN INTERFACE
When you start-up Saturn from the DOS command prompt, you are presented
with the "Saturn Interface". This is a cosmetic front-end menu providing
access to facilities for editing, appending and querying data.
At the bottom of the Saturn Interface screen is displayed a menu of
available facilities. You should move the highlight bar with the cursor
arrow keys to the facility you require, and then press ENTER to select
that facility.
.R:P
┌──────┐
│SATURN│
└──┬───┘
│
┌──────────────────────┼────────────────────────┐
│ │ │
┌──┴───┐ ┌───┴────┐ ┌────┴────┐
│EDITOR│ │APPENDER│ │RETRIEVER│
└──────┘ └────────┘ └─────────┘
Saturn Modules
.R:Q
11
The following diagram explains the different areas of the Saturn Interface
display.
.R:P
┌ Title Area
│
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ Display Area │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ Seek File Edit Append Query Font Exit │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
│
└ Menu of facilities
The Saturn Interface
12
.R:Q
SEEK:
The Seek facility is used to search through ALL knowledge bases in the
current directory for a specified data item. Saturn will prompt you to
enter the title of the data item to find. A search is then made of every
knowledge base until that data item is located. Whereupon the Query module
is automatically loaded and the details of the data item are displayed as
though a "Show" command had been issued directly to the query module.
This enables chapters of data to be built up in separate knowledge bases,
thereby bypassing Saturn's 10000 item limit per knowledge base, and yet
still quickly and easily locate specific data.
13
FILE:
The File facility allows the name of a different knowledge base to be
selected. This knowledge base will be loaded into memory by Saturn when
you select the "Query" facility. The Saturn interface provides you with a
window containing the names of the knowledge bases recorded in the current
disk directory. There may be additional entries past the bottom of the
window. These can be reached by pressing the cursor down arrow when the
last entry in the window is highlighted. To select a knowledge base for
the other facilities, highlight its name and press ENTER. If you want to
create a new knowledge base, select the <NEW> entry. You will then be
prompted to enter the name of the knowledge base to be created. This
knowledge base may then be created with either the "Edit" or "Append"
facility.
.R:P
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ ┌──────────────┐ │
│ │ dating.knb │ │
│ │ general.knb │ │
│ │ movies.knb │ │
│ │ myths.knb │ │
│ │ people.knb │ │
│ │ places.knb │ │
│ │ shake.knb │ │
│ │ video.knb │ │
│ │ virus.knb │ │
│ │ weapons.knb │ │
│ │ zoology.knb │ │
│ │ <NEW> │ │
│ └──────────────┘ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ File │
│Highlight the name of the required knowledge base and press ENTER. │
│Select <NEW> to create a new knowledge base. │
│Press Esc to return to the menu without selecting a different knowledge base. │
└──────────────────────────────────────────────────────────────────────────────┘
Selecting a knowledge base with the Saturn Interface
.R:Q
14
APPEND:
The Append facility allows an existing knowledge base to be appended to
the end of the currently selected knowledge base. The Saturn Interface
requires you to enter the name of the knowledge base that contains the
entries to append to the current knowledge base.
.R:P
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ Append │
│Enter the name of the knowledge base to append, or press Esc to abort entry │
│ │
│Name: │
└──────────────────────────────────────────────────────────────────────────────┘
Preparing to append a knowledge base to the current one
.R:Q
15
QUERY:
The Query facility passes control through to the Saturn "thinking"
retrieval system. This facility is described in detail else where.
FONT:
The Font facility enables users with an EGA, VGA or SVGA monitor to select
a different typeface for displayed text. The choice of font is purely
cosmetic, it does not affect printed output, and is intended to make the
use of Saturn as comfortable as possible.
The supplied fonts all include their "height" in their name. The standard
EGA font has a height of 14. Selecting a font with a smaller height
enables more lines of text to be displayed. The computer's hardware will
not display fonts that are bigger than the maximum height supported.
VGA/SVGA monitors have a standard font height of 16. If your computer is
equipped with a CGA monitor, selecting different fonts will not have any
effect.
.R:P
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ │
│ │ blob14.fnt │ │
│ │ blob16.fnt │ │
│ │ bway14.fnt │ │
│ │ bway16.fnt │ │
│ │ easy16.fnt │ │
│ │ human16.fnt │ │
│ │ newyk16.fnt │ │
│ │ print14.fnt │ │
│ │ print16.fnt │ │
│ │ script14.fnt │ │
│ │|script16.fnt │ │
│ └──────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│Highlight the name of the required character font and press ENTER. │
│ │
│Press Esc to return to the menu without selecting a different font. │
└──────────────────────────────────────────────────────────────────────────────┘
Selecting a different Font
.R:Q
16
EXIT:
The Exit facility stops the Saturn Interface and returns control to the
DOS. You can also select this facility by pressing Esc.
17
SECTION TWO
RETRIEVAL SYSTEM
The retrieval system is the main area of Saturn. This is where questions
can be put to Saturn, and data retrieved from the computer's memory. The
screen display is divided into three sectors: Title box, display box and
menu box.
Menu options are displayed in the bottom box. Each option may be
highlighted in turn by pressing the cursor left and right arrow keys. The
highlighted option may be selected by pressing the Enter key.
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Loading knowledge base "general.knb" │
│Encoding knowledge base │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ Show Print Show list Show details Print list │
│ │
│ Print details Load Browse Query Locate Sub Quit │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Saturn Retrieval System Menu
.R:Q
18
SHOW:
The Show facility may be selected to review data about any single subject.
Saturn will request that you enter the title of the subject you wish to
review, and will then display the data stored about this subject in the
display box. In the menu box may be displayed a scrolling list of
associated topics.
The associated topics menu may be too large to display all at once in the
menu box. If there are more entries past the last one displayed, a
downward pointing arrow will be displayed to the left of the last entry.
Similarly, if there are more topics before the first one displayed an
upward pointing arrow will be displayed to the left of the first displayed
topic. You may move the highlight bar with the cursor up and down arrow
keys, the page up and page down keys provide quick up and down movement,
and the home and end keys highlight the first and last topics
respectively. To display the details stored about the highlighted topic
press the Enter key. To return to the main Saturn menu press the Esc key.
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Loading knowledge base "general.knb" │
│Encoding knowledge base │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Subject? │
│> │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
.R:Q
Requesting A Subject To Show
19
The following screen shot shows the result of a Saturn 'show' instruction
and the subsequnt entry of the subject title "frog". This example was
created with the default "general" knowledge base.
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│A Frog is an amphibian of the order anura. │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Associated Amphibian │
│Topics Animal │
│ Water │
│ | Oxide │
└─────────────────────────────────────────────────────────────────────────────┘
Associated Topics Menu With More Below
.R:Q
20
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│A frog is an amphibian of the order anura. │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Associated | Oxide │
│Topics Compound │
│ Oxygen │
│ | Element │
└─────────────────────────────────────────────────────────────────────────────┘
Associated Topics Menu With More Above And Below
.R:Q
21
PRINT:
The Print facility is similar to the "Show" facility, but sends all data
recorded about the subjects applicable to the entered subject title to the
printer. Again Saturn requires you to type in the subject to be retrieved.
All data items related to the entered subject are then sent to the
printer.
SHOW LIST:
The Show List facility requests Saturn to display a list of all recorded
data subjects meeting a specified criteria. The selection criteria may be
left blank to list everything, or it may be entered to restrict the list.
For example, you may wish to list the subject headings for every animal
recorded in the current knowledge base. To do this select the "Show List"
facility and enter the selection criteria "animals". The ambiguity of the
English language provides a problem for Saturn. If the selection criteria
is too general then loosly related items will be selected. If this is a
problem try tightening up the selection criteria. For example replace the
selection criteria "animals" with "mammals" or "reptiles" or "mammals and
reptiles and birds". Try to be as specific as possible.
SHOW DETAILS:
The Show Details facility requests Saturn to display all recorded data
about subjects meeting a specified criteria. The selection criteria may be
left blank to display everything, or it may be entered to restrict the
display. For example, you may wish to review the data recorded for all
composers recorded in the current knowledge base. To do this select the
'Show Details' facility and enter the selection criteria 'composers'.
PRINT LIST:
The Print List facility requests Saturn to print a list of all recorded
data subjects meeting a specified criteria. The selection criteria may be
left blank to list everything, or it may be entered to restrict the list.
For example, you may wish to list the subject headings for every animal
recorded in the current knowledge base. To do this select the "Print List"
facility and enter the selection criteria "animals".
22
PRINT DETAILS:
The Print Details facility requests Saturn to print all recorded data
about subjects meeting a specified criteria. The selection criteria may be
left blank to print everything, or it may be entered to restrict the
display. For example, you may wish to print the data recorded for all
composers recorded in the current knowledge base. To do this select the
"Print Details" facility and enter the selection criteria "composers".
LOAD:
The Load facility requests Saturn to load a knowledge base from disk
replacing the current knowledge base. Saturn will ask you for the name of
the knowledge base to load. If you don't supply a name, the current
knowledge base will be reloaded.
BROWSE:
The Browse facility displays a scrolling list of all the subject headings
recorded in the current knowledge base in the display box.
The browse menu may be too large to display all at once in the display
box. If there are more entries past the last one displayed, a downward
pointing arrow will be displayed to the left of the last entry. Similarly,
if there are more topics before the first one displayed an upward pointing
arrow will be displayed to the left of the first displayed topic. You may
move the highlight bar with the cursor up and down arrow keys, the page up
and page down keys provide quick up and down movement, and the home and
end keys highlight the first and last subjects respectively.
Typing at the keyboard will move the highlight bar to the first entry
matching the characters typed. For example, to move quickly to the entry
TURKEY type T the highlight bar moves to the first entry starting with T.
Type U the highlight bar moves to the first entry starting TU. If no entry
does starts with the characters typed the highlight bar will remain
static. Any new characters typed at the keyboard will recommence the quick
search starting with the next character typed.
To display the details stored about the highlighted subject press the
Enter key. To return to the main Saturn menu press the Esc key.
23
When a subject is selected with the "Browse" facility it is displayed as
though it had been selected with the "Show" facility. A list of associated
topics is displayed in the menu box. The following screen dump illustrates
a "browse" of the general knowledge base supplied with Saturn. The arrows
to the left of the list at the top and bottom show that there are more
subject titles above and below.
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ | SE5 │
│ SEA DART │
│ SEA GOOSEBERRY │
│ SEA KILLER │
│ SEA SPARROW │
│ SEA WOLF │
│ SEACAT │
│ SEAL │
│ SEASPRITE │
│ SEA_URCHIN │
│ SEA_URCHINS │
│ SECRETIN │
│ SEDGEMOOR │
│ | SEDGWICK │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ Show Print Show list Show details Print list │
│ │
│ Print details Load Browse Query Locate Sub Quit │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
A browse Menu
.R:Q
24
QUERY:
The Query facility allows entry of ANY Saturn command direct into Saturn.
Saturn can understand questions and instructions. Typical questions that
Saturn can understand are:
IS A HORSE AN ANIMAL?
WHERE WAS SHAKESPEAR BORN?
WHEN DID SHAKESPEAR DIE?
WHAT IS A TREE?
WHAT DOES THE HEART DO?
WHAT DO CATS EAT?
DO CATS EAT MICE?
WHAT DOES ACID REACT WITH?
WHAT IS THE CAPITAL OF ENGLAND?
WHERE IS BOMBAY?
WHICH COUNTRY IS DUBLIN IN?
WHO WAS SHAKESPEAR?
DO CATS EAT VEGETABLES?
DOES ACID REACT WITH PAPER?
WHO FOUNDED SCHOLASTIC THEOLOGY?
IS LONDON THE CAPITAL OF ENGLAND?
DOES JOHN SMITH SMOKE?
Instructions may be entered manually through a query, but are more
conveniently selected from the menu facilities. Anyway, Saturn can
understand instructions such as:
List all men
Detail all men who smoke
Print details of all men who smoke
25
Questions and instructions, collectively known as "queries", may be upto
one text line in length. The following screen dump shows a question being
typed in.
.R:P
┌─────────────────────────────────────────────────────────────────────────────┐
│Servile Software Saturn V5.0 (c)1996│
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│Enter query │
│>Where is London? │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Entering A Query
.R:Q
26
LOCATE:
The Locate facility equates to a "Where is....?" question. Saturn requests
that you enter a subject, and then displays the data about that subject's
location. Saturn locates subjects by searching for key words that describe
position; CAPITAL OF, NORTH, SOUTH, EAST, WEST, BETWEEN, SEPARATING,
BETWEEN and ON. Given a data item; "LONDON IS THE CAPITAL OF ENGLAND",
Saturn will give the location of LONDON as "IN ENGLAND". Similarly, given
the data item; "GHOSTBUSTERS IS ON TAPE 6 AT COUNTER 1340", Saturn will
give the location of "GHOSTBUSTERS" as "ON TAPE 6 AT COUNTER 1340".
SUB:
The Sub facility creates an extract knowledge base containing only entries
from the current knowledge base that meet specified criteria. After
creation, this knowledge base is loaded and replaces the current knowledge
base. Saturn informs you how many entries are present in the extract
knowledge base.
This facility is intended for use where you wish to access quickly and
easily only a part of an existing knowledge base. For example, with the
dating agency example you may wish to create a "Sub" of "men" so that you
can quickly browse just the male entries. Or if you have catalogued your
video collection you may want a sub knowledge base of comedies.
QUIT:
The Quit facility ends the retrieval system and passes control back to the
Saturn Interface.
27
SECTION THREE
PROGRAMMING SATURN
CREATING KNOWLEDGE TREES:
Saturn is modelled upon the memory system of the human brain. Just like
the human brain Saturn makes use of sets of data, "Knowledge Trees", to
enhance the speed and reliability of data retrieval. If you are still
unclear about the idea of knowledge trees, consider your knowledge of
animals. You know that all mammals are animals. And so, taught that an
item, "xyz" is a "mammal" you automatically store that information away
with a tag identifying the item "xyz" with the set "animal". You know
that all scientists are people, and so told that "abc" is a scientist, you
can instantly deduce that "abc" is a person. Your knowledge of data sets
was probably learnt so long ago that you forget learning them, or else the
learning was so subtle as to be unnoticeable.
Saturn requires knowledge trees to be declared by statements of the
format;
/ALL subject ARE set name
For example;
/ALL MAMMALS ARE ANIMALS
Declares a data set "ANIMALS" and assigns a member, "MAMMALS" to it. A
subsequent declaration;
/ALL FISH ARE ANIMALS
Appends the member "FISH" to the existing data set for "ANIMALS".
These declarations can be added to a knowledge base with any text editor
or word processor. There is no need to make duplicate sets for plural and
singular forms of words, Saturn can deduce the singular from the plural.
28
The main use of knowledge trees is for preventing erroneous deductions.
Saturn will attempt to deduce facts when ever possible. However, just like
a child, Saturn can make errors if it has not been taught enough. For
example:
Given that;
"An adder is a snake"
"A snake is a reptile"
"A reptile is an animal"
Saturn can deduce that an adder is an animal. The following diagram
illustrates the links that allow Saturn to nake this deduction.
An adder is a snake A snake is a reptile A reptile is an animal
│ │ │ │
└────>──────┘ └──────>──────┘
Links Between Separate Data Items
However, given ambiguous data about the word "Turkey", that is that
"Turkey is a country. A turkey is a bird" followed by other data relating
to Turkey, the country such as:
"Ankarra is the capital of Turkey"
Saturn will erroneously deduce that Ankarra is a bird! It can be taught
not to make this deduction by knowledge tree entries that declare capitals
as separate from animals, for example:
/ALL BIRDS ARE ANIMALS
/ALL CAPITALS ARE PLACES
These directives inform Saturn that because Ankarra is a capital it is a
place and NOT an animal. When Saturn detects a knowledge tree directive
applicable to a subject, it dismisses any connections with other subjects
that belong to other branches of the tree.
29
These knowledge tree definitions are essential for use with generalised
knowledge bases where queries of associated data are required. For
example. To extract details of all PLACES from the general knowledge base
it is essential to specify;
/ALL VILLAGES ARE PLACES
/ALL TOWNS ARE PLACES
/ALL CITIES ARE PLACES
And so on. This enables Saturn to realise that given an entry such as;
"Woking is a town in Surrey."
That Woking is therefore a PLACE, because Woking is a town, and ALL TOWNS
ARE PLACES.
30
REPLACEMENTS:
Replacements are of two types: the first refers to where something comes
from or to deduce something about an object and follows the format;
+object
replacement
For example;
+ENGLISH
ENGLAND
or
+MEN
HE
This first type of replacement allows Saturn to understand phrases such
as;
A BADGER LIVES IN ENGLAND
And deduce from it that;
A BADGER IS ENGLISH
And to allow selection of data relating to "MEN" based upon references to
"HE" within the data. Problems arise when data refers to both "HE" and
"SHE" in such cases. For example the following data refernce will confuse
Saturn into believing that Queen Alexandra is both a man and a woman!
*ALEXANDRA
QUEEN ALEXANDRA WAS THE DAUGHTER OF CHRISTIAN IX OF DENMARK. MARRIED
EDWARD VII IN 1863 WHEN HE WAS THE PRINCE OF WALES.
The offending item is the word "HE" which refers to Edward VII. Saturn is
not intelligent enough to realise that the word "HE" does not refer to the
primary subject, Queen Alexandra.
31
The second type of replacement forces Saturn to read the data associated
with another entry. This follows the format;
*object
#other object
For example;
*CATS
#CAT
or
*CARNIVORE
#CARNIVOROUS
Any references to "CARNIVORE" will be redirected to the entry for
"CARNIVOROUS". This is helpful with redirecting references where Saturn is
unable to decide the plural of the word from its singular form, or where
different words refer to a single data reference. ACTION WORDS:
32
Action words (verbs) are declared to Saturn by a "@" prefix in the
knowledge base. Saturn uses action words to select answers to questions
such as "what does a thing do?" For example, to tell Saturn that the word
"REACT" is an action, put the line;
@REACT
In the knowledge base. Saturn automatically adds suffixes, "ING", and "S"
to actions when trying to deduce actions. So there is no need for separate
entries for "REACTS" and "REACTING".
Consider the example of an acrobat. An acrobat is someone who performs
daring gymnastics. This information can be presented to Saturn with an
entry in a knowledge base thus:
*Acrobat
An acrobat is someone who performs daring gymnastics.
So that Saturn can answer questions along the lines of "what does an
acrobat do?" it is essential to inform Saturn that "performs" is an action
word. This is done by including an action directive in the knowledge base
thus:
@PERFORM
Remember that Saturn will automatically compare different forms of words,
so the single entry "perform" will satisfy occurences of the words
"perform", "performs", "performing" and "performed".
33
MEASUREMENTS:
Measurements and comparisons of measurements are used everyday by people.
We have no problem with the idea of "size". For example, I was contacted
by a user of Saturn version 2.2 who wanted to use Saturn to run a dating
agency. He wanted to be able to extract names based on people who weighed
between values, and were over or under certain heights. That is, "give me
a list of all Greek men who weigh more than 9 stone and weigh less than 12
stone, and are between 5ft 6" and 6ft tall". Although you and I, as humans
can readily understand and indeed extract from a file of details people
matching these requirements, the process we use to do so is very esoteric.
The psychology of size comparison is a complex area which we take for
granted. If I say that I have a brother who is 5ft 4" tall, and that I am
5ft 8" tall. And I then ask you which of us is tallest, you will have no
problem in deciding that I am taller. How do we make these decisions? If
we break the data down we might realise. The data states that "brother" is
"5ft 4" tall" and that "I" am "5ft 6" tall". Previous data has established
within our mind that the term "taller" requires us to compare the size of
the known items and accept only the larger. In this case the data item
"I".
The addition of superflous data, such as weight will not confuse the human
mind. If the data statement is changed to:
"My brother is 5ft 4" tall and weighs 8 stone and has size 7 feet. I am
5ft 8" tall and weigh 9 stone and have size 9 feet"
We can still easily decide "which is taller" by scanning the data for
units of measurement applicable to the term "taller". If we ask the
question, "which is larger?" we will get different answers from different
people. Some people will equate "larger" with weight, and some with
"height" and some with both. Some very bright people may ask us to qualify
our question. The term "larger" is a general term relating to a comparison
of size, but which unit of size?
I hope I am not boring you with this discussion of measurement, but I wish
to point out that comparisons of measurement is a non-exact science. It is
highly error prone and as such does not naturally lend itself to being
handled by a computer program. This is why Saturn has not previously
attempted to understand size, and why for the forseable future Saturn's
handling of size will be limited almost to the extent of idiotic.
34
With version 2.4 Saturn introduced three size comparison qualifiers.
"OVER", "UNDER" and "BETWEEN". These require a value followed by a unit.
For example;
"OVER 9 STONE" "UNDER 6 FEET" "BETWEEN 5 AND 6 FEET"
"BETWEEN 30 AND 40 YEARS"
The BETWEEN qualifier MUST follow the illustrated form:
BETWEEN <value> AND <value> <unit>
There are several restrictions on the use of these three qualifiers.
Saturn cannot understand phrases such as:
"list all men over 20 years and under 30 years"
What will happen is that Saturn will decipher this to mean:
"list all men over 20 years and then list all men under 30 years"
Instead you should say:
"list all men between 20 and 30 years"
35
SPECIAL CHARACTERS:
Special characters in the data about an object are "|" and "_". When
Saturn encounters a "|" symbol in the data it is displaying it immediately
displays the following data on a new line. The "_" symbol is never
displayed but joins words together to inhibit and force cross referencing
to occur.
Consider entries in the knowledge base for "King John" and "King".
Everytime that Saturn encounters the data about "King John" it will detect
the words "King John" and make a connection with the entry "King". This
can be inhibited by refering to "King_John" instead. Saturn will then not
search for separate entries of "King" and "John", but for one combined
entry "King John".
Another example may concern architecture. Imagine we have entries with the
titles: "Brick", "Wall", "Great Wall Of China", "Asia" and "Europe". The
entry that interests us is the one for "Asia". This says:
*Asia
The Great Wall Of China is an impressive piece of architecture in Asia.
Obviously we want Saturn, when it encounters this data to make a link with
the entry "Great Wall Of China". However, as it stands Saturn will not
since the words "Great", "Wall" and "China" are separate. Saturn is not
clever enough to realise that they refer to a single article. We can force
a link though, by joining the words togther with the "_" symbol thus:
*Asia
The Great_Wall_Of_China is an impressive piece of architecture in Asia.
36
COMBATTING AMBIGUITY:
The problem of ambiguity is well illustrated by the example of the data
item "Turkey". Turkey is the name of a country, and the name of a
type of bird. Where you have ambiguous item names like this you are
advised to create two separate entries in the knowledge base with a
qualification added to the item name, for example;
Turkey (Bird)
Turkey (Country)
This makes two separate data items as distinct to Saturn as "chalk" and
"cheese".
37
SECTION FOUR
EXPLORING NLP
INTRODUCTION:
While some were introduced to the idea of talking to computers through
Arthur C. Clarke's book "2001", I was weaned on Star Trek. I make no
apology for never having finished reading 2001. Nor for never sitting all
the way through the film that followed, "2001, A Space Odyssey". The fact
is I find them both rather tedious! However, an interesting point comes
out. Both readers of 2001 and audiences attending the film made few
criticisms of HAL the talking computer. It would appear that most people
take the idea of understanding their natural language for granted. In her
book "Artificial Intelligence and Natural Man" Margaret Boden is some what
scathing of people's naivety in accepting the idea that a computer can
understand human language, even with its subtle variations. But in
fairness to the public, Margaret, how many people in 1977 had seen a
computer? Let alone learnt how to program one. The reason people didn't
wonder at HAL's quite extraordinary powers of comprehension was that they
did not see anything strange in them. "If I can understand English, and a
computer is an electronic brain, then of course it can understand." Might
go the reasoning.
Later audiences were treated to the idea of confusing computers. This idea
was used in Star Trek to defeat several unpleasant computers whose logic
had got the better of their human companions, and in Doctor Who where a
certain computer (in "the Green Death") was particularly unpleasant. This
latter computer was destroyed following being asked a paradoxical
question. The public were awakening to the idea that computer's may be
bright, but they're not brilliant!
Enough of science fiction, what of the reality? The matter is that people
are fascinated by the idea of "thinking machines". And what better sort of
thinking machine than one that can converse in your own language? During
the 1960s much work was undertaken by the psychology and psychiatric
professions in modelling neurosis with computer simulations.
In 1962 K.M. Colby, a psychoanalyst, attempted to model free association
in psychotherapy with a computer system he called a "simulation of a
neurotic process". The computer modelled a woman who believes that her
father has abandoned her, but cannot consciously accept that she hates
him. The computer operator plays the role of the psychotherapist with this
system. In his book "Experimental Treatment of Neurotic Computer
Programs", K.M. Colby details the following interaction between the
computer and the therapist;
computer: FATHER IS INDIFFERENT TO ME.
38
MOTHER SAYS FATHER ABANDONED US.
FATHER PREFERRED SISTER.
I AVOID FATHER.
SISTER ADMIRED FATHER.
I FEEL TENSE NOW.
therapist: YOU ADMIRE FATHER.
computer: NO.
I DO NOT ADMIRE FATHER.
I ADMIRE AL.
MOTHER OUGHT NOT TO ADMIRE AL.
MOTHER DETESTS FATHER.
Colby's hope in developing this computer model was that it would be of use
in studying the ways in which belief systems and defensive habits of
thought can be modified by particular conceptual interventions by, say, a
therapist. I wonder?
Another medical type artificial intelligence computer system was called
ELIZA. ELIZA was developed by Joseph Weizenbaum to model a psychiatrist.
The computer operator may then take the role of a patient and talk with
the program. In his book "ELIZA", Weizenbaum details the following
interaction between ELIZA and a human operator;
operator: MEN ARE ALL ALIKE
eliza: IN WHAT WAY
operator THEY'RE ALWAYS BUGGING US ABOUT SOMETHING OR OTHER.
eliza: CAN YOU THINK OF A SPECIFIC EXAMPLE
operator: WELL, MY BOYFRIEND MADE ME COME HERE.
eliza: YOUR BOYFRIEND MADE YOU COME HERE
operator: HE SAYS I'M DEPRESSED MUCH OF THE TIME.
eliza: I AM SORRY TO HEAR THAT YOU ARE DEPRESSED
operator: IT'S TRUE. I AM UNHAPPY.
eliza: DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY
operator: I NEED SOME HELP, THAT MUCH SEEMS CERTAIN.
eliza: WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP
39
operator: PERHAPS I COULD LEARN TO GET ALONG WITH MY MOTHER.
eliza: TELL ME MORE ABOUT YOUR FAMILY
operator: MY MOTHER TAKES CARE OF ME.
eliza: WHO ELSE IN YOUR FAMILY TAKES CARE OF YOU
operator: MY FATHER.
eliza: YOUR FATHER
operator: YOU ARE LIKE MY FATHER IN SOME WAYS.
eliza: WHAT RESEMBLANCE DO YOU SEE
operator: YOU ARE NOT VERY AGGRESSIVE BUT I THINK YOU DON'T WANT ME TO
NOTICE THAT.
eliza: WHAT MAKES YOU THINK I AM NOT VERY AGGRESSIVE
operator: YOU DON'T ARGUE WITH ME.
eliza: WHY DO YOU THINK I DON'T ARGUE WITH YOU
operator: YOU ARE AFRAID OF ME.
eliza: DOES IT PLEASE YOU TO THINK I AM AFRAID OF YOU
operator: MY FATHER IS AFRAID OF EVERYBODY.
eliza: WHAT ELSE COMES TO MIND WHEN YOU THINK OF YOUR FATHER
operator: BULLIES.
eliza: DOES THAT HAVE ANYTHING TO DO WITH THE FACT THAT YOUR BOYFRIEND
MADE YOU COME HERE
Exponents of ELIZA point out that it can talk about any subject. Critics
may notice that it does not always talk very intelligently! But ELIZA did
trick a salesman at the computer company. Not a very difficult task
perhaps, but here anyway is a transcript of the conversation that is
reported to have taken place by teletype.
man: DO YOU THINK THAT I CAN USE THE COMPUTER THIS MORNING?
teletype: WHY DO YOU ASK?
40
man: I MIGHT BE ABLE TO MAKE SOME ADDITIONAL TELCOMP SALES.
teletype: WHY AREN'T YOU SURE?
man: MY PROSPECTIVE CUSTOMERS HAVE NEVER SEEN A DEMONSTRATION OF
THE SYSTEM.
teletype: DOES THIS MEAN VERY MUCH TO YOU?
man: OF COURSE IT DOES.
teletype: YOU SEEM VERY POSITIVE ABOUT THAT.
man: THIS IS RIDICULOUS.
teletype: WHAT DO YOU MEAN THIS IS RIDICULOUS?
man: IS THERE ANY REASON WHY I CAN'T USE THE COMPUTER NOW?
teletype: TELL ME MORE ABOUT YOUR PROSPECTIVE CUSTOMERS.
man: PLEASE DIAL ME UP ON 491-1850.
From the anger apparent in the salesman's responses, he may not have
realised that he was talking to a computer. But he certainly knew that who
ever he was talking to was fairly obtuse.
NLP AND SATURN:
Natural Language Processing, "NLP", is a fascinating field in the
artificial intelligence farm. NLP is concerned with teaching
(programming?) computers to understand the same language as humans speak.
There are obvious diversions off into the realms of linguistics,
semantics, and psychology.
Saturn is an ideal platform for exploring these realms. While Saturn is
not so pedantic as a linguist (Saturn cares little for grammar), it still
makes decisions based upon the information provided to it. And, perhaps
most importantly, almost all of this information is presented in the same
manner as it would be to a human. The echoes of the misunderstandings
that occur with language among people are to be discovered with Saturn.
Perhaps leading to a greater understanding of the nature of language and
communication. There are joys and surprises as well as humour to be found
when you start exploring NLP with Saturn. While developing and testing
Saturn I was rocked to the response to many questions I put to Saturn. One
of the funniest was: "What do cows eat?" to which Saturn replied "Flesh".
41
At first encounter one might dismiss this as simply the program failing, a
"bug" as computer personnel like to call them. However, in looking into
the problem it became apparent that the mistake, which is what it was, was
in fact quite sensible. Saturn had been informed that "carnivores eat
flesh", and "a cat is a carnivorous mammal" and "a mammal is an animal".
When Saturn was informed "a cow is an animal", it erroneously made a
connection between "animal" and "carnivore" leading to the belief that all
animals are carnivorous.
Exactly what deductions Saturn can and cannot make is unknown. This is an
incredible admission for a programmer to make, but I don't know what
Saturn will do when presented with differing data. A gentleman by the name
of Colin Austin telephoned me and said he was impressed to discover that
Saturn correctly deduced that "cats eat mice". I was even more impressed,
I didn't know Saturn could make that deduction! But how was it made?
The encyclopaedia, general.knb, provides Saturn with information that
includes that "cats are carnivorous", "something which is carnivorous eats
flesh", "flesh is the meat of animals" and "mice are animals". From this
Saturn can deduce the answer to the question "do cats eat mice?"
what do cats eat? --> flesh
what is a mouse? --> an animal
what is flesh? --> the meat of animals
Notice how a link occurs, the two questions "what do cats eat?" and "what
is a mouse?" both lead to a common word, "animal". Therefore, cats eat
animals. Therefore cats eat mice. And also elephants! Okay, so the average
domestic moggy is hardly likely to put the wind up an African elephant,
but a lion is a cat. And Lions are a different case.
42
Here is a short knowledge base that illustrates some relationships
that Saturn can find:
*John
John likes Mary.
*Mary
Mary likes Peter. She is Peter's mother.
*Peter
Peter likes John.
*Paul
Paul is Peter's father.
Provided with this information, Saturn can answer "who is Peter's father?"
but cannot answer "who is Paul's son?". Saturn cannot answer this question
because it has no idea of the term "son". Saturn doesn't understand
what a "father" is, but can still answer the question "who is Peter's
father?" Not by understanding the question, but by recognising the
connection between the question and the information "Paul is Peter's
father." How about parentage? As it stands, the information available to
Saturn is insufficient to answer the question "who are Peter's parents?"
because nothing informs Saturn what a "parent" is. Adding two replacement
directives along the humanist lines of, "for parent read father or mother"
we come up with the additional lines in the knowledge base:
+PARENT
FATHER
+PARENT
MOTHER
Now Saturn is equipped to answer questions of parentage because it can use
the replacement directives to decide that "parent" means "father" and
"parent" means "mother". A touch of fuzzy logic for you!
Similarly, Saturn has no idea of the word "like", but can answer
questions about "who likes whom" such as "who like Peter?". If we ask
Saturn "what does John do?" Saturn will not know. Saturn does not know
because inorder to answer a question of what something, or someone does,
Saturn seeks an "action" within the information stored about the subject.
If saturn knew that "like" was an action, then it could answer
the question. We can inform Saturn that "like" is an action by adding it
as an action word directive to the knowledge base: @like.
43
QUALIFICATION:
Saturn can allow more specific questions. Imagine the following knowledge
base that refers to three people: Jack, Brian and Peter. Jack and Peter
are builders. Each has built a house, Jack's is in Bristol and Peter's in
Bath. Brian is a writer, and has written a story entitled "Fish and
Chips".
*Jack
Jack is a builder.
*House (Bristol)
Jack built the house in Bristol.
*Brian
Brian is a a writer of short stories.
*Fish And Chips
Brian wrote Fish_And_Chips
*Peter
Peter is a builder.
*House (Bath)
Peter built the house in Bath.
Armed with this information Saturn can answer "who built the house in
Bath?" and "who built the house in Bristol?" If we ask Saturn, "who built
the house?" we are asking a bad question. There are two houses, which
house are we interested in? Saturn will answer with details of one house,
which one it selects is another matter! We must qualify our question.
The example questions, "who built the house in Bath?" and "who built the
house in Bristol?" each contain three qualification elements: "built",
"house" and either "Bath" or "Bristol". These qualifications enable Saturn
to select one and only one item of data.
This idea of qualification can be imagined as a tree diagram.
Let us imagine the scenario where a woman wants a partner. The root of the
tree is then "I want a partner" abbreviated to "PARTNER" in the following
diagram. The first level of qualification may be gender since there are
only two, and yet other characteristics may be common to both.
.R:P
PARTNER
│
┌─────────┴───────┐
MALE FEMALE
.R:Q
44
The gender, "MALE" and "FEMALE" branches will obviously each lead to lots
of other branches concerning physical attributes, personality traits and
so on. The next branch may be concerning wealth; "RICH" or "POOR"
.R:P
PARTNER
│
┌────────────┴────────────┐
MALE FEMALE
│ │
┌─────┴─────┐ ┌─────┴─────┐
RICH POOR RICH POOR
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ │ │ │ │ │ │ │
TALL SHORT TALL SHORT TALL SHORT TALL SHORT
.R:Q
And so the tree may continue to grow. Each at fork a decision can be taken
based upon the qualifications available. So the first question concerns
gender. As the woman wants a male partner, the entire righ-hand side of
the tree will be subsequently ignored. Then she may decide she wants a
rich partner, and so on. The more decisions that are taken concerning the
qualification of the data, the fewer branches remain, and a more specific,
less ambiguous solution can be found. As a practical application, using
the imaginery dating agency knowledge base supplied, queries can be made
of Saturn along the lines of "list all MEN with BROWN HAIR that DON'T
SMOKE" The qualifiying statements have been typed in capitals only to
emphasise them for clarity.
45
APPENDIX ONE
ERROR MESSAGES
Sometimes things can go wrong! Saturn may not be able to continue to
operate because of a variety of reasons. In these circumstances an error
message will be displayed and Saturn will cease functioning, returning
control to the computer's DOS.
FATAL ERROR: Out of memory
Saturn could not access sufficient memory to continue. If you have other
programs running, try deactivating them and then run Saturn again.
FATAL ERROR: Knowledge tree too complex
This could be for one of three reasons. Firstly a reference in the
knowledge tree references itself, such as;
/ALL PEOPLE ARE PEOPLE
Or, there are more than 100 /ALL entries in the knowledge base, or the
knowledge tree really is too large for another reason. Try pruning it and
run Saturn again.
FATAL ERROR: Unable to open knowledge base
For some reason Saturn could not access the specified knowledge base,
perhaps it does not exist in the specified disk directory?
FATAL ERROR: Out Of Memory Creating Knowledge Tree
Saturn could not access sufficient memory to continue. If you have other
programs running, try deactivating them and then run Saturn again.
FATAL ERROR: Too many declared actions
There is a limit of 50 actions that can be declared in a knowledge base.
FATAL ERROR: Too many declared replacements
There is a limit of 50 replacements that can be declared in a knowledge
base.
46
FATAL ERROR: Out of memory loading data
The knowledge base is too large for the available memory. If you have
other programs running, try deactivating them and then run Saturn again.
If not, try reducing the size of the knowledge base by making use of
Saturn's unrivalled relational capabilities.
FATAL ERROR: Too many data items in knowledge base
Saturn can access a maximum of 10000 data items. The knowledge base
contains more than this limit.
If Saturn displays the message; "I can't. The printer's not responding".
You should check that you have a printer connected to the computer. You
should also check that the printer has paper loaded. Also check that the
printer is switched on, plugged in, and on line. Saturn only prints to the
parallel port, it cannot make use of serial printers.
47
APPENDIX TWO
EXAMPLE APPLICATIONS
Saturn is not just an acacdemic tool for playing with artificial
intelligence. It can also be used as a powerful relational database. Okay,
forget using it for Invoicing. But you might like to consider the
implications for customer lists, personnel details, appointments, names
and addresses, study notes and so on.
CATALOGUING YOUR HOME RECORDED VIDEOS:
Saturn is perfect for storing a catalogue of any description. It provides
the means to locate quickly items, extract items by categories on-the-fly
so to speak etc. Let's imagine you have a collection of home recorded
videos, WHICH IS ILLEGAL and NOT CONDONED BY SERVILE SOFTWARE. To
catalogue the collection you need to be able to identify each video
cassette, so you may wish to number them. You can then enter data about
each film/program/cartoon etc into a knowledge base using SATEDIT. A
typical entry will have as its subject the name of the
film/program/cartoon and the body of the data will mention;
which casette it is on
what the counter position is
the type of recording - cartoon, comedy, horror, children's
the starring actors.
The following example, taken from the example file VIDEO.KNB illustrates a
typical film entry. The film's title is "TOPPER" which is the subject
entry. The film is a comedy, so that is mentioned as are the starring
actors and the location of the film.
*TOPPER
Topper is a black and white comedy starring Cary Grant, Constance Bennett and
Roland Young. It is on video 1 at counter 0000.
Armed with this information Saturn can answer questions such as "Where is
Topper" which it will answer with "on video 1 at counter 0000." A quick
way to do this is to select the "Locate" facility from the menu, and type
in the subject title "Topper".
The "List Details" menu facility can be used to remind you of what
comedies you have. Simply enter "Comedy" as the criteria and Saturn will
display the recorded details of all the comedies in your collection.
You also may like to include action word directives such as "@direct" and
"@star" so that you can ask questions such as "who directed Mary Poppins?"
48
CATALOGUING YOUR CD COLLECTION:
Just like the video catalogue application, Saturn can be used to catalogue
your record, tape and CD collection. Enabling you to locate quickly which
albumn that particular song is on, remind you of which songs are on which
albumns, and who performs what songs. You may want to include action word
directives such as "@sing", "@perform" and "@produce"
49
APPENDIX THREE
THE SATURN EDITOR
The Saturn Editor is selected from the "Edit" facility of the Saturn
Interface menu.
The editor provides a convenient means of creating new knowledge bases,
and editing the data in existing knowledge bases. Entry of replacements,
actions and knowledge trees requires an external text editor. You cannot
enter these Saturn directives through the Saturn Editor.
Note:
The built in editor cannot cope with large knowledge bases. You should use
an external editor or word processor to edit large knowledge bases.
CREATING A NEW KNOWLEDGE BASE:
To create a new knowledge base select the "File" facility from the Saturn
Interface menu. Highlight the "<NEW>" file name and press ENTER. Saturn
will then prompt you to enter the name of the knowledge base to create.
Enter the name and press ENTER. Now select the "Edit" facility from the
Saturn Interface Menu.
.R:P
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software SATEDIT V3.2 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
Loading knowledge base newbase.knb from disk
WARNING! Unable to load knowledge base.
SUBJECT:
F1 Help F2 Save F3 Load F4 Record Esc Exit
50
Creating a new knowledge base
.R:Q
51
ADDING/AMENDING A SUBJECT:
Next to the SUBJECT: prompt, type in the title of the subject to add or
amend and press Enter. The Saturn Editor will then open a large edit
window. In this edit window will be displayed the data already recorded
about the subject.
.R:P
┌──────────────────────────────────────────────────────────────────────────────┐
│Servile Software SATEDIT V3.2 (c)1996│
└──────────────────────────────────────────────────────────────────────────────┘
Knowledge Base: general.knb
SUBJECT: England
╒══════════════════════════════════════════════════════════════════════════════╕
│England is a country in west Europe. It is the largest division of the united │
│kingdom._ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╘══════════════════════════════════════════════════════════════════════════════╛
F1 Help F2 Insert subject F3 Insert previous subject F4 Replay
Amending data
.R:Q
SAVING:
From the Subject prompt you can save the changes you have made by pressing
F2
LOADING:
From the Subject prompt you can load a different knowledge base by
pressing F3. The changes you have made to the existing knowledge base are
saved, and you are then prompted to enter the name of the knowledge base
to load.
52
RECORD:
Pressing F4 allows a string of characters to be recorded. This string can
then be inserted into the edit window by pressing F4 in the edit window.
EXITING:
Press return or Esc at the subject prompt and satedit will ask if you wish
to save the changes you have made to the knowledge base. Press Y to save
and N to lose any changes you have made. If you select N, to lose any
changes made to the knowledge base, Satedit will ask for confirmation. You
should press Y to exit without saving the changes, or N to changeyour mind
and save them.
53
THE EDIT WINDOW:
The edit window provides you with the maximum available area for a data
item, 12 lines. Editing starts in overtype mode, showed by a small
rectangular cursor. You can toggle between insert and over-type modes by
pressing the key marked "Insert". To exit the edit window press the key
marked "Esc". The table below lists all special keys used in the edit
window.
.R:P
Key Function
Esc Save text and exit.
Left arrow Move left one character
Right arrow Move right one character
Up arrow Move up one line
Down arrow Move down one line
Home Move to start of line
End Move to end of line
Tab Move to next tab position
Shift-Tab Move to previous tab position
Ctrl-T Delete word to right
Ctrl-Y Delete current line
Page Up Move to top of page
Page Down Move to bottom of Page
Ctrl-Home Move to start of text
Ctrl-End Move to end of text.
Delete Delete character at cursor
Backspace Delete character to left of cursor
Insert Toggle insert mode
Return Insert a blank line line
Ctrl-Page Up Move to first line of window
Ctrl-Page Down Move to last line of window
F1 Help
F2 Auto-type current subject heading. This saves retyping
subject names in the edit window.
F3 Auto-type previous subject heading. This saves retyping
subject names in the edit window.
F4 Auto-type a previously recorded string of text.
.R:Q
54
APPENDIX FOUR
ACKNOWLEDGMENTS
Saturn was developed under a need to satisfy a need for a particular
individual. Saturn is dedicated to that individual, Deloris.
Data used in the supplied knowledge bases has been derived from
information recorded in a multitude of works including:
The Waverley Encyclopaedia
The Modern Cyclopaedia (1906)
Pears Encyclopaedia (Editions 78, 89 and 99)
The Chancellor Illustrated Family Encylopedic Dictionary (1989)
Murrays Manual of Mythology (1936)
Soviet Airpower (1978)
The Concise Oxford Dictionary (6th Edition)
Odhams Encyclopaedia (Illustrated)
55
SATURN was written by Matthew Probert and published by Servile Software. All
enquiries should be addressed to;
Matthew Probert
Servile Software
5 Longcroft Close
Basingstoke
Hampshire
RG21 8XG
England
Telephone 01256 414072