Huddled Masses
You can do more than breathe for free...
Browse: Home / Masters Project Proposal: A Learning Notification System

Masters Project Proposal: A Learning Notification System

By Joel 'Jaykul' Bennett on 01-Jun-2006

There are many opportunities for the use of AI in improving mainstream user interfaces. One particular area where little has been done is in the way our computers “alert” us of problems or information that we may need to know. Current operating systems provide little or no way for the user to control this, making no attempts to filter the information presented to the user (intelligently or otherwise), leaving the burden of optimizing notifications and alerts to the individual applications.

Individual application developers, on the other hand, only have control over the way their specific application interacts with the user, and perceive that providing less alerts than other apps, or providing them in a way that is less intrusive than the norm, will be seen by users as inconsistent, and could be considered annoying or even “buggy” by end users. Furthermore, providing sophisticated means for the user to determine what alerts or notifications they see is of little use on a per-application basis for most applications, so few developers have made any efforts in this regard, other than developers of email and instant messaging or news readers applications.

To illustrate the current state of the art, and show where it is lacking, take Outlook 2003, an example many will be familiar with. Outlook allows you to have sounds play or alerts pop up based on rules you create which are applied to incoming email, but it is not context aware, so is not able, for instance, to avoid playing sounds when you are in a meeting, nor can it choose to use sound alerts instead of popups when the screensaver is engaged. Outlook also lacks any form of learning or intelligence, so it can only perform these notifications based on specific rules the user has created: if you have a rule to be notified when you recieve an email from your manager, it’s based on the email address, and will not activate if, for instance, your manager emails you from home.

We propose a way to give more control to the end user by building a notification system with multiple types of alerts, and allowing the user to control which applications and indeed, which specific notifications are allowed to use which types of alerts. Further, we propose that the operating system itself could ease the burden on end users by building “smart” filters based on machine learning algorithms, which can adapt to individual user’s prefferences and help create adaptive rules for rating the importance and urgency of incoming messages to determine which notifications a user wants to see. Lastly, we propose a contextual awareness system which will modify the ratings of messages based on information about the current state of the user, whether that be in a meeting, playing a game, away from the computer but still in the room, or even out of the office, but available by phone.

We intend to provide a baseline implementation of this as a replacement for the Windows “system notification tray.” This will be implemented using the Windows Shell Exchanger toolkit which allows multiple system tray applications to run at the same time, and thus allows our app to run over Explorer, GeoShell or other third-party shells. We will, of course, implement additional APIs for delevopers of third party apps (beyond that of the system tray) which would include additional information for the filters … but we will endeavor to allow users to create rules for any application that currently uses the default Windows system tray notification area. Our implementation will provide multiple levels of alerts, starting with no notification at all, and progressing through just changing icons, and through sound alerts, and “toast” windows to modal popups and even email, SMS, and pager notification.

Our implementation will also include bayesian? learning filters based on an implementation from POPFile? which allows us to automatically categorize different alert or notification messages based on content, source, and source-assigned alert levels. While this learning system is expected to have only rudimentary success on current system tray applications, we provide a sample application in the form of a calendar app? which uses multiple “levels” of alerts as provided in our system’s API, and will do user testing which we expect will prove that when the system has this full information, it is able to substantially reduce user irritation by prompting the user less frequently and less intrusively than current systems.

Possible parameters from third party applications include:

  • Message Type – A classification for the message
    1. Notification – just letting the user know about something (eg: “now playing” notifications from your media player)
    2. Alert – warning the user about something unexpected or about a potential problem (eg: network connection lost, out of space on volume, unable to execute background function (backups, scheduled tasks, etc).
    3. BoolQuery – a yes/no question for the user (eg: are you sure you want to delete? are you sure you want to overwrite? ... )
    1. FreeformQuery – more complicated questions
  • Reversible – Whether the action (if any) is easily reversible (eg: a query about “are you sure you want to send to the recycle bin” is reversible, but “are you sure you want to delete” is not)
  • Importance – Application-defined importance in a range from 0 to 4
  • Urgency – Application-defined time-sensitivity of the message, from 0 to 4

    Similar Posts:

      None Found

Posted in Recommender | Tagged Development, Personal, Rants, Recommender

« Previous Next »

Lijit Search

Tags

.Net .Net 2008 Scripting Games Automation Bugs Design Development Funny Gadgets GeoShell GUI Huddled Masses Internet licensing Microsoft Modules My Software News Personal PInvoke Pipeline Politics PoshCode PoshConsole PowerBoots PowerShell PowerShell Functions PowerTips Rants Recommender Repository Scripting ShowUI Software Solutions Textile Tips User Group UserInterface WalkThrough WebHosting Windows 7 WordPress WPF Xml

About Huddled Masses

This is web site is dedicated to the musings of Joel Bennett (aka Jaykul) about technology, software, software development, the web, and the world.

Any resemblance of the views expressed and the views of my employer, my terminal, or the view out my window are purely coincidental. The resemblance between them and my own views is non-deterministic. The question of the existence of views in the absence of anyone to hold them is left as an exercise for the reader.

P.S.: I occasionally link to things I think are great. When I do, I occasionally find a "referral code" so I can make a little cash. I promise that I don't link to anything just because of that cash (I wouldn't cross the street for the amount of cash those links bring in, never mind write a whole blog post) ... but I do not promise that things I link to will stay great as time passes, nor that you will agree with me about their greatness!

Archives

  • April 2012
  • February 2012
  • January 2012
  • October 2011
  • August 2011
  • July 2011
  • June 2011
  • March 2011
  • February 2011
  • January 2011

Copyright © 2012 Joel Bennett.

Powered by WordPress and Hybrid.