Top Mud Sites Forum Return to
Go Back   Top Mud Sites Forum > Mud Development and Administration > Advanced MUD Concepts
Click here to Register

Thread Tools
Old 04-27-2002, 05:26 PM   #1
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road
Well, I'm no frequent poster here, but a while back, I saw something
that really caught my eyes: Someone (I don't remember who) posted
a conversation with a shopkeeper mobile which, to me, looked quite
realistic. I started to look into the whole thing myself, and I must say,
I've made some progress so far. Still, I'ld like to get in contact with
others working on the same or related topics, especially with the
one who put the conversation up... (how did you do it, btw? True NLP,
or did you use some kind of chatterbot-engine?). Currently, my studies
progressed to the point where I will be using a simple POS-tagger for the
grammar, and construe a semantic network from that. The thing which
I've not covered so far is how to compare two such structures. Are there
any algorithms - literature on these topics seems sparse (or beyond what
I'm willing to pay for a book)?
Yazracor is offline   Reply With Quote
Old 04-28-2002, 08:23 PM   #2
Alexander Tau
Join Date: Apr 2002
Posts: 101
Alexander Tau is on a distinguished road
I am doing a little work in this area:

Still thinking about the basic structure of the global database
and another part or two so I am happy to discuss the general

Alexander Tau is offline   Reply With Quote
Old 04-29-2002, 04:09 PM   #3
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road

Well, i read through your paper, and I must say: This is far more
ambitious than what I had planned.
IMHO, the general structure of the Database looks well suited to your
kind of task. I especially like the idea of giving each fact an emotion attribute - this will make generating useful response a lot easier.
I believe, though, that you underestimate the difficulties of gettting the mobs to "understand" what their conversational partner is saying - if you want more than a chatterbot such as ELIZA "simple patterns and keywords" surely won't be enough.
As a tip: try and check out wordnet, a huge database of semantic relations between words. I think combining this with a system for tagging parts of speeches is a far better way to analyze what the player is trying to say. Also, this technique *might* be useful to build up the knowledge base, as in a running mud you will already have all sorts of information (be it within room descriptions or help files). Running this through the engine could be useful for an initial base that can then be further refined. I think generating a full representation of a MUD-world from scratch is a humongous task, as you will have to include so many details of every-day-knowledge. Also, in many muds there are no commands or skills for exactly those every-day tasks (cutting some wood, eg.), so that information will have to come from other sources.
Yazracor is offline   Reply With Quote
Old 04-30-2002, 07:14 PM   #4
Alexander Tau
Join Date: Apr 2002
Posts: 101
Alexander Tau is on a distinguished road
The real limit to a system like this is time, I agree that to really
get any sort of smooth conversation you need a lot in the way
of parsing and examining the words.

The goal for me is to have the NPCs know something, and have
some sort of learning structure. Conversation with them will at best
be slightly confused. With the traditional method of imparting info
to a player you present it via some simple trigger, like saying anything
to a certain NPC, and then they spit out:

"Down at the docks there is a ship called the Mary Celeste. Anyone who
attempts to approach her has to deal with 5 tough guards. Inside the ship
is a huge treasure including the eye of Orisis."

For me the logical first step is to break that down into sentances, and to
connect them via common keywords, and general topics. Now when speaking
to the NPC you can only get part of the story each time you get them to
speak, and putting together the whole paragraph takes some thought.

Ok, this is not real conversation. But it is a good mid step, uses a fairly
simple DB, and is probably somthing I can work up in a reasonable time.

Add in the emotional factor, and you get an NPC that knows things in
a new way, and that has feelings that have to be considered. A player
can talk to someone and drive them to rage and attack, or you can calm
an angry Unicorn with the right words.

Alexander Tau is offline   Reply With Quote
Old 05-11-2002, 08:43 AM   #5
Join Date: May 2002
Location: Linköping, Sweden
Posts: 31
mhc is on a distinguished road
I assume you have looked at the Maas-neotek bots of old, for example, Julia? There's good reading at
mhc is offline   Reply With Quote
Old 05-13-2002, 06:31 PM   #6
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road
Well, what i want to design goes a bit beyond mere chatbots.
The reaction of the mobs should be based on a true analysis
of the contents of the sentence, not just its form. I think it's
possible to create a system which recognizes the sentences:
"Master Dunn has plotted against the King." and "The crown is threatened by a conspiracy lead by the Master of Guards" as containing approximatly the same meaning - that is not possible with a chatbot system, which only creates stereotypical reactions based upon substituting certain parts of pre-made phrases.
I had planned for the reaction to be a conventional mobprog,
but the combination with a system like Alexander's sounds really appealing to me - and the possibilities immense for a new kind of exchange with mobs.
Yazracor is offline   Reply With Quote
Old 05-14-2002, 01:21 PM   #7
KaVir's Avatar
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
I found an "Eliza bot" on the net some time ago, and it was actually quite good, in terms of simulating a simple conversation. However you might want to take a look at ThoughtTreasure - a platform for natural language processing and commonsense reasoning, with an extensive knowledge database.

Here's an example dialogue from the site (the text after > represents user input, the italic text is the computer-generated response).

> Jacques is an enemy of François.

> He hates François.
Right, he is an enemy of François.

> He uses tu with François.
But I thought that he was an enemy of François.

> Lionel is an enemy of Jacques.

> He uses tu with Jacques.

Right, Lionel holds a "promotion Stendhal" from the "École nationale d'administration" and he holds a "promotion Vauban" from the "École nationale d'administration".

> Jacques succeeded at being elected President of France.

> He is happy.
Right, he succeeds at being the president of France.

> Lionel is resentful toward Jacques.
Right, he succeeds at being the president of France and Lionel is his enemy.

> François is happy for Jacques.
True, he succeeds at being the president of France. But I thought that he was an enemy of François.

It has a huge database of general facts, can store additional ones, and can reach conclusions. You can give it information ("KaVir woke up") and later query it for responses ("KaVir was awake when?" - "He was awake on Tuesday May 14, 2002 at nine am").

It could provide some facinating opportunities for mob discussions - you could ask a mob when he last saw someone, who he liked, etc. You could make comments which the mob could draw conclusions from ("Right, you like KaVir because he drinks beer"). The mobs will need some work if you want them to initiate conversations, but in terms of response you could get some really nice results.
KaVir is offline   Reply With Quote
Old 07-04-2003, 09:25 AM   #8
Join Date: Apr 2002
Location: Switzerland
Posts: 120
Alastair is on a distinguished road
Send a message via Yahoo to Alastair
Originally Posted by (KaVir @ May 14 2002,18:21)
It could provide some facinating opportunities for mob discussions - you could ask a mob when he last saw someone, who he liked, etc.  
This somehow sounds utterly familiar from old... Let's see...


Alastair is offline   Reply With Quote
Old 07-06-2003, 02:05 AM   #9
Senior Member
Join Date: Oct 2002
Posts: 310
shadowfyr will become famous soon enough
Had an odd thought when reading this. For a truly complex and effective AI the overhead might be too much for the game engine to employ it without consuming large amounts of resources. However, what if each NPC had a general more simplistic set of responses, but you ran the AI on a seperate networked server and had it log-in to control each NPC that needs complex behaviour, much like the login for a player. This would allow shifting of the resources away from the mud, since you need the object and the local connection, but not the vast database and lookup processes needed to run it. Also, if the AI terminal went down then the NPCs would suddenly get stupid, but it would not take down the entire game in the process. Of course a limited number of logins of this type, each with a set number of assigned NPCs to be controlled through it might be more efficient...

In any case, it might allow for a much large database, more complex processing of responses, etc. Something which I imagine is likely the largest bottle neck in trying to make one half way convincing.
shadowfyr is offline   Reply With Quote
Old 07-08-2003, 08:16 AM   #10
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road
Red face

Well, maybe a small update on my project:
It has failed
As for the reasons: To my surprise, the part-of-speech (POS)-tagging was the fastest part of the process, having almost no impact on the speed of the system. A decent ammount of memory, was taken up by the wordnet database: The "bare" semantic network swallowed about 100MB, indexing it for quick access doubled the ammount. On a shared server, this is surely too much, but on a standalone, with memory and CPU prices being so low, this is certainly very feasible. The CPU power required to conduct a search of "shortest connection" between words was very low, too. I had hoped that by comparing the number of steps needed to get from subject or verb of the player's sentence to one in the database could be used as a score to tell if the sentences are related and pick the best-fitting sentence in the database for a response.
Unfortunatly wordnet (and similiar approaches) seem not suitable for this kind of task. It has been shown in an article in "Spektrum der Wissenschaft" (German issue of Scientific American, January issue) that language, if mapped into a semantic net like wordnet constitutes a "small word", with the maximum ammount of connections needed is between 3 and 5 (This explains the small ammount of CPU-power to find connections). Therefore, distance in wordnet is no good measure of "relatedness", and my whole approach was futile.
Yazracor is offline   Reply With Quote
Old 07-08-2003, 08:20 AM   #11
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road
In response to Alastir:
Julia, and similiar bots, do not use an extensive knowledge base or semantic connections between words. Instead, they rely on simple patterns in sentences to generate pre-fabricated responses. The result is that they may fool you for a short while to generate "meaningful" responses - but they are not useful to extract content from natural language and relate it to  a database. They can, in part, be compared to a POS-tagger without semantics attached, but are even more limited than these systems.
Yazracor is offline   Reply With Quote
Old 07-11-2003, 06:38 PM   #12
Join Date: Jul 2002
Location: Pacific Northwest
Posts: 99
Sanvean is on a distinguished road
Send a message via MSN to Sanvean
You might be interested in this site: Playing around with it gave me some better ideas of how bot responses can be constructed to make them seem "real". And it's fun to play with.
Sanvean is offline   Reply With Quote
Old 08-09-2003, 01:35 PM   #13
New Member
Join Date: May 2003
Posts: 8
myrdred23 is on a distinguished road
Kavir, do you know where to get the source for that Julia bot, the link from that site does not work.
myrdred23 is offline   Reply With Quote
Old 08-10-2003, 12:01 AM   #14
New Member
Join Date: Jun 2003
Posts: 26
Fharron is on a distinguished road
Most chatterbots operate in a manner synonymous with John Searles famous Chinese Letterbox thought experiment. The Chinese Letterbox thought experiment is often discussed in debates surrounding AI and Qualia (conscious experience: what it is actually like to be in a certain state).

Imagine that you are locked in a room. You do not understand Chinese. Through a letterbox in the door come various Chinese characters printed upon cards. Resting on a table in the room is a book and a pile of cards - with other Chinese characters on them. When a card arrives through the letterbox you consult the book and find the Chinese character. The book will then indicate the suitable card, from amongst the pile upon the table, that you are to send back through the letterbox as a response.

From outside the room it appears that you are answering questions with a thorough understanding of Chinese. The cards coming into the room are questions written in Chinese and those that your are sending out are answers in Chinese. Even though you don’t understand Chinese to the posters outside the room it appears that you do. In fact you are simply manipulating what are, to you, meaningless characters.

Chatterbots tend to adopt the Chinese Letterbox approach, with various ad hoc functions to parse contextual differences. They never really understand what they are being asked or what the responses they regurgitate imply. Simply put, they generate the illusion of understanding, but only until a knowing subject, who for want of simplification truly does understand, identifies an errant response.  

Steven: are elephants big

Chatter checks his cards looking for one with the symbols for elephants and big. It finds one that matches both entries and sends it as output.

Chatter: yes, elephants are big

Steven: is a miniature model of an elephant big

Chatter checks his cards looking for one with the symbols for elephants, miniature, model, and big. It finds one that matches with symbols for elephants and big, but fails to find one that also has symbols for miniature and model. It therefore identifies this as the closest match and sends it as output.

Chatter: yes, elephants are big

In order to generate believable AI perfecting the Chinese Letterbox system, through multiple ad hoc contextual information, is perhaps not the best route for development. I believe that a more suitable method might be too fully-exploit the object-orientated language computer programs are familiar with, perhaps in conjunction with the databases already inherent within mud code (mobile, world, player, object files).

Wouldn’t it be better to leave behind the smoke and mirrors, the hit and miss trickery of the stage bound prestidigitator. Instead of trying to fabricate the appearance of understanding why not focus development on a text to code translator.

For example the statement –

"Down at the docks there is a ship called the Mary Celeste. Anyone who
attempts to approach her has to deal with 5 tough guards. Inside the ship is a huge treasure including the eye of Orisis."

would be roughly translated as follows -

Object mary celeste is not in the mobiles current room
Object mary celeste is in room 100 (the docks)
Object mary celeste is a type of ship object
Room 100 also contains 5 guard objects
The 5 guard objects in room 100 have restrict entry spec procs
The object mary celeste has contents
The contents of mary celeste = eye of osiris

Which could in turn support the following type of conversation -

Player: I just visited the Mary Celeste.

Player HAS_SEEN the mary celeste object
The object mary celeste is IN_ROOM 100 and is OBJECT_TYPE ship

NPC: She is a fine ship, currently moored at the docks I believe.

Player: Do you know what cargo it is carrying?

The mary celeste object HAS_CARGO
CARGO_CONTENTS of the mary celeste object = eye of osiris

NPC: I believe the eye of osiris is part of its registered cargo

Mobiles could have their access to the various databases limited by zone number, location, distance, class specific knowledge, their attributes Intelligence et al, and so on. This would narrow down the information available to the mobile, eliminating a number of unrealistic responses.

The general conversation of mobiles would also be far easier if player input was first translated into a programs recognized language, before a response was produced. Muds tend to utilize an object-orientated approach and language itself is largely object-orientated.
Language can be categorised as the explanation of the spatial and temporal relationships between a ‘person’ and another ‘person’, a ‘person’ and an object(s), an object and another object(s).

Mobile: David is here with me.
Mobile: David is holding the apple.
Mobile: The apple is on the table.

Language is also used, sometimes, to make references to the relative spatial and temporal properties of knowing subjects (a person) and objects.

Mobile: David is larger than the apple.

In addition to these basic elements language, albeit to a lesser degree of logical accuracy, also attempts to explain the emotive and/or subjective relationships between a ‘person’ and other ‘persons’ or a ‘person’ and an object(s). These explanations usually concentrate upon a single property of either a subject or object, or a group of properties unified by a common variable.

Mobile: The apple is green.
Mobile: Green is my favourite colour.
Mobile: I like apples because they are green.
Granted, exceptions are sometimes made to this basic framework of language usage. However, for the majority of mundane conversations they tend to hold true. All of the aforementioned pieces of information could easily be translated into an object-orientated computer language.
Fharron is offline   Reply With Quote
Old 08-13-2003, 08:03 AM   #15
New Member
Join Date: Apr 2002
Posts: 18
Yazracor is on a distinguished road
Well, from my experiments it's not that much the storing of the information, but the finding of a "fitting response" which makes
the difficulty. The example of the miniature elephant nicely
demonstrates this. In my system, the connection of minature->elephant => small would have worked. The problem
is that several dozen other "facts" would match as closely as
this one. You could argue that to reduce these "wrong hits" you
could reduce the database size - but it would still be a "small world" if it was sufficiently large to "converse" with.
The only solution would be a concept of "context". In a MUD, it is feasible to create a knowledge base which contains the whole world, with regard to temporal and spatial relationships. Simple questions could, of course, be answered by inquiring from this database system, and this is what is being done by NL interfaces to databases.
The question is, if you want to go to the length of creating this
huge database, the difficult parsing algorithm, a "right size"
semantic network and a complex sentence-generator - just so people can ask simple questions to mobs, or if the system described above that simply checks for keywords and tries to find a fitting sentence from a dabase as answers would not have
a better relationship between effort spend and result.
Yazracor is offline   Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -4. The time now is 06:16 AM.

Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Style based on a design by Essilor
Copyright Top Mud 2014