Has there been any (even experimental) parser based IF system using a technology similar to Wordnet? If not, will it be worth the effort to include it in a system (I may have to rewrite the whole accompanying code in Lisp, maybe program additional preprocessors and blah blah)? Just wondering.
The parser isn’t the problem, it’s connecting the parsed commands to meaningful actions within the world. But to answer your question, no, I don’t think so.
Yeah, not to my knowledge. I’ve always thought this would be a really interesting experiment, but have never had a chance to try it. I would disagree with George a little and say the parser is at least some of the problem (depending on what problem we’re talking about).
But it’s always struck me that if SHRDLU could understand textual descriptions of a block world 40 years ago, it’s probably not impossible (just some degree of “hard”) to have a parser that understands anything you might reasonably say about a world based on a map, nested objects, light sources, etcetera. There are various secondary problems after that of course, like the one George mentions, and also the fact that every IF has a tension between the mechanical simulation of the world and the implied, more-complex model in the player’s/author’s minds. (The bird being an object of type animal inside a transparent container called a cage is a simplification of the vastly more complicated real-world equivalents we’re mapping onto a simpler metaphor.)
But I still think the experiment would be worth doing, because I feel like most of the frustration I see from people unfamiliar with IF is on that first level, where “inspect bird” inexplicably fails.
Parser will indeed be a bit of problem. What I am thinking of is first attach some basic verbs to a collective noun (“Eat food” and such), then define a particular food item in the game script like
(place-here "Stale Hamburger" :attr *food*)
and then rely on Wordnet to automatically convert “Consume Hamburger” to “Eat Hamburger” which is then further processed. Of course, the parser needs to be smart enough to know which words should it sent to Wordnet (Eat) and which to process directly (Hamburger).
Thanks for replying, by the way.
I’d love to see some kind of Wordnet hookup for the output side as much as for the input side. Like, you could program that you wanted some statement to conform to a particular rhythm, and Wordnet could tell you if there were any synonyms for your object that fit the rhythm – or you could just use Wordnet to analyze the scansion of the bits of text your program generated. This is inspired by the iambic pentameter Twitter bot which just retweeted Tyler the Creator today! (The rhyming tweet seems to have disappeared and also I should admit that I know nothing about Odd Future but what I read in the New York Times.)
This is the kind of thing I daydream about but would probably be an impossible amount of work for me even if someone did come up with the hookup. But would it be possible to use something like the Flathead News Network example in the I7 docs to do this? I really don’t understand that example.
I myself had a fantasy like this: to create a program that can be fed any random data (random clicking of mouse, say) and it will convert the input in music using some markov model of classical music analysing relative quality of note and gap between them. Basically, you tap your feet in a random way and your mp3 player plays brand new music. But, hell, that’s too fucking complicated.