- From: Graham Klyne <GK@ninebynine.org>
- Date: Tue, 05 Apr 2005 10:35:50 +0100
- To: Arjohn Kampman <arjohn.kampman@aduna.biz>, Dave Beckett <dave.beckett@bristol.ac.uk>
- Cc: www-rdf-comments@w3.org
While I agree with David and Arjohn that ""^^<datatype> SHOULD be expressible, I think it's not quite such a no-brainer that it should be accepted without Due Process. In cases like this, what is the W3C process for agreeing changes to a published recommendation? #g -- At 10:22 05/04/05 +0200, Arjohn Kampman wrote: >Dave Beckett wrote: >>On Fri, 2005-04-01 at 15:22 +0200, Arjohn Kampman wrote: >> >>>Hi Dave, others, >>> >>>Someone posted a bug report on the Sesame forum for what he thought was >>>an error in Sesame's RDF/XML parser[1]. I had a closer look at the >>>RDF/XML syntax specification[2] and it appears that Sesame strictly >>>adheres to this spec. This, however, surprised me, as I would have >>>expected the data to be correct. Also, the W3C Validation Service[3] did >>>parse the data as expected. >> >>Note that I'm speaking personally and not for any W3C WG. >>Don't take what that service does as necessarily correct. > >Guess you're no longer the editor of the spec? How does the W3C take >care of these post-release reports? It will probably need to be >documented in the errata. > >>>The problematic data contains a datatyped (xsd:string) empty literal: >>> >>><?xml version="1.0"?> >>><rdf:RDF >>> xmlns="foo:bar#" >>> xmlns:foo="foo:bar#" >>> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" >>> xml:base="foo:bar"> >>> >>><rdf:Description rdf:ID="ID1"> >>> <foo:prop rdf:datatype="http://www.w3.org/2001/XMLSchema#string" >>> ></foo:prop> >>></rdf:Description> >>></rdf:RDF> >>> >>>If my understanding of the grammar in the spec is correct, then this >>>data matches the 'emptyPropertyElt' rule, which does not allow the >>>rdf:datatype attribute to be specified. >> >>Nope. It does not match that rule. rdf:datatype is forbidden on an >>emptyPropertyElt. >>Looking at the rdf/xml grammar rules at >>http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#section-Infoset-Grammar >>7.2.21 emptyPropertyElt says the allowed attributes are: >> set(idAttr?, ( resourceAttr | nodeIdAttr )?, propertyAttr*)) >>and if you expand that you'll find >>7.2.25 propertyAttr refers to >>7.2.7 propertyAttributeURIs refers to forbidding the contents of >>7.2.2 coreSyntaxTerms which includes rdf:datatype. >>Therefore this line SHOULD match instead 7.2.16 literalPropertyElt >>with an empty text() however 7.2.16 only applies to a non-empty text. > >Well, 7.2.21 emptyPropertyElt already handles the case where no, or only >the optional rdf:ID attribute is present, generating an empty plain >literal as a result. Therefore, handling the rdf:datatype attribute in >the emptyPropertyElt production might be a good alternative. > >>Thus, in my opinion an datatyped RDF-literal with an empty content is >>not covered by the grammar. >>This is a grammar coverage omission of what is legal to write in RDF, >>and should be legal to write in RDF/XML. > >I agree. I'll fix this in Sesame/Rio, probably you and Graham (and >others?) should do the same for your parsers so that they exhibit >identical behaviour. Hopefully, someone will pick this up and document >it in the errata. > >>(This RDF/XML also is also passed as correct by the non-normative >>RELAX NG schema) > >The literalPropertyElt production in the RELAX NG schema contains an >other error, unrelated to the above: it only allows either an rdf:ID >attribute or an rdf:datatype attribute to be specified, but not both. >This is different from the normative grammar in chapter 7. > >Thanks so far, > >Arjohn > ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact
Received on Tuesday, 5 April 2005 10:43:13 UTC