W3C home > Mailing lists > Public > public-annotation@w3.org > July 2015

Re: [web-annotation] Absolute or relative URI's in examples

From: Benjamin Young <bigbluehat@hypothes.is>
Date: Thu, 30 Jul 2015 12:13:41 -0400
Message-ID: <CAE3H5FJ6F_EO5dRrV9dN7+XviRmm0uBo_BzHiownDmvBVPSCpg@mail.gmail.com>
To: Stian Soiland-Reyes <soiland-reyes@cs.manchester.ac.uk>
Cc: Rob Sanderson via GitHub <sysbot+gh@w3.org>, W3C Public Annotation List <public-annotation@w3.org>
On Thu, Jul 30, 2015 at 5:16 AM, Stian Soiland-Reyes <
soiland-reyes@cs.manchester.ac.uk> wrote:

> You are right, the @base must be inside the @context - so to avoid
> full URIs in the JSON-LD you would have to use the verbose
>
> { "@context":  [
>     {"@base": "http://example.com"},
>     "http://www.w3.org/ns/oa/context?" ]
>
>   "..": "..."
> }
>

Yeah...I forgot we'd need to make @context an array...which even more
complex.

Stian, do you know why @base isn't a top-level key? Would be handy and
clearer, imo.


> Perhaps simpler is to use full URIs in the Turtle.


+1

I think this avoids making the JSON-LD look more complex, and still jives
with the Turtle world.


> People who know
> Turtle will know how to make relative URIs - while people who are a
> bit fresh will still see it at a more standard 'triple level'.  This
> should somewhat discourage people from accidentally making URIs that
> don't resolve.
>
>
> (Why is the oa @context missing from the JSON-LD example? Have we
> decided on a URI yet?)
>

It'd be too much cruft to do inline, and doesn't yet have a URI.

Once it has a URI, though, we should put it in there for sure...as
otherwise they're incomplete...unless the implementor provides a `Link`
header of course...


>
> Rant time about JSON-LD @context:
>
> -- we had several discussions in JSON-LD community about this.. in
> early draft you could inherit a @base from an external @context - but
> we changed our mind as that sounded quite confusing and dangerous, and
> raised lots of scary issues with multiple contexts.
>
> In one evil version you could do an external context that defined {
> "@base": "../" } (I actually wanted to do this! :))  and which would
> be resolved by the location of the document (e.g.
> file:///something/something.jsonld ) rather than from the external
> context's URI. But that is just too far away from how relative IRIs
> are resolved per document on the rest of the web - and hence the @base
> inheritance was removed, and a stronger requirement for absolute URIs
> in @base and @vocab was added.
>

Yeah. That would've been confusing. :)

I will double +1 my @base as a top-level key vote, though. ;)

Thanks for the thoughts, Stian!
Benjamin


>
>
>
> On 29 July 2015 at 16:21, Benjamin Young <bigbluehat@hypothes.is> wrote:
> > Yeah. Think that should.
> >
> > I'd wondered about doing the same for the JSON-LD examples, but it's some
> > pretty heavy cruft because `@base` isn't top level (afaik), so it ends up
> > looking like:
> > ```json
> > {
> >   "@context": {
> >     "@base": "http://example.com/"
> >   }
> > }
> > ```
> > http://www.w3.org/TR/json-ld/#base-iri
> >
> > Also...
> >> Please note that the @base will be ignored if used in external contexts.
> >
> > Which is kind of sad...but also makes sense.
>
>
>
> --
> Stian Soiland-Reyes, eScience Lab
> School of Computer Science
> The University of Manchester
> http://soiland-reyes.com/stian/work/
> http://orcid.org/0000-0001-9842-9718
>
Received on Thursday, 30 July 2015 16:14:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:54:38 UTC