Re: distiller behaviour without base href

Gregg Kellogg
gregg@greggkellogg.net

On Jul 3, 2013, at 4:24 PM, Dan Brickley <danbri@google.com> wrote:

> On 4 July 2013 00:18, Gregg Kellogg <gregg@greggkellogg.com> wrote:
>> On Jul 3, 2013, at 3:17 PM, Dan Brickley <danbri@google.com> wrote:
> 
>>> ... is that even Turtle?
>> 
>> It certainly is, Turtle allows for the use of relative IRIs, as does RDFa, as you used within your snippet. However, to be valid RDF, the relative IRIs need to resolve to absolute IRIs.
> 
> Ah, I was seeing it as a weird XML close tag, but of course it's also
> Turtle URI notation to use < >
> 
>> There are actually Turtle tests to be sure that relative IRIs are processed properly, which require an assumed base URI for the document. If the snippet was contained in a document at a well-known URL, that would be used as the base. Presuming that the document came from http://schema.org/sku, you would see the other relative IRIs expanded appropriately.
> 
> Yeah - my concern now is to have consistent conventions across the
> various validators...
> 
>>> My conclusions:
>>> 
>>> 1. I don't understand this result syntax:  </Offer> nor why both tools
>>> produce it; I thought they were different codebases (python vs ruby).
>> 
>> Ideally, when we produce this, it would include an @base directive with the specified, or default IRI base.
> 
> Yes, or human-facing explanation outside the triples.
> 
>>> 2. it would seem important for RDFa-checking tools to have some
>>> options to deal with setting the base URI, and/or reporting when it
>>> isn't set and might be giving weird results.
>>> 
>>> It seems like http://rdfa.info/play/ silently patches up examples by
>>> assuming a base href of http://rdfa.info/ hence parses my first sample
>>> into triples such as
>>> "  ... schema:domainIncludes <http://rdfa.info/LocalBusiness>;"
>> 
>> Well, if you're putting in code into a text view, then _some_ IRI needs to be used as the base. Normally, we expect to process documents (RDFa or Turtle) from a URL, so there will always be a document base.
> 
> What about a text form field alongside the text view, pre-populated
> with 'http://example.net/' ?

These are all good conventions. If there is no base (the default is removed), then I think a comment (where practical, as it is in Turtle, but not in JSON-LD, without establishing some convention) to indicate that relative IRIs are relative to an undefined base IRI, or add an @base directive, and comment indicating that this base was added as a default. I'll do something like this to my distiller, when I'm back from vacation.

Gregg

> Dan

Received on Wednesday, 3 July 2013 22:37:16 UTC