The Pennyworth Project

Just another WordPress site

Pennyworth: New rules functionality

I wanted to post a quick note a some major new feature that will be available in the next release of Pennyworth. After many requests and some usage of my own, I’ve implemented a rule-based system in the system to compliment the machine learners. The interface looks like this:

Pennyworth: Rules

On the left is a list of rules. When new sensor readings are made available, the machine learners consult the rules database for any rules that match their given key (“Activity”, “Location”, or “Social Context”).

If a matching rule is located (rules are tried in the order displayed in the interface), the learner evaluates the “state of the world” against the rule. If the rule matches the state of the world, the rule’s prediction is returned and the learner does not attempt to generate a prediction using its learned model. If no matching rule is located, the learner uses its model to generate a context prediction. (This is the old default behavior.)

Pennyworth: Rules

The rule editor is smart enough to look at your prior sensor readings and populate the left-most pulldown list with prior sensor names. The middle pull-down is populated with a variety of operators for matching. There are greater-than and less-than operators for numeric values, string matching (“‘Active Application’ is like ‘Xcode*'”) for categorical variables, and I included a “contains” operator for multi-valued sensors.

Using this interface, it is possible to construct an arbitrarily complex set of rules that is more expressive than the machine learner. I don’t expect users to stop using the machine learner in favor of these rules (creating a sufficiently descriptive model is quite tedious), but I do expect that the combination of the two will make Pennyworth much more user-friendly and accurate.

This will be out in Pennyworth 1.3, which I’ll make available later this week. The functionality is working marvelously, but I still need to deal with a few more UI bugs and tweaks before letting this loose in the wild.

Posted by admin at 9:23 pm on July 28, 2008 . Filed under Pennyworth.


  1. Hah, a rule-based context-awareness application, eh? That sounds familiar… 😉

    Comment by David Symonds — July 29, 2008 @ 1:34 am

  2. You know what they say, if you can’t beat them, join them.

    Comment by Chris J. Karr — July 29, 2008 @ 5:27 am

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.