W3C home > Mailing lists > Public > public-rdf-in-xhtml-tf@w3.org > December 2009

Re: RDFa without using xmlns:

From: Martin McEvoy <martin@weborganics.co.uk>
Date: Mon, 07 Dec 2009 22:04:12 +0000
Message-ID: <4B1D7BDC.8080201@weborganics.co.uk>
To: Mark Birbeck <mark.birbeck@webbackplane.com>
CC: RDFa <public-rdf-in-xhtml-tf@w3.org>
Mark Birbeck wrote:
> Hi Martin,
>
> Good to see you making a start on this.
>   
More thinking out loud ;)
> I too, am in favour of using JSON for at least one of the possible
> formats for prefix mappings. But you seem to have two properties
> everywhere that one will do. :)
>
> (I'll explain that a bit more in a moment.)
>   
:)
> First, the problem with using link/@rel value to point to a set of
> prefix mappings is that you won't find them until you start
> parsing...and by then it's too late.
>   
agreed, its not perfect....

> One possible solution would be to use another attribute. Myself I'd
> like to see us use @profile, and if the receiving server were to use
> content-negotiation, then the prefix mappings could come back in any
> form.
>   
Im a little unconvinced that @profile will work, its one of those things 
that authors tend to forget (like in microformats)  but you never know.

Another way I tried was setting a header tag to something like

"X-Dataset:  http://...dataset.json"

It worked as a way to deliver the json to the parser before parsing 
which was easy enough for parsers to Implement... but I think it may be 
a little beyond what is actually practical...
> Another alternative that has been mentioned -- apologies for not
> remembering who by -- is to overload the syntax of whatever attribute
> is used for prefix mappings. E.g., if @prefix or @token, or whatever
> is used, contained a URL with no mapping, then it would mean that it's
> a reference to a document full of mappings.
>
> Yet another approach would be to change the parsing model so that
> <head> is treated specially. I did actually have this in an early
> draft of RDFa, but it wasn't that popular. :) But there is something
> to be said for processing the <head> first, and then using the triples
> provided to set everything up for the subsequent parsing of the body.
>
> Much as I like that model, that horse has probably flown...or whatever
> the expression is.
>
> Anyway, on to the rest of your proposal.
>
> As I say, I'd like a JSON solution too, because that way a browser can
> get at the mappings.
>
> However, whilst you currently have this:
>
>   {
>     "namespace" : [
>       {
>         "prefix": "foaf",
>         "value": "http://xmlns.com/foaf/0.1/"
>       },
>       {
>         "prefix": "dc",
>         "value": "http://purl.org/dc/elements/1.1/"
>       }
>     ]
>   }
>
> I'd suggest that all you actually need is this:
>
>   {
>     "namespace": {
>       "foaf": "http://xmlns.com/foaf/0.1/",
>       "dc": "http://purl.org/dc/elements/1.1/"
>     }
>   }
>
>   

I agree also, I have changed the example to what you suggested above, I 
was just trying to keep it simple.. but then again yours is simpler ;)

> As it happens, RDFj [1] includes a way to set context information,
> such as prefix-mappings and a base URL, which uses that more compact
> approach:
>
>   {
>     context: {
>       base: "<http://example.org/about>",
>       token: {
>         title: "http://xmlns.com/foaf/0.1/title",
>         maker: "http://xmlns.com/foaf/0.1/maker",
>         name: "http://xmlns.com/foaf/0.1/name",
>         homepage: "http://xmlns.com/foaf/0.1/homepage"
>       }
>   }
>
> So I'd like to suggest that we look at using this same pattern, for
> the 'profile' document.
>
> 'context' is normally used like this:
>
>   {
>     context: {
>       base: "<http://example.org/about>",
>       token: {
>         title: "http://xmlns.com/foaf/0.1/title",
>         maker: "http://xmlns.com/foaf/0.1/maker",
>         name: "http://xmlns.com/foaf/0.1/name",
>         homepage: "http://xmlns.com/foaf/0.1/homepage"
>       }
>     },
>     "$": "<>",
>       title: "Anna's Homepage",
>       maker: {
>         name: "Anna Wilder",
>         homepage: "<>"
>       }
>   }
>   
and if you combine my example (+ your suggestions )  with yours .....

{
    namespace: {
      foaf: "http://xmlns.com/foaf/0.1/",
      dc: "http://purl.org/dc/elements/1.1/"
    },
    context: {
      base: "http://example.org/about",
      token: {
        title: "dc:title",
        maker: "foaf:maker",
        name: "foaf:name",
        homepage: "foaf:homepage"
      }
    }
}

much nicer ( there is nothing wrong with CURIEs in json is there),  it 
is fairly easy to implement too, I've tried something very similar in a 
more extended test a month or so back.
> which makes me wonder if there might be some value in allowing the
> 'profile' document to contain triples as well as prefix mappings.
>   
I don't know about that either seems excessive to me... and is probably 
going to get out of sync with the current document.
> It's not important for the moment, but it's perhaps worth revisiting
> at some point.
>   

It will be good to hit the ground running when you do.

Best wishes.

-- 
Martin McEvoy

WebOrganics http://weborganics.co.uk/
Add to address book: http://transformr.co.uk/hcard/http://weborganics.co.uk/
Received on Monday, 7 December 2009 22:04:41 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 22:04:43 GMT