- From: Pat Hayes <phayes@ai.uwf.edu>
- Date: Mon, 22 Apr 2002 17:35:35 -0500
- To: "Dan Connolly <connolly" <connolly@w3.org>, "Jos De_Roo" <jos.deroo.jd@belgium.agfa.com>
- Cc: Lynn Andrea Stein <las@olin.edu>, w3c-rdfcore-wg@w3.org
>[...] > >> 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. [To Dan:] Well, that isn't clear. After all, it is RDF-legal to add some other rest/first/rest chains to the same bnodes, so the daml:list is just as dependent on a closed-world assumption as the RDF container syntax would be in this context. I bet that your (and Jos) code would break, or act unpredictably, if given a branching daml:list. (It would recurse down the first one it happened to find, but since they are in a bag this isn't well-defined by the syntax.) You can always take the line that having non-branching lists is a syntactic well-formedness requirement from DAML; but that is still extra to RDF, and then you could also impose a similar special DAML requirement onto some subclass of rdf:Bag. It's still a closed world assumption that goes beyond the strict RDF meaning. > > >> *[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 ) } . [To Jos:] Shouldnt there be slashes in all these examples, eg shouldnt rule 11b be: { :rule11b . ( ?a / ?b ) :append ?c } log:implies { ( ( ?x / ?a ) / ?b ) :append ( ?x / ?c ) } . (If not, please explain the syntax a bit more.) I don't follow what kind of assertion append: is supposed to be making here. (I thought append was a function...maybe I'm stuck in LISP, or something?) ( ( ?x / ?a ) ?b ) is a list whose first is (another) list, is that right?? >{ :rule12a } log:implies { ( ?a ( ?a / ?c ) ) :remove ?c } . >{ :rule12b . ( ?a ?b ) :remove ?c } log:implies { ( ?a ( ?x / ?b ) ) >:remove ( ?x / ?c ) } . ?? How does that 'remove' work, exactly?? Pat -- --------------------------------------------------------------------- IHMC (850)434 8903 home 40 South Alcaniz St. (850)202 4416 office Pensacola, FL 32501 (850)202 4440 fax phayes@ai.uwf.edu http://www.coginst.uwf.edu/~phayes
Received on Monday, 22 April 2002 18:35:44 UTC