Ariticial Intelligence, Roguelikes, and Vim

I was planning on writing something about how computer programming seems essentially opposed to “AI”, which I understand as “rule based” design. That is, what we really mean by AI is basically rule-based design rather than procedural design. When we write a computer program, we are involved in creating some process that then goes off and seems to take on a life of its own. With AI, we want to order the computer to do something by setting up a series of laws. (Cf, Asimov’s ‘Laws of robotics’) The fact that (such as in ‘I, Robot’) these laws can have unexpected consequences seems to be fundamentally different than when a process has unexpected consequences, ie, bugs.

Now, it’s not really all that important that, like Siri or something, we be able to speak to it, that we can establish laws via natural language. We would be fine, for example, actually communicating in ‘code’ to AI, so long as it is able to listen. Forget about the Turing test, which states that the robustness of an AI is determined by whether we can have a chat with it — there are far less fantastic standards for robustness for rule-based systems, for example:
1) Ease of input
2) Conflict resolution
3) Complexity / compactness / maintence

So that, the idea is, even if we were sitting in front of computer,as usual, then we would feel the system we are interacting with is ‘intelligent’ based on our feelings of, well, not having to repeat ourselves.

There are always two examples that come to mind.
1) Autocapitalization — I write a great deal in a scriptable text editor, called vim, and, since I write on a thumboard, I wanted to write a autocapitalization script. It took me a long time, but I finally got one that worked for sentences, about, say, 98% of the time. The final 2% however, I realized, would be incredibly difficult. For example, should you capitalize after a parenthesis? Sometimes — depending on whether the parenthesis contains a complete sentence or merely an interjection (such as, ‘(yet!)’). There’s another case of parenthesis coming after numbers — 1), 2) — that should require capitalization — as long as this number appeared at the beginning of a line and not in the middle of a sentence — two (2) turtle doves. I realized that slightly modifying the script to account for all these cases would enormously increase the size and complexity, and so I gave up. But before doing so, I had this fantasy of a rule-based spellchecker, a rule-based grammar system — would it be possible? Note that we aren’t even talking about writing a program that can talk — rather, we’re simply wondering whether we can write a general system that would facilitate the construction of a 99% or 99.9% auto-capitalization script — short of, say, getting a secretary.

2. The other example that comes to mind is roguelikes, a kind of video game, most famously nethack — the saying goes, for Nethack, ‘The Devteam thinks of everything’. The appeal of the game is the complex way in which potions, monsters, scrolls, wands, etc., interact — ie, interacting with a complex (but ‘fair’, even if evil) rule based system. I’ve also played two other roguelikes, Brogue and Dungeon Crawl Stone Soup, which are sort of opposites (to each other). They both involve, of course, interacting with a complex evil system. Brogue’s appeal lies in the transparency of the rules, which encourages you to formualte a strategy by yourself — it encourages solitude — it should’ve been called ‘Logue’, as in ‘Lonely Rogue’, and not Brogue. The appeal of DCSS is quite the opposite. The game is absolutely monstrous in size, and, in fact, it feels as though reading spoilers is part of the fun. It is actively being update, revisions, alterations, but mostly expansions — more monsters, more maps, more levels, more rules, etc.. The name ‘Stone Soup’ is very apt. The game feels endlessly expandable, it feels as though they have a system down for endlessly adding rules.

The emphasis is on the underlying system, and not the actual interaction. I did say, once, that playing DCSS was like a conversation — one feels free enough to say quite a lot of things, and the game usually has a clever response. But, for DCSS, the game is really quite inseparable from the community. I haven’t played the games in months but I still occassionally look through the changelog. The legend there, the image one gets in one’s head, is of some fascinating core of that game that the devteam is constantly adding onto, revising, altering.

AI, then, is not a state to be reached but rather a goal to be pursued. In a sense computer programming has never not been about AI. AI can be associated with the desire to construct some new system that would be robust enough to anticipate what the user — coder — wants to *say*. In a sense, as computers — personal computers, I mean — get more advanced, and the programming community more sophisticated, AI is closely related to the development of new programming paradigms or languages.

The hope of computer programming is to go from a procedural to a … ‘legal’, law-based, mode of design. This can occur either generally or more specifically, in some particular realm. But there is always a 98%, there will always be something unanticipated by the legal system — and this is because, in a sense, the underlying system is fundamentally incompatible with legal design, even if the latter is always the hope.

The hope of any designer always proceeds towards AI but takes on specific forms, which cannot be anticipated, but which always involves this moment of returning to the low in order to start over, in order to stop patching a broken system so that one can issue a new paradigm, so that the system can directly engage with what is *really* important…

TBC: holism of the high and the low

Advertisements

Tags: , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s