Re: Error in RDF/XML Syntax Specification?

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