Re: Discussion with Ian and Henri about HTML5+RDFa (part 2/2)

Hi Mark, all!

I like the general ideas here about @prefix very much. Both for
enabling RDFa in non-XML markup and since the "overloading" of xmlns
is a bit controversial in certain places.


I think Mark's idea of allowing non-declared prefixes to represent
"themselves plus a colon" has strong merits. Albeit there is at least
one bad edge case. If you have markup like:

    <div about="#me" typeof="http://xmlns.com/foaf/0.1/Person">

and http is declared as a prefix higher up (e.g. to the "HTTP in RDF"
stuff as mentioned earlier), this would break quite dramatically. I
think it would make combining RDFa chunks very brittle.

Since this can be very hard to control, the idea of "shortcut
declarations" seems to be the best way:

    prefix="http urn mailto"

would be the same as:

    prefix="http=http: urn=urn: mailto=mailto:"

One far-off idea would be to interpret e.g. @prefix="*" to mean "reset
all prefixes and use self-referencing prefixes". That way one could,
if one wanted to, explicitly skip CURIEs altogether (in a confined
chunk of markup). I'm not at all sure about any merits of this though.
(It may have some, in regard to e.g. @rel in Atom and if the HTML5
community still won't like or would like to limit the power of @prefix
for some reason.)


Finally: In regard to whether to use "=" or ":" for declarations in
the @prefix list, I'd vote for "=". When using multiple declarations
(the common case I believe), I think groups of non-whitespaced
prefix+'='+uri will be easier to read. And if e.g. urn-uri:s are used,
it will be even harder ("acme: urn:x-acme-com:goo:" vs.
"acme=urn:x-acme-com:goo:").

Also, albeit N3 and SPARQL use ":", they do it in conjunction with
angle-bracketed uri:s (and multiple prefix keywords).

(As an alternative I thought of @prefix="foaf
[http://xmlns.com/foaf/0.1/]", but that's the opposite of a safe
CURIE, so it might be way too confusing.. Of course, reverse it to
@prefix="[foaf] http://xmlns.com/foaf/0.1/" maybe; but then I'd wonder
where the ":" at the end of the prefix had gone, and so on..)


Just my 2 cents.

Best regards,
Niklas



On Mon, Jan 26, 2009 at 3:12 PM, Mark Birbeck
<mark.birbeck@webbackplane.com> wrote:
>
> Hi Toby,
>
>>> Henri and Dan have noted that by accepting "xmlns:html='html'" and
>>> limiting oneself to full URIs you get to the point where you have a
>>> document which can be processed correctly by many RDF parsers.
>>
>> To be pedantic, it's xmlns:http="http:" (Note the colon in the attribute
>> value.)
>>
>> As far as I can see, it's a reasonable compromise. RDFa parsers will
>> probably need some updating for HTML5 anyway (e.g. the proposed @prefix),
>> so it shouldn't hurt to include this.
>
> Just to clarify though, RDFa parsers will already support this. I know
> this is what you are saying, but I want to make sure it's clear for
> others -- we're only talking about whether the prefix mapping can be
> 'omitted'.
>
> On the subject of defining @xmlns:http="http:", I should say that this
> is something that has been touched on, on and off, a few times. I even
> proposed it myself on a telecon a long time ago, and everyone went
> "yeuch!". :)
>
> Of course the problem is that the designers of QNames made them look
> like URIs, so any solution is going to evoke a "yeuch!" at some level.
>
> Not wishing to rule out the subsequent discussion, another proposal I
> had was that any prefix that wasn't mapped would simply map to itself
> plus a colon. This has a number of advantages over the current
> proposal:
>
>  * there is no central list to maintain;
>
>  * it immediately includes common prefixes like "mailto:" and "ftp:", as well
>   as those that feature in URNs, such as "isbn:".
>
> However, the disadvantage is that it is not backwards compatible with
> existing RDFa, in that triples that were previously ignored might now
> be processed.
>
> I don't really see that as a problem, but I'll propose a solution in
> case others do.
>
> One way round this would be to allow 'identity prefixes' to be
> declared, by simply listing them:
>
>  @prefix="http isbn"
>
> The fuller syntax would still be usable for 'full mappings':
>
>  @prefix="
>    dc=http://purl.org/dc/terms/
>    http
>    isbn
>  "
>
> The exact syntax is still being discussed...but you get the picture
> that you can either declare a mapping, or you can indicate that the
> prefix maps to itself.
>
> Another alternative would be to say that the mere presence of @prefix
> adds this extra mode of behaviour, which is that any unmapped prefix
> maps to itself.
>
> Either way, the author can now make explicit that they want previously
> unparsed triples to be parsed, by using @prefix rather than @xmlns.
>
> (As I say, I really don't think this is an issue, but I thought I'd
> mention a few ways to address it in case other people think this could
> become an issue.)
>
>
>> I'd suggest not specifying it in a way that says that there is a
>> hard-coded xmlns:http="http:" on the root element though. It should be
>> hard-coded at an imaginary level "above" the root element, thus allowing
>> authors to override it if need be (e.g. there is the HTTP-in-RDF
>> vocabulary that allows for HTTP requests and responses to be described in
>> RDF).
>
> We've been bouncing some ideas around for a while now about how to
> define a 'collection' of mappings. We left space for this in CURIEs,
> and the lead candidate at the moment is @profile. We could also then
> say that HTML/XHTML loads a 'default' profile.
>
> (Although as I say above, if we have identity mappings of prefixes
> then we don't need a default profile, at least not as a way of solving
> the 'how do you tell if you have a URI or a CURIE' problem.)
>
>
>> In terms of the RDFa syntax document's processing sequence it could be
>> implemented by making the list of URI mappings non-empty in the initial
>> evaluation context. <http://www.w3.org/TR/rdfa-syntax/#sec_5.5.>
>
> Right, although we consciously left that flexibility to the CURIEs
> document. In effect the list is already non-empty, due to the tokens
> provided by XHTML ("next", "prev", etc.), but I'll be publishing a
> blog post on that shortly.
>
>
>>> What other desirable and undesirable social effects would there be by
>>> identifying a registry for well-known namespaces?
>>
>> When a new prefix was added to the registry, it would presumably take
>> weeks, months or even years for it to trickle down to RDFa parsers.
>> (Unless the registry was machine readable and RDFa parsers were obliged to
>> query it frequently, which would create a central bottleneck of precisely
>> the type that RDF was designed to avoid.)
>>
>> During the trickle-down period, authors would be wary of using the prefix,
>> as their experience using it would be inconsistent.
>>
>> I don't think an evolving list of default prefixes is a good solution,
>> though a static list of pre-defined prefixes is workable, provided authors
>> have a mechanism such as @prefix to define their own prefixes and override
>> the predefined ones.
>
> I agree...which is why I think you really need to be looking at
> letting any unrecognised prefix map to itself.
>
> That solves the http/ftp/mailto/isbn problem, but it doesn't predefine
> dc and foaf (for example). I think that's fair enough, and we should
> treat these as two separate issues.
>
> Regards,
>
> Mark
>
> --
> Mark Birbeck, webBackplane
>
> mark.birbeck@webBackplane.com
>
> http://webBackplane.com/mark-birbeck
>
> webBackplane is a trading name of Backplane Ltd. (company number
> 05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
> London, EC2A 4RR)
>
>

Received on Sunday, 1 February 2009 20:29:57 UTC