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 enpkg: <https://enpkg.commons-lab.org/kg/>
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/>
PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX emiBox: <https://purl.org/emi/abox#>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT DISTINCT ?wd_chem ?structure_inchikey ?parasitoidX_WD ?parasitoidNameURI ?parasiteX_WD ?parasiteNameURI ?intxn3Label ?hostPlant_WD ?hostPlantNameURI
WHERE {
{SELECT DISTINCT ?parasitoidX_WD ?parasitoidNameURI ?parasiteX_WD ?parasiteNameURI ?intxn3Label ?hostPlant_WD ?hostPlantNameURI
WHERE {
{SELECT DISTINCT ?parasitoidName ?parasiteName ?parasiteX_WD ?parasitoidX_WD WHERE {
?intxn2 emi:hasSource ?parasitoidX ; #retrieve interaction pairs part-1
emi:hasTarget ?parasiteX ;
emi:isClassifiedWith ?intxnName2 .
FILTER (REGEX(STR(?intxnName2), "RO_0002208")) #keep interactions only if the interaction-id is RO_0002208 (parasitoidOf), e.g: 'parasitoidX' is 'parasitoidOf' 'parasiteX'
?parasitoidX emi:inTaxon ?parasitoidX_WD ; #retreieve wikidata-ids for parasitoidX
sosa:isSampleOf ?parasitoidName . #retrieve scientific name of parasitoidX as listed in GloBI
?parasiteX emi:inTaxon ?parasiteX_WD ; #retreieve wikidata-ids for parasiteX
sosa:isSampleOf ?parasiteName . #retreieve scientific name for parasiteX as listed in GloBI
}}
?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
sosa:isSampleOf ?hostPlantName . #retreieve scientific name for hostPlant as listed in GloBI
FILTER (!(?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
}
BIND(REPLACE(STR(?parasiteName), "%20", " ") AS ?parasiteNameX) #remove percent encodings from parasite scientific name
BIND(IRI(?parasiteNameX) AS ?parasiteNameURI)
BIND(REPLACE(STR(?parasitoidName), "%20", " ") AS ?parasitoidNameX) #remove percent encodings from parasitoid scientific name
BIND(IRI(?parasitoidNameX) AS ?parasitoidNameURI)
BIND(REPLACE(STR(?hostPlantName), "%20", " ") AS ?hostPlantNameX) #remove percent encodings from hostPlant scientific name
BIND(IRI(?hostPlantNameX) AS ?hostPlantNameURI)
VALUES ?hostPlant_WD { wd:Q25408 } #filter on the host plant Achillea millefolium wikidata-id
} LIMIT 1000}
{ SERVICE <https://qlever.cs.uni-freiburg.de/api/wikidata> { #get metabolites and their inchikey from lotus (integrated in wikidata)
?wd_chem wdt:P235 ?structure_inchikey ;
wdt:P703 ?parasitoidX_WD .
}}
}
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v12("?hostPlant")
v15("?hostPlantName")
v21("?hostPlantNameURI"):::projected
v20("?hostPlantNameX")
v22("?hostPlant_WD"):::projected
v3("?intxn2")
v11("?intxn3")
v1("?intxn3Label"):::projected
v2("?intxnName2")
v13("?intxnName3")
v9("?parasiteName")
v17("?parasiteNameURI"):::projected
v16("?parasiteNameX")
v5("?parasiteX")
v10("?parasiteX1")
v8("?parasiteX_WD"):::projected
v7("?parasitoidName")
v19("?parasitoidNameURI"):::projected
v18("?parasitoidNameX")
v4("?parasitoidX")
v6("?parasitoidX_WD"):::projected
v23("?structure_inchikey"):::projected
v22("?wd_chem"):::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
f1[["regex(str(?intxnName2),'RO_0002208')"]]
f1 --> v2
v3 --"emi:hasSource"--> v4
v3 --"emi:hasTarget"--> v5
v3 --"emi:isClassifiedWith"--> v2
v4 --"emi:inTaxon"--> v6
v4 --"sosa:isSampleOf"--> v7
v5 --"emi:inTaxon"--> v8
v5 --"sosa:isSampleOf"--> v9
v10 --"emi:inTaxon"--> v8
v11 --"emi:hasSource"--> v10
v11 --"emi:hasTarget"--> v12
v11 --"emi:isClassifiedWith"--> v13
v13 --"rdfs:label"--> v1
v12 --"emi:inTaxon"--> v22
v12 --"sosa:isSampleOf"--> v15
subgraph s1["https://qlever.cs.uni-freiburg.de/api/wikidata"]
style s1 stroke-width:4px;
v22 --"wdt:P171"--> c13
end
bind2[/"replace(str(?parasiteName),'%20',' ')"/]
v9 --o bind2
bind2 --as--o v16
bind3[/"?parasiteNameX"/]
v16 --o bind3
bind3 --as--o v17
bind4[/"replace(str(?parasitoidName),'%20',' ')"/]
v7 --o bind4
bind4 --as--o v18
bind5[/"?parasitoidNameX"/]
v18 --o bind5
bind5 --as--o v19
bind6[/"replace(str(?hostPlantName),'%20',' ')"/]
v15 --o bind6
bind6 --as--o v20
bind7[/"?hostPlantNameX"/]
v20 --o bind7
bind7 --as--o v21
bind8[/VALUES ?hostPlant_WD/]
bind8-->v22
bind80(["wd:Q25408"])
bind80 --> bind8
subgraph s1["https://qlever.cs.uni-freiburg.de/api/wikidata"]
style s1 stroke-width:4px;
v22 --"wdt:P235"--> v23
v22 --"wdt:P703"--> v6
end