September 2008

Infocom interactive fiction – a science fiction story
Copyright (c) 1984 by Infocom, Inc. All rights reserved.
Release 31 / Serial number 871119 / Interpreter 0 Version

You wake up. The room is spinning very gently round your head. Or at least it would be if you could see it which you can’t.

It is pitch black.

>flip lightswitch
I don’t know the word “lightswitch”.

>lights on
There was no verb in that sentence!

>turn on light
Good start to the day. Pity it’s going to be the worst one of your life. The light is now on.

Bedroom, in the bed
The bedroom is a mess.
It is a small bedroom with a faded carpet and old wallpaper. There is a washbasin, a chair with a tatty dressing gown slung over it, and a window with the curtains drawn. Near the exit leading south is a phone.
There is a flathead screwdriver here. (outside the bed)
There is a toothbrush here. (outside the bed)

>get out of bed
Very difficult, but you manage it. The room is still spinning. It dips and sways a little.

>take nightgown
I don’t know the word “nightgown”.

>put on dressing gown
You’re not holding your gown.

>take gown
Luckily, this is large enough for you to get hold of. You notice something in the pocket.

>put on dressing gown
You are now wearing your gown.

>reach in pocket
I don’t know the word “reach”.

>empty pocket
I don’t know the word “empty”.

>take stuff out of pocket
You used the word “stuff” in a way that I don’t understand.

>open pocket
Opening your gown reveals a buffered analgesic, pocket fluff, and a thing your aunt gave you which you don’t know what it is.

>take pills
I don’t know the word “pills”.

>take medicine
I don’t know the word “medicine”.

>take buffered analgesic

In Ubiquity 0.1.1

  name: "get-stuff-from",
  takes: {url: noun_container},
  preview: function( pBlock, dirObj ) {
    pBlock.innerHTML = "Gets the stuff that is inside your " + dirObj.summary;

From the Inform manual

An Inform verb usually has several English verb words attached, which are called synonyms of each other: for instance, the library is set up with

“take” = “carry” = “hold”

all referring to the same Inform verb.

Hitchhiker’s again

>take aspirin
You swallow the tablet. After a few seconds the room begins to calm down and behave in an orderly manner. Your terrible headache goes.

>get toothbrush
As you pick up the toothbrush a tree outside the window collapses. There is no causal relationship between these two events.

>hold screwdriver


>carry robe
You are already wearing it.

In the latest Ubiquity source build, as of yesterday afternoon

  name: "get-stuff-from",
  synonyms: ["take-stuff-from", "take-stuff-out-of", "empty", "reach-in"],
  takes: {url: noun_container},
  preview: function( pBlock, dirObj ) {
    pBlock.innerHTML = "Gets the stuff that is inside your " + dirObj.summary;


I believe in tough love for my brain-children. It’s report card time. Let’s see how Ubiquity 0.1.1 holds up to my exacting standards.

Please note: everything in this article refers to the 0.1.1 release. The tip of the source tree is changing rapidly, so if you’re using Ubiquity from a source checkout, some of its behavior may have changed by the time you read this article.

Two months ago I wrote a post describing the properties of the ideal linguistic interface. Now that we’ve released Ubiquity 0.1.1, I want to look at how well the current state of the Ubiquity interface measures up to that ideal. Where does it provide the desired behavior and where does it still fall short? Where are there clear and obvious improvements that can be made, and where are we puzzled by design questions still murky and nebulous?

Is it easy to learn? How could it be easier? Is it efficient? How could it be more efficient? Is it expressive? How could it be more expressive?

Yes, it’s still in the public beta phase, so nobody should expect it to be perfect. All the more reason to correct UI design problems now, before they get baked-in and people start getting used to them.