A set of SPARQL examples that are used in different SIB resources
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