Koetai SPARQL examples

Community-curated SPARQL example queries for multiple life-science endpoints.

View the Project on GitHub Koetai/sparql-examples

same_as_9_but_now_for_doi

rq turtle/ttl

Same as #9 but not for DOI

Use at

PREFIX ome: <https://ld.openmicroscopy.org/core/>
PREFIX up: <http://purl.uniprot.org/core/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?id ?idrSubject ?nCurated ?nMapped WHERE {
  { SELECT DISTINCT ?id ?idrSubject WHERE {
      ?e ome:key "Publication DOI" ; ome:value ?v .
      ?ann ome:mapEntry ?e . ?idrSubject ome:hasAnnotation ?ann .
      BIND(STRBEFORE(?v, " ") AS ?id)
  } }
  BIND(CONCAT("doi:", ?id) AS ?doiLit)
  SERVICE <https://sparql.uniprot.org/sparql> {
     ?cit dcterms:identifier ?doiLit .
     OPTIONAL { SELECT ?cit (COUNT(DISTINCT ?pc) AS ?nCurated) WHERE { ?pc a up:Protein ; up:citation       ?cit } GROUP BY ?cit }
     OPTIONAL { SELECT ?cit (COUNT(DISTINCT ?pm) AS ?nMapped)  WHERE { ?pm a up:Protein ; up:mappedCitation ?cit } GROUP BY ?cit }
  }
}
ORDER BY DESC(?nMapped)
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v4("?ann")
  v8("?cit")
  v7("?doiLit")
  v2("?e")
  v6("?id"):::projected 
  v5("?idrSubject"):::projected 
  v10("?nCurated"):::projected 
  v12("?nMapped"):::projected 
  v9("?pc")
  v11("?pm")
  v3("?v")
  c2(["Publication DOI"]):::literal 
  c9(["up:Protein"]):::iri 
  v2 --https://ld.openmicroscopy.org/core/key-->  c2
  v2 --https://ld.openmicroscopy.org/core/value-->  v3
  v4 --https://ld.openmicroscopy.org/core/mapEntry-->  v2
  v5 --https://ld.openmicroscopy.org/core/hasAnnotation-->  v4
  bind0[/"substring-before(?v,' ')"/]
  v3 --o bind0
  bind0 --as--o v6
  bind1[/"concat('doi:',?id)"/]
  v6 --o bind1
  bind1 --as--o v7
  subgraph s1["https://sparql.uniprot.org/sparql"]
    style s1 stroke-width:4px;
    v8 --"dcterms:identifier"-->  v7
    subgraph optional0["(optional)"]
    style optional0 fill:#bbf,stroke-dasharray: 5 5;
      v9 -."a".->  c9
      v9 --"up:citation"-->  v8
      bind3[/"count(?pc)"/]
      v9 --o bind3
      bind3 --as--o v10
    end
    subgraph optional1["(optional)"]
    style optional1 fill:#bbf,stroke-dasharray: 5 5;
      v11 -."a".->  c9
      v11 --"up:mappedCitation"-->  v8
      bind5[/"count(?pm)"/]
      v11 --o bind5
      bind5 --as--o v12
    end
  end