This is a test version of Biostars. For the public version, visit https://www.biostars.org.
error when trying to perform a federated query in Pathway Commons SPARQL endpoint

The following query works at Pathway Commons SPARQL endpoint and returns all proteins that form complexes controlling Wnt signaling pathways:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX bp: <http://www.biopax.org/release/biopax-level3.owl#>
PREFIX up: <http://purl.uniprot.org/core/>
SELECT ?pathway ?protein ?eref 
WHERE
{
# define all objects (nodes)
?protein rdf:type bp:Protein. # identify all proteins
?protein bp:entityReference ?eref . # the protein has an entity reference eref, this can be unitprot, etc
?eref bp:xref ?reference . # entity referece eref corresponds to external reference ?reference

# define all object property assertions (edges)
?assembly bp:left ?protein. # proteins are reaction input
?pathway bp:pathwayComponent ?assembly . # complex assembly is a component of a pathway
?pathway rdf:type bp:Pathway ;
                 bp:displayName ?dname .

#SERVICE <https://sparql.uniprot.org/sparql>
#    {?eref a up:Protein .}

FILTER regex(?dname, "^Wnt")
}
LIMIT 100

Now I need to get info from UniProt about these proteins. If I un-comment the following lines from the above query I get an error:

SERVICE <https://sparql.uniprot.org/sparql>
   {?eref a up:Protein .}

Error:

Virtuoso RDFZZ Error
DB.DBA.SPARQL_REXEC('https://sparql.uniprot.org/sparql', ...) has
received result with unexpected variable name 'stubvar10'
uniprot pathway-commons rdf sparql biopax

This is an endpoint error. I suggest contacting the relevant helpdesks.

1 answer

For the record the query

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX bp: <http://www.biopax.org/release/biopax-level3.owl#>
PREFIX up: <http://purl.uniprot.org/core/>
    SELECT
       ?protein
       ?acc
       ?entry
       ?goTerm
    WHERE
    {
      {
        SELECT
          ?protein
          (IRI(CONCAT("http://purl.uniprot.org/uniprot/",?acc)) AS ?entry)
          ?acc
          ?bpdb
         WHERE {
            SERVICE <https://rdf.pathwaycommons.org/sparql/> {
              ?protein rdf:type bp:Protein .
              ?protein bp:entityReference ?eref.
              ?eref bp:xref ?xref.
              ?xref rdf:type bp:UnificationXref.
              ?xref bp:db "uniprot knowledgebase"^^xsd:string .
              ?xref bp:id ?acc .
          }
        }
      }
      ?entry up:classifiedWith ?goTerm .
      ?goTerm a owl:Class . # needed otherwise one could get a uniprot keyword as well.
    }

Works from the sparql.uniprot.org/sparql side. Discussion on technical backend issues at https://groups.google.com/g/pathway-commons-help/c/zb7iWqrH05Q/m/A85gF_5jCAAJ

Log in to answer this question.