There are two approaches to sentence pattern matching in interactive fiction. The first is how lambdamoo does it: simple, prebuilt structures of "verb", "verb direct-object", or "verb direct-object preposition indirect-object". (If there's ambiguity, you can quote it.)
The second option is much, much richer. This is the route that Zork and the Z-Machine / ZIL take: every action is able to provide its own syntax structure. This allows for vastly more rich sentences in English, which I think leads to much better immersion.
I worked out a plan this morning for adding the latter to my MUD, and I was convinced that it was the right thing to do.
Sadly, a conversation with my brother has convinced me that I was wrong. (I'm glad he convinced me though!) Both of these have tradeoffs; a precise and predictable way of handling actions which is uniform across the whole game, vs a more immersive "literary" system which can accept a wide variety of inputs. I was hoping for immersion, but... as Steve pointed out to me, what do you do when one of the potential objects in your room has a "special word" in it?
For example: in a multiplayer game, how do you accurately identify what to do when one of the objects in your room has a preposition, like "goblin with sword"? You could ban "with" in names, but if actions are able to define their own syntax, you have no way to identify ahead of time what words are "special".
The advantage that single-player interactive fiction games have: the authors of the game can control the names and the grammatical structure of all objects in the world. But if objects are able to provide their own names and their own verbs (commands a player can execute on them), then there's just no way to do this safely or reliably, and there's no way of getting around this in a multiplayer game... especially one where players are able to contribute to the world. (I guess this is why the Lambdamoo people did things the way they did...)
So it's too bad. My MUD won't have the rich sentence parsing I'd like, because I have to decide on a different tradeoff.
However, there's an advantage: reliably destructuring simpler sentences into words means that it would be possible to use the same logic system to build, say, a GUI interface. Or even better: build a federated game!
And one of the interests driving me wanting to explore MUDs here is the realization that what we're doing looks an awful lot like a looser version of the Subject Predicate Object structure of ActivityStreams and ActivityPub.
"Worse is better?" Tradeoffs for sure! Sometimes the decision you make isn't the one you wish you would...
Claes Wallin (韋嘉誠), der.hans, Jason Self likes this.
Claes Wallin (韋嘉誠), Christopher Allan Webber shared this.
Also "with" could always have an object attached to it. So "goblin with sword" would mean the sword is always the thing being applied to the goblin and not a descriptor.
Craig Maloney at 2016-05-02T03:11:05Z
Christopher Allan Webber likes this.
@Craig Maloney I think you're right. And the more I've looked at this the more I realize even the lambdamoo version has ambiguities.
To hell with it! I'm trying out the rich syntax and we'll see what happens. :)
Christopher Allan Webber at 2016-05-02T03:12:52Z
Claes Wallin (韋嘉誠), lnxwalt@microca.st, Jason Self, Craig Maloney likes this.
You are in cwebber's outbox stream. There are several notes here:
LISP Game Jam update
MediaGoblin Release Notes
Sussman is Awesome
more notes
> ford
You cross the stream.
You are in the identi.ca public stream. There is an endless deluge of notes. You can see a glimmer to the north.
> examine glimmer
As you squint, the glimmer seems to come from another social server.
> go north
You go north.
You are in the microca.st public stream. There is an endless deluge of notes.
Claes Wallin (韋嘉誠) at 2016-05-02T08:14:09Z
jasonriedy@fmrl.me, Christopher Allan Webber, Jason Self likes this.