W3C home > Mailing lists > Public > public-owl-dev@w3.org > July to September 2007

Re: Some advice on inferring negated properties

From: Bijan Parsia <bparsia@cs.man.ac.uk>
Date: Wed, 15 Aug 2007 17:21:31 +0100
Message-Id: <FC59918B-3807-4F0E-ADC8-6EA7878875DB@cs.man.ac.uk>
Cc: public-owl-dev@w3.org
To: Matt Williams <matthew.williams@cancer.org.uk>

[redirecting to public-owl-dev]

On 15 Aug 2007, at 08:39, Matt Williams wrote:

> Dear All,
> Apologies for sending this relatively widely - I thought that these  
> lists are the closest the community who might have ideas.
> I'm trying to use the negated object properties (in OWL 1.1), and  
> was wondering what other people's experience had been.
> Specifically, I have been having problems with finding an inference  
> mechanism that will allow their creation.

I'm not sure exactly what you mean. They certainly can be entailed  
from OWL 1.1 kbs. For example:

	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
	ClassAssertion(b, owl:Thing)

	NegativeObjectPropertyAssertion(P, a, b)

And thus:
	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
	ObjectPropertyAssertion(P, a, b)

is inconsistent.

Pellet 1.5 will find the latter inconsistent, but the "entailment  
checking" feature hasn't been extended to OWL 1.1 yet, so you can't  
directly check the first pair. Of course, you could just add the  
ObjectPropertyAssertion of instance and check for inconsistency  
(i.e., if it is, then the corresponding negative one must be true).

> AFAIK, the Jena rules engine won't do it,


> and neither will SWRL (which doesn't /seem/ to allow it).

I don't know why you are leaping to rule languages here, which makes  
me belief that I don't understand your issue at all.

> The best I could come up with was a "special" set of properties  
> (e.g. notMyProp1, notMyProp2, where the ontology has MyProp1 & 2)  
> and then some direct rdf manipulation to turn:
> ?x notMyProp1 ?y into
>  (?x MyProp1 ?y)
> Code wise this is not too bad (although I suspect scales badly),  
> but it feels very "hacky".

I don't understand why you'd want this.

(Note you can also check for the negated hasValue form:

	ClassAssertion(a, ObjectComplementOf (ObjectHasValue(P, b)))

is equivalent to the negative propety assertion. And is expressible  
in OWL DL.

> Does anyone have any advice/ experience of doing this?

If you need such as the consequent of a rule, you could use the  
nominal encoding. I expect that any OWL based rule language will be  
updated to take into account negated property atoms.

Hope this helps.

Received on Wednesday, 15 August 2007 16:20:31 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:58:15 UTC