In my science fiction daydreams, I make my computer do lots of neat stuff for me. Like this:
Jeff: Computer, tell me whenever something interesting in the news happens.
Computer: Sure Jeff! Check it out: Justin Bieber and Kim Kardashian are hosting a telethon for Chronic Vapidness Syndrome
Jeff: Let me clarify a bit. If any head of state dies, or there's an editorial in a major newspaper in the US or Europe about climate change, or there's a news topic that appears in at least 80% of my favorite Arabic news feeds, put the relevant stories in my to-read list. When Apple announces WWDC, buy me a ticket and get me a hotel room. Whenever the Twins pass the White Sox in the standings, send Bob a taunting e-mail from me. When the Turing Award is announced, forward the announcement to my CS111 class. And when Justin Bieber is due in the Twin Cities, book me a flight to Thailand.
Right, so that's the daydream. A digital personal assistant with excellent language skills and good judgement. A bit on the ambitious side, perhaps, but how much of this could be made real?
Recommender systems like those used by Netflix and Amazon can satisfy some kinds of wishes. If what I want is a collection of news stories that I will find interesting to read every day, a system like Netflix's will do great. There are down-sides, of course--recommender systems aren't so good at generating serendipity or at encouraging me to try something new and different. But if I rate a couple hundred news stories before using the system I'll probably enjoy most of what the system sends my way.
But what if I want something really specific? What if I want to be alerted when one of my favorite bands releases an album (do we have albums anymore, by the way?), or when one of my heroes dies? What if I want something to happen when a particular numerical condition occurs in the news (like the example of the Twins passing the White Sox in the standings)? What if I want a news event to trigger an action like buying a ticket or booking a flight or launching a new website or sending a tweet? Then recommender systems aren't the right tool.
For this project, you are going to try to make some of my dreams come true. You will design and implement a flexible, extensible system for associating actions with triggers, where the triggers come from conditions found in Internet news feeds. Depending on where your team decides to put its particular emphasis, you may find yourself digging into the theory of intelligent agents, programming language design theory, mobile user interface design, semantic and syntactic analysis of English sentences, usability testing, etc.
(Some of you will notice that this project is similar to one of my CS204 assignments. That assignment was very limited in the kinds of news story detection it could do, it performed no actions at all in response to detecting particular stories, and its user interface was, um, a bit unfriendly. As with that assignment, however, I strongly urge you to stop your system's actions well short of murder and the destruction of the global economy.)
For this project, you will implement an agent to help people monitor news feeds on the Internet, and to specify actions to be taken when particular news-related conditions occur. You will also implement one or more client applications to give people convenient and intuitive access to the agent's features.
A rough outline of your work on this project will look something like this:
In the fall, you'll work with a librarian to do a thorough literature search to find out what others have done in this area. In the meantime, here are a few relevant resources.