RDF/XML Syntax Specification errata

RDF/XML Syntax Specification (Revised)

W3C Recommendation 10 February 2004

This version: 

http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/

 

The following text in section 7.2.34 Production rdf-id

An attribute
<http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#eventterm-attrib
ute-string-value#eventterm-attribute-string-value> .string-value. matching
any legal [XML-NS]
<http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#ref-namespaces#r
ef-namespaces>  token NCName <http://www.w3.org/TR/REC-xml-names/#NT-NCName>


Should be replaced by 

An attribute string value matching URI Reference syntax for fragment
identifier

 

Reason : rdf:ID is a URI fragment identifier not an NCName (it should not be
confused with xs:ID that is an NCName)

As stated in various parts of RDF specifications rdf:ID is a URI fragment
identifier

RDF Primer *

(3.2) Using rdf:ID specifies a fragment identifier, given by the value

of rdf:ID attribute (RDF Primer).

 

RDF Syntax Specification *

(2.14) RDF/XML allows further abbreviating RDF URI references in XML
attributes in two ways. 

The XML Infoset provides a base URI attribute | xml:base | that sets 

the base URI for resolving relative RDF URI references otherwise the base
URI is that of the document. 

The base URI applies to all RDF/XML attributes that deal with RDF URI
references 

which are | rdf:about | , | rdf:resource | , | rdf:ID | and | rdf:datatype |
..

The | rdf:ID | attribute on a node element (not property element, that

has another meaning) can be used instead of | rdf:about | and gives a

relative RDF URI reference equivalent to | # | concatenated with the |
rdf:ID | attribute value.

 

Rdf:ID is used to abbreviate an URI

So if I have this RDF Schema (that is validated by w3c  rdf validator or
other like SemanticsWork)

 <?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">

<rdfs:class rdf:about="http://www.iec/UnitSymbol#J/s">

<rdfs:label>J/s</rdfs:label>

<rdfs:comment>test for URI Refrence and rdf:ID</rdfs:comment>

</rdfs:class>

<rdfs:class rdf:about="http://www.iec/UnitSymbol#MJ%2Fs">

<rdfs:label>MJ/s</rdfs:label>

<rdfs:comment>test for URI Refrence and rdf:ID</rdfs:comment>

</rdfs:class>

</rdf:RDF>

I could abbreviate it as (and this is not validated because rdf:ID is
validated against an NCName)

<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.iec/UnitSymbol">

<rdfs:class rdf:ID="J/s">

<rdfs:label>J/s</rdfs:label>

<rdfs:comment>test for URI Refrence and rdf:ID</rdfs:comment>

</rdfs:class>

<rdfs:class rdf:ID="MJ%2Fs">

<rdfs:label>MJ/s</rdfs:label>

<rdfs:comment>test for URI Refrence and rdf:ID</rdfs:comment>

</rdfs:class>

</rdf:RDF>

 

Jean-Luc Sanson

ITG Consultants

 

Received on Monday, 8 March 2010 13:12:27 UTC