sparql-examples

SPARQL examples for the EMI

View the Project on GitHub earth-metabolome-initiative/sparql-examples

metrics_1

rq turtle/ttl

Metrics for retrieving TRY species, trait and non-trait records.

Use at

PREFIX emi: <https://w3id.org/emi#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT 
  (COUNT(DISTINCT ?trySpName) AS ?speciesCount)
  (COUNT(DISTINCT ?traitData) AS ?traitCount)
  (COUNT(DISTINCT ?nonTraitData) AS ?nonTraitCount)
WHERE {
  ?trySpName emi:inTaxon ?wdx .						
  ?trySpObs sosa:isSampleOf ?trySpName ;
            sosa:isFeatureOfInterestOf ?tryObId .
  ?tryObId sosa:hasResult ?tryData .
  ?tryData rdfs:label ?tryDataLab ;
           rdf:value ?tryDataVal .

  # separate trait vs. non-trait
  OPTIONAL { ?tryData rdf:type emi:Trait     . BIND(?tryData AS ?traitData) }
  OPTIONAL { ?tryData rdf:type emi:NonTrait  . BIND(?tryData AS ?nonTraitData) }
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v12("?nonTraitCount")
  v9("?nonTraitData"):::projected 
  v10("?speciesCount")
  v11("?traitCount")
  v8("?traitData"):::projected 
  v5("?tryData")
  v6("?tryDataLab")
  v7("?tryDataVal")
  v4("?tryObId")
  v1("?trySpName"):::projected 
  v3("?trySpObs")
  v2("?wdx")
  c9(["emi:NonTrait"]):::iri 
  c8(["emi:Trait"]):::iri 
  v1 --"emi:inTaxon"-->  v2
  v3 --"sosa:isSampleOf"-->  v1
  v3 --"sosa:isFeatureOfInterestOf"-->  v4
  v4 --"sosa:hasResult"-->  v5
  v5 --"rdfs:label"-->  v6
  v5 --"rdf:value"-->  v7
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    v5 -."a".->  c8
    bind0[/"?tryData"/]
    v5 --o bind0
    bind0 --as--o v8
  end
  subgraph optional1["(optional)"]
  style optional1 fill:#bbf,stroke-dasharray: 5 5;
    v5 -."a".->  c9
    bind1[/"?tryData"/]
    v5 --o bind1
    bind1 --as--o v9
  end
  bind5[/"count(?trySpName)"/]
  v1 --o bind5
  bind5 --as--o v10
  bind6[/"count(?traitData)"/]
  v8 --o bind6
  bind6 --as--o v11
  bind7[/"count(?nonTraitData)"/]
  v9 --o bind7
  bind7 --as--o v12