Pennyworth

Context Sensing for Mac OS X

Getting Started with Pennyworth

In order for Pennyworth to be useful, you must train it to predict your activity, location, and social context. The best way to train Pennyworth is to correct it while it runs.

The fundamental idea is that when you catch Pennyworth making an incorrect prediction, you correct it by providing accurate labels that describe your current context. At the beginning, you will probably correct Pennyworth frequently. However, as time goes on, the system will require less and less training.

Running Pennyworth for the first time

If you downloaded and installed Pennyworth, you should now have an application with a yellow bell icon. Double-click this icon to launch it:


Pennyworth's application icon

When you use Pennyworth for the first time, it will not be able to recognize your context. To teach it your current context, bring up the Training window by using the ⌘-Ctrl-C hotkey combination:


Correcting & training Pennyworth

In the appropriate fields, enter your location, activity, and social context.

To monitor what Pennyworth thinks your current context is, open the Pennyworth menu by clicking the bell icon in the status bar:


The Pennyworth menu

To display the context that Pennyworth currently predicts, select the Predictions... item from the menu. The following heads-up display will appear:


Pennyworth's current predictions

This window automatically updates itself as your context changes. If the window displays an incorrect prediction, correct it by using the ⌘-Ctrl-C hotkey and entering a more accurate description.

Using Pennyworth with Growl

Pennyworth includes support for the Growl notification system. Pennyworth will emit Growl notifications when it detects your context changing:


Pennyworth's Growl notifications

Using Growl with Pennyworth is a useful way to understand how and when Pennyworth detects changes in your context.

"Why does Pennyworth think that I'm doing X, when I am doing Y?"

When you train Pennyworth, it tries to create a set of rules that it can use to predict your context. As you train it, it generates richer sets of rules to better predict your context. For example, a ruleset that predicts your location might look like this:

if "Current Wireless Network" == "My Work Network" then
	if "Hour of Day" == "12" then
		Location is "Lunchroom"
	else
		Location is "Office"
else
	Location is "Home"

Pennyworth uses these rules to test values being collected by a set of sensors. To see the sensors that Pennyworth is using, select Observations... from the Pennyworth status menu:


Pennyworth's current observations

As the above image illustrates, sensors may include things such as your currently running programs, your physical location, what devices are connected to your computer, and what video you are watching. The more sensors that are available, the richer the rulesets Pennyworth can build. (If you're interested in a full list of sensors that Pennyworth supports and why, please see the sensors list.)

To view a representation of the current rulesets that Pennyworth is using, select Learners... from the Pennyworth status menu:


Pennyworth's mental model (as a nested set diagram)

In the visible portion of the rules above, we can see that Pennyworth uses the day of the week when PowerPoint is running to determine if the user is teaching or meeting.

Next Steps

Now that you know how to train Pennyworth to recognize your context, you may want to install some compatible applications or AppleScripts that do something useful based upon your context. If you are familiar with AppleScript, you may wish to write your own scripts, as well.

If you run into problems or have questions, please consider consulting the Pennyworth users' group for answers and tips.