Greetings all. So some folks may find this interesting. From a few previous posts of mine, y’all know I’m working on some projects with AI and these will serve as the basis for introducing Inform into some classroom settings at the early part of next year.
In that context, here is a repo that was entirely generated by an AI acting as myself:
The AI was given a tokenized and encoded representation of the inweb documentation for Inform 7 (including all related projects). It trained on that and then was asked to generate a repo that would create a playground repo modeled somewhat on my Inform 6 playground:
And may TADS 3 playground:
It didn’t actually do too bad!
It couldn’t make heads or tails of getting Intest to work at all. The documentation was just totally obtuse to it. In fact, that was the case for most of the Inform documentation. It literally learned more by trial-and-error than it did by using the documentation, which I found ironic given the idea of a “literate” approach. Essentially, it just took a starting Basic Inform project that looked like this:
To begin: say "Testing Inform 7."
And then kept adding things from the Inform distro that it felt it needed based on error messages it was receiving when it tried to compile that simple logic.
That was just using a file called
testing.i7 which it creates as part of a
projects directory in the repo. This directory is not version controlled.
Eventually it did figure out how to create a project (
Testing.inform) that also created an index. Although it never worked out how to actually have the images show up in the index. There’s an “inform:” bit to the URL that it can’t work out at all. Problems aside, it was actually a fairly impressive showing and, in doing this, it generated much more concise documentation than the actual “inweb” documentation that is generated as part of Inform.
What it generated essentially shows someone how to set up simple file (the
testing.i7) and compile that all the way to a working ulx file. It then shows someone how to set up a project (
Testing.inform) and do the same thing, providing commands along the way.
I was actually going to have it use Inweb for that but it found Inweb entirely obtuse to just generating code that it then explained. An extremely condensed version of that is what it generated as the README and that part clearly needs some work. In fact, it was a bit dismaying that when asked to condense it’s rich tutorial documentation into the concise README, it actually did a pretty poor job.
So far this is just using Basic Inform. Next up is to include the Standard Rules. Also this was only done on a Windows machine so far. The Mac version will be next. Although interestingly it did make some assumptions in that regard. For example, in the
HTML directory it did include the
macos-platform.css along with the
windows-platform.css even when that wasn’t needed. But so far as I can see, that was the only extraneous inclusion.
This is still very much a work in progress but the initial results were far better than I expected. I would still like it to figure out how to generate a working series of Intest files in this repo. It’s been tasked with taking the existing tests in the Inform repository for this but it just finds the whole Delia concept entirely baffling.
Yet one more element of this will be a much more concise rendering of a basic usage of the toolchain. In parsing the Inweb, the AI had a series of suggestions on how to make the documentation much more prescriptive in an iterative way for learning. I’m curious if this will follow a pattern of how it massively condensed a lot of the “Writing with Inform” material to provide what it considered a much more prescriptive articulation of the key features of the Inform 7 language. We’ll see how that evolves!
If you read this far, I hope this was an interesting diversion in your regular Inform travels.