Sci-Ence! Justice Leak!

Ada Lovelace Day: Emily Short

Posted in computing by Andrew Hickey on March 24, 2010

Ada Lovelace day is “an international day of blogging to celebrate the achievements of women in technology and science.” by blogging about a woman in technology.

Unfortunately, it’s also a day when I’m getting over a bad case of the ‘flu, and not really coherent enough to write well, and I was seriously considering not doing this at all – after all, earlier this year when my work were after nominations of names of computer scientists to name their meeting rooms after, I’d named Ada Lovelace there, so I could have done my bit. But I’ve decided to go ahead with a post about Emily Short.

(I feel quite embarrassed writing about her as she’s someone I don’t know – at all – but who blogs and whose blog I’ve commented on, and so she may well read this. I just wanted to write about a programmer who’s actually one of those responsible for something I actually use on a regular basis).

Short is the writer of a series of games, all of them ‘interactive fiction’ – the kind of thing that used to be called text adventure games. And while I don’t know as much about the genre as I should, I do know that her games are among the best I’ve played, and are regarded as such by the small community of people who are still interested in these things. Rather than be Zork-esque ‘GET LAMP, KILL TROLL’, her stuff is actual art, its sophistication limited more by the relatively crude tools at her disposal than by her imagination or writing ability – a classicist, she often uses figures from Greek and Roman history and myth (I’ll have to replay Damnatio Memoriae soon, as I’ve recently been rewatching I, Clavdivs), and manages to get quite an astonishing level of characterisation and interaction from her NPCs.

But more important than her games, as far as this goes, is her work on Inform 7, a programming language I’ve written a little about before ( here and here ).

The basic concept behind Inform 7 – and the bulk of its implementation – are the work of Graham Nelson, a mathematician. But Short is the co-maintainer of the project (and increasingly its public ‘face’) , and wrote many of the built-in ‘extensions’ (what most programmers would probably refer to as libraries) to the language – as well as providing more than thirty further extensions on the Inform Extensions Page. She also wrote the vast bulk of the 300+ example programs in the Inform documentation, and the regression test suite used on every release (and as someone whose day job involves, in large part, regression testing software, I can tell you what a tedious, thankless, but necessary job that is).

And on top of that, she’s put in this huge amount of work on a community software project (albeit one not yet fully under a Free license, though getting released that way piecemeal) not for any cash, and not even (as far as I can tell) for ‘real-life’ credit – according to Wikipedia, ‘Emily Short’ is a pseudonym.

No doubt there are better candidates for celebration on Ada Lovelace Day, but I’m assuming you all know about Grace Hopper and Rosalind Franklin, so someone doing good work in a tiny niche, but work I for one appreciate, deserves writing about as much as anyone else…

Inform Update

Posted in computing by Andrew Hickey on April 25, 2009

Edit 25 April for some reason WordPress broke the links in this. Fixed now.
Only a few (if any) of you will be interested in this, but Inform 7, the programming language for text adventure games (Interactive Fiction) has released a new version, along with a new, much-improved website.

Those of you who enjoy writing really should check out this absolutely marvellous cross-platform program (Windows, Mac, GNU/Linux and Solaris binaries available), which actually allows you to write something like this (taken from an earlier post of mine)

“Example” by “andrew hickey”

The Fortress Of Solitude is a room. The description of the fortress of solitude is “An empty, cold, lonely place – the kind of place a God would enter when he needed to cast off his humanity for a short time.” The South Pole is a room. The South Pole is outside from the fortress of solitude.

Superman is a man. Superman is in the Fortress Of Solitude.
A lead box is in the fortress. Kryptonite is a thing. Kyptonite is in the box. The box is closed. The box is not transparent. The box is openable.

After opening the box:
Say “‘How could you bring Kryptonite here?’ shouts Superman, and he flees”;
try Superman going outside.

And have it be interpreted as an actual running program.

Inform 7 is an absolutely revolutionary tool for true interactive storytelling, and I want to start writing actual story/games in it soon (I’ve spent nearly a year just playing with it). The documentation is also some of the best I’ve ever seen.

Also of interest for the more technical and Free Software oriented of you is that they’ve started opening the program up under the Artistic License 2.0 (except the IDE, which has always been GPLv2 (GPLv3 for the GNOME IDE) , and a couple of still-closed bits – they’re followers of Knuth’s idea of ‘literate programming’ and want to make the source human-readable to non-programmers before releasing it). And not only that, they’re opening up the toolchain they created to create Inform 7 too – things like this literate programming tool.

If you’re interested in telling stories or in computer programming, you really should give it a go…

Tagged with: ,

Linkblogging for 01/11/08

Posted in linkblogging, music, politics by Andrew Hickey on November 1, 2008

When I said “I’ll try to get stuff written over the next couple of days” what I *should* have said is “My wife and I will spend the next week like the little weather people in the clock, each being sick when the other is better, and I will miss two important Lib Dem events this week and my wife will have to take a few days off work, and so I won’t be able to get any writing done.”

However, we’re both well now, and I plan to spend *all weekend* writing…

Frankosonic has an interesting post on Frank Sinatra’s Watertown album, and a link in the comments takes me to this very thorough review of the album.

While it’s great to see Watertown get this much attention, I do think that the interpretation that both people put on it (that the narrator’s wife has died, not just left him) is strained. For a start, Jake Holmes and Bob Gaudio had previously written Saturday’s Father on Genuine Imitation Life Gazette, another song very specifically about the aftermath of a divorce (“fun to have a daddy every Saturday”), and the song Goodbye (She Quietly Says) is too explicit to read as her dying without missing out half the lyrics. Still an interesting look at the album, though, and that mournful tone is certainly suited to their interpretation…

Incidentally, if any of you haven’t heard Watertown, you *must*. I’m not usually a huge fan of Sinatra, but give him the right material, as here, and he could rise to it. It’s sort of a middle-aged divorcee’s Pet Sounds, but better. What’s Now Is Now and Michael And Peter in particular are just stunning.

Emily Short is trying a unique idea – a collaborative player-generated interactive fiction game called Alabaster. I’ve not had a chance to play with this properly yet, but it looks fascinating. I hope she releases the conversation system as a proper I7 extension, as it looks very, very useful…

Fred Clark writes about the hypocritical tactics of anti-abortion Republicans in the US.


Even neo-nazis think Obama is better than McCain…

I posted a link to the prologue to Scholars & Rogues’ incredibly long analysis of the Jon-Benet Ramsey case’s portrayal in the media, but this part, talking about cultural values, is worth reading too – the whole thing is, in fact, but I’ve not linked the other parts because of how disturbing people might find them.

And Brad Hicks on supply-side economics.

Linkblogging for 21/09/08

Posted in comics, computing, linkblogging, politics, science by Andrew Hickey on September 21, 2008

A Big Finish A Week is running late again – my thoughts on Bang Bang A Boom will be up tomorrow evening. In the meantime, here’s more links:

Another All Star Superman review, this one at A Trout In The Milk.

Brad Hicks has a rather depressing post on the continued US economic problems.

Inform 7, the programming language I wrote about the other day, has been updated. I’ve spent the last few days playing with the new version, and even though I had to install an Ubuntu package on Debian it still seems (in the GNU/Linux version) notably more stable than the previous version, as well as having a few neat improvements. (That link takes you to the place to download binaries for WIndows and Mac OSX, Ubuntu and Fedora packages, and a GNU/Linux command line binary. If you’re using another distro, you’ll have to get the GUI as sources from sourceforge).

Scipio at the Absorbascon talks about what last week would have been like if it had been in comics. (“Oracle and the Calculator would have joined forces to purge the Anti-life Equation from Google Chrome.”)

And we have the first photo of a planet orbiting a Sun-like star

Inform 7, Authorship and the Second Person

Posted in computing by Andrew Hickey on September 16, 2008

The pervasiveness of optimism among programmers deserves more than a flip analysis. Dorothy Sayers, in her excellent book, The Mind of the Maker, divides creative activity into three stages: the idea, the implementation, and the interaction. A book, then, or a computer, or a program comes into existence first as an ideal construct, built outside time and space, but complete in the mind of the author. It is realized in time and space, by pen, ink, and paper, or by wire, silicon, and ferrite. The creation is complete when someone reads the book, uses the computer, or runs the program, thereby interacting with the mind of the maker.

This description, which Miss Sayers uses to illuminate not only human creative activity but also the Christian doctrine of the Trinity, will help us in our present task. For the human makers of things, the incompletenesses and inconsistencies of our ideas become clear only during implementation. Thus it is that writing, experimentation, “working out” are essential disciplines for the theoretician.

Frederick Brooks – The Mythical Man-Month

I’ve recently spent quite a bit of time playing with a piece of software called Inform 7, which is a wonderfully designed programming language and IDE written specifically for the creation of text adventure games (or ‘interactive fiction’ as the fans of that type of game prefer to call it).

Many people will have only a vague recollection of those games, which were popular in the 1980s – probably the best-known example is now the Hitch-Hiker’s Guide To The Galaxy, which has retained a following thanks to being based on the popular radio show (and books, TV show, towel…). Essentially, these games involve the computer printing out a description of the events in a story, and the player, taking the part of the protagonist, typing in commands. They’re something like the Choose Your Own Adventure and Fighting Fantasy gamebooks that were popular at the same time, except theoretically more open-ended – you weren’t given a choice of what to type, you could enter what you like, and the computer would respond. Of course, the response would usually be “I don’t understand” or “I don’t see that here” or “You can’t do that”, but the *feeling* of open-endedness was the important thing.

After the collapse of the text-adventure game market in the late 80s/early 90s, some people still kept on writing these things, intrigued more by the possibilities inherent in the form than the quality of the works themselves. Some people ( for example Andrew Plotkin and Emily Short) created genuine art in this form, but it’s still a hobbyists’ area – playing them feels like reading pre-Eisner comics or watching pre-Welles film.

And there are significant barriers to entry into these games. Deliberately or not (I suspect a little of both), the ‘IF community’ is, seen from the outside, very insular and communicates almost entirely through Usenet. Most games are also never compiled to executable code – and nor are they compiled to Java bytecode, which most people can run without problems. Rather they are compiled to z-code, a virtual machine that was used by Infocom, one of the old games companies, and that had to be re-created for this purpose – even though z-code has some *huge* technical limitations (like being unable to cope with a game bigger than 512k), and even though this means that anyone wanting to play one of these games must first download an entirely separate program to run them.

However, some of the people in that ‘community’ have done some very interesting work, but nothing as interesting as Inform 7, a programming language created to be used by writers, not programmers, and which is the closest thing I’ve seen to a true natural language parser (albeit one with a very clearly defined scope).

my belief that the natural language for writing IF is natural language is based ultimately on the special nature of interactive fiction. IF is based on a dialogue of text between reader (or “player”) and computer, with both directions of communication prompted by textual possibilities supplied by the author. That means we have three agents describing the same situations — author, computer, player — and in an orthodox programming language such as Inform 6, the same idea accordingly has three different expressions. To specify a typical object, the author must specify all three of these: the source code constant willow _ pattern _ vase, the description text “willow pattern vase” and the parsing data ‘willow’ ‘pattern’ ‘vase’ used to recognise the object in the player’s typed commands. But words are just words, and it is repetitious and artificial to have to write them differently all three ways. A natural language description simply refers to “a willow pattern vase”. It collapses the separation between author and player.

The facing pages are the forum for interplay between the writer and the computer. Inevitably this dialogue is led by the human, typing the source text on the left, and the computer’s part is reactive, producing replies. In most languages programming has a code-compile-test cycle, where the compiler often rejects the code and forces the author to make corrections. This is not unlike the experience of playing through IF: think of something, try it out, make progress.

Graham Nelson Natural Language, Semantic Analysis and Interactive Fiction

Inform 7 is a remarkable language, totally unlike anything I’ve seen before (for computer people the closest I can come to a description is a combination of Python and SHRDLU, but relational rather than object-oriented or procedural). Its aim, essentially, is to let the programmer write in the same subset of natural language in which the player will communicate with the player. It makes for remarkably simple communication – as an example, here’s a ‘game’ which took me approximately two minutes to write:

“Example” by “andrew hickey”

The Fortress Of Solitude is a room. The description of the fortress of solitude is “An empty, cold, lonely place – the kind of place a God would enter when he needed to cast off his humanity for a short time.” The South Pole is a room. The South Pole is outside from the fortress of solitude.

Superman is a man. Superman is in the Fortress Of Solitude.
A lead box is in the fortress. Kryptonite is a thing. Kyptonite is in the box. The box is closed. The box is not transparent. The box is openable.

After opening the box:
Say “‘How could you bring Kryptonite here?’ shouts Superman, and he flees”;
try Superman going outside.

That is perfectly legitimate Inform 7 code, and runs. When run you get output something like the following:

Fortress Of Solitude
An empty, cold, lonely place – the kind of place a God would enter when he needed to cast off his humanity for a short time.
You can see Superman and a lead box (closed) here.
>get box
Taken.
>open box
“How could you bring Kryptonite here?” shouts Superman, and he flees
Superman goes outside.

Possibly not the most exciting game ever, but I hope you get the point – the language used by the player and the writer of the game or story is the same.

This makes it a conversation, but the interesting question to my mind is who it’s a conversation *between*. Because as you can see even from that tiny example, most of the text that’s output is generated automatically, not written by the author. It’s at minimum a three-way conversation between the writer of the game, the writer of the parser (primarily Graham Nelson) and the player. Which is interesting in itself.

But change the paragraph starting “After opening the box” to read

Instead of opening the box:
Say “You’d never do that – it has Kryptonite in it! That’s more the kind of thing I would do, but then I am a supervillain.”

And we can see the real potentials here. We’ve defined a player character who wouldn’t do certain things, and a narratorial voice that would. And those are two new conversationalists. Because the narrator’s personality is only partly defined by the writer – anything not specifically coded by the writer will be automatically generated by the parser in response to the player’s input. And the player character’s personality is defined by the actions s/he won’t take, the actions the player will take, and the intersection between them. (It’s also possible to create non-player characters who have their own personalities and drives, surprisingly easily, using this system).

Even more interestingly, the player character is almost always referred to as ‘you’. There’s an elision of player and character there that is sometimes played with by writers of IF (as it’s known for short) but has never been used to the full.

There’s a tremendous potential here, so far almost entirely untapped, for truly great art, playing with notions of self and authorial intent and levels of reality and the nature of intelligence and a lot of the other things that I just eat up. Imagine an interactive fiction playing with these things the way the last few issues of Promethea do. Or even better, imagine an IF equivalent of the “I can see you!” moment in Animal Man – playing a game, ordering a character around until suddenly it turns round and argues with you. Done properly, it could be quite amazing.

I keep playing with Inform, but I simply don’t have the writing skills to create anything worthwhile with it. But I guarantee that if this tool gets into the hands of enough people with imagination, the next Alan Moore or Grant Morrison may well be working in a medium that most people wrote off twenty years ago. I’d *LOVE* to see what someone with real talent could do with this…

[ETA - That's not to say that Plotkin, Short, Nelson et al don't have 'real talent' - but the stuff they're writing doesn't do the kind of thing I'm imagining...]

Follow

Get every new post delivered to your Inbox.

Join 69 other followers