On Fri, 2011-08-19 at 04:37 -0700, sourajit basak wrote: > A closed world checker would find that issue but not a general reasoner. - > example implementation ? Pellet ?
Of a closed world checker? Eyeball - I believe it has a cardinality checker, though not one that will also check the allValuesFrom. C&P do have a closed world checker. I don't know if it ships as part of Pellet or as a separate product. Dave > > thanks, > Sourajit > > > > ________________________________ > From: Dave Reynolds <[email protected]> > To: sourajit basak <[email protected]> > Cc: "[email protected]" <[email protected]> > Sent: Friday, 19 August 2011 3:58 PM > Subject: Re: basic inference capabilities in Jena > > Hi, > > On Fri, 2011-08-19 at 01:42 -0700, sourajit basak wrote: > > Thanks Dave. > > > > I think I have run into the reasoner OWA principles which have been > > perpetually confusing to me. > > You are not alone. The OWA principles are important but they are a > different way of thinking about data and many find them confusing at > first. > > > According to the specs, > > The owl:allValuesFrom restriction requires that for every instance of > > the class that has instances of the specified property, the > > values of the property are all members of the class indicated by the > > owl:allValuesFrom clause. > > > > > > Which means if I add a min cardinality, it means that PotentialCustomers > > have one proposedScheme pointing to individuals from 'Scheme'. Is this > > correct ? > > Yes. It doesn't let you infer a PotentialCustomer but it does mean that > anything explicitly typed as a PtentialCustomer logically has at least > one proposedScheme pointing to a Scheme. > > > > > <owl:Class rdf:about="&v1;PotentialCustomer"> > > <rdfs:subClassOf rdf:resource="&v1;Customer"/> > > <rdfs:subClassOf> > > <owl:Restriction> > > <owl:onProperty rdf:resource="&v1;proposedScheme"/> > > <owl:minCardinality > > rdf:datatype="&xsd;nonNegativeInteger">1</owl:minCardinality> > > </owl:Restriction> > > </rdfs:subClassOf> > > <rdfs:subClassOf> > > <owl:Restriction> > > <owl:onProperty rdf:resource="&v1;proposedScheme"/> > > <owl:allValuesFrom rdf:resource="&v1;Scheme"/> > > </owl:Restriction> > > </rdfs:subClassOf> > > </owl:Class> > > > > Lets assume there is no reasoner and I explicitly created a typed > > PotentialCustomer and try to add a 'proposedScheme' value a) which isn't an > > instance of Scheme and b) not add the 'proposedScheme' at all. > > > > > > Will Jena throw a validation error ? > > No. > > Firstly there is no runtime validation like this at all in Jena. To > validate a model you call a reasoner and ask it to validate, so with no > reasoner no errors like that are detected. As a piece of RDF it is fine > either way. > > For (b) that wouldn't even be an error for a reasoner - OWA again. Your > minCardinality means that there is logically at least one proposedScheme > value. Just because your instance doesn't have one yet just means to > don't a complete view of the data so there is no inconsistency. A closed > world checker would find that issue but not a general reasoner. > > Dave
