- From: Swanson, Tim <tim.swanson@semanticarts.com>
- Date: Thu, 16 Aug 2007 12:52:55 -0600
- 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 UTC