- From: Ivan Herman <ivan@w3.org>
- Date: Wed, 07 Jan 2009 20:10:30 +0100
- To: Manu Sporny <msporny@digitalbazaar.com>
- CC: RDFa Developers <public-rdf-in-xhtml-tf@w3.org>
- Message-ID: <4964FE26.9070906@w3.org>
Thanks both to Manu and to Shane I must admit that I was mixed up by the RFC text (I looked at it right after Shane's mail). What got me mixed up is a stupid syntax thing. I was used to the '|' character for (E)BNF notations, so when I saw irelative-part = "//" iauthority ipath-abempty / ipath-absolute / ipath-noscheme / ipath-empty I was not sure whether this was the same as irelative-part = "//" iauthority ipath-abempty | ipath-absolute | ipath-noscheme | ipath-empty And I had then to run to another meeting:-) (As an aside: it is really strange that RFC-s are still written in ASCII and not in HTML:-) Anyway, issue solved! Thanks! Ivan Manu Sporny wrote: > Shane McCarron wrote: >> Manu Sporny wrote: >>> curie := [ [ prefix ] ':' ] reference >>> >>> Which, I believe, means that this: >>> >>> about="[talk:]" >>> >>> is invalid, even if talk is specified as a valid prefix earlier in the >>> document. >>> >> No, that's wrong. Reference can be an empty string according to the >> associated RFC. > > Just got off the phone with Shane... He was kind enough to explain > exactly how someone could understand this from reading the spec. There > were two key points I was missing: > > 1. The CURIE statement is written in eBNF[1] - I thought it was written > in some sort of W3C modified regex syntax. > (eBNF statement) curie := [ [ prefix ] ':' ] reference > > 2. Not specifying anything for reference is technically valid per the > IRI spec[2]. Here's how: > > reference := irelative-ref > irelative-ref = irelative-part [ "?" iquery ] [ "#" ifragment ] > irelative-part = "//" iauthority ipath-abempty > / ipath-absolute > / ipath-noscheme > / ipath-empty > ipath-empty = 0<ipchar> > > Therefore /reference/ can be /ipath-empty/ and thus, you can have: > > prefix: > > Just to see if this was just confusing me, or would confuse future > implementers, I asked three of our engineers to briefly look at the > CURIE section of the RDFa spec and state whether or not the following > were valid CURIEs forms (Y means "Yes", N means "No", ? means "Don't know"): > > Y Y N prefix (Correct answer: N) > N N N prefix: (Correct answer: Y) *current discussion topic > Y Y Y prefix:reference (Correct answer: Y) > N N N : (Correct answer: N) > Y Y ? :reference (Correct answer: Y) > Y Y Y reference (Correct answer: Y) > > This means that: > > 1. We need a test case clarifying this, which I'll put together. > 2. Ivan gets to keep his implementation as-is... and librdfa will have > to change :) > > -- manu > > [1] http://en.wikipedia.org/wiki/Extended_Backus–Naur_form > [2] http://www.ietf.org/rfc/rfc3987.txt > -- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ mobile: +31-641044153 PGP Key: http://www.ivan-herman.net/pgpkey.html FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Wednesday, 7 January 2009 19:11:11 UTC