sparql-examples

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

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

examples019

rq turtle/ttl

A list of interactions depicting connections between parasatoids harmful for insects living as parasites on plants.

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 dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?parasitoidX_WD ?parasitoidName ?intxn2Label ?parasiteX_WD ?parasiteName ?intxn3Label ?hostPlant_WD ?hostPlantName ?study2_DOI ?study3_DOI WHERE {
	# part-1 interaction data parasite and parasitoid
	{ 
		SELECT DISTINCT ?parasitoidName ?parasiteName ?parasiteX_WD ?intxn2Label ?parasitoidX_WD ?study2_DOI WHERE {
			?intxn2 emi:hasSource ?parasitoidX ; # retrieve interaction pairs part-1
	    			emi:hasTarget ?parasiteX ;
	    			emi:isClassifiedWith ?intxnName2 .   
			VALUES ?intxnName2 { <http://purl.obolibrary.org/obo/RO_0002208> } # keep interactions only if the interaction-id is RO_0002208 (parasitoidOf), e.g: 'parasitoidX' is 'parasitoidOf' 'parasiteX'
			?intxnName2 rdfs:label ?intxn2Label .		
			?parasitoidX emi:inTaxon ?parasitoidX_WD ; # retreieve wikidata-ids for parasitoidX
			     	rdfs:label ?parasitoidName ;
			     	sosa:isSampleOf ?parasitoidSample . # retrieve scientific name of parasitoidX as listed in GloBI
			?parasiteX emi:inTaxon ?parasiteX_WD ; # retreieve wikidata-ids for parasiteX
				rdfs:label ?parasiteName ;
				sosa:isSampleOf ?parasiteSample . # retreieve scientific name for parasiteX as listed in GloBI
			OPTIONAL { 
				?intxn2 dcterms:bibliographicCitation ?study2_DOI . # optionally retrieve the doi of the study for parasitoid-parasite pairs
			}
		}
	}

	# part-2 interaction data parasite and host plant
	?parasiteX1 emi:inTaxon ?parasiteX_WD .	# check pasarsiteX1 is in wikidata-id parasiteX_WD (the ones obtained from interaction-pairs part-1)
	?intxn3 emi:hasSource ?parasiteX1 ; # retrieve interaction pairs part-2
    		emi:hasTarget ?hostPlant ;
    		emi:isClassifiedWith ?intxnName3 .
	?intxnName3 rdfs:label ?intxn3Label .
	?hostPlant emi:inTaxon ?hostPlant_WD ;	# retreieve wikidata-ids for hostPlant
		rdfs:label ?hostPlantName ;
		sosa:isSampleOf ?hostPlantSample . # retreieve scientific name for hostPlant as listed in GloBI
	OPTIONAL { 
		?intxn3 dcterms:bibliographicCitation ?study3_DOI . 
	}
    	FILTER (!(STR(?intxn3Label) IN ('visits', 'visitsFlowersOf', 'pollinates')))	# keep interactions only if the interaction-names are not 'visits', 'visitsFlowersOf' or 'pollinates'. e.g.: 'parasiteX1' is 'pathogenOf/parasiteOf/..' 'hostPlant'
	SERVICE <https://qlever.cs.uni-freiburg.de/api/wikidata> {
	 	?hostPlant_WD wdt:P171* wd:Q879246 . # keep the interaction pairs part-2 only if hostPlant_WD has Kingdom Archaeplastida (wd:Q879246) in its lineage, this is to ensure the hostPlant is really a plant
	}
} LIMIT 1000
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v16("?hostPlant")
  v19("?hostPlantName"):::projected 
  v20("?hostPlantSample")
  v18("?hostPlant_WD"):::projected 
  v2("?intxn2")
  v6("?intxn2Label"):::projected 
  v15("?intxn3")
  v1("?intxn3Label"):::projected 
  v6("?intxnName2")
  v17("?intxnName3")
  v11("?parasiteName"):::projected 
  v12("?parasiteSample")
  v4("?parasiteX")
  v14("?parasiteX1")
  v10("?parasiteX_WD"):::projected 
  v8("?parasitoidName"):::projected 
  v9("?parasitoidSample")
  v3("?parasitoidX")
  v7("?parasitoidX_WD"):::projected 
  v13("?study2_DOI"):::projected 
  v21("?study3_DOI"):::projected 
  c13(["wd:Q879246"]):::iri 
  list0c1(["visits"]):::literal 
  list0c3(["pollinates"]):::literal 
  list0c2(["visitsFlowersOf"]):::literal 
  list0c1 --o f0
  list0c2 --o f0
  list0c3 --o f0
  f0[["not  in "]]
  f0 --> v1
  v2 --"emi:hasSource"-->  v3
  v2 --"emi:hasTarget"-->  v4
  v2 --"emi:isClassifiedWith"-->  v6
  bind1[/VALUES ?intxnName2/]
  bind1-->v6
  bind10([http://purl.obolibrary.org/obo/RO_0002208])
  bind10 --> bind1
  v6 --"rdfs:label"-->  v6
  v3 --"emi:inTaxon"-->  v7
  v3 --"rdfs:label"-->  v8
  v3 --"sosa:isSampleOf"-->  v9
  v4 --"emi:inTaxon"-->  v10
  v4 --"rdfs:label"-->  v11
  v4 --"sosa:isSampleOf"-->  v12
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    v2 -."dcterms:bibliographicCitation".->  v13
  end
  v14 --"emi:inTaxon"-->  v10
  v15 --"emi:hasSource"-->  v14
  v15 --"emi:hasTarget"-->  v16
  v15 --"emi:isClassifiedWith"-->  v17
  v17 --"rdfs:label"-->  v1
  v16 --"emi:inTaxon"-->  v18
  v16 --"rdfs:label"-->  v19
  v16 --"sosa:isSampleOf"-->  v20
  subgraph optional1["(optional)"]
  style optional1 fill:#bbf,stroke-dasharray: 5 5;
    v15 -."dcterms:bibliographicCitation".->  v21
  end
  subgraph s1["https://qlever.cs.uni-freiburg.de/api/wikidata"]
    style s1 stroke-width:4px;
    v18 --"wdt:P171"-->  c13
  end