W3C home > Mailing lists > Public > www-rdf-comments@w3.org > April to June 2005

Re: Error in RDF/XML Syntax Specification?

From: Patrick Stickler <patrick.stickler@nokia.com>
Date: Tue, 5 Apr 2005 16:28:20 +0300
Message-Id: <d39aaa2635b39012fd17d60662c23392@nokia.com>
Cc: www-rdf-comments@w3.org, Arjohn Kampman <arjohn.kampman@aduna.biz>, Dave Beckett <dave.beckett@bristol.ac.uk>, pat hayes <phayes@ihmc.us>
To: "ext Graham Klyne" <GK@ninebynine.org>

On Apr 5, 2005, at 12:35, ext Graham Klyne wrote:

> While I agree with David and Arjohn that ""^^<datatype> SHOULD be  
> expressible,

I'd like Pat Hayes' in put on that, before we decide this,
as I recall there being some issues with null lexical forms
with regards to the model theory.

It's probably OK, but best to be sure we don't break anything...


> 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 13:32:41 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:15:23 UTC