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

RE: Some advice on inferring negated properties

From: Swanson, Tim <tim.swanson@semanticarts.com>
Date: Thu, 16 Aug 2007 12:52:55 -0600
Message-ID: <51F1B258494D5A4488C95F40E55F35D53E6384@exchsrvr.semanticarts.local>
To: "John McClure" <jmcclure@hypergrove.com>, "Matt Williams" <matthew.williams@cancer.org.uk>
Cc: <public-owl-dev@w3.org>

[John McClure]
> 
> This is good, but how do you say the restriction holds for ALL
property
> values,
> not just #b?
> 
> Thanks.
> 

Then you would say that the exact cardinality on the property is zero,
as Bijan demonstrated in his example:

[Bijan Parsia]
> >> >	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
> >> >	ClassAssertion(b, owl:Thing)
> >> >
> >> >Entails
> >> >	NegativeObjectPropertyAssertion(P, a, b)
> >> >
> >> >And thus:
> >> >	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
> >> >	ObjectPropertyAssertion(P, a, b)
> >> >
> >> >is inconsistent.

Bijan goes on to the make this point about Pellet 1.5 support:

[Bijan Parsia]
> >> >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).

But I wonder if you couldn't test the entailment by testing for
membership in the class (in Manchester OWL syntax):

not (P has <any individual>)

In this case, it seems to me that Pellet should return "true" to a
direct query on class membership. However, I haven't tested this. Bijan?


(Admittedly, this is not the same thing as "directly" checking for the
negative entailment, since it relies on the user's understanding of OWL
semantics to make the jump from membership in the above class to the
negative entailment.)


Thanks,

Tim Swanson
Semantic Arts, Inc.
Fort Collins, Colorado



> >-----Original Message-----
> >From: public-owl-dev-request@w3.org
> >[mailto:public-owl-dev-request@w3.org]On Behalf Of Swanson, Tim
> >Sent: Thursday, August 16, 2007 11:17 AM
> >To: John McClure; Matt Williams
> >Cc: public-owl-dev@w3.org
> >Subject: RE: Some advice on inferring negated properties
> >
> >
> >
> >Am I missing something here? It seems to me that, in order to say
that
> >the property assertion (a P b) does not hold, you can say this:
> >
> ><owl:Thing rdf:about="#a">
> >  <rdf:type>
> >    <owl:Class>
> >      <owl:complementOf>
> >        <owl:Restriction>
> >          <owl:onProperty rdf:resource="#P"/>
> >          <owl:hasValue rdf:resource="#b"/>
> >        </owl:Restriction>
> >      </owl:complementOf>
> >    </owl:Class>
> >  </rdf:type>
> ></owl:Thing>
> >
> >Although this seems verbose (especially in RDF/XML), it's really just
> >saying that 'a' is not a member of the set of things that have the
> >property 'P' with the filler 'b'.
> >
> >An approach like the one Bijan suggested:
> >
> >> >	ClassAssertion(a, ObjectMaxCardinality(0, P, owl:Thing))
> >> >	ClassAssertion(b, owl:Thing)
> >
> >Is making the more general assertion that a cannot have /any/
> >instances of property P.
> >
> >The approach I've outlined above seems to make the assertion that a
> >specific property relationship is negated, and nothing else. We've
> >used this in our applications, so I'd like to know if we have an
> >incorrect understanding.
> >
> >
> >Thank You,
> >
> >Tim Swanson
> >Semantic Arts, Inc.
> >Fort Collins, Colorado
> >
> >
Received on Thursday, 16 August 2007 18:50:21 GMT

This archive was generated by hypermail 2.3.1 : Wednesday, 27 March 2013 09:32:55 GMT