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

Roberto Alves Gueleri r.a.gueleri at gmail.com
Fri Aug 10 07:45:51 PDT 2007


>
> > 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.
>
> [snip]
> >
> > 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="http://www.w3.org/2002/07/owl#Class "/>
> >   </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.


Thanks Mr. Russ!...

But the problem cannot be solved only by assenting that "MetaClassA" is a
subclass of "owl:Class". This would be true if I only wanted to reach the
order - or level - of "MetaClassA". But what about the possibility for
creating, for example, a "MetaMetaClass", such that I will assert that
"MetaClassA" is an occurrence of "MetaMetaClass", as folows:

...
<owl:Class rdf:ID="MetaMetaClass"/>
<owl:Class rdf:about="#MetaClassA">
  <rdf:type rdf:resource="#MetaMetaClass">
</owl:Class>
...

Cases like this can be viewed in the owl ontology of the OpenCyc:
http://www.cyc.com/2004/06/04/cyc
where we find many transitions of orders by using "rdf:type"...

...

Roberto Alves Gueleri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.stanford.edu/pipermail/protege-owl/attachments/20070810/ef1dfbe0/attachment.html>


More information about the protege-owl mailing list