- From: Jos De_Roo <jos.deroo.jd@belgium.agfa.com>
- Date: Sat, 20 Apr 2002 01:30:36 +0200
- To: "Dan Connolly <connolly" <connolly@w3.org>
- Cc: "w3c-rdfcore-wg" <w3c-rdfcore-wg@w3.org>, "Lynn Andrea Stein <las" <las@olin.edu>
[...] > RDF/xml has special syntax for containers, but experience > trying to exploit it to come to intuitive conclusions > has exposed problems. Take the class above... say > Continent is the subject of that oneOf property. > If we know > > ex:Bob daml:differentIndividualFrom ex:Eurasia. > ex:Bob daml:differentIndividualFrom ex:Africa. > ex:Bob daml:differentIndividualFrom ex:North_America. > ex:Bob daml:differentIndividualFrom ex:South_America. > ex:Bob daml:differentIndividualFrom ex:Australia. > ex:Bob daml:differentIndividualFrom ex:Antarctica. > > ex:NotContinent daml:complementOf ex:Continent. > > then we should be able to conclude > > ex:Bob rdf:type ex:NotContinent. > > Now this works perfectly well* when the oneOf claim > is spelled out long-hand using first/rest/nil. > > *[I should back this claim with running code, > but in the interest of getting this and other > stuff done today, I'm skipping that for now. > I think Jos has the relevant code running.] I keep this as a nice test case and believe we can let this run > But RDF/xml's collection syntax expands to these > rdf:_1 rdf:_2 etc. triples, which don't say > enough to come to the relevant conclusion > without doing closed-world stuff. that alligns with our thoughts/experience too [...] > On balance, I prefer parse-collection-STD right now. > But I need to sleep on it or something to be sure. > Other thoughts? Lynn? Jos? DaveB? well, I prefer parse-collection-STD too [[ * add parseType="collection" to RDF/xml; * add rdf:first, rdf:rest, rdf:nil too. * specify that parseType="collection" is notation for first/rest/nil triples ala daml:collection. ]] having first/rest/nil triples is making it easiest to build entailment rules such as { :rule10a } log:implies { ( ?x / ?b ) owl:item ?x } . { :rule10b . ?b owl:item ?x } log:implies { ( ?a / ?b ) owl:item ?x } . { :rule11a } log:implies { ( ( ) ?c ) :append ?c } . { :rule11b . ( ?a ?b ) :append ?c } log:implies { ( ( ?x / ?a ) ?b ) :append ( ?x / ?c ) } . { :rule12a } log:implies { ( ?a ( ?a / ?c ) ) :remove ?c } . { :rule12b . ( ?a ?b ) :remove ?c } log:implies { ( ?a ( ?x / ?b ) ) :remove ( ?x / ?c ) } . { :rule13a } log:implies { ( ) :sameBagAs ( ) } . { :rule13b . ( ?a ?c ) :remove ?x . ?b :sameBagAs ?x } log:implies { ( ?a / ?b ) :sameBagAs ?c } . { :rule14a } log:implies { ( ) :sameSeqAs ( ) } . { :rule14b . ?b :sameSeqAs ?c } log:implies { ( ?a / ?b ) :sameSeqAs ( ?a / ?c ) } . where ( ?a / ?b ) is shorthand for _:list such that _:list owl:first ?a . _:list owl:rest ?b . -- Jos
Received on Friday, 19 April 2002 19:32:49 UTC