Thursday, February 26, 2009

Delusions of Grandeur

I had a pretty amazing night-long dream last night. I thought I’d share it with you...but you’re going to need some background information to understand it.

Contributing Factor A:
Dawn and I finished watching the BBC’s 1996 mini-series of Neil Gaiman’s Neverwhere last night. It’s a six-part series, complete with dodgy BBC special effects and some moderate production value and acting. I assumed that it was an adaptation of the book Neverwhere, but when we watched the interview with Neil afterwards we learned that he had written the story expressly for the BBC and later adapted the screenplays into the book.

Fun fact: Originally they wanted Neil to write a fantasy story for the BBC about the homeless in London…but Neil refused because he was afraid that he’d make being homeless look cool and inspire British teenagers to run away and live on the streets. He wrote Neverwhere instead.

For those of you unfamiliar with Neverwhere here is a one paragraph summery courtesy of Wikipedia.
Richard Mayhew, a Scot living in London encounters an injured girl named Door on the street one night. Despite his fiancée's protests he decides to help her, but that unfortunately also means that he suddenly ceases to exist for regular people and becomes real only to the denizens of 'London Below', whose inhabitants are generally invisible and non-existent to the people of 'London Above'. He loses his house, his job and nearly his mind as he travels London Below in an attempt to make sense out of it all, find a way back, and helps Door survive as she is hunted down by hired assassins.

Contributing Factor B:
I’ve been doing a lot of work with XML files lately for both work and my Thesis. More specifically, I’ve been doing a lot of work with XML file schemas lately. To not get bogged down in too many details just consider an XML file as a simple a way of storing information, any kind of information, in a tagged format. An XML file schema is a document that contains the rules that describe what sort of form the information in the XML file should take on. Basically you can compare an XML file to a schema and decide if the XML file is a well formed and valid expression of that schema.

Contributing Factor A + Contributing Factor B = Awesome Dream:
Unfortunately I can’t remember all the details of my dream that stretched all freaking night long. It was epic. But here is the basic premise and synopsis of what I can recall.

In the dream I’m in a setting not unlike the ‘London Below’ in Neverwhere. As in Neverwhere, there is a Beast that exists in the world that is to be feared and respected. Lately the Beast has been especially vile and all attempts to slay the Beast have resulted in tragedy. The Beast seems to be unbeatable.

I am sought out because like other inhabitants of ‘London Below’ I have a unique ability. My particular ability is that I can look at the very model of reality and make changes (if need be). During the dream the problem of the Beast is brought before me and I decide to check the underlying model of reality to see if I can figure out why the Beast is impossible to kill. Strangely enough, the model of reality looks like an XSD document that only I can see.

I notice that in the complex element that represents the class of the Beast that there is not a constraint that DateTime values in time and location tuples must be unique. The reason the Beast is impossible to kill is that he has figured out that having multiple instances of himself at different locations at the exact same time is a valid model of reality! With effort I tweak the model and add the constraint that all DateTime values for the Beast must be unique and restrict him to one location at a time. I am awesome.

Dream Analysis:
This is not the first time that I’ve dreamt about being able to control the world. It’s a reoccurring theme. It’s also not the first time I’ve mixed in some sort of computer shenanigans with my delusions of grandeur. I remember when I was learning ActionScript I dreamt that I had a robot that I could send out to query the property values of objects and change them. My little robot buddy would travel along the power lines and could “right-click” on objects to reveal their properties. In particular, my favorite task for him to open up the property list for an object and change the ownership value from other people to me. Essentially I was editing instances of things so that I could own them. How greedy the unconscious Bill is!

I think last night’s dream was a tad more abstract though. The robot was only able to alter available properties of instances – essentially he was stuck just editing the XML file of life. Last night I could change what form that a valid instance took, thus editing the XSD of life. But I don’t’ think I could mettle with individual instance (and thus they had to go back out and kill the Beast confident that there would only be one of him).

This morning I was wondering what the criteria for being a god was. Is being able to edit instances but not the underlying model sufficient for being a god? Obviously being able to do both allows you to create whatever you desire. How about just being able to edit the model but only being able to influence the instances via setting up constraints? That strikes as a particularly interesting scenario. You’d spend your time trying to perfect your creation by setting up the correct rules for a well formed and valid reality. Imagine creating one constraint and then figuring out that had an unanticipated consequence. Is evil the result of an imperfect set of rules governing reality?

2 comments:

Greg said...

Did the beast in your dream also look like a shag carpet thrown over a mechanical bull?

"GRRR!!!"

Bill said...

I think it was a bit more impressive in my dream.

Dawn and I were making fun of how anti-climatic the beast was in the series (and the fighting too!) In the interview Neil talks about how he'd hoped they’d able to get the really ferocious boar for the end…but then they learned that all the boars in the UK had been cross bread with pigs to tame them down. A mechanical bull and shag carpeting is basically what they used. Judging by more recent BBC special effects in Dr. Who…they might have been able to CGI that into a bit more impressive beast.