Search Mailing List Archives
[protege-owl] Layered Ontologies?
johann.petrak at chello.at
Tue Mar 3 07:02:11 PST 2009
there have been a few emails that I think already touched this topic,
but I think it would still be interesting to start a thread on this.
My problem ist this: I have an ontology, that is supposed to describe
how a process should create/modify a different ontology. The background
is populating a domain ontology from legacy data or documents.
So ontology D describes the classes and relations in the domain, while
ontology P describes how the legacy data should be interpreted and
how the data should be mapped to concepts in the ontology D.
I think this is quite a natural use-case for the use of ontologies,
but as far as I understand this, there are problems:
Ontology P is supposed to map e.g. field in the data to the
"type" of the data, i.e. to a class in Ontology D. But how
is one supposed to express this in ontology P?
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
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.
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?
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.
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.
The approach to do this with annotation properties
in OWL2 looks a bit like a hack, because it cannot
be layered or generalized.
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?
More information about the protege-owl