On 29/11/15 19:24, james anderson wrote:
good evening;
On 2015-11-29, at 16:04, Andy Seaborne <a...@apache.org
<mailto:a...@apache.org>> wrote:
On 29/11/15 11:33, james anderson wrote:
good morning;
On 2015-11-29, at 11:33, Andy Seaborne <a...@apache.org
<mailto:a...@apache.org>> wrote:
[…]
Is there any theoretical or technical obstacle to this?
There's no obstacle. A Google Summer of Code project added this to
Apache Jena this year and it'll be in the next release.
It follows the design you gave:
https://jena.apache.org/documentation/query/construct-quad.html
while a quite reasonable extension proposal and one which leads one
to wonder why it was left out of the 1.1 recommendation, there are
questions.
Many reasons:
No standardized syntax and MIME type.
SPARQL 1.1 predates standardized Trig and N-quads - indeed,
"RDF Dataset" was not in RDF - it was only in SPARQL.
Limited resources. Limited time. Limited interest.
http://www.w3.org/TR/sparql-features/
- what identifier does arq intend to us in the service description to
indicate its support
- as a matter of interoperability, is the elided graph case in the
“complete form” example really in instance of the grammar which
appears later in the document? given the example, this reader would
have expected a production of the form
( 'GRAPH’ )? VarOrIri '{' TriplesTemplate? ‘}’
i.e. "TriG-with-variables", rather than SPARQL Update quad blocks.
should i take the absence of a response on the question of the actual
grammar to mean that my correction, above, is actually correct?
As implemented currently in Jena, the grammar is right, the example in
the main jena web site looks iffy.
What you describe is a step towards "TriG-with-variables". TriG
post-dates the SPARQL grammar. IIRC TriG was standardised to cover
SPARQL-like and it's own traditional form usage.
In TriG, the default graph can be inside {} hence the superset of TriG
and of SPARQL Update quad blocks is something like: (untested)
ConstructBraceBlock
::= ( ('GRAPH')? VarOrIriOrBlankNode )? '{' TriplesTemplate? '}'
TriG [2g] and [3g] seem to unwind that into something easier but that
would need the more extensive changes to the SPARQL grammar which has
consequences making beyond the project possibilities.
- which end does the elision serve?
Thank you to Google for funding the work of Qihong Lin.
Getting the project finished in time matters. GSoC projects are fixed
length.
It is also desirable for it to be a simple extension for everyone but
it is not incremental to add and remain LL(1) AKA easy parsing (it's 3
separate additional local LL(2) changes I think); obviously it is
possible to do convert LL(2) to LL(1) but it needs rewriting all the
template rules, making it not a just local change in one rule.
Not everyone is using the same parser generator (ARQ uses javacc so
lots of bells and whistles here like variable local lookahead). The
GRAPH implementation is a local change in one part of the grammar.
When in standards mode (default), the grammar remains what is in the
spec, not something supposedly equivalent.
those are all circumstantial contingencies.
should i understand from that list that there was the only function
motivation was the “trig with variables”, above?
best regards, from berlin,
---
james anderson | ja...@dydra.com <mailto:ja...@dydra.com> | http://dydra.com