- From: Lennart Bierkandt <wir03jmk@studserv.uni-leipzig.de>
- Date: Wed, 24 Feb 2010 21:30:25 +0100
- To: public-owl-dev@w3.org
I figured out that the description I need is a so-called role-value-map,
which quickly leads to undecidability when combined with other
constructs. So it should not be surprising that it cannot be expressed
in OWL-DL...
> I would think that getting a complete definition for GoodParent would
> be difficult due to the open world assumption, unless techniques are
> applied to close the hasChild and loves relations. Otherwise, the OWA
> would say that there might be children we don't know about, which
> aren't loved. Or, for the negative (not GoodParent), a child that is
> known, but not known to be loved, might be loved.
OWA is a good point, I didn't yet think about it in this context. But it
ensures exactly the behaviour I need.
> That said, a partial definition would be possible in OWL 2:
>
> GoodParent => isGoodParent some Self
> isGoodParent o hasChild => loves
This definition works only the other way round (GoodParent -> loves his
Children), right? This is what you meant by "partial", I guess.
> > I can only see two ways, and they lead out of OWL-DL, but perhaps
someone
> > else here has a better idea?
> >
> > (1) If you use Boolean operators on roles, you can define a new role
> > hasChildButDoesNotLoveIt to be "hasChild and not loves". You can
then define
> > the desired class as GoodParent = hasChildButDoesNotLoveIt only
Nothing.
I remember I had a similar idea earlier but dropped it because there is
no way to build role intersections in OWL-DL (and something like "r3
subPropertyOf r1, r3 subPropertyOf r2" doesn't do the job).
> > (2) If you define a new property p to be a superproperty of the chain
> > "hasChild o inv(loves)", then you can define a GoodParent to be
equivalent
> > to not p some Self. Unfortunately, only simple object property
expressions
> > are allowed in hasSelf restrictions and p is composite due to the first
> > statement.
This is also a nice idea, I think I will use it at least as a suggestion.
> > I suppose this doesn't really help ... :-S
It does, being comfirmed that it doesn't work in DL is also a step forward!
Thanks a lot,
Lennart
> >>
> >> I am developing an ontology for a linguistic typological database,
where I
> >> need to describe a class of the form:
> >> { x | ∀y( r1(x,y) -> r2(x,y) ) }
> >> As explaining the real use of this would be to complicated, imagine a
> >> class denoting e.g. "people who love (r2: loves) all their
children (r1:
> >> hasChild) (or haven't any)".
> >>
> >> In prose it doesn't seem to be too complex, but I didn't find a
way to do
> >> it..
> >> CAN this be expressed in OWL-DL? and if, how? (and if not, in
OWL-FULL?)
> >>
> >> Kind regards,
> >> Lennart Bierkandt
> >>
Received on Wednesday, 24 February 2010 20:31:06 UTC