Search Mailing List Archives
[protege-owl] Layered Ontologies?
Pitonyak, Andrew D
PitonyakA at BATTELLE.ORG
Tue Mar 3 10:01:51 PST 2009
Do you know the term Reification? The typical definition is to create a resource to act as a proxy for an object that you can not address.
As this relates to RDF and OWL, you want to reference a statement (for example, who stated that fact?).
_:55445 rdf:type rdf:Statement .
_:55445 rdf subject a:productA
_:55445 rdf:predicate a:weight
_:55445 rdf:object "1.2"
_:55445 dc:creator a:Bob
> If I understand things correctly, there is no way to use
> a class as an individual in OWL2 and there is no way to
> just "use" a class as an individual in OWL1 without
> making the ontology Full and getting problems with
If you intend to use a class as an individual (ie, the target of an ObjectProperty) then yes, you have OWL Full.
> But this kind of protection is not really necessary here,
> because from the point of view of ontology P, the class
> indeed IS nothing more than an individual. It's
> "class-ness" in D is of no importance for the reasoning
> in ontology P.
Although you may not care about the inferential implications of using a class as an individual, OWL does not have a way to state that you want to use this ability and then the reasoner should ignore this and the implications.
> So my workaround is for now to essentially represent
> the class from D in the corresponding property in P
> within a string field.
> But this looks a lot like a dirty hack and it looks
> a lot "relational-DB"-ish.
> Are there other, better approaches to do this?
If this does not matter to the reasoner, then there is no particular motivation to not associate to a literal or individual that represents the class (as you have done).
> My feeling is that this kind of "layering" ontologies
> must be a pattern that probably comes up rather
> frequently when modelling the real world: at
> one level of abstraction, or in one application
> context, something needs to be modeled as a class,
> but at some other level of abstraction or in some
> other context, the same entity is better modeled
> as something that can be the value of a property
> and hence should be an individual.
And so they have OWL Full.
> As has been pointed out in previous threads, the
> same goes not only for classes, but for whole
> facts: Something that is modeled as a triple in
> ontology A is often best modeled as an individual
> in some other ontology B. In my case, for example
> it would be nice to be able to model all the facts
> that were used to populate ontology D as instances
> in P (or some third ontology) where each instance
> contains information on how, when, from where, and why
> the corresponding fact was put into D.
Does reification solve this problem?
> Is there a principal reason why these kinds of
> things are so hard in OWL? Are there other modern
> ontology representation formalism that do allow
> this kind of layered modeling?
I assume that these are difficult because it seems to differ from the original intent. Consider another thing that is difficult to define:
Define a type based on a continuous range; for example, the red zone is from 3 to 10 feet (this includes 10/3 feet.
Why do you not simply use OWL FULL if that is what you require?
More information about the protege-owl