I have some owl:Ontology documents from different sources.  One uses
rdfs:Class and the other owl:Class.  When I glance at the standards, it
says these are equivalent in OWL Full but not in OWL DL.  There is a
discussion about this in the section "Ontology languages and the Jena
Ontology API" in the online Jena documentation.

My testing indicates that OntModel#listClasses and
OntModel#listNamedClasses will list things typed owl:Class but not
rdfs:Class.  This appears true regardless of the OntModelSpec chosen for
a reasoner, e.g., OWL_MEM_RDFS_INF, OWL_MEM_MICRO_RULE_INF,
OWL_DL_MEM_RULE_INF, all exhibit this behavior.

I see there is are OntModel#getProfile and OntModelSpec#getProfile
methods, but a hasty search did not turn up companion setProfile methods.

Two specific questions:

Is this the expected behavior for OntModel#listClasses and
OntModel#listNamedClasses?  Or is there something I'm missing?

If so, is there some way to make a simple selection between OWL_LITE,
OWL_DL, and OWL_FULL Profiles somewhere, analogous to the way different
reasoners can be selected?

To fish a bit, I would appreciate any experience and suggestions on
variations in ontologies obtained from different sources.  How many
owl:Ontology documents (ABox and TBox) turn out have a fair degree of
variability in which specific forms of assertions they contain?  How
robust or sensitive are or can applications be from a user perspective
w.r.t. variations and mixtures of profiles and choice of reasoner?

(If you are curious, this came up when looking at the OSLC standard
vocabularies.  As near as I can tell, Protege will show the classes but
restricts itself to displaying object and data properties.)


Reply via email to