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 <[email protected]>
Date: Friday, 3 February 2023 at 08:32
To: users <[email protected]>
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

Reply via email to