Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] Programming with Protege-OWL generated code.

Samson Tu swt at
Wed May 7 15:59:39 PDT 2008

Trudy Cool wrote:
> Just to be sure I understand, please...
> Are you saying that from my Symantic Web
> project's Java code I will need to place a call
> to a reasoner for every change I make to any
> object instance, to ensure that it still conforms
> to its ontological specification?
> If that is the case, then where can I read about
> recommended best-practices for doing this?

Have you gone through the pizza tutorial 
( and 
see how DL reasoners are used to check the consistency of an 
ontology/knowledge base?

>>> 2)  Am I expecting functionality that ought
>>> to be there, but isn't yet?
>> The functionality is there.
> Yes, but as you say, heavy and expensive :-(
>>> 3)  Am I expecting functionality that ought
>>> NOT to be there, for some reason I haven't
>>> understood?
>> Calling the Reasoner is an expensive operation.
>> Protege shouldn't call it every time the 
>> ontology is changed.
> I suspect you didn't see what I was really asking
> here.  I'm not concerned about calling the
> reasoner from Protege, and I'm not concerned
> about what happens when the ontology changes. 
> I'm concerned about what happens when my Java
> object instances change.
> I haven't understood why the Java classes cannot
> be "type safe" in full conformance to the
> ontology.

 From the point of view of consistency checking, there is no difference 
between ontology and instances. Java classes cannot be in "full 
conformance to the ontology" because Java classes cannot perform the 
description logic reasoning needed to infer consistency. Logical 
consistency is not type checking.

> Can I expect the Java code generator of Protege
> to be enhanced in the future to include the
> ability to generate such functionality?


> Is there some sort of paradigm mismatch that
> makes it impossible for Java classes to fully
> reflect the properties and relations of OWL/RDF? 
> If so, can you point me to some reading material
> that would help me understand better.

Sorry, I don't know whether there is any literature that compare what 
Java classes can do and what DL reasoner can do. Maybe the issue is the 
difference between type-checking and logical inference. Can someone 
point to references that fully explain this issue?

>>> 4)  What must I do to get Java classes that
>>> consistently obey the ontological rules?
>> It's not trivial to identify, when you have an
>> inconsistent ontology, 
>> the assertion that need to be retracted.
> Again, I'm not sure you have understood me.
> *Assuming* a consistent ontology, what is the
> best (and least heavy) way to get Java classes to
> behave completely in accordance with that
> consistent ontology?

As I said, instances are part of the ontology from the point of the view 
of consistency checking. Because of the open-world assumption, you need 
to have enough axioms to infer that your particular hamster is not also 
a kind of vegetable.


More information about the protege-owl mailing list