Pennyworth

Context Sensing for Mac OS X

Training Pennyworth

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

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 Pennyworth launches, it installs a small status bell status icon in the system menu bar. Clicking this icon will invoke the menu that exposes the application's functionality:


The Pennyworth menu

To display the context that Pennyworth currently predicts, select the Predictions... item from the menu. If this is your first time running Pennyworth, your context will be unknown.

To begin training Pennyworth, click the icon in the system menu bar, and select the Correct Current Prediction... item. Pennyworth will display a small window where you can describe your context:


Correcting & training Pennyworth

In this window, you can enter new labels that describe your context or select previously used labels. If this is your first time running Pennyworth, there will be no previously used labels available. After you describe your context, click the Set button.

If you left the Prediction window open, the labels displayed will be updated to reflect your context:


Pennyworth's current predictions

This window will be automatically updated as Pennyworth's context predictions change. You may close this window and bring it back at a later time by selecting the Predictions... item from Pennyworth status icon in the system menu bar.

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.

Making Pennyworth smarter

As you use Pennyworth, it will make incorrect assessments about your context. (This will be frequent at first, and less so as you train the system.) When you are in a new context that you previously did not train Pennyworth to recognize, you can teach Pennyworth about your new location, activity, or social context by selecting Correct Current Prediction... from the Pennyworth menu. Change the specific elements that are incorrect and click the Set button as described before.

On an abstract level, each time you correct Pennyworth, you are providing more examples of your context that it uses to generate a model to predict your context in the future. As you provide more examples, its "mental mode" of you and your context becomes more sophisticated and accurate.

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

Pennyworth uses an information theoretical heuristic to decide which sensor readings or observations are useful for predicting your context. For example, the system may learn that your current active application is a reliable indicator of your current activity. To view all of the observations that Pennyworth is using to make its predictions, select Observations... from the Pennyworth menu:


Pennyworth's current observations

Pennyworth ships with a variety of sensors that uses the capabilities of your computer to detect things such as your current wireless network, running applications, and the time of the day. (This set of sensors may be augmented with other sensors. See the AppleScripting and developer pages for more information.) When you correct Pennyworth's predictions and provide it with context labels, you are associating particular observations and sensor readings with those labels.

Pennyworth uses a decision tree to organize these observations and detect which observations are relevant to your context. For example, a decision tree that predicts your location might look like

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"

In this example the location of the user is determined using the current wireless network and the time of the day.

If you would like to "see" Pennyworth's mental model, select Learners from the Pennyworth menu to see a representation of the internal decision trees:


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

In the visible portion of the representation above, when the user is running PowerPoint on Wednesday, they are in a meeting. However, on Thursday, they are teaching.

Using this feature, you can identify where the system is making a mistake. To correct the mistake, simply correct Pennyworth when it makes incorrect predictions. That's all there is to it.