On Mon, Aug 5, 2013 at 8:39 AM, Holger Knublauch <[email protected]> wrote: > > On Aug 5, 2013, at 6:28 PM, Andy Seaborne wrote: >>> I cannot use ParameterizedSparqlString because it does not handle blank >>> nodes correctly. The previous implementation using initial bindings >>> supported this, because it didn't have to go through the string syntax. >>> Now, when I pre-bind a variable to point to a blank node, I am getting >>> strings like _:b0 which lose the identity of the blank node which is >>> otherwise (fortunately) preserved throughout Jena. >>> >>> I am not sure if this is fixable in SPARQL syntax - please advise >>> whether you want me to open a JIRA ticket - but as stated elsewhere I >>> believe the initial bindings should be brought back into the update API. >>> >>> Thanks, >>> Holger >>> >> >> Use a URI like <_:LABEL> and you will be naming the blank node in the data, >> not making a query variable. > > I don't understand this. For example, I may have an update template > > INSERT { > GRAPH <target> { > ?node a:p ?o . > } > } > WHERE { > ?node a:p ?o . > } > > where ?node is supplied as a pre-bound variable. The values may be URIs or > blank nodes, and I want the target graph to use exactly the same blank node. > (Slightly artificial but roughly one of our use cases). > > What would I need to do? ?node in the WHERE clause must be exactly the node > from the QuerySolutionMap.
You might want to have a look at this thread from a few months back: http://mail-archives.apache.org/mod_mbox/jena-users/201302.mbox/%3cca+q4jnkyopmctposkj7zs1oxg26qze7x5vlsozgi_m0g_5w...@mail.gmail.com%3E I had to deal with a number of the same issues. -- Joshua Taylor, http://www.cs.rpi.edu/~tayloj/
