What are they trying to achieve?
The Update has a second error the parsers didn't get to.
No WHERE clause - it's mandatory
Did they mean:
INSERT {
GRAPH ?g { <http://example.org/a> <http://example.org/p> "1" }
}
WHERE
{ GRAPH ?g { } }
GRAPH ?g { } returns all graph names.
Where does USING come into this?
> Sometimes "the spec prohibits it" is not what people want to hear.
That's what the commercial support has to answer!
Andy
On 25/10/17 19:02, Charles Greer wrote:
The error from Jena when I try to reproduce is fairly clear:
@Test
public void testGraphBinding() {
MarkLogicDatasetGraph dsg = getMarkLogicDatasetGraph();
String updateQuery = "WITH ?g INSERT { <http://example.org/a> <http://example.org/p>
\"1\" }";
BindingMap updateBindings = new BindingHashMap();
updateBindings.add(Var.alloc("g"),
NodeFactory.createURI("http://example.org/g"));
UpdateRequest update = new UpdateRequest();
update.add(updateQuery);
UpdateAction.execute(update, dsg, updateBindings);
}
org.apache.jena.query.QueryParseException: Encountered " <VAR1> "?g "" at line
1, column 6.
Was expecting one of:
<IRIref> ...
<PNAME_NS> ...
<PNAME_LN> ...
So I guess to reframe my question -- given that the expectation of this
customer is that ?g should be bindable here,
can I give them a rationale? Sometimes "the spec prohibits it" is not what
people want to hear.
Charles Greer
Lead Engineer
MarkLogic Corporation
[email protected]
@grechaw
www.marklogic.com
________________________________
From: james anderson <[email protected]>
Sent: Wednesday, October 25, 2017 9:59:14 AM
To: [email protected]
Subject: Re: Binding graph names for WITH and USING
good evening;
On 2017-10-25, at 18:48, Charles Greer <[email protected]> wrote:
Hi jena folks, I was surprised recently with a customer who was surprised that
my jena connector did not properly
bind graph names as variables after WITH.
WITH ?g
INSERT ...
DELETE ...
When I looked back at the SPARQL specs, it looks indeed true that variables are
inadmissable after WITH or USING.
I am curious about how to write a workaround, short of putting a literal in for
?g
do you have a concrete example which you are in a position to share?
where did the customer express a binding for the ?g of which they thought the
‘with’ clause was in its scope?
best regards, from berlin,