RDFa review ... too late, but maybe still helpful for the group

I just realized that we missed the official RDFa review deadline for 3 
days, but still send this to the group, as it hope it might be helpful 
or can be clarified.

We understand, if it can't be taken into account at this stage, but hope 
that the option of considering the suggestions can still be discussed in 
the group before the document turns to recommendation. So, I send below 
the comments suggested by 3 of my colleagues who did the review on 
behalf of DERI, namely

Alexandre.Passant (alexdandre.passant@deri.org)
benjamin heitman (benjamin.heitmann@deri.org)
christoph lange (christoph.lange@deri.org)

===== Detailed comments: =====

The inconsistent specification of the CURIE syntax is the main critical
question we have, which occurs in more than one section.  The main
question is whether a CURIE must contain a colon, or need not.  The
formal syntax definition in section 7 says

> curie       :=   [ [ prefix ] ':' ] reference

but the definition of the XML Schema datatype in appendix B.1 does not
reflect the fact that the colon can be missing:

> <xs:simpleType name="CURIE">
>     <xs:restriction base="xs:string">
>       <xs:pattern value="[\i-[:]][\c-[:]]*:.+" />
>     </xs:restriction>
> </xs:simpleType>

Generally: If the authoritative definition of CURIEs in RDFa is to be
given in the RDFa spec, you could simplify this a bit and restrict it to
those cases that are valid in RDFa.  If the definition of CURIEs in RDFa
is to be taken from the CURIE specification
(http://www.w3.org/TR/curie/), the RDFa specification could just refer
to that, and concentrate on RDFa-specific differences, such as:

> The mapping to use when there is no prefix is not defined, which
> effectively prohibits the use of CURIEs that do not contain a colon

These sentences .

> In general use it is possible to omit the prefix, and so create a
> CURIE that makes use of the 'default prefix' mapping; in RDFa the
> 'default prefix' mapping is http://www.w3.org/1999/xhtml/vocab#. It's
> also usually possible to omit both the prefix and the colon, and so
> create a CURIE that contains just a reference which makes use of the
> 'no prefix' mapping. However, RDFa does not define a 'no prefix'
> mapping, meaning that this form of CURIE is not supported.

. in section 7 suggest that ":next" is a valid CURIE (due to the 'default
prefix' mapping), but "next" is not.  On the other hand, there is no
reasonable example given that explains why ":next" should ever be used,
as in
all cases where it makes sense to use it (as in link/@rel), you can just
write
the non-CURIE "next", to which a special handling applies.  The fact that
"next" is not a CURIE makes the parsing of link/@rel overly complicated.
  But,
on the other hand, that might have been a deliberate design decision, as it
allows for prohibiting <link rel="foobar"/>.

Actually, interpreting "next" as a CURIE would be consistent with the CURIE
spec (citing from http://www.w3.org/TR/curie/):

> A host language MAY interpret a reference value that is not preceded by a
> prefix and a colon as being a member of a host-language defined set of
> reserved values. Such reserved values MUST translate into an IRI, just as
> with any other CURIE.

Similarly, section 5.4.4 would be affected, depending on the definition of
what a CURIE in RDFa is:

> @rel and @rev support both XHTML link types and CURIEs

If XHTML link types like "next" turn out to be CURIEs, this will have to be
rephrased.

Moreover, it is not clear how to use a default namespace introduced via
@xmlns
with CURIEs; consider the following sentence from section 7 and an example:

> However, RDFa does not define a 'no prefix' mapping, meaning that 
this form
> of CURIE is not supported.

BTW, what if we have e.g.

<xhtml:elem xmlns="http://purl.org/dc/elements/1.1/" about=":foobar">

(or maybe about="foobar"?)

Would the only possibility to reference a resource in this namespace by a
CURIE be to give this namespace a proper prefix, such as "dc"?  So if
redefining the default namespace does not have any impact on the URI prefix
mapping that is relevant for CURIEs, this should be explained by a dedicated
example.

Other sections affected by this issue are 5.4.2 and 5.4.3:

> 1. Split the CURIE at the colon to obtain the prefix and the resource.

How should the parser react if there is no colon?  (Which is possible
according to the CURIE syntax definition in section 7, just not supported by
RDFa, according to the additional remarks about the 'no prefix' mapping
given
there.)

> Since non-CURIE values MUST be ignored, the following value in @about 
would
> not set a new subject, since the CURIE has no prefix separator.
>
> <div about="[Albert_Einstein]">
>   ...
> </div>

"[Albert_Einstein]" is not a non-CURIE in the sense of the formal syntax
defined in section 7, nor in the sense of the CURIE spec, but it is a CURIE
that is not supported in RDFa, according to the absence of a 'non prefix'
mapping.


Other issues follow...

== 2.2 Examples ==

No examples are given for embedding invisible annotations into the document
using @rev, @content, and @resource.  There should at least be an
example for
@content and @resource.

> Note that it is generally considered a good idea not to use relative 
paths
> in namespace declarations, but since it is possible that an author may
> ignore this guidance

The XML namespaces spec says it's deprecated.  So it should probably not be
endorsed by the (newer) RDFa spec.

== 5.3 Chaining ==

> Einstein has a birth place of Germany, which has a long name of
> "Federal Republic of Germany".

This example is arguable; We'd suggest to completely replace it
throughout the specification.  Einstein was born in Germany, but at that
time the Federal Republic of Germany did not exist.  I think this
example opens a can of worms, as it raises questions of temporal
reasoning that RDF does not have an answer for.

== 5.4.5 Referencing Blank Nodes ==

Here it should be mentioned that you can also generate implicit bnodes using
@typeof.  bnodes with an explicit ID are not the only way.

== 5.5 Sequence ==

> 9. . the actual literal value is obtained as follows:
> * as a [typed literal] if:
>   * @datatype is present, and does not have an empty value

Note that this condition covers the case @datatype=rdf:XMLLiteral, so it
should be changed to: "does not have an empty value, nor the value
XMLLiteral"

==== 6.1.1.3 Using @src ====

> The complete mark-up yields three triples:
> ...
> <photo1.jpg> xh:license <http://...> .

xhv is the correct prefix.

Received on Monday, 6 October 2008 20:16:46 UTC