sparql-examples

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

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

examples014

rq turtle/ttl

List traits (and their values) of plants producing Diterpenoids

Use at

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX emi: <https://purl.org/emi#>
PREFIX sosa: <http://www.w3.org/ns/sosa/>
PREFIX qudt: <https://qudt.org/2.1/schema/qudt#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>		
SELECT DISTINCT ?source_wdx ?sourceName ?tryDataLab ?tryDataVal ?unit ?unitComment WHERE {
	# metabolite data
	{
		SELECT DISTINCT ?source_wdx WHERE {						
			?material sosa:hasSample ?extract ;
		        	sosa:isSampleOf ?organe .
		        ?organe emi:inTaxon ?source_wdx . # filter metabolite data which is found in wikidata-ids wdx
		        ?extract sosa:isFeatureOfInterestOf ?lcms .
		        ?lcms sosa:hasResult ?feature_list .
		        ?feature_list emi:hasLCMSFeature ?feature .
		        ?feature emi:hasAnnotation ?sirius_annotation .
		        ?sirius_annotation a emi:StructuralAnnotation ;
		        	emi:hasChemicalStructure ?ik2d .
		        ?ik2d emi:hasSMILES ?smiles ;
		        	emi:isInChIKey2DOf ?ik ;
		                emi:hasClass ?npcClass .
			?npcClass skos:broader ?npcSuperClass .
		        ?ik emi:isInChIKeyOf ?wd_chem .	# wikidata-ids for metabolites
			FILTER (REGEX(STR(?npcSuperClass), 'DITERPENOIDS'))
		}
	} UNION	#union with data from lotus (integrated in wikidata)
	{ 
		SERVICE <https://qlever.cs.uni-freiburg.de/api/wikidata> {
			?wd_chem wdt:P235 ?structure_inchikey ;
				((wdt:P31|wdt:P279)/(wdt:P279*)) wd:Q47006367 ;	# check if the class/superclass of the chemical is Diterpenoids
   				wdt:P703 ?source_wdx .
		}
	}
	# trait data 	        
	?trySpName emi:inTaxon ?wdx .						
	?trySpObs sosa:isSampleOf ?trySpName ; # trait/non-trait data for trySpName (scientific name of plant species as listed in trydb)
		rdfs:label ?sourceName ;
		sosa:isFeatureOfInterestOf ?tryObId .
	?trySpName emi:inTaxon ?source_wdx . # wikidata-ids wdx for trySpName matching the one from metabolite queries 
	?tryObId sosa:hasResult ?tryData .
	?tryData rdfs:label ?tryDataLab ;
		rdf:type emi:Trait ; # retrieve data which is labelled as 'Trait' and its values
		rdf:value ?tryDataVal ;
		qudt:hasUnit ?unit ; 
		rdfs:comment ?unitComment . # original units for Trait data as listed in trydb
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v3("?extract")
  v8("?feature")
  v7("?feature_list")
  v12("?ik")
  v10("?ik2d")
  v6("?lcms")
  v2("?material")
  v13("?npcClass")
  v1("?npcSuperClass")
  v4("?organe")
  v9("?sirius_annotation")
  v11("?smiles")
  v19("?sourceName"):::projected 
  v5("?source_wdx"):::projected 
  v15("?structure_inchikey")
  v21("?tryData")
  v22("?tryDataLab"):::projected 
  v23("?tryDataVal"):::projected 
  v20("?tryObId")
  v16("?trySpName")
  v18("?trySpObs")
  v24("?unit"):::projected 
  v25("?unitComment"):::projected 
  v14("?wd_chem")
  v17("?wdx")
  a1((" "))
  c24(["emi:Trait"]):::iri 
  c10(["emi:StructuralAnnotation"]):::iri 
  c21(["wd:Q47006367"]):::iri 
  subgraph union0[" Union "]
  subgraph union0l[" "]
    style union0l fill:#abf,stroke-dasharray: 3 3;
    subgraph s1["https://qlever.cs.uni-freiburg.de/api/wikidata"]
      style s1 stroke-width:4px;
      v14 --"wdt:P235"-->  v15
      subgraph union1[" Union "]
      subgraph union1l[" "]
        style union1l fill:#abf,stroke-dasharray: 3 3;
        v14 --"wdt:P279"-->  a1
      end
      subgraph union1r[" "]
        style union1r fill:#abf,stroke-dasharray: 3 3;
        v14 --"wdt:P31"-->  a1
      end
      union1r <== or ==> union1l
      end
      a1 --"wdt:P279"-->  c21
      v14 --"wdt:P703"-->  v5
    end
  end
  subgraph union0r[" "]
    style union0r fill:#abf,stroke-dasharray: 3 3;
    f0[["regex(str(?npcSuperClass),'DITERPENOIDS')"]]
    f0 --> v1
    v2 --"sosa:hasSample"-->  v3
    v2 --"sosa:isSampleOf"-->  v4
    v4 --"emi:inTaxon"-->  v5
    v3 --"sosa:isFeatureOfInterestOf"-->  v6
    v6 --"sosa:hasResult"-->  v7
    v7 --"emi:hasLCMSFeature"-->  v8
    v8 --"emi:hasAnnotation"-->  v9
    v9 --"a"-->  c10
    v9 --"emi:hasChemicalStructure"-->  v10
    v10 --"emi:hasSMILES"-->  v11
    v10 --"emi:isInChIKey2DOf"-->  v12
    v10 --"emi:hasClass"-->  v13
    v13 --"skos:broader"-->  v1
    v12 --"emi:isInChIKeyOf"-->  v14
  end
  union0r <== or ==> union0l
  end
  v16 --"emi:inTaxon"-->  v17
  v18 --"sosa:isSampleOf"-->  v16
  v18 --"rdfs:label"-->  v19
  v18 --"sosa:isFeatureOfInterestOf"-->  v20
  v16 --"emi:inTaxon"-->  v5
  v20 --"sosa:hasResult"-->  v21
  v21 --"rdfs:label"-->  v22
  v21 --"a"-->  c24
  v21 --"rdf:value"-->  v23
  v21 --https://qudt.org/2.1/schema/qudt#hasUnit-->  v24
  v21 --"rdfs:comment"-->  v25