Search Mailing List Archives
[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.
> > 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:
Cases like this can be viewed in the owl ontology of the OpenCyc:
where we find many transitions of orders by using "rdf:type"...
Roberto Alves Gueleri
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the protege-owl