Sunday, December 07, 2008

Inform 7

I've been playing with inform 7. It is very interesting and I think I'll be using it in 2009. I'd also like to show it to some English teachers and get their reaction.
"Inform is a design system for interactive fiction ... In place of traditional computer programming, the design is built by writing natural English-language sentences"
To make sense of it I had to read Chapter 2 of the Help. My initial unguided effort of "The cat sat on the mat" produced an image of broken cogs and a problem analysis. The Help explains that you have to create a world first by teaching the program where and what everything is using assertion statements in the present tense:
The cat is an animal.
The bathroom is a room.
The mat is in the bathroom.
"The cat sat on the mat" still doesn't work but I'm getting there.

Some analysis at the psychology of planning interest group:

Here is a quick start, from Brian Slesinsky:


Mark Miller said...

I wonder if you have to say what kind of thing the mat is. You already said "cat" is an animal, and "bathroom" is a room. What's a mat?

Bill Kerr said...

hi mark,

The short answer is that the mat is a thing. I tried "The mat is an object." which broke the program and the feedback was:

"that's not something which you can create new values of, because you need to be more specific about what kind of object is intended. Thus 'The frog is an animal' or 'The Hallway is a room' are fine, but not 'The cabinet is an object'"

So, Inform has inbuilt types like "animal", "room" and "thing" that you have to learn about.

Also there are only a few inbuilt verbs and "sat" or "sit" are not amongst them but "support" is.

So, I can get my cat to sit on the mat with:

The mat supports the cat.

The built in assertion verbs are to be, to have, to carry, to wear, to contain and to support.

The Documentation and problem feedback statements are very well done.

I'm wondering whether some of my young students will have the patience to sort through these sorts of issues of how to interact with the program.