Wednesday, October 6, 2010

EML

I haven't quite figured out what to make of this yet, but I know it's absolutely incredible. I'm going to have to read the whole thing before I can comment (I read the XML spec once when I had too much time on my hands, so this should be light reading in comparison), but at first glance, it's nothing less than a formal language for describing and representing emotional states. I'm torn between awe at the grandiosity of the undertaking, and extreme skepticism towards the entire idea of, yes, the standardization of emotions. That said, the skepticism angle is easy and boring, so I'll lay off it for now. I'd rather talk about how awesome it is.

For those of you whose response was "wait, what?" or something along those lines, a bit of explication. W3C is the World Wide Web Consortium, the organization that, among other things, runs the Web. I'll give you a moment to express suitable amusement, incredulity, scorn, etc. But entirely seriously, they're responsible for things like HTML, the backbone of most web pages, and XML, a generic framework for expressing and transmitting data. And now, apparently, they've decided to give emotion a try.

The advantages of having a standard language for emotion are twofold. First, it allows for modularity: some programs can deal with taking input and turning it into EML, and other programs can take EML and respond accordingly. The first type of programs could include, say, facial recognition software that looks at people and decides how they're feeling, or conversation programs that look for signs of anger in internet communication (made that one up, but it'd be useful, don't you think?). The second could include conversation programs that try to cheer people up, or music selection programs that change a game's soundtrack according to the mood (one of my personal favorite problems). Having a common language for this stuff means that the two types can be disassociated - the conversation program could be made to respond to facial expressions, or analysis of forum posts, or anything else, just by feeding it the analysis produced by the appropriate program. Undoubtedly a boon for all kinds of AI/HCI research.

The second advantage is a bit more dubious. A language implies, to some extent, a model. It shapes the patterns its users apply to the world. Someone who grows up on imperative programming (C, for instance) thinks of sequences of activities in terms of for loops: go through each object, handle it accordingly. Similarly, someone who uses EML, whether that someone is a human programmer or a computer program, is going to have to think in terms of the emotional categories, scales, attributes, etc. that are allowed for in the language. This can be a useful aid to analysis - we need to have some way to break things down if we're going to understand them - but it can also be limiting: for instance, it turns out that C-style for loops are a lot harder to adapt to the world of parallel computing than more functional approaches. And when it comes to emotion, and the people doing the standardizing are W3C (in my opinion, at least, they're a pretty big deal), this could have a huge effect on the way future AI researchers think about the world. And, dare I say it, a huge effect on the way future AIs think about the world.

So, yeah, that's my first-glance reaction. I'm sure I'll have more to say once I've actually read the thing. If anyone feels like working through it with me, I'd love to chat about it! Though, given the impenetrability of most W3C specs, I wouldn't blame you if you'd rather not. Either way, I hope I've managed to give a bit of an idea of why (I think) this is exciting/important. If you're interested, stay tuned!