Rule Development and Knowledge “Engineering”

So, as I mentioned in previous posts, one of the things I’m currently working with is rule systems, in particular, Jess. Regardless of how lame Equinox may or may not be, one of the advantages it has is that the developer of Jess has gone and done the work involved to integrate Jess into Eclipse. This integration is manifest in a syntax sensitive, highlighting editor, a debugger and an inspector for the rete network. Quite cool stuff in its own right.
However, when you’re developing rule systems, the first thing you have to do is start developing an ontology. Unless I’m missing something really basic (known to happen), developing an ontology is pretty close to what architects and designers (even lowly programmers) do in Object Oriented technology all the time. So it’s a whole system that anyone who’s programmed in OO for a number of years will find quite comfortable.
One of the primary differences between an ontology and an OO system in – say – Java is that classes in Java are primarily a means of sharing code. I can’t tell you the number of times I’ve rolled my eyes over programmers and <shudder> architects discussing – in all seriousness – what an object “truly was”. I mean, my god. It’s FRICKIN’ CODE. It’s not a journey into the platonic realm of pure form. Geebus.
With the ontology, things are even more murky. As will be constantly pointed out to you, there is no “correct” ontology for a given domain. In fact, translation between ontologies is one of the big reasons for OWL and other things that use RDF like a dark blood ritual.
In any event, for developing your ontology, there doesn’t seem to be anything better than protégé. It’s a Java based application for developing and manipulating ontologies. Quite nice and definitely recommended.
What’s even better is the integration of Jess into protégé through a plugin called JessTab. With JessTab, you now really have almost the equivalent of a programming IDE for knowledge “engineering”.
Quite cool.

Leave a Reply