sparql-examples

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

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

examples018

rq turtle/ttl

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 dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?parasiteX_WD ?parasiteName ?intxn1Label ?allelopathX_WD ?allelopathName ?intxn2Label ?agriCrop_WD ?agriCropName ?intxn3Label ?study1_DOI ?study2_DOI ?study3_DOI WHERE {
	
	#part-1 interactions for parasite that negatively effects a plant or an agricultural crop
	?parasiteX1 emi:inTaxon ?parasiteX_WD . # parasite and its WD
	?agriCropX emi:inTaxon ?agriCrop_WD . # agricultural crop and its WD
	?intxn1 emi:hasSource ?parasiteX1 ; # retrieve interaction pairs part-1
    		emi:hasTarget ?agriCropX ;
    		emi:isClassifiedWith ?intxnName1 .
	?intxnName1 rdfs:label ?intxn1Label .
	# filter the interactions either by FILTER (interaction label) or VALUES (interaction ID)
	FILTER ((STR(?intxn1Label) IN ('hasHost','rootparasiteOf', 'hemiparasiteOf', 'hyperparasiteOf','rootparasiteOf','endoparasiteOf','ectoparasiteOf')))
	# VALUES ?intxnName1 { <http://purl.obolibrary.org/obo/RO_0002454> <http://purl.obolibrary.org/obo/RO_0002632> <http://purl.obolibrary.org/obo/RO_0002634> <http://purl.obolibrary.org/obo/RO_0002237> <http://purl.obolibrary.org/obo/RO_0002553> <http://purl.obolibrary.org/obo/RO_0008503> <http://purl.obolibrary.org/obo/RO_0002444> <http://purl.obolibrary.org/obo/RO_0002236> }
    	OPTIONAL { 
		?intxn1 dcterms:bibliographicCitation ?study1_DOI . 
	}

	# part-2 interactions for allelopath that impacts a plant or an agricultural crop
	{
		SELECT * WHERE { 
			?allelopathX1 emi:inTaxon ?allelopathX_WD . #allelopath and its WD
			?intxn2 emi:hasSource ?allelopathX1 ; #retrieve interaction pairs part-2
    				emi:hasTarget ?agriCrop ;
    				emi:isClassifiedWith ?intxnName2 .
			?intxnName2 rdfs:label ?intxn2Label .
			VALUES ?intxnName2 { <http://purl.obolibrary.org/obo/RO_0002555> } # filter interactions which have interaction ID of allelopathOf
			?agriCrop emi:inTaxon ?agriCrop_WD ; # retreieve agriCrop and its WD
	           		rdfs:label ?agriCropName .
    			OPTIONAL { 
				?intxn2 dcterms:bibliographicCitation ?study2_DOI . 
			}
			SERVICE <https://qlever.cs.uni-freiburg.de/api/wikidata> {
	 			?agriCrop_WD wdt:P171* wd:Q879246 . # keep the interaction pairs part-2 only if agriCrop_WD has Kingdom Archaeplastida (wd:Q879246) in its lineage, this is to ensure the agriCrop is really a plant
			}
		}
	}

    	#part-3 interactions for parasite that impacts the allelopath
	{
		SELECT * WHERE {
	    		?intxn3 emi:hasSource ?parasiteX ; # retrieve interaction pairs part-3
	    			emi:hasTarget ?allelopathX ;
	    			emi:isClassifiedWith ?intxnName3 . 
			?intxnName3 rdfs:label ?intxn3Label .
			# filter interactions by interaction label (hasHost and allelopathOf) or interaction ID
	    		FILTER (STR(?intxn3Label) IN ('hasHost','hasAllelopath'))
			# VALUES ?intxnName3 { <http://purl.obolibrary.org/obo/RO_0020301> <http://purl.obolibrary.org/obo/RO_0002454> }
			?parasiteX emi:inTaxon ?parasiteX_WD ; # retreieve wikidata-ids for parasiteX
				rdfs:label ?parasiteName .
			?allelopathX emi:inTaxon ?allelopathX_WD ; # retreieve wikidata-ids for allelopathX
				rdfs:label ?allelopathName .
			OPTIONAL { 
				?intxn3 dcterms:bibliographicCitation ?study3_DOI . 
	    		}
		}
	}
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v12("?agriCrop")
  v15("?agriCropName"):::projected 
  v4("?agriCropX")
  v5("?agriCrop_WD"):::projected 
  v23("?allelopathName"):::projected 
  v20("?allelopathX")
  v9("?allelopathX1")
  v10("?allelopathX_WD"):::projected 
  v6("?intxn1")
  v1("?intxn1Label"):::projected 
  v11("?intxn2")
  v14("?intxn2Label"):::projected 
  v18("?intxn3")
  v17("?intxn3Label"):::projected 
  v7("?intxnName1")
  v15("?intxnName2")
  v21("?intxnName3")
  v22("?parasiteName"):::projected 
  v19("?parasiteX")
  v2("?parasiteX1")
  v3("?parasiteX_WD"):::projected 
  v8("?study1_DOI"):::projected 
  v16("?study2_DOI"):::projected 
  v24("?study3_DOI"):::projected 
  c15(["wd:Q879246"]):::iri 
  list0c6(["ectoparasiteOf"]):::literal 
  list0c1(["hasHost"]):::literal 
  list0c2(["rootparasiteOf"]):::literal 
  list0c5(["endoparasiteOf"]):::literal 
  list0c3(["hemiparasiteOf"]):::literal 
  list0c4(["hyperparasiteOf"]):::literal 
  list0c1 --o f0
  list0c2 --o f0
  list0c3 --o f0
  list0c4 --o f0
  list0c2 --o f0
  list0c5 --o f0
  list0c6 --o f0
  f0[[" in "]]
  f0 --> v1
  v2 --"emi:inTaxon"-->  v3
  v4 --"emi:inTaxon"-->  v5
  v6 --"emi:hasSource"-->  v2
  v6 --"emi:hasTarget"-->  v4
  v6 --"emi:isClassifiedWith"-->  v7
  v7 --"rdfs:label"-->  v1
  subgraph optional0["(optional)"]
  style optional0 fill:#bbf,stroke-dasharray: 5 5;
    v6 -."dcterms:bibliographicCitation".->  v8
  end
  v9 --"emi:inTaxon"-->  v10
  v11 --"emi:hasSource"-->  v9
  v11 --"emi:hasTarget"-->  v12
  v11 --"emi:isClassifiedWith"-->  v15
  v15 --"rdfs:label"-->  v14
  bind1[/VALUES ?intxnName2/]
  bind1-->v15
  bind10([http://purl.obolibrary.org/obo/RO_0002555])
  bind10 --> bind1
  v12 --"emi:inTaxon"-->  v5
  v12 --"rdfs:label"-->  v15
  subgraph optional1["(optional)"]
  style optional1 fill:#bbf,stroke-dasharray: 5 5;
    v11 -."dcterms:bibliographicCitation".->  v16
  end
  subgraph s1["https://qlever.cs.uni-freiburg.de/api/wikidata"]
    style s1 stroke-width:4px;
    v5 --"wdt:P171"-->  c15
  end
  list1c1(["hasHost"]):::literal 
  list1c2(["hasAllelopath"]):::literal 
  list1c1 --o f2
  list1c2 --o f2
  f2[[" in "]]
  f2 --> v17
  v18 --"emi:hasSource"-->  v19
  v18 --"emi:hasTarget"-->  v20
  v18 --"emi:isClassifiedWith"-->  v21
  v21 --"rdfs:label"-->  v17
  v19 --"emi:inTaxon"-->  v3
  v19 --"rdfs:label"-->  v22
  v20 --"emi:inTaxon"-->  v10
  v20 --"rdfs:label"-->  v23
  subgraph optional2["(optional)"]
  style optional2 fill:#bbf,stroke-dasharray: 5 5;
    v18 -."dcterms:bibliographicCitation".->  v24
  end