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-discussion] reasoner issue

Tania Tudorache tudorache at stanford.edu
Thu Jun 2 15:31:57 PDT 2011


Yes, it is an ordering of types problem. This bug manifests only if the 
rdfs:Class type declaration shows up before the owl:Class type 
declaration. Most of the times, classes are declared either as owl 
classes or as rdfs classes, not both (although it is not incorrect), so 
this bug would not manifest.

There is an easy workaround for this problem: the "offending" rdfs:Class 
type declaration occurs in the file: 
http://purl.obolibrary.org/obo/iao/dev/ontology-metadata.owl
You can have a local copy of the file, and use a local file repository 
for your ontology pointing to the local copy. In the local copy of the 
file, you can replace the rdfs:Class type declaration with an owl:Class 
type declaration.

If you do this small change, then the reasoner should work fine in 
Protege 3.x.

I am happy to provide more help if needed.

Tania

On 06/02/2011 03:16 PM, Jie Zheng wrote:
> Hi Tania,
>
> Thanks for your explanation.
>
> The reason I checked consistent of the ontology using Protege 3.x 
> because we are thinking to use collaborative ontology development 
> tool, WebProtégé, which only supported by Protege 3.x.
>
> I have used Protege 3.4.1 before to develop OBI which imports BFO too. 
> The Pellet worked fine. It's strange to have this issue now.
>
> Best,
>
> Jie
>
> On 6/2/2011 6:07 PM, Tania Tudorache wrote:
>> Hi Jie,
>>
>> In general, it is better to trust the reasoning capabilities of 
>> Protege 4.x rather than Protege 3.x. I checked and your ontology is 
>> consistent.
>>
>> The reason you get the inconsistent classes in Protege 3.x is because 
>> of a class cast exception that happens while the ontology is "sent" 
>> to the reasoner. The cause for this exception is that the class 
>> "http://www.ifomis.org/bfo/1.1/snap#GenericallyDependentContinuant" 
>> that has as declared types both rdfs:Class and owl:Class in two 
>> different imports, and Protege 3.x creates it as a RDFSNamedClass 
>> object rather than a OWLNamedClass object, and hence the class cast 
>> exception. If the ontology would make it fine to the reasoner in 
>> Protege 3.x, it would be consistent.
>>
>> So, I would suggest that you continue to use Protege 4.1, if 
>> possible. We'll add the bug to be fixed for Protege 3.x, but as this 
>> is not a very common situation, and the fix would involve some 
>> performance hit, we will need to consider it carefully.
>>
>> Cheers,
>> Tania
>>
>>
>> On 06/02/2011 01:55 PM, Jie Zheng wrote:
>>> We developed an ontology using Protege 4.1. The Pellet and Hermit 
>>> were used for consistent checking and inference. No inconsistency is 
>>> found. However, when we ran Pellet 1.5.2 in Protege 3.4.6, it showed 
>>> a long list of inconsistent concepts. The following message was 
>>> shown when ran the Pellet:
>>>
>>> WARNING: Errors at synchronizing OWL model with the reasoner -- 
>>> java.lang.ClassCastException: 
>>> edu.stanford.smi.protegex.owl.model.impl.DefaultRDFSNamedClass can
>>> not be cast to edu.stanford.smi.protegex.owl.model.OWLNamedClass
>>>         at 
>>> edu.stanford.smi.protegex.owl.owlapi.converter.OWLAPIConverter.convertClasses(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.owlapi.converter.OWLAPIConverter.convert(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.pellet.ProtegePelletOWLAPIReasoner.getOwlApiOntology(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.pellet.ProtegePelletOWLAPIReasoner.rebind(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.protegeowl.task.protegereasoner.SynchronizeReasonerTask.transmitToReasoner(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.protegeowl.task.protegereasoner.SynchronizeReasonerTask.run(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.reasoner.AbstractProtegeReasoner.synchronizeReasoner(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.pellet.AbstractProtegePelletReasoner.performTask(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.reasoner.AbstractProtegeReasoner.performTask(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.reasoner.AbstractProtegeReasoner.computeInferredIndividualTypes(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.ui.action.ComputeInferredTypesAction$1.executeReasonerActions(Unknown 
>>> Source)
>>>         at 
>>> edu.stanford.smi.protegex.owl.inference.ui.ReasonerActionRunner$2.run(Unknown 
>>> Source)
>>>         at java.lang.Thread.run(Unknown Source)
>>>
>>> We don't know whether the ontology is inconsistent or it is caused 
>>> by incompatible of two versions of Protege or some other issues.
>>>
>>> I attached the ontology. Any help on it is appreciated.
>>>
>>> Thanks,
>>>
>>> Jie
>>>
>>>
>>> _______________________________________________
>>> protege-discussion mailing list
>>> protege-discussion at lists.stanford.edu
>>> https://mailman.stanford.edu/mailman/listinfo/protege-discussion
>>>
>>> Instructions for unsubscribing:http://protege.stanford.edu/doc/faq.html#01a.03
>>
>>
>> _______________________________________________
>> protege-discussion mailing list
>> protege-discussion at lists.stanford.edu
>> https://mailman.stanford.edu/mailman/listinfo/protege-discussion
>>
>> Instructions for unsubscribing:http://protege.stanford.edu/doc/faq.html#01a.03
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-discussion/attachments/20110602/97a4534e/attachment.html>


More information about the protege-discussion mailing list