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:

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.)

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.
July 28th, 2008 - Posted in Pennyworth | |
2 Responses to ' Pennyworth: New rules functionality '
Sorry, the comment form is closed at this time.

on July 29th, 2008 at 1:34 am
Hah, a rule-based context-awareness application, eh? That sounds familiar… ;-)
on July 29th, 2008 at 5:27 am
You know what they say, if you can’t beat them, join them.