You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Steven Blanchard <st...@microbiome.studio> on 2023/02/03 08:31:20 UTC
from a named graph in a federated query
Dear Jena users,
I would like to do a federated query (with SERVICE) but on a named
graph and not on the default graph. How it is possible?
This query works if data are in the default graph :
query = """
PREFIX biolink: <<https://w3id.org/biolink/vocab/>>
PREFIX up: <<http://purl.uniprot.org/uniprot/>>
PREFIX reaction: <<http://sparql.microbiome.studio/reaction/>>
SELECT DISTINCT
?reaction
(COUNT(DISTINCT ?soft) AS ?NSOFT)
FROM <urn:x-arq:UnionGraph>
WHERE {
SERVICE
<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>>
{
?protein biolink:provided_by ?soft .
}
?protein biolink:category biolink:Protein .
?reaction biolink:has_catalyst ?protein .
}
GROUP BY ?reaction
"""
But i have no results if data are in a named graph:
query = """
PREFIX biolink: <<https://w3id.org/biolink/vocab/>>
PREFIX up: <<http://purl.uniprot.org/uniprot/>>
PREFIX reaction: <<http://sparql.microbiome.studio/reaction/>>
SELECT DISTINCT
?reaction
(COUNT(DISTINCT ?soft) AS ?NSOFT)
FROM <urn:x-arq:UnionGraph>
WHERE {
SERVICE
<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo2?graph=http://sparql.microbiome.studio/graph/SampleName>>
{
?protein biolink:provided_by ?soft .
}
?protein biolink:category biolink:Protein .
?reaction biolink:has_catalyst ?protein .
}
GROUP BY ?reaction
"""
What is the synthax to query a named graph by SERVICE ?
Thanks in advance,
Steven
Re: from a named graph in a federated query
Posted by Steven Blanchard <st...@microbiome.studio>.
Yes, it's perfect.
Thank you very much,
Steven
Le ven., févr. 3 2023 at 09:12:53 +0000, Rob @ DNR
<rv...@dotnetrdf.org> a écrit :
> The SERVICE clause can include any clauses you can use elsewhere in
> the query. You can use a GRAPH clause inside your SERVICE clause i.e.
>
> SERVICE
> <<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>>
> {
> GRAPH ?g { ?protein biolink:provided_by ?soft . }
> }
>
> If the results might be in the default graph or a named graph you can
> use UNION and GRAPH within your SERVICE clause i.e.
>
> SERVICE
> <<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>>
> {
> { GRAPH ?g { ?protein biolink:provided_by ?soft . } } UNION {
> ?protein biolink:provided_by ?soft }
> }
>
> Hope this helps,
>
> Rob
>
> From: Steven Blanchard <steven.blanchard@microbiome.studio
> <ma...@microbiome.studio>>
> Date: Friday, 3 February 2023 at 08:32
> To: users <users@jena.apache.org <ma...@jena.apache.org>>
> Subject: from a named graph in a federated query
> Dear Jena users,
>
> I would like to do a federated query (with SERVICE) but on a named
> graph and not on the default graph. How it is possible?
>
> This query works if data are in the default graph :
> query = """
> PREFIX biolink: <<<https://w3id.org/biolink/vocab/>>>
> PREFIX up: <<<http://purl.uniprot.org/uniprot/>>>
> PREFIX reaction: <<<http://sparql.microbiome.studio/reaction/>>>
>
> SELECT DISTINCT
> ?reaction
> (COUNT(DISTINCT ?soft) AS ?NSOFT)
> FROM <urn:x-arq:UnionGraph>
> WHERE {
> SERVICE
> <<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>>>
> {
> ?protein biolink:provided_by ?soft .
> }
> ?protein biolink:category biolink:Protein .
> ?reaction biolink:has_catalyst ?protein .
>
> }
> GROUP BY ?reaction
> """
>
> But i have no results if data are in a named graph:
> query = """
> PREFIX biolink: <<<https://w3id.org/biolink/vocab/>>>
> PREFIX up: <<<http://purl.uniprot.org/uniprot/>>>
> PREFIX reaction: <<<http://sparql.microbiome.studio/reaction/>>>
>
> SELECT DISTINCT
> ?reaction
> (COUNT(DISTINCT ?soft) AS ?NSOFT)
> FROM <urn:x-arq:UnionGraph>
> WHERE {
> SERVICE
> <<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo2?graph=http://sparql.microbiome.studio/graph/SampleName>>>
> {
> ?protein biolink:provided_by ?soft .
> }
> ?protein biolink:category biolink:Protein .
> ?reaction biolink:has_catalyst ?protein .
>
> }
> GROUP BY ?reaction
> """
>
> What is the synthax to query a named graph by SERVICE ?
>
> Thanks in advance,
>
> Steven
Re: from a named graph in a federated query
Posted by "Rob @ DNR" <rv...@dotnetrdf.org>.
The SERVICE clause can include any clauses you can use elsewhere in the query. You can use a GRAPH clause inside your SERVICE clause i.e.
SERVICE <http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>
{
GRAPH ?g { ?protein biolink:provided_by ?soft . }
}
If the results might be in the default graph or a named graph you can use UNION and GRAPH within your SERVICE clause i.e.
SERVICE <http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>
{
{ GRAPH ?g { ?protein biolink:provided_by ?soft . } } UNION { ?protein biolink:provided_by ?soft }
}
Hope this helps,
Rob
From: Steven Blanchard <st...@microbiome.studio>
Date: Friday, 3 February 2023 at 08:32
To: users <us...@jena.apache.org>
Subject: from a named graph in a federated query
Dear Jena users,
I would like to do a federated query (with SERVICE) but on a named
graph and not on the default graph. How it is possible?
This query works if data are in the default graph :
query = """
PREFIX biolink: <<https://w3id.org/biolink/vocab/>>
PREFIX up: <<http://purl.uniprot.org/uniprot/>>
PREFIX reaction: <<http://sparql.microbiome.studio/reaction/>>
SELECT DISTINCT
?reaction
(COUNT(DISTINCT ?soft) AS ?NSOFT)
FROM <urn:x-arq:UnionGraph>
WHERE {
SERVICE
<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo>>
{
?protein biolink:provided_by ?soft .
}
?protein biolink:category biolink:Protein .
?reaction biolink:has_catalyst ?protein .
}
GROUP BY ?reaction
"""
But i have no results if data are in a named graph:
query = """
PREFIX biolink: <<https://w3id.org/biolink/vocab/>>
PREFIX up: <<http://purl.uniprot.org/uniprot/>>
PREFIX reaction: <<http://sparql.microbiome.studio/reaction/>>
SELECT DISTINCT
?reaction
(COUNT(DISTINCT ?soft) AS ?NSOFT)
FROM <urn:x-arq:UnionGraph>
WHERE {
SERVICE
<<http://jena.int.microbiomestudio.fr:8080/jena-fuseki-war-4.7.0/demo2?graph=http://sparql.microbiome.studio/graph/SampleName>>
{
?protein biolink:provided_by ?soft .
}
?protein biolink:category biolink:Protein .
?reaction biolink:has_catalyst ?protein .
}
GROUP BY ?reaction
"""
What is the synthax to query a named graph by SERVICE ?
Thanks in advance,
Steven