Search Mailing List Archives
tar at ISI.EDU
Wed Jan 13 15:23:50 PST 2010
On Jan 13, 2010, at 2:13 PM, Poovendran Moodley wrote:
> Hi all,
> I'm fairly new to modelling ontologies and there are a few things
> that I've been wondering about. I've tried searching for more
> information but I'm not even sure about the keywords to use in such
> a search.
> I have a situation where a group of individuals share a common
> characteristic - in this case, they must all be related to 3 other
> individuals (by an object property). I was wondering if it's
> possible to create a class/class restriction such that if x is an
> element of said class, then it must be the case that x has a
> predefined object property linking it to another individual, such
> that if x does not have the right properties, it will be assigned
> those properties.
Well, from a terminology point of view, it won't really be "assigned"
those properties, but rather will have the values "inferred" by an
appropriate inference engine (reasoner).
> I understand that I can create an equivalence class so that any
> individual with certain properties belong to said class, but I want
> the opposite to be possible: if an individual is part of the class
> then it should inherit the object properties (linking to the
> appropriate individuals) specified for that class.
An equivalence class really is equivalent. It means that inferences
work in both directions. You will generally need to run a reasoner
in order to see this.
As a simple example, if you define a class
50-year-old == Person and (hasValue age 50)
You can then make the following assertions:
Fred type 50-year-old
Bill type Person
Bill age 50
Bill will be recognized as belonging to the class "50-year-old".
Fred will have an inferred property value for "age" of 50.
Where the difference becomes apparent and will diverge from what you
might get from an object-oriented perspective is if you use some of
the other restrictions. Most interesting would be, for example the
"allValuesFrom" or the "minCardinality" restrictions.
If you were to define
A == B and (allValuesFrom P 50-year-old)
and then assert
i-1 type A
i-1 P i-2
then the inference engine will conclude that i-2 must be of type 50-
year-old, and that information will be available for further
reasoning. In particular, the reasoner will figure out that the age
of i-2 must be 50.
Instead, if you were to define
X = Y and (minCardinality P 3)
and then assert
i-3 type X
then the reasoner will conclude that i-3 has at least 3 values for
property P, but it won't be able to tell you which ones they are.
This is where open world reasoning comes into play. Even though
there are 3 fillers, they don't have to be specifically identified.
OWL is quite able to reason with just this partial information.
More information about the protege-owl