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