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] Problems with "rdf:type" constructs

Thomas Russ tar at ISI.EDU
Thu Aug 9 09:46:36 PDT 2007

On Aug 8, 2007, at 6:24 PM, Roberto Alves Gueleri wrote:

> Hi!!!
> I have experienced some troubles in attempting to work with owl  
> ontologies containing metaclasses, dealing with "rdf:type" constructs.
> An example of this problem:
> I've the following ontology, which contains a metaclass called  
> "MetaClassA", three classes ("ClassA", "ClassB" and "ClassC"), and  
> an instance of "ClassA" called "IndividualA". Note that  
> "MetaClassA" is an occurrence of "owl:Class", so it is an owl  
> class, but it plays the role of a metaclass by asserting that the  
> other three classes ("ClassA", "ClassB" and "ClassC") are its  
> occurrences, by means of "rdf:type" constructs.

Perhaps the problem is that you don't have any assertion that  
MetaClassA is a sub class of owl:Class.  Try adding that.

> Note that constructions of the form:
>   <owl:Class rdf:ID="ClassA">
>     <rdf:type rdf:resource="#MetaClassA"/>
>   </owl:Class>
> were automatically changed by Protégé to the form:
>   <MetaClassA rdf:ID="ClassA">
>     <rdf:type rdf:resource=" "/>
>   </MetaClassA>
> Now if I try to open the new ontology, some errors will be reported  
> by Protégé and the ontology won't open. Below the errors reported  
> are showed:
> There were errors at performing operation.
> 1. Exception class  
> edu.stanford.smi.protegex.owl.jena.parser.ProtegeOWLParserException.
> Message: The resource IndividualA has the rdf:type ClassA which is  
> not a class but a  
> edu.stanford.smi.protegex.owl.model.impl.DefaultOWLIndividual

Yes, this is caused by Protege not recognizing that MetaClassA is a  
subclass of owl:Class, so when it encounters the the construct  
creating ClassA, it doesn't know that it should create a class object  
instead of an individual object.  This should be fixed if you make  
sure that MetaClassA is known to be a subclass of owl:Class.

More information about the protege-owl mailing list