April 1997
- From out of the shadows... Dan Mazeau
- Introduction Shawn Halpenny
- Introduction Nathan Yospe
- Introduction Chris Gray
- Introduction coder@ibm.net
- Introduction S001GMU@nova.wright.edu
- Introduction Jeff Kesselman
- Introduction Chris Gray
- Introduction Mik Clarke
- Introduction Caliban Tiresias Darklock
- Introduction Mik Clarke
- Introduction Caliban Tiresias Darklock
- Introduction J C Lawrence
- Introduction Elia Morling
- Event-driven? Michael Hohensee
- Event-driven? Nathan Yospe
- Event-driven? coder@ibm.net
- Event-driven? Jon A. Lambert
- Event-driven? Adam Wiggins
- Event-driven? Shawn Halpenny
- Event-driven? Chris Gray
- Event-driven? coder@ibm.net
- (subject missing) Dan Mazeau
- A late introduction Jon A. Lambert
- Re-Introduction S001GMU@nova.wright.edu
- New guy Walter Goodwin
- New guy coder@ibm.net
- Socket Stuff Shawn Halpenny
- database stuff Chris Gray
- So in an event-driven server, how do you ... Michael Hohensee
- So in an event-driven server, how do you ... Nathan Yospe
- So in an event-driven server, how do you ... S001GMU@nova.wright.edu
- So in an event-driven server, how do you ... Chris Gray
- So in an event-driven server, how do you ... clawrenc@xsvr1.cup.hp.com
- So in an event-driven server, how do you ... clawrenc@cup.hp.com
- Off on the languages tangent! Chris Gray
- Yet Another Introduction Reed D. Copsey, Jr.
- Yet Another Introduction Nathan Yospe
- Yet Another Introduction clawrenc@cup.hp.com
- Yet Another Introduction clawrenc@cup.hp.com
- Yet Another Introduction Adam Wiggins
- Yet Another Introduction Dmitri Kondratiev
- self-intro: Cynbe Cynbe ru Taren
- Unique id's Chris Gray
- Unique id's clawrenc@cup.hp.com
- Unique id's Jon A. Lambert
- Unique id's coder@ibm.net
- Unique id's Jon A. Lambert
- Unique id's coder@ibm.net
- Unique id's Jeff Kesselman
- Unique id's clawrenc@cup.hp.com
- Unique id's Jon A. Lambert
- Dupes are my fault (again) coder@ibm.net
- six degrees of submission ... er, compilation. Cynbe ru Taren
- six degrees of submission ... er, compilation. Jeff Kesselman
- Java as a mudserver language Cynbe ru Taren
- Java as a mudserver language Jeff Kesselman
- Execution Chris Gray
- Using system time for ObjectIDs clawrenc@cup.hp.com
- short absence Chris Gray
- short absence coder@ibm.net
- Hello! Ross Nicoll
- Ho hum (clarifiyign AI terms) Jeff Kesselman
- Ho hum Ling
- Fw: Just a bit of musing Travis Casey
- Risk Assessment -- was (Ho hum) Jon A. Lambert
- Who is Steward and what can he do for me? Jon A. Lambert
- Who is Steward and what can he do for me? clawrenc@cup.hp.com
- Who is Steward and what can he do for me? Chris Gray
- project management (or coding, kings, and other things) Jon A. Lambert
- Threads and Sockets (Was Ho hum) S001GMU@nova.wright.edu
- Threads and Sockets (Was Ho hum) Jeff Kesselman
- Threads and Sockets (Was Ho hum) S001GMU@nova.wright.edu
- Threads and Sockets (Was Ho hum) clawrenc@cup.hp.com
- Threads and Sockets (Was Ho hum) Chris Gray
- Strings & Memory Usage Greg Munt
- Strings & Memory Usage clawrenc@cup.hp.com
- Strings & Memory Usage Jeff Kesselman
- Strings & Memory Usage Shawn Halpenny
- Strings & Memory Usage ashen
- Strings & Memory Usage Chris Gray
- Steward coder@ibm.net
- r.g.m.* - worthwhile thread Nathan Yospe
- r.g.m.* - worthwhile thread clawrenc@cup.hp.com
- r.g.m.* - worthwhile thread Jeff Kesselman
- r.g.m.* - worthwhile thread Chris Gray
- (fwd) A Mud Protocol (MUD Markup Language) coder@ibm.net
- Ho hum (Sockets) Ling
- Steward and other painful friends coder@ibm.net
- A Combat System (please critique!) S001GMU@nova.wright.edu
- Your Message To mud-dev Jon A. Lambert
- I'm back Chris Gray
- Changes to the list coder@ibm.net
- Oops coder@ibm.net
- Verb binding Chris Gray
- Verb binding clawrenc@cup.hp.com
- Verb binding ashen
- Verb binding Chris Gray
- Verb binding Adam Wiggins
- Verb binding clawrenc@cup.hp.com
- Verb binding S001GMU@nova.wright.edu
- Verb binding Shawn Halpenny
- Verb binding Chris Gray
- Verb binding clawrenc@cup.hp.com
- Verb binding Chris Gray
- Why have a combat state? Jeff Kesselman
- Why have a combat state? clawrenc@cup.hp.com
- Introduction Jamie Norrish
- Introduction S001GMU@nova.wright.edu
- Introduction clawrenc@cup.hp.com
- Introduction Jeff Kesselman
- Introduction clawrenc@cup.hp.com
- Introduction Chris Gray
- Introduction Travis Casey
- Introduction Jeff Kesselman
- Introduction scherecwich@angelfire.com
- Introduction Jon A. Lambert
- Introduction Chris Gray
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Oliver Jowett
- (fwd) Issues from the digests and Wout's list Chris Gray
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list Miroslav Silovic
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Adam Wiggins
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Miroslav Silovic
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list Raz
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- (fwd) Issues from the digests and Wout's list clawrenc@cup.hp.com
- Me Raz
- Sendmail changes coder@ibm.net
- Reposts Adam Wiggins
- Semaphores, Mutices, fd_sets Greg Munt
- Semaphores, Mutices, fd_sets Jeff Kesselman
- Semaphores, Mutices, fd_sets clawrenc@cup.hp.com
- MUD Design Digest V1 #55 coder@ibm.net
- Me Raz
- Magnetic Scrolls' magical parser Greg Munt
- Magnetic Scrolls' magical parser clawrenc@cup.hp.com
- Magnetic Scrolls' magical parser Adam Wiggins
- Magnetic Scrolls' magical parser Nathan Yospe
- Magnetic Scrolls' magical parser Chris Gray
- Magnetic Scrolls' magical parser Ling
- Magnetic Scrolls' magical parser Chris Gray
- Magnetic Scrolls' magical parser Shawn Halpenny
Greg Munt wrote:
> On Sun, 27 Apr 1997, Chris Gray wrote:
>
> > [Raz]
> > :It even supported the command that Magnetic Scrolls made such a big deal
> > :about, namely:
> > : > put the pot plant in the plant pot
> > :
> > :Though, apparently, there's nothing very complicated about that syntax at
> > :all =)
> >
> > That's pretty straightforward. My 'putIn' verb just tells you that you
> > can't put something into itself.
>
> A pot plant is not a plant pot :) Also, the whole 'big deal' about this
> was that 'plant' was able to be used as a verb, a noun *and* an
> adjective, IIRC the input was actually:
>
> > plant pot plant in plant pot
>
> This sort of complexity seems to be lacking from the current mud
> 'mainstream' in its entirety. Most of which I have come across seems to
> be parsing such as:
>
> * First word of input is the command, look it up in our hash
> table of commands
>
> * Call the function corresponding to the command, passing the
> rest of the input (ie everything after the first word) as
> parameters to the function
>
> So, you might have function prototypes for your command functions as:
>
> void function (Player player, String parameters);
>
> All command functions would have their own parameter parsing algorithms;
> so, for the above example, function 'plant' would be passed 'pot plant in
> plant pot' as its parameters.
>
> This is utterly simplistic, and although quite easy to implement, does
> not make me happy in any way! I've looked about the web for things on
> NLP, but I think I'd need a PhD to understand it all :(
I had looked into the comp.ai.nat-lang FAQ for some pointers on natural
language processing, but a lot of the stuff in there seemed to center
around Prolog (ick). I have no interest in complex natural lang parsing,
but rather just a small degree of improvement over what exists in the
stock muds now. Since we're dealing with a fairly limited subset of
language, really, it's not too much work to bang out a simplistic parser
that will accept fairly natural syntax. At the moment, I just break it
down into:
verb object_construct [optional_object_construct]
for verbs that function that way (get, put, etc., though not say, shout,
etc.)
Basically, an object_construct can have a cardinal number (the quantity)
followed by an optional preposition, then alternating ordinal numbers
(specifying which numbered object in a set) and possessive nouns.
So far, it seems to work. So far.
> The best I can come up with is to have hash tables of verbs, nouns,
> adjectives, adverbs, etc - but beyond that I'm pretty much lost. Is
> anyone able to give me a few pointers on this? One of my goals is to have
> a parser of *at least* 'Infocom' complexity.
I parse complete commands into their component parts and pass an object
containing them to the appropriate function. The function is responsible
for making sure the objects are in the correct places, have the correct
properties, etc. for the command to work, since the parser has already
resolved that the objects exist and the verb is valid.
My verbs are always bound to an object, whether it is the character
executing the command, or the item(s) being used. I maintain a global
mapping of object keywords to objects for global queries, as well as a
mapping of 2-space locations to objects for room queries (this second
mapping is also used for virtual space resolution). Depending on ordering
of ordinal numbers and possessive nouns, the world's contents, the room's
contents, or the character's deep inv/equ could be searched when resolving
an object in a command. Now I can write things like
give 200 of my 2nd dog's bag's bread to room's 5th guard's 8th child's cat
(provided I've got at least 2 dogs, the second one's got a bag with bread
in it, there are at least 5 guards in the room I'm in and the 5th one has
8 children somewhere throughout the world and the 8th one owns a cat that
is also somewhere in the world. I've also got to be an admin, if all of
those things are not in the same location as I am). The parser will
resolve the 'bread' and the 'cat' to the proper objects and pass them to
the 'give' verb to be handled. The verb will verify that the dog, his
bag, and the bread inside it are all in the room with me, as are the
guard, his 8th child and her cat. (if I'm an admin, however, I can be on
the other side of the world and the necessary actions will be done to get
the bread from the dog's bag--this part might get interesting and I've not
thought it all out yet), and then do the action if the objects
are accessible to me.
As well, I can still write "give 200 bread cat" and that'll work just fine
(though it's not as pretty and perhaps I should direct the parser to
chastise the typist for poor and ambiguous grammar).
Heh. So far.
--
Shawn Halpenny
"Purgamentum init, exit purgamentum"
- Latin for All Occasions
- Reposts Jeff Kesselman
- Email change Alex Oren
- SUBSCRIBE Alex Oren
- (fwd) Death in Muds -(also Birth, Imprisonment, Aging, and skill development) coder@ibm.net
- fd_set limitations Greg Munt
- parsing Chris Gray