home *** CD-ROM | disk | FTP | other *** search
-
- CHAT
-
-
- Version 3.0
-
-
-
- Written by Matthew Probert
-
-
- Published by Servile Software
-
-
-
-
- DESCRIPTION:
-
- Chat is a stand-alone PC chat system. It is the culmination of two years
- intensive research and study into conversation, natural language processing,
- and computerised chat systems in general. Chat was not the purpose of this
- work, it is a fortunate (?) by-product of some serious investigation into AI
- by Matthew Probert.
-
- If you want a BBS version of this program, Servile Software also publishes
- BBSChat, an enhanced FREEWARE BBS Door version of Chat.
-
- There are two ways of looking at Chat. Firstly as entertainment. Secondly as a
- system for experimenting with Turing's theory of thinking computers. By
- careful selection of responses and key words/phrases, a configuration can be
- developed which appears to be quite intelligent.
-
-
- IN BRIEF:
-
- Chat is started from the command line with the path and name of a
- response data file, and an optional typing speed delay.
-
- For example:
-
- CHAT HARRY.DAT
-
- will execute chat using the response file "harry.dat" and a default typing
- delay speed of 150 milliseconds between each character the computer
- personality types.
-
- Or, you might use the command line:
-
- CHAT HARRY.DAT 50
-
- will execute chat using the response file "harry.dat" and a specified typing
- delay speed of 50 milliseconds between each character the computer personality
- types.
-
- Upon starting, Chat has a short delay while the data is loaded, and then
- commences the conversation by displaying one of the "opening lines" selected
- at random. The user and the computer then take turns to present typed text to
- each other, like a conversation. Chat responds through "replies" contained in
- the response file which are selected based upon matching of key words and
- phrases in the users input with those contained in the configuration file.
-
- The response file is sub-divided into two sections; "no match" responses
- which are output when the computer doesn't know what to say. And "match
- blocks" which contain an optional thread, keywords and a number of comments.
-
- The first line of each match block is optional. If it contains any text this
- text will be compared with the last response made by the computer, and further
- consideration of this match block will only take place if this first line (the
- "thread") matches precisely. The second line is not optional. This contains a
- keyword or phrase which is searched for in the user's input. This is followed
- by an optional number of additional keyword and phrases which are searched for
- in the user's input. These are called "aliases". The next line after the last
- alias is a number indicating to chat how many response lines follow. The
- response lines are output in sequence when the match block is selected.
-
- Chat selects the first match block where the keyword or one of the aliases
- is contained within the users input, and outputs the next comment from that
- block. If all the responses have been output, Chat terminates.
-
- If the keyword commences with #, it will only be selected if it matches the
- users input precisely. Please bear in mind that the user's input always
- commences with and terminates with a space. To precisely match an input of
- just "Y" you would then use the keyword:
-
- #" Y "
-
-
- LIMITS:
-
- Opening lines 100
- No match responses 20
- Key words/phrases 400
- Aliases 10 per match block
- Responses 20 per match block
-
-
- VARIABLES:
-
- *DELAY* One second delay
- *TIME* Current time is inserted
- *LF* Line is split, carriage return and line feed inserted
- *TIMEOFDAY* MORNING, AFTERNOON or EVENING inserted ass appropriate
- *timeofday* morning, afternoon or evening inserted ass appropriate
- *Keyword* The matched keyword is inserted with first letter capitalised
- *Keyword* The matched keyword is inserted with first letter capitalised
- *KEYWORD* The matched keyword is inserted capitalised
- *keyword* The matched keyword is inserted as it was typed by the user
-
-
- FILE STRUCTURE:
-
- ; optional comment lines
- ;
- ; Up to 100 opening comments to get the conversation going
- ;
- N Number of opening lines
- XXXX Opening line 1
- XXXX Opening line 2
- ;
- ; Up to 20 "if all else fails" responses
- ;
- NOMATCH
- N Number of responses for non-matched words
- XXXX Non-matched response 1
- XXXX Non-matched response 2
- ;
- ; Up to 400 match blocks (computer RAM allowing)
- ;
- THREAD Computer's last response to match (maximum 80 characters)
- KEYWORD Keyword
- *ALIAS* An alias key word for this section
- N Number of responses in this section
- XXXX Response 1
-
- Please refer to the supplied demonstration file 'HARRY.DAT' for an example of
- the data file in practice.
-
- Replies are what Chat will display in response to user entered data and are
- terminated by a carriage-return/line feed in the configuration file. Keywords
- and aliases MUST be in upper case Any line commencing with ; is ignored.
- Variables may be inserted in any response, except that: keyword variables may
- not be used in either opening or non-matched responses
-
- When the user enters some text, Chat searches the text for each keyword and
- then associated aliases in turn. Keywords/aliases are matched if they occur in
- the entered text. So it is important to include spaces around words you want
- to match in full, for example:
-
- NO will match with NO, NOW, NOTHING etc
- but
- " NO " will only match with NO
-
- Keywords/aliases may be multiple words, and quote marks are ignored, eg:
-
- "WHAT IS THE TIME"
-
- When Chat matches a keyword/alias it outputs one of the recorded responses at
- random. That response is then deleted from memory. If there are no responses
- to be made, Chat terminates the conversation. If a match cannot be made with
- the users input, one of the NOMATCH responses is output in the same way.
-
- A conversation thread may be achieved by using subsets of keywords linked to
- different threads. Any data block which includes a thread will only be
- searched for a keyword match if the last output from the computer matches that
- data block's thread. To make this easier to use, the data block will be
- accepted if the last phrase the computer output is the same as the thread or
- if the last output phrase commenced with the thread or if the data block has a
- null thread. For example;
-
- Computer's output was "Yes I do that often"
- This will match with the following data block threads;
- "Yes"
- "Yes I do"
- "Yes I do that often"
-
- but it will not match with
- "Yes I am"
-
- The user may terminate the session by entering 'BYE', 'QUIT' or 'EXIT' as the
- first text in their input.
-
- The conversations made are recorded in a file 'CHAT.LOG' which is appended
- with each new conversation, and resides in the current DOS directory.
- This program was written by Matthew Probert
- published by Servile Software
- and distributed by Cognitive Development BBS
-
-
- All enquiries to:
-
- Servile Software
- 5 Longcroft Close
- Basingstoke
- Hampshire
- RG21 1XG
- ENGLAND
-
- Telephone 0256 414072
- BBS 0256 50086 (24 hours, 14.4K baud)
-
- ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
- ██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌████ ┌────────────────────────────┐
- ██ C>_ ▌█▀██ │ COGNITIVE DEVELOPMENT BBS │
- ██ ▌████ │ │
- ██ ▌████ │ Providing a forum for A.I. │
- ██ ▌█o██ │ researchers and developers │
- ██ ▌█o██ ├────────────────────────────┤
- ██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌█ ██ │ Basingstoke, Hampshire, UK │
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ │ │
- ████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ │ 0256 50086 24 hours a day │
- ████████████████████████ ═══/═[──]═══ █ │ │
- ████████████████████████──────────────█ │ 300 baud to 14,400 baud │
- █▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌████ ═══/═[──]═══ █ └────────────────────────────┘
- ████████████████████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
-
-
-