Indeed adding syntaxARQ brings a progress:
QueryFactory.create(query, Syntax.syntaxARQ)

GRAPH is tolerated,
but OPTIONAL is not:

Exception in thread "main" org.apache.jena.query.QueryParseException:
Encountered " "optional" "OPTIONAL "" at line 9, column 11.
Was expecting one of:
    <IRIref> ...
    <PNAME_NS> ...
    <PNAME_LN> ...
    <BLANK_NODE_LABEL> ...
    <VAR1> ...
    <VAR2> ...
    "true" ...
    "false" ...
    <INTEGER> ...
    <DECIMAL> ...
    <DOUBLE> ...
    <INTEGER_POSITIVE> ...
    <DECIMAL_POSITIVE> ...
    <DOUBLE_POSITIVE> ...
    <INTEGER_NEGATIVE> ...
    <DECIMAL_NEGATIVE> ...
    <DOUBLE_NEGATIVE> ...
    <STRING_LITERAL1> ...
    <STRING_LITERAL2> ...
    <STRING_LITERAL_LONG1> ...
    <STRING_LITERAL_LONG2> ...
    "(" ...
    <NIL> ...
    "}" ...
    "[" ...
    <ANON> ...

    at
org.apache.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:100)
    at
org.apache.jena.sparql.lang.ParserSPARQL11.parse$(ParserSPARQL11.java:52)



2017-02-16 17:54 GMT+01:00 Rob Vesse <rve...@dotnetrdf.org>:

> As a general comment the short form of construct is very constrained.
> Anything other than that simple triple patterns is illegal in the short form
>
>  Rob
>
> On 16/02/2017 16:45, "Andy Seaborne" <a...@apache.org> wrote:
>
>     Hi,
>
>     The result of a CONSTRUCT is an RDF graph and the template must be a
>     "triples template"
>
>     [10]        ConstructQuery    ::=
>                   'CONSTRUCT' ... 'WHERE' '{' TriplesTemplate? '}'  ...
>
>     and
>
>     [52]        TriplesTemplate   ::=
>                   TriplesSameSubject ( '.' TriplesTemplate? )?
>
>     No GRAPH.
>
>     Jena accepts  CONSTRUCT WHERE { GRAPH .... }
>     in extended mode (Syntax.syntaxARQ) and returns a Dataset.
>
>         Andy
>
>
>     On 16/02/17 14:52, Jean-Marc Vanel wrote:
>     > Hi
>     >
>     > I tested with 3.2.0.
>     >
>     > The short form for the CONSTRUCT query
>     > https://www.w3.org/TR/sparql11-query/#constructWhere
>     > works, at least syntactically ( I have nothing in the default graph
> in my
>     > TDB ) :
>     > CONSTRUCT WHERE
>     >  { ?X ?P ?O . }
>     >  LIMIT 10
>     >
>     > But adding GRAPH pattern gives a synyax error:
>     > CONSTRUCT WHERE  {
>     > GRAPH ?G {
>     >     ?X ?P ?O .
>     > }
>     > } LIMIT 10
>     >
>     > Which does not occur e.g. with Virtuoso.
>     >
>     > org.apache.jena.query.QueryParseException: Encountered " "graph"
> "GRAPH ""
>     > at line 2, column 1.
>     > Was expecting one of:
>     >     <IRIref> ...
>     >     <PNAME_NS> ...
>     >     <PNAME_LN> ...
>     >     <BLANK_NODE_LABEL> ...
>     >     <VAR1> ...
>     >     <VAR2> ...
>     >     "true" ...
>     >     "false" ...
>     >     <INTEGER> ...
>     >     <DECIMAL> ...
>     >     <DOUBLE> ...
>     >     <INTEGER_POSITIVE> ...
>     >     <DECIMAL_POSITIVE> ...
>     >     <DOUBLE_POSITIVE> ...
>     >     <INTEGER_NEGATIVE> ...
>     >     <DECIMAL_NEGATIVE> ...
>     >     <DOUBLE_NEGATIVE> ...
>     >     <STRING_LITERAL1> ...
>     >     <STRING_LITERAL2> ...
>     >     <STRING_LITERAL_LONG1> ...
>     >     <STRING_LITERAL_LONG2> ...
>     >     "(" ...
>     >     <NIL> ...
>     >     "}" ...
>     >     "[" ...
>     >     <ANON> ...
>     >
>     >     at
>     > org.apache.jena.sparql.lang.ParserSPARQL11.perform(
> ParserSPARQL11.java:100)
>     >
>     >
>
>
>
>
>
>


-- 
Jean-Marc Vanel
http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui

Reply via email to