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/

Reply via email to