12/21/2023 0 Comments Hungry syrian wandererTo manipulate objects, we used bit arrays. ( The sysadmin liked to play them, so we were very quietly allocated lots of processor time and lots of disk space ) Many years ago, I and several fellow employees were writing an adventure game. I think this sort of thing is probably the long-term solution to improving parsing in IF, but I’m doubtful it’s feasible for what’s at least for most people a hobby rather than a full-time job.Ī while back whilst thinking about parsers, i started looking into the “sister” problem of, general knowledge representation. There are ways of solving this problem in ML, but they tend to far more time and effort beyond the coding level, and you’re still unlikely to wind up with something that is foolproof for simple, expected commands. If a player tries to KILL TROLL WITH AXE and instead winds up trying to kill the axe with the troll, they’re going be justifiably annoyed. For predictive text on a cell phone, for example, you can also train on a large corpus of text, but ultimately you’re suggesting something to the user that they can use or ignore. One of the main problems is that you want the user to be reasonably confident that their commands will be parsed correctly. ![]() In other words theoreticians, and those who make implementations.įor whatever it’s worth, I’ve done a bit of ML research in my real-life career, but I haven’t really seen anything in my own studies that would apply to something like this just out of the box. There are scientists and there are synthesists. This kind of thing is what interests me right now, although not in the context of Inform. I wouldn’t want to take on the task of modeling conversation with this sort of parser, but it’s not incredibly daunting to work out a way for a user to interact with a Zork-style environment. Ultimately, the point of the parser is to take text from the user and turn it into a function that acts on the world state, and there aren’t that many of those functions for a given game. It’s certainly not easy, but it’s not impossible. On the other hand, the default I6 library of verbs is pretty straightforward in syntax and scope (at least, if you’re not getting into topics and other loosely constrained input), and we’re usually just looking at imperative sentences that have no adverbs, only a few heavily constrained prepositional phrases, no subordinate clauses, a few heavily constrained pronouns, refer only to things in scope, etc. The general problem of parsing natural language is certainly very hard I’ve given up on finding any consistency in what the I7 compiler expects, for example, and that’s geared towards a very specific task. The I6 parser code is, to be frank, almost illegible in places, with a complicated series of goto statements, no real indication of what state exactly it’s keeping between the different functions, and functions that aren’t normally encountered in developing an I6 game and don’t have much documentation in the Inform Design Manual.Īs for resolving the semantic content of commands, that’s actually not that bad with such a restricted grammar and world model. ![]() Say something new, from the ground up?īodily replacing the I6 parser is feasible but nontrivial. Not knowing the internals of I6 how easy would it be to completely replace the existing parser with a new one. The scope of the problem is broad even if restricting to a IF settings, and it’s tricky to ensure predictability in the system output. I also like the idea in princple of using machine learning to solve the general parsing problem, but it’s very difficult to pull off in practice. ![]() I’m not sure how representative those blogs are, though, so: Is this an active problem in IF that people care about, or is it just something that we’re resigned to? Is there any interest, though, in revising the parser for Inform? I get the impression from reading various IF blogs that the consensus is that this is an inherent problem with parser-based text-adventures, and the options are just to accept it as an inherent limitation or to switch to a choice-based approach. My last game was in Inform 7, which makes it much harder to get at lower-level features, and so I put those changes back on the drawing board. ![]() I’m not referring to simply adding new verbs or tokens here, but slightly more low-level stuff like having the parser try all lines of grammar for a given verb before returning an error. A while back, I added some hacks to the standard Inform 6 parser to fix various issues with it (or things I considered to be issues, at least).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |