The Robot and the Hound

This term I’m TAing for a fourth year course on Artificial Intelligence at UBC so I’m going to have lots of links to news in AI coming in front of me.  I might as well do something with it so over the next few months I’ll post up comments on my thoughts about the current state of AI research and where its going both in theory and in real world applications.

I’ll add interesting links to my AINews list on the side of this page but for a fantastic source of all things AI check out this list from AAAI which is actually maintained using AI algorithms to combine reader reviews and natural language searches of the web.

First up, Robots.

Robert Silverberg recently decided to pine about the good ‘ol days with his Science Writer breathren about what they thought the ‘robots of the future’ would look like and how its really turned out.  It’s an interesting read from a great SF writer and gives a wonderful overview of the history of robots in fiction.

His conclusion essentially comes down to reminding roboticists to be sure to instill Asimov’s Three Laws of Robotics into all their machines lest they suffer the dire threat of lawsuits in the future.

The notion of  responsibility is indeed an important one that AI researchers will need to deal with.  Right now all robots and machines are pretty dumb no matter how smart they seem.  There is no computer on Earth with anything remotely resembling free will or self-awareness. Thus there is no way any machine could be blamed for its actions at this time so any errors are either the result of improper usage, bad planning by engineers or the random outcome of rules that no one had a problem with.

You can already begin to see this in the way Google, for example, responds to criticism about what shows up on their search results.  Their algorithms are complex and seeks patterns amongst huge amounts of data that no human can see.  They use a lot of AI algorithms and the particular results that show up when you search for something really aren’t the cause of what any one person at Google has done.  Google put up the system which allows those results to be generate but whether the results are offensive for one particular query isn’t something any human being made a decision about.
So I think Google would have a strong argument that some result which was offensive and somehow caused harm wasn’t their fault as long as they’ve taken reasonable precautions.

I think the next stage of moral responsibility for machine behaviour will be something similar to the responsibility of a dog owner for the actions of their dog. A dog owner is at the park walking their dog and the dog is running free and hurts a child or another dog.  The dog did the action and will likely be punished or put  down, but you can’t sue the dog.  However, depending on how the situation arose the owner has some responsibility. If the dog is usually nice and friendly, it was a small dog, it was a leash free park etc, then perhaps the owner would have no legal liability at all.  On the other extreme an abusive dog owner who raises a mean spirited dog that often attacks others and then released it in a leash-only park would face serious penalties although still likely less than if they performed the attack themselves.  I don’t know what the laws are but there is a reasonable way to write such laws that the owner can be held responsible but where the independent will of the dog itself is considered.

Someday, Isaac willing, someone will create a computer that begins to approach the level of complexity that we could say the engineers who made it can only be held as responsible for its actions as they are for their dog. While the Three Laws of Robotics are a nice idea they may be no easier to hardwire than how you train your dog not to bark at others and to always come when you call.  

So lets keep the intent of the three laws but lets make sure that when that day comes we’ve raised a nice, friendly dog rather than an uncontrollable pit bull.

Google WaveBots – Enough Smiley Bots Already, Can We Have Something Useful?

Join the Conversation about this post on google wave or buzz.

I’m a programmer and a certified tech geek, so of course I’m playing with Google Wave. I say playing, because there isn’t much you can do at this point on wave except play. This is partly because there aren’t enough people with access to wave yet that communication is useful. But more importantly, there simply isn’t a rich enough feature set yet to commit to using it for anything important. Much has been said elsewhere about what essential features wave needs to have be ready for primetime, including :

  • administrative access control – This is needed  over waves so that people can leave, be removed, have their write access restricted or monitored. Essential, showstopper, I assume google is working hard on it right now.
  • integration with email – Wave may want to be an email-killer but that won’t be possible without connecting fully with email and showing wave is better, which it may or may not be. So complete back and forth integration with non-wavers via email is essential. If google isn’t working on this, well, they are miscalculating.
  • speed and stability – annoying, but wave is still in preview so this will get fixed.

All these things can’t really be fixed until Google decides to do it. But there are a number of other things wave could have right now if developers put their minds to it and made some useful robots, well ok, maybe next week.

Robots in wave in simply little applications that get a user address and can be added to waves to alter the content. This may sound strange but its actually a very powerful idea. Some robots that already have been created add results from twitter to a wave, pass blips (atomic portions of a wave) back and forth to some email address or blog, add smiley faces and convert urls in the text to http links.

Robots seem to be relatively easy to program and are easy to add. Any content a user can see in a wave, the invited robots will see and they can alter it as well. I am interested in making some wavebots of my own but alas it looks like the sands of time will delay that for a while. The problem with the wavebots that exist so far is that most of them are toys and don’t do anything actually useful. I have an idea or two for useful wave robots that I think would be a lot more useful. If you are so inclined and skilled please make these forthwith and let me know.  If you really hadn’t thought it until you read this post, consider it a gift and cite me as your inspiration.  But what I really want is these bots in my contact list, yesterday!


We need a robot to highlight and alter keywords in the text so that the document can be used for notetaking and brainstorming. For example:

  • TODO, MOVETO(doc), LOOKUP, address, recipe, call, -> becomes an arrow , ? becomes highlighed to denote an as yet unanwered question
  • “TODO text….” could become a check box with the text following it. Hopefully even checking the box could cause a formatting change?
  • the robot could create a blip at the bottom that shows all the mappings and lets the user alter them or add more
  • can you save an instance of the robot as a separate contact? The emaily robot seems to imply you can. If so, then an instance of keywords mappings could be saved in the contact book and readded to later waves. You could have one annotatebot instance for psych class, another for your journal, another for recipes.


One major problem with wave right now is you can’t collapse parts of a wave and see the structure or the big picture. Replay is cute but frankly its useless for document editing. Its only useful for introducing someone to the flow of a conversation. I see Wave as much more of a collaborative document editing platform. Like Social-google Docs on steroids (without the access control? sheesh). Replay will play a minor role in this view, since the current best doc is what really matter. The fact that there is no way to collapse all repsonse blips or view a timeline is a huge gap. I don’t know if the API allows it, but it might be possible to create a bot that hides or removes parts of the converation below some level in the tree, or creates a summarized copy of the wave that can be perused to get the idea, with links to the full detail in the original wave. Sort of like a table of contents with hyperlinks. That should be doable.


This one would be great. I am already experimenting with using wave for a research journal. It seems ideal, it automatically timestamps each blip, lets you respond and annotate as you go. Lets you go back and edit. Again, collapsing by date would fantastic here. But a wavebot could help a lot with journalling. For example, a bot could take each new blip added at the bottom as a reply and cut and paste the text in to the first main blip so that their is a final formatted document. Each new day could be automatically titled and all new blips entered that day would be appended under that date. Edits of previous blips would not get moved and the header date wouldn’t change. This gets around the limitation that the timestamp on a blip indicated the last edited time, not the creation date. Which is exactly what you want for geenral document editing. But in a journal you also want to know when it was added since edits are largely minor. Any robot that simply turns some key word into the current date or timestamp, with formatting options would be an even simpler solution to this.

The great thing about these bot ideas is they could be combined easily simply by adding each bot to the same wave. Then you could have a journal that annotes TODO comments to format them differently, keeps track of the creation date and lets you explore the document at an abstract level.

I don’t know, is it just me, or wouldn’t these kinds of bots be a better use of your time than developing another smiley bot or eliza-hack chatbot or voting gadget. These are productivity basics that wave needs so it can crawl as a useful tool before it flies as a social media, 21st century email killer.

Those are my ideas.  If you have already made something similar, let me know. If you haven’t, get working on it, before I do!  If its good, then I won’t have to do it myself.

%d bloggers like this: