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] 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
> reasoning.

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 mailing list