- From: McBennett, Pat <McBennettP@DNB.com>
- Date: Wed, 20 Aug 2014 04:23:19 -0500
- To: Ruben Verborgh <ruben.verborgh@ugent.be>
- CC: Markus Lanthaler <markus.lanthaler@gmx.net>, "public-hydra@w3.org" <public-hydra@w3.org>
> -----Original Message-----
> From: Ruben Verborgh [mailto:ruben.verborgh@ugent.be]
> Sent: Wednesday, August 20, 2014 9:33 AM
> To: McBennett, Pat
> Cc: Markus Lanthaler; public-hydra@w3.org
> Subject: Re: Moving forward with ISSUE-30 (IRI template expansion)
>
> Hi Pat,
>
> > I commented on it - saying +1 for requiring the angle brackets when
> specifying an explicit datatype for a literal, as I also thought that would make
> the syntax more compatible with Turtle.
>
> But for machines, here is no "more", syntax is either compatible so they can
> parse it, or it's not.
>
> >> For all IRIs? I don't see the point in that.
> >> It makes things more complicated without adding value.
> >
> > Not as I understand it Ruben, no. This was only applicable for literals (so it
> wasn't intended to address your a) below, only the b)). The angle brackets
> were only to be required for specifying the XSD datatype of a literal, i.e.
> "Markus"^^<http://www.w3.org/2001/XMLSchema#string>.
>
> Let's look closely at why the angular brackets would need to be there, by
> building this thing from the ground up.
> First of all, is there a parsing necessity why they should be there?
> No, because the IRI is unambiguously located between the ^^ and the end of
> the string.
> Adding angular brackets does not make parsing easier (or much more
> difficult).
>
> Second, why are the angular brackets there in Turtle?
> The answer is consistency. If we look at the Turtle syntax [1], we see:
>
> [128s] RDFLiteral ::= String (LANGTAG | '^^' iri)?
>
> So what this says is: the syntax for a typed literal is "the syntax for a String"
> followed by "the syntax for an iri".
>
> What is the "syntax for an iri" in Turtle? Relevant case:
>
> [18] IRIREF ::= '<' ([^#x00-#x20<>"{}|^`\] | UCHAR)* '>'
>
> So that's why there are angular brackets in Turtle.
>
> Now what is the "syntax for an IRI" for the template parameters we
> discussed?
>
> the IRI itself, without angular brackets
>
> So we have to be consistent here:
> either we write IRIs without angular brackets, everywhere, or either we write
> them with angular brackets, everywhere.
> But a mixture of both doesn't make sense, given that:
> "syntax for a typed literal" =
> "the syntax for a String" followed by "the syntax for an iri".
>
> Summarizing: if we decide to use angular brackets, we should be consistent.
> However, we don't have the necessity for angular brackets that Turtle has
> (because it also has prefixed names, without angular brackets).
>
Yep - I've (slowly!) been coming around to that same conclusion.
> And... the angular brackets alone don't give us Turtle compatibility anyway:
>
> > So Ruben if we have literals delimited in quotes, and we use '^^' and angle
> brackets around the type, and '@' for languages, *then* would a full-blown
> Turtle parser be able to parse that literal correctly? If so, would
> 'SimplifiedTurtle' now be applicable...?
>
> No, it would not parse it, because of escaping. Note the difference between
> - Turtle triple: <a> <b> "this literal has a quote \" inside".
> - Hydra parameter: "this literal has a quote " inside"
>
Aha - good point.
> Adding escaping would add unnecessary complexity:
> - We would no longer be able to parse the parameter only with a regex.
> - The parameter would be escaped twice: once as Turtle, once as URI
> component.
>
Agreed.
> And, minor detail, but Turtle parsers only parse triple documents, not literals
> by themselves.
>
Yeah, I realized that. I was kinda thinking we could allow developers reuse the 'parseLiteral()' method of full-Turtle parsers, but I get your point, probably at bit far-fetched (but they could have just cut-and-pasted that code :) !).
> > +1 (with the addition of angle brackets around the datatype (if that does
> indeed make handling typed literals 'full-Turtle-compatible' (and thereby
> justifying the 'SimplifiedTurtle' name) - if not then further thought and
> consideration required maybe...!)).
>
> So for the reason given above, it does not. Would that change your answer?
>
Yeah, I think so. I just dislike the idea of 'something new' when Turtle is so close. But I accept the (admittedly necessary) complexity of full-Turtle will over-complicate things for us here - at least initially (i.e. until Hydra reaches broad adoption and then complex edge-cases start to emerge that maybe do require full-Turtle support - in which case the extensibility here gets us 'out-of-jail').
Thanks!
> Best,
>
> Ruben
>
> [1] http://www.w3.org/TR/turtle/#sec-grammar-grammar
Received on Wednesday, 20 August 2014 09:23:42 UTC