I do not think it means what you think it means
I’ve recently been working with Jena and Pellet. At the outset I was enthusiastic about all the interesting implications a reasoner had for my ontology. Being familiar with the “classify ontology” buttons in Protege, as well as the “inferred types” tabs, I had in mind that Pellet would be able to take instance information and classify my instances. I imagined interesting tid bits about anonymous Instances coming in, and conclusions coming out in the form of pellet asserting class membership when Instances meet sufficient conditions. For example, an Instance with a name, a job, and a wife is probably a….that’s right…a man! I’ve since been somewhat disappointed.
Pellet does indeed make reclassifications. It’s particularly good at inferring types up the inheritance chain. For example, if my ontology declares a class of “Person” and it’s subclass “Adult”, Pellet will infer that any “Adult” is also a person…to which I say big deal. To rub salt into the wound Pellet continues to assert that every instance is also an owl:Thing. Java or any other OO language will answer “instanceof” queries, but I’ve never heard anyone describe this as the “java type reasoner”. I find it humorous that stating the obvious falls under the guise of reason. Therein lies one of the problems with the semantic web. High expectations driven by mysterious and imaginative jargon (type inferrence, reasoning, classification, SHOIN(D)). I believe the semantic web community is falling into the same trap that the AI community fell into, which is to grossly underestimate the meaning of “reason”. As Inigo Montoya says in the Princess Bride, “You keep using that word. I do not think it means what you think it means.”
Now that’s not to say Pellet cannot make interesting assertions about your ontology. Given an OWL ontology that is carefully crafted by someone intimately familiar with how reasoners work and Pellet will churn out some interesting answers. In my naiveté I had assumed I would merely be required to make obvious statements about my domain and instance data. Not so. When crafting the ontology the designer must be aware of the exact conditions required to fire an inference.
Back to my example of an Instance with a name, a job, and a wife. For most of us, we’d merely need to state that the thing had a wife to infer that the thing was a man. Our minds liberally and generously classify the unknown as needed. OWL reasoners do just the opposite. They try to find all the reasons why the thing cannot be a Man. Reasoners are stingy and oriented towards focusing on the negative. If Pellet were a person, it might respond by saying, “The thing cannot be a Man because there might exist some work of fiction wherein rabbits have jobs and are married…and therefore the thing might be a rabbit or a man, we’re not sure, so we’ll do nothing….but…we’ll go so far as to tell you that the thing is probably an instance of owl:Thing“.
But don’t be misguided. There is a purpose and time for everything. Just as Vizzini (the evil consultant hired to start war in Princess Bride) had a purpose and indispensable role to play, so does Pellet. Pellet’s strength is that very same thing that causes me consternation, it’s honesty. Pellet shines as a tool to indicate if you ontology is consistent. Without it Jena would allow you to assert blatantly false information. Pellet keeps us honest by it’s greedy and miserly cataloging of everything we told it from the start. This very role, the role of keeping order and consistency, is alone enough to justify it’s inclusion within your semantic web application. But just as Pellet keeps us honest, let’s keep the semantic web community honest too. Perhaps “reasoner” is too glorified a name for what these tools do.
“You may go into the field or down the lane, but
don’t go into Mr. McGregor’s garden.”…(Peter
Rabbit’s mother)
Hmmm, Peter is a Rabbit, and has a mother which inferres a rabbit father, doh! Pellet is always correct.
Powered by ScribeFire.



One Comment, Comment or Ping
Dan McCreary
Great article. This gives a nice overview of the strengths and weaknesses of Pellet and reasoners.
I like to think of this as a “sanity check” on our ontologies. I sometimes go along building errors on errors that I have to back out of when building ontologies. Having Pellet keep me honest would have saved me time.
And I really like the Princess Bride movie also.
And as to if the Semantic web is, like AI, a little over hyped…I say…Inconcievable!
May 28th, 2008
Reply to “I do not think it means what you think it means”