You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@jena.apache.org by "Justin (Jira)" <ji...@apache.org> on 2022/07/15 12:25:00 UTC

[jira] [Updated] (JENA-2340) bnode() with literal argument

     [ https://issues.apache.org/jira/browse/JENA-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin updated JENA-2340:
-------------------------
    Description: 
[^a2.rq]

 

About the bnode() function:

"If the form with a simple literal is used, every call results in distinct blank nodes for different simple literals, and the same blank node for calls with the same simple literal within expressions for one [solution mapping|https://www.w3.org/TR/sparql11-query/#defn_sparqlSolutionMapping]."
[https://www.w3.org/TR/sparql11-query/]

 

In the following example I expected the same bnode to appear multiple times in the o_node column. But instead Jena doesn't reuse any of the bnodes.
{code:java}
root@354840b30d6f:/mnt# cat ./a2.ttl 
@prefix : <http://example/> 
:s0 :p "one" .
:s1 :q "one" .
:s1 :p "one" .
:s2 :p "two" .
:s3 :p "two" .
root@354840b30d6f:/mnt# cat ./a2.rq  
prefix : <http://example/>
select * 
where{
?s ?p ?o
bind(bnode(?o) as ?o_node)
}
root@354840b30d6f:/mnt# ./apache-jena-4.5.0/bin/sparql --data=./a2.ttl --query=./a2.rq
-----------------------------
| s   | p  | o     | o_node |
=============================
| :s0 | :p | "one" | _:b0   |
| :s3 | :p | "two" | _:b1   |
| :s2 | :p | "two" | _:b2   |
| :s1 | :p | "one" | _:b3   |
| :s1 | :q | "one" | _:b4   |
----------------------------- {code}
How do you get the bnode() function with a literal argument to return the same bnode?

I feel like perhaps I am not understanding what it means to have "one solution mapping."

  was:
[^a2.rq]

 

About the bnode() function:

"If the form with a simple literal is used, every call results in distinct blank nodes for different simple literals, and the same blank node for calls with the same simple literal within expressions for one [solution mapping|https://www.w3.org/TR/sparql11-query/#defn_sparqlSolutionMapping]."
https://www.w3.org/TR/sparql11-query/


 

In the following example I expected the same bnode to appear multiple times in the o_node column. But instead Jena doesn't reuse any of the bnodes.
{code:java}
root@354840b30d6f:/mnt# cat ./a2.ttl 
@prefix : <http://example/> 
:s0 :p "one" .
:s1 :q "one" .
:s1 :p "one" .
:s2 :p "two" .
:s3 :p "two" .
root@354840b30d6f:/mnt# cat ./a2.rq  
prefix : <http://example/>
select * 
where{
?s ?p ?o
bind(bnode(?o) as ?o_node)
}
root@354840b30d6f:/mnt# ./apache-jena-4.5.0/bin/sparql --data=./a2.ttl --query=./a2.rq
-----------------------------
| s   | p  | o     | o_node |
=============================
| :s0 | :p | "one" | _:b0   |
| :s3 | :p | "two" | _:b1   |
| :s2 | :p | "two" | _:b2   |
| :s1 | :p | "one" | _:b3   |
| :s1 | :q | "one" | _:b4   |
----------------------------- {code}
How do you get the bnode() function with a literal argument to return the same bnode?


> bnode() with literal argument
> -----------------------------
>
>                 Key: JENA-2340
>                 URL: https://issues.apache.org/jira/browse/JENA-2340
>             Project: Apache Jena
>          Issue Type: Bug
>    Affects Versions: Jena 4.5.0
>            Reporter: Justin
>            Priority: Major
>         Attachments: a2.rq, a2.ttl
>
>
> [^a2.rq]
>  
> About the bnode() function:
> "If the form with a simple literal is used, every call results in distinct blank nodes for different simple literals, and the same blank node for calls with the same simple literal within expressions for one [solution mapping|https://www.w3.org/TR/sparql11-query/#defn_sparqlSolutionMapping]."
> [https://www.w3.org/TR/sparql11-query/]
>  
> In the following example I expected the same bnode to appear multiple times in the o_node column. But instead Jena doesn't reuse any of the bnodes.
> {code:java}
> root@354840b30d6f:/mnt# cat ./a2.ttl 
> @prefix : <http://example/> 
> :s0 :p "one" .
> :s1 :q "one" .
> :s1 :p "one" .
> :s2 :p "two" .
> :s3 :p "two" .
> root@354840b30d6f:/mnt# cat ./a2.rq  
> prefix : <http://example/>
> select * 
> where{
> ?s ?p ?o
> bind(bnode(?o) as ?o_node)
> }
> root@354840b30d6f:/mnt# ./apache-jena-4.5.0/bin/sparql --data=./a2.ttl --query=./a2.rq
> -----------------------------
> | s   | p  | o     | o_node |
> =============================
> | :s0 | :p | "one" | _:b0   |
> | :s3 | :p | "two" | _:b1   |
> | :s2 | :p | "two" | _:b2   |
> | :s1 | :p | "one" | _:b3   |
> | :s1 | :q | "one" | _:b4   |
> ----------------------------- {code}
> How do you get the bnode() function with a literal argument to return the same bnode?
> I feel like perhaps I am not understanding what it means to have "one solution mapping."



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: jira-unsubscribe@jena.apache.org
For additional commands, e-mail: jira-help@jena.apache.org