- 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