sparql-examples

A set of SPARQL examples that are used in different SIB resources

View the Project on GitHub sib-swiss/sparql-examples

128_list_EC_numbers_not_linked_to_UniProt_entries

rq turtle/ttl

list = EC numbers not linked to UniProt entries

Use at

PREFIX up:<http://purl.uniprot.org/core/>
PREFIX ec:<http://purl.uniprot.org/enzyme/>
PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>

SELECT
  (count(distinct ?ecNumber) as ?ecCount)
WHERE
{
  ?ecNumber rdfs:subClassOf up:Enzyme .
  FILTER (NOT EXISTS {?ecNumber up:obsolete true .} )
  FILTER (!regex(?ecNumber,'-')) .

  FILTER (NOT EXISTS {
    ?protein up:enzyme ?ecNumber .
    ?protein up:reviewed true .
  })
  FILTER (NOT EXISTS {
    ?protein up:domain/up:enzyme ?ecNumber .
    ?protein up:reviewed true .
  })
  FILTER (NOT EXISTS {
    ?protein up:reviewed true .
    ?protein up:component/up:enzyme ?ecNumber .
  })
}

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?ecCount")
  v2("?ecNumber"):::projected 
  v1("?protein")
  a2((" "))
  a1((" "))
  c9(["up:Enzyme"]):::iri 
  c2(["true^^xsd:boolean"]):::literal 
  f0[["not  "]]
  subgraph f0e0["Exists Clause"]
    e0v1 --"up:reviewed"-->  e0c2
    e0v1 --"up:component"-->  e0a1
    e0a1 --"up:enzyme"-->  e0v2
    e0v2("?ecNumber"):::projected 
    e0v1("?protein"):::projected 
    e0a1((" ")):::projected 
    e0c2(["true^^xsd:boolean"]):::literal 
  end
  f0--EXISTS--> f0e0
  f0 --> v1
  f0 --> c1
  f0 --> c2
  f0 --> c3
  f0 --> a1
  f0 --> c4
  f0 --> v2
  v1 --"up:reviewed"-->  c2
  v1 --"up:component"-->  a1
  a1 --"up:enzyme"-->  v2
  f1[["not  "]]
  subgraph f1e1["Exists Clause"]
    e1v1 --"up:domain"-->  e1a1
    e1a1 --"up:enzyme"-->  e1v2
    e1v1 --"up:reviewed"-->  e1c4
    e1v2("?ecNumber"):::projected 
    e1v1("?protein"):::projected 
    e1a1((" ")):::projected 
    e1c4(["true^^xsd:boolean"]):::literal 
  end
  f1--EXISTS--> f1e1
  f1 --> v1
  f1 --> c5
  f1 --> a2
  f1 --> c4
  f1 --> v2
  f1 --> c1
  f1 --> c2
  v1 --"up:domain"-->  a2
  a2 --"up:enzyme"-->  v2
  v1 --"up:reviewed"-->  c2
  f2[["not  "]]
  subgraph f2e2["Exists Clause"]
    e2v1 --"up:enzyme"-->  e2v2
    e2v1 --"up:reviewed"-->  e2c3
    e2v2("?ecNumber"):::projected 
    e2v1("?protein"):::projected 
    e2c3(["true^^xsd:boolean"]):::literal 
  end
  f2--EXISTS--> f2e2
  f2 --> v1
  f2 --> c4
  f2 --> v2
  f2 --> c1
  f2 --> c2
  v1 --"up:enzyme"-->  v2
  v1 --"up:reviewed"-->  c2
  f3[["not regex(?ecNumber,'-')"]]
  f3 --> v2
  f4[["not  "]]
  subgraph f4e3["Exists Clause"]
    e3v1 --"up:obsolete"-->  e3c2
    e3v1("?ecNumber"):::projected 
    e3c2(["true^^xsd:boolean"]):::literal 
  end
  f4--EXISTS--> f4e3
  f4 --> v2
  f4 --> c7
  f4 --> c2
  v2 --"up:obsolete"-->  c2
  v2 --"rdfs:subClassOf"-->  c9
  bind6[/"count(?ecNumber)"/]
  v2 --o bind6
  bind6 --as--o v3