From db6ec4ea320164f3ec8cd277f755b4906813cf62 Mon Sep 17 00:00:00 2001 From: mdrishti <49712124+mdrishti@users.noreply.github.com> Date: Fri, 17 Jan 2025 20:59:29 +0100 Subject: [PATCH 01/17] added new queries that work with globi-trydb graph --- examples/dbgi/011a.ttl | 45 ++++++++++++++++++++++ examples/dbgi/011b.ttl | 36 ++++++++++++++++++ examples/dbgi/012.ttl | 58 ++++++++++++++++++++++++++++ examples/dbgi/013.ttl | 62 ++++++++++++++++++++++++++++++ examples/dbgi/015.ttl | 61 ++++++++++++++++++++++++++++++ examples/dbgi/018.ttl | 58 ++++++++++++++++++++++++++++ examples/dbgi/019a.ttl | 63 +++++++++++++++++++++++++++++++ examples/dbgi/019b.ttl | 85 ++++++++++++++++++++++++++++++++++++++++++ examples/dbgi/021.ttl | 58 ++++++++++++++++++++++++++++ 9 files changed, 526 insertions(+) create mode 100644 examples/dbgi/011a.ttl create mode 100644 examples/dbgi/011b.ttl create mode 100644 examples/dbgi/012.ttl create mode 100644 examples/dbgi/013.ttl create mode 100644 examples/dbgi/015.ttl create mode 100644 examples/dbgi/018.ttl create mode 100644 examples/dbgi/019a.ttl create mode 100644 examples/dbgi/019b.ttl create mode 100644 examples/dbgi/021.ttl diff --git a/examples/dbgi/011a.ttl b/examples/dbgi/011a.ttl new file mode 100644 index 000000000..09ccb3929 --- /dev/null +++ b/examples/dbgi/011a.ttl @@ -0,0 +1,45 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:011a a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "List interactions of all species which have an IUCN status (wdt:P141) of near threatened (wd:Q719675)."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """PREFIX emi: + PREFIX wd: + PREFIX sosa: + PREFIX dcterms: + PREFIX rdfs: + PREFIX wdt: + PREFIX rdf: + SELECT DISTINCT ?wdx_Source ?sourceNameURI ?intxnLabel ?intxnType ?wdx_Target ?targetNameURI WHERE { + { SELECT DISTINCT ?wdx_Target ?targetName ?sourceName ?wdx_Source ?intxnType WHERE { #first select the source-target interaction-pairs + ?intxn emi:hasSource ?source ; + emi:hasTarget ?target ; + emi:isClassifiedWith ?intxnType . #unidirectional interaction, e.g.: source-X hosts target target-Y + ?intxnType rdfs:label ?intxnLabel . + ?source emi:inTaxon ?wdx_Source ; #retrieve wikidata-id for source + sosa:isSampleOf ?sourceName . #scientific name of source as given in GloBI + ?target emi:inTaxon ?wdx_Target ; #retrieve wikidata-id for target + sosa:isSampleOf ?targetName . #scientific name of target as given in GloBI + }} + SERVICE { + { + ?wdx_Source wdt:P141 wd:Q719675 ; #filter source wikidata ids, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) and which is a plant + wdt:P171* wd:Q879246 . + } UNION + { + ?wdx_Target wdt:P141 wd:Q719675 ; #filter target wikidata ids, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) and which is a plant + wdt:P171* wd:Q879246 . + } + + } + BIND(REPLACE(STR(?sourceName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for scientific names of source-X + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + BIND(REPLACE(STR(?targetName), "%20", " ") AS ?targetNameX) #remove percent-encoding for scientific names of target-Y + BIND(IRI(?targetNameX) AS ?targetNameURI) + } +""" ; + schema:target . diff --git a/examples/dbgi/011b.ttl b/examples/dbgi/011b.ttl new file mode 100644 index 000000000..67e0c4e8a --- /dev/null +++ b/examples/dbgi/011b.ttl @@ -0,0 +1,36 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:011b a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "List interactions and traits of all species which have an IUCN status (wdt:P141) of near threatened (wd:Q719675)."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """PREFIX emi: + PREFIX wd: + PREFIX sosa: + PREFIX dcterms: + PREFIX rdfs: + PREFIX wdt: + PREFIX rdf: + PREFIX qudt: + + SELECT DISTINCT ?source_wd ?sourceNameURI ?tryDataLab ?tryDataVal ?unit ?unitComment WHERE { + + ?trySpObs sosa:isSampleOf ?source_trySpName ; #retrieve trait/non-trait data from trydb for trySpName (scientific name of plant species as listed in trydb) + sosa:isFeatureOfInterestOf ?tryObId . + ?source_trySpName emi:inTaxon ?source_wd . #retrieve wikidata-id for trySpName + ?tryObId sosa:hasResult ?tryData . + ?tryData rdfs:label ?tryDataLab ; + rdf:type emi:Trait ; #filter data which is labelled as "Trait" + rdf:value ?tryDataVal ; #retrieve values for Trait data + qudt:hasUnit ?unit . #retrieve units for Trait data + OPTIONAL {?tryData rdfs:comment ?unitComment .} #retrieve comments (containing original unprocessed unit information - necessary for understanding some data) for Trait data + SERVICE { + ?source_wd wdt:P141 wd:Q719675 ; #filter wikidata-ids for trySpName, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) + } + BIND(REPLACE(STR(?source_trySpName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for trySpName + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + }""" ; + schema:target . diff --git a/examples/dbgi/012.ttl b/examples/dbgi/012.ttl new file mode 100644 index 000000000..44928a327 --- /dev/null +++ b/examples/dbgi/012.ttl @@ -0,0 +1,58 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:012 a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "List all metabolites produced by species with near threatened (wd:Q719675) IUCN status (wdt:P141) and with values available (or greater than a specific value) for trait 'Seed dry mass'."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """PREFIX emi: + PREFIX wd: + PREFIX rdfs: + PREFIX enpkg: + PREFIX rdf: + PREFIX wdt: + PREFIX sosa: + PREFIX dcterms: + PREFIX xsd: + + SELECT DISTINCT ?structure_inchikey ?wd_chem ?source_wdx ?sourceNameURI WHERE { + + ?trySpObs sosa:isSampleOf ?trySpName ; #retrieve trait/non-trait data for trySpName (scientific name of plant species as listed in trydb) + sosa:isFeatureOfInterestOf ?tryObId . + ?tryObId sosa:hasResult ?tryData . + ?trySpName emi:inTaxon ?source_wdx . #retrieve wikidata-ids wdx for trySpName + ?tryData rdfs:label ?tryDataLab ; + rdf:type emi:Trait ; #retrieve data which is labelled as "Trait" + rdf:value ?tryDataVal . #retrieve values for Trait data + FILTER (?tryDataLab = "Seed dry mass" ) #filter on data label 'Seed dry mass' + FILTER (?tryDataVal >= 626) #filter on data value >= 626 + SERVICE { + ?source_wdx wdt:P141 wd:Q719675 . #filter wikidata-ids for trySpName, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) + } + BIND(REPLACE(STR(?trySpName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for scientific names of trySpName + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + + { SELECT ?source_wdx ?structure_inchikey ?wd_chem WHERE { #retrieve metabolite data + ?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 ?structure_inchikey . + ?structure_inchikey emi:isInChIKeyOf ?wd_chem . #retrieve wikidata-ids for metabolites + }} + UNION #union with data from lotus (integrated in wikidata) + { SERVICE { + ?wd_chem wdt:P235 ?structure_inchikey; + wdt:P703 ?source_wdx . + }} + } LIMIT 1000 + """ ; + schema:target . diff --git a/examples/dbgi/013.ttl b/examples/dbgi/013.ttl new file mode 100644 index 000000000..e26b31441 --- /dev/null +++ b/examples/dbgi/013.ttl @@ -0,0 +1,62 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:013 a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "## List traits (and their values) of plants producing Diterpenoids"@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ + PREFIX wd: + PREFIX wd: + PREFIX rdfs: + PREFIX enpkg: + PREFIX rdf: + PREFIX wdt: + PREFIX emi: + PREFIX sosa: + PREFIX dcterms: + PREFIX qudt: + PREFIX npc: + PREFIX skos: + + SELECT DISTINCT ?source_wdx ?sourceNameURI ?tryDataLab ?tryDataVal ?unit ?unitComment WHERE { + { SELECT DISTINCT ?source_wdx WHERE { #retrieve metabolite data + ?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 . #retrieve wikidata-ids for metabolites + FILTER (REGEX(STR(?npcSuperClass), "DITERPENOIDS")) + }} UNION #union with data from lotus (integrated in wikidata) + { SERVICE { + ?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 . + }} + + ?trySpName emi:inTaxon ?wdx . + ?trySpObs sosa:isSampleOf ?trySpName ; #retrieve trait/non-trait data for trySpName (scientific name of plant species as listed in trydb) + sosa:isFeatureOfInterestOf ?tryObId . + ?trySpName emi:inTaxon ?source_wdx . #retrieve wikidata-ids wdx for trySpName + ?tryObId sosa:hasResult ?tryData . + ?tryData rdfs:label ?tryDataLab ; + rdf:type emi:Trait ; #retrieve data which is labelled as "Trait" + rdf:value ?tryDataVal ; #retrieve values for Trait data + qudt:hasUnit ?unit ; #retrieve units for trait data + rdfs:comment ?unitComment . #retrieve original units for Trait data as listed in trydb + BIND(REPLACE(STR(?trySpName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for scientific names of trySpName + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + } +""" ; + schema:target . diff --git a/examples/dbgi/015.ttl b/examples/dbgi/015.ttl new file mode 100644 index 000000000..415933888 --- /dev/null +++ b/examples/dbgi/015.ttl @@ -0,0 +1,61 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:015 a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "## List metabolites of plants that interact with plant parasite moth Orgyia postica (wd:Q7102162) ."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ + PREFIX wd: + PREFIX rdfs: + PREFIX enpkg: + PREFIX rdf: + PREFIX wdt: + PREFIX emi: + PREFIX sosa: + PREFIX dcterms: + PREFIX wgs: + PREFIX prov: + + SELECT DISTINCT ?sourceWD ?sourceNameURI ?intxnName ?intxnLabel ?targetWD ?targetNameURI ?ik ?wd_chem + WHERE { + {SELECT DISTINCT ?sourceWD ?sourceName ?intxnName ?intxnLabel ?targetWD ?targetName WHERE { + + ?intxn emi:hasSource ?source ; #retrieve interaction-pairs + emi:hasTarget ?target ; + emi:isClassifiedWith ?intxnName . + ?target emi:inTaxon ?targetWD ; #retrieve wikidata-id for target plant + sosa:isSampleOf ?targetName . + ?source emi:inTaxon ?sourceWD ; #retrieve wikidata-id for source parasite + sosa:isSampleOf ?sourceName . + ?intxnName rdfs:label ?intxnLabel + VALUES ?sourceWD { wd:Q7102162 } #retain results only if the source-WD matches the wikidata-id of Orgyia postica + } + } + { SELECT DISTINCT ?targetWD ?ik ?wd_chem WHERE { + ?material sosa:hasSample ?extract ; + sosa:isSampleOf ?organe . + ?organe emi:inTaxon ?targetWD . #filter metabolite data which is found in wikidata-ids targetWD + ?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 . + ?ik emi:isInChIKeyOf ?wd_chem . #retrieve wikidata-ids for metabolites + }} UNION #union with data from lotus (integrated in wikidata) + { SERVICE { + ?wd_chem wdt:P235 ?ik ; + wdt:P703 ?targetWD . + }} + BIND(REPLACE(STR(?sourceName), "%20", " ") AS ?sourceNameX) #remove percent encodings from the sourceName + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + BIND(REPLACE(STR(?targetName), "%20", " ") AS ?targetNameX) #remove percent encodings from the targetName + BIND(IRI(?targetNameX) AS ?targetNameURI) + } +""" ; + schema:target . diff --git a/examples/dbgi/018.ttl b/examples/dbgi/018.ttl new file mode 100644 index 000000000..4769d5f5c --- /dev/null +++ b/examples/dbgi/018.ttl @@ -0,0 +1,58 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:018 a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "## List possible interactions of plants that can produce asimcin (wd:Q100138042), a cytotoxin."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ + PREFIX wd: + PREFIX rdfs: + PREFIX enpkg: + PREFIX rdf: + PREFIX wdt: + PREFIX emi: + PREFIX sosa: + PREFIX dcterms: + PREFIX wgs: + PREFIX prov: + PREFIX wd: + + SELECT DISTINCT ?sourceWD ?sourceNameURI ?intxnName ?targetWD ?targetNameURI WHERE { + { SELECT DISTINCT ?wd_chem WHERE { #retrieve metabolite data for sourceWD + ?material sosa:hasSample ?extract ; + sosa:isSampleOf ?organe . + ?organe emi:inTaxon ?sourceWD . + ?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 . + ?ik emi:isInChIKeyOf ?wd_chem . #retrieve wikidats-ids for metabolites + VALUES ?wd_chem { wd:Q100138042 } #filter on wikidata-id of asimicin + }} UNION #union with results from lotus (integrated in wikidata) + { SERVICE { + ?wd_chem wdt:P235 ?ik ; + wdt:P703 ?sourceWD . + VALUES ?wd_chem { wd:Q100138042 } + }} + + ?intxn emi:hasSource ?xOrg ; #retrieve interaction-pairs + emi:hasTarget ?yOrg ; + emi:isClassifiedWith ?intxnName . + ?xOrg emi:inTaxon ?sourceWD ; #retrieve wikidata-id of the interaction-source + sosa:isSampleOf ?sourceName . #retrieve its scientific name as listed in GloBI + ?yOrg emi:inTaxon ?targetWD ; #retrieve wikidata-id of the interaction-target + sosa:isSampleOf ?targetName . #retrieve its scientific names as listed in GloBI + BIND(REPLACE(STR(?sourceName), "%20", " ") AS ?sourceNameX) #remove percent encodings from source and target names + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + BIND(REPLACE(STR(?targetName), "%20", " ") AS ?targetNameX) + BIND(IRI(?targetNameX) AS ?targetNameURI) + } LIMIT 1000 +""" ; + schema:target . diff --git a/examples/dbgi/019a.ttl b/examples/dbgi/019a.ttl new file mode 100644 index 000000000..94aba2366 --- /dev/null +++ b/examples/dbgi/019a.ttl @@ -0,0 +1,63 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:019a a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "## A list of interactions depicting connections between parasatoids harmful for insects living as parasites on plants."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ +PREFIX wd: +PREFIX rdfs: +PREFIX enpkg: +PREFIX rdf: +PREFIX wdt: +PREFIX emi: +PREFIX sosa: +PREFIX dcterms: +PREFIX wgs: +PREFIX prov: +PREFIX emiBox: +PREFIX wikibase: +PREFIX bd: + +SELECT DISTINCT ?parasitoidX_WD ?parasitoidNameURI ?intxn2Label ?parasiteX_WD ?parasiteNameURI ?intxn3Label ?hostPlant_WD ?hostPlantNameURI ?study1_DOI ?study2_DOI +WHERE { + { SELECT DISTINCT ?parasitoidName ?parasiteName ?parasiteX_WD ?intxn2Label ?parasitoidX_WD ?study1_DOI 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' + ?intxnName2 rdfs:label ?intxn2Label . + ?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 + OPTIONAL { + ?intxn2 dcterms:bibliographicCitation ?study1_DOI . #optionally retrieve the doi of the study for parasitoid-parasite pairs + } + }} + ?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 + OPTIONAL { + ?intxn3 dcterms:bibliographicCitation ?study2_DOI . + } + 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 { + ?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) +} LIMIT 1000 +""" ; + schema:target . diff --git a/examples/dbgi/019b.ttl b/examples/dbgi/019b.ttl new file mode 100644 index 000000000..946e906fc --- /dev/null +++ b/examples/dbgi/019b.ttl @@ -0,0 +1,85 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:019b a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "## A list of chemicals produced by parasatoids harmful for insects living as parasites on livestock feed plant Achillea millefolium (wd:Q25408) Archaeplastida: Q879246)."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ +PREFIX wd: +PREFIX rdfs: +PREFIX enpkg: +PREFIX rdf: +PREFIX wdt: +PREFIX emi: +PREFIX sosa: +PREFIX dcterms: +PREFIX wgs: +PREFIX prov: +PREFIX emiBox: +PREFIX wikibase: +PREFIX bd: + +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 { + ?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 + + { SELECT DISTINCT ?hostPlant_WD ?wd_chem ?structure_inchikey ?npcClass WHERE { #retrieve metabolite data + ?material sosa:hasSample ?extract ; + sosa:isSampleOf ?organe . + ?organe emi:inTaxon ?hostPlant_WD . #filter metabolite data which is found in wikidata-ids oh the host plant + ?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 ?structure_inchikey ; + emi:hasClass ?npcClass . + ?structure_inchikey emi:isInChIKeyOf ?wd_chem . #retrieve wikidata-ids for metabolites + FILTER (REGEX(STR(?npcClass), "TERPEN")) #keep if the class of metabolite is terpenes matches "TERPEN" + }} UNION #union with data from lotus (integrated in wikidata) + { SERVICE { + ?wd_chem wdt:P235 ?structure_inchikey ; + wdt:P703 ?hostPlant_WD ; + ((wdt:P31|wdt:P279)/(wdt:P279*)) ?class . #retrieve the class of the metabolite + VALUES ?class { wd:Q212364 wd:Q426694 } #keep if the class of metabolite is terpenes (wd:Q212364) or terpenoids(wd:Q426694) + }} +} +""" ; + schema:target . diff --git a/examples/dbgi/021.ttl b/examples/dbgi/021.ttl new file mode 100644 index 000000000..feb7f4fce --- /dev/null +++ b/examples/dbgi/021.ttl @@ -0,0 +1,58 @@ +@prefix ex: . +@prefix rdfs: . +@prefix schema: . +@prefix sh: . + +ex:021 a sh:SPARQLExecutable, + sh:SPARQLSelectExecutable ; + rdfs:comment "Natural producers (and their interactions that might be useful in agriculture) of Onpordopicrin (wd:Q27107580), which might exhibit antimicrobial and cytotoxic activities, especially against human-derived macrophages and against epidermoid carcinoma cells. There is limited scientific evidence to support these claims (https://www.sciencedirect.com/science/article/abs/pii/S138614251500685X)."@en ; + sh:prefixes _:sparql_examples_prefixes ; + sh:select """ +PREFIX wd: +PREFIX rdfs: +PREFIX enpkg: +PREFIX rdf: +PREFIX wdt: +PREFIX emi: +PREFIX sosa: +PREFIX dcterms: +PREFIX wgs: +PREFIX prov: + +SELECT DISTINCT ?sourceWD ?sourceNameURI ?intxnName ?targetWD ?targetNameURI ?loc WHERE { + ?intxn emi:hasSource ?xOrg ; #retrieve interaction-pairs + emi:hasTarget ?yOrg ; + emi:isClassifiedWith ?intxnName ; + prov:atLocation ?loc . #retrieve location of interactions + ?xOrg emi:inTaxon ?sourceWD ; #retrieve interaction-source and its scientific name as listed in GloBI + sosa:isSampleOf ?sourceName . + ?yOrg emi:inTaxon ?targetWD ; #retrieve interaction-target and its scientific name as listed in GloBI + sosa:isSampleOf ?targetName . + + { SELECT DISTINCT ?targetWD ?wd_chem WHERE { #retrieve metabolites + ?material sosa:hasSample ?extract ; + sosa:isSampleOf ?organe . + ?organe emi:inTaxon ?targetWD . #filter by target wikidata-id + ?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 . + ?ik emi:isInChIKeyOf ?wd_chem . + VALUES ?wd_chem { wd:Q27107580 } #filter on the wikidata-id of Onpordopicrin + }} UNION #union with the lotus metabolite data from wikidata + { SERVICE { + ?wd_chem wdt:P235 ?ik ; + wdt:P703 ?targetWD . + VALUES ?wd_chem { wd:Q27107580 } + }} + BIND(REPLACE(STR(?sourceName), "%20", " ") AS ?sourceNameX) #remove percent encodings of source and target scientific names + BIND(IRI(?sourceNameX) AS ?sourceNameURI) + BIND(REPLACE(STR(?targetName), "%20", " ") AS ?targetNameX) + BIND(IRI(?targetNameX) AS ?targetNameURI) +} +""" ; + schema:target . From fb18153e8e06148b91afc1f788ce46b6267edc32 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:12:53 +0100 Subject: [PATCH 02/17] Correct target and add federatedWith --- examples/dbgi/011a.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/011a.ttl b/examples/dbgi/011a.ttl index 09ccb3929..de116fbe6 100644 --- a/examples/dbgi/011a.ttl +++ b/examples/dbgi/011a.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:011a a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -42,4 +43,5 @@ ex:011a a sh:SPARQLExecutable, BIND(IRI(?targetNameX) AS ?targetNameURI) } """ ; - schema:target . + schema:target ; + spex:federatesWith . From 2dc29b3087e33d26aa55c190fab3db0c2cb943e5 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:14:04 +0100 Subject: [PATCH 03/17] Correct target --- examples/dbgi/011b.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dbgi/011b.ttl b/examples/dbgi/011b.ttl index 67e0c4e8a..60059b4f8 100644 --- a/examples/dbgi/011b.ttl +++ b/examples/dbgi/011b.ttl @@ -33,4 +33,4 @@ ex:011b a sh:SPARQLExecutable, BIND(REPLACE(STR(?source_trySpName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for trySpName BIND(IRI(?sourceNameX) AS ?sourceNameURI) }""" ; - schema:target . + schema:target . From b56838112265eba6fbde4e4f87536d28b0ef539a Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:15:29 +0100 Subject: [PATCH 04/17] Correct target and add federeatedWith --- examples/dbgi/012.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/012.ttl b/examples/dbgi/012.ttl index 44928a327..29a4f4bf1 100644 --- a/examples/dbgi/012.ttl +++ b/examples/dbgi/012.ttl @@ -55,4 +55,6 @@ ex:012 a sh:SPARQLExecutable, }} } LIMIT 1000 """ ; - schema:target . + schema:target ; + spex:federatesWith . + From 8f73c34ea8882f7f2d7a539ac08cf7454af8ead1 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:16:02 +0100 Subject: [PATCH 05/17] Add spex prefix --- examples/dbgi/012.ttl | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/dbgi/012.ttl b/examples/dbgi/012.ttl index 29a4f4bf1..77ff42774 100644 --- a/examples/dbgi/012.ttl +++ b/examples/dbgi/012.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:012 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; From 0ebee12e06cad2de4f84cdb083e61560e1a4fb43 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:17:51 +0100 Subject: [PATCH 06/17] Correct target and add federatedWith --- examples/dbgi/013.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/013.ttl b/examples/dbgi/013.ttl index e26b31441..7810aa83e 100644 --- a/examples/dbgi/013.ttl +++ b/examples/dbgi/013.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:013 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -59,4 +60,5 @@ ex:013 a sh:SPARQLExecutable, BIND(IRI(?sourceNameX) AS ?sourceNameURI) } """ ; - schema:target . + schema:target ; + spex:federatesWith . From c383f326012b56af76b9fbf344ffe3907208684d Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:18:25 +0100 Subject: [PATCH 07/17] Correct target and add federatedWith --- examples/dbgi/015.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/015.ttl b/examples/dbgi/015.ttl index 415933888..47b0305c3 100644 --- a/examples/dbgi/015.ttl +++ b/examples/dbgi/015.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:015 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -58,4 +59,5 @@ ex:015 a sh:SPARQLExecutable, BIND(IRI(?targetNameX) AS ?targetNameURI) } """ ; - schema:target . + schema:target ; + spex:federatesWith . From 2ee5e0252b6a961ebd67f4fd6f4f56ee60869347 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Mon, 20 Jan 2025 10:21:10 +0100 Subject: [PATCH 08/17] Correct target and federated with --- examples/dbgi/018.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/018.ttl b/examples/dbgi/018.ttl index 4769d5f5c..47b20b363 100644 --- a/examples/dbgi/018.ttl +++ b/examples/dbgi/018.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:018 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -55,4 +56,5 @@ ex:018 a sh:SPARQLExecutable, BIND(IRI(?targetNameX) AS ?targetNameURI) } LIMIT 1000 """ ; - schema:target . + schema:target ; + spex:federatesWith . From fad83aca1c8f9c4e74934318a7b3a3ae8052e7b5 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:14:19 +0100 Subject: [PATCH 09/17] Correct target --- examples/dbgi/019a.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dbgi/019a.ttl b/examples/dbgi/019a.ttl index 94aba2366..b63ad2d13 100644 --- a/examples/dbgi/019a.ttl +++ b/examples/dbgi/019a.ttl @@ -60,4 +60,4 @@ WHERE { BIND(IRI(?hostPlantNameX) AS ?hostPlantNameURI) } LIMIT 1000 """ ; - schema:target . + schema:target . From f41b637c7b5863851ab8411a5abb08fd0327e6ab Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:15:16 +0100 Subject: [PATCH 10/17] Correct target add federatedWith --- examples/dbgi/019b.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/019b.ttl b/examples/dbgi/019b.ttl index 946e906fc..c8a829df2 100644 --- a/examples/dbgi/019b.ttl +++ b/examples/dbgi/019b.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:019b a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -82,4 +83,5 @@ WHERE { }} } """ ; - schema:target . + schema:target ; + spex:federatesWith . From b80f0bd86d1aacd3411b6e8e03658cff26238855 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:16:18 +0100 Subject: [PATCH 11/17] Correct target, add federatesWith --- examples/dbgi/021.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/021.ttl b/examples/dbgi/021.ttl index feb7f4fce..36b3e7609 100644 --- a/examples/dbgi/021.ttl +++ b/examples/dbgi/021.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:021 a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -55,4 +56,5 @@ SELECT DISTINCT ?sourceWD ?sourceNameURI ?intxnName ?targetWD ?targetNameURI ?lo BIND(IRI(?targetNameX) AS ?targetNameURI) } """ ; - schema:target . + schema:target ; + spex:federatesWith . From 580daf344d5a522545db1fce58b84355fcbfc193 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:21:09 +0100 Subject: [PATCH 12/17] Add wgs, wd, wdt, prov prefixes --- examples/dbgi/prefixes.ttl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/dbgi/prefixes.ttl b/examples/dbgi/prefixes.ttl index c3779ea11..79467e35b 100644 --- a/examples/dbgi/prefixes.ttl +++ b/examples/dbgi/prefixes.ttl @@ -22,3 +22,19 @@ _:prefix_dbgi_enpkg sh:prefix "enpkg" ; _:dbgi_sparql_examples_prefixes sh:declare _:prefix_dbgi_npc . _:prefix_dbgi_npc sh:prefix "npc" ; sh:namespace "https://purl.org/npc#"^^xsd:anyURI . + +_:dbgi_sparql_examples_prefixes sh:declare _:prefix_dbgi_wgs . +_:prefix_dbgi_wgs sh:prefix "wgs" ; + sh:namespace "http://www.w3.org/2003/01/geo/wgs84_pos#"^^xsd:anyURI . + +_:dbgi_sparql_examples_prefixes sh:declare _:prefix_dbgi_wd . +_:prefix_dbgi_wd sh:prefix "wd" ; + sh:namespace "http://www.wikidata.org/entity/"^^xsd:anyURI . + +_:dbgi_sparql_examples_prefixes sh:declare _:prefix_dbgi_wdt . +_:prefix_dbgi_wdt sh:prefix "wdt" ; + sh:namespace "http://www.wikidata.org/prop/direct/"^^xsd:anyURI . + +_:dbgi_sparql_examples_prefixes sh:declare _:prefix_dbgi_prov . +_:prefix_dbgi_prov sh:prefix "prov" ; + sh:namespace "http://www.w3.org/ns/prov#"^^xsd:anyURI . From 55904334bac67e4e810ccd6c4a41f92b4b87c715 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:26:42 +0100 Subject: [PATCH 13/17] remove duplicated prefix --- examples/dbgi/013.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/dbgi/013.ttl b/examples/dbgi/013.ttl index 7810aa83e..9cfe4c05f 100644 --- a/examples/dbgi/013.ttl +++ b/examples/dbgi/013.ttl @@ -9,7 +9,6 @@ ex:013 a sh:SPARQLExecutable, rdfs:comment "## List traits (and their values) of plants producing Diterpenoids"@en ; sh:prefixes _:sparql_examples_prefixes ; sh:select """ - PREFIX wd: PREFIX wd: PREFIX rdfs: PREFIX enpkg: From 6a4f7eec9db5ce11c854d24d878da96d192b0ece Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:30:07 +0100 Subject: [PATCH 14/17] remove duplicated prefix --- examples/dbgi/018.ttl | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/dbgi/018.ttl b/examples/dbgi/018.ttl index 47b20b363..eaa66a6ac 100644 --- a/examples/dbgi/018.ttl +++ b/examples/dbgi/018.ttl @@ -19,7 +19,6 @@ ex:018 a sh:SPARQLExecutable, PREFIX dcterms: PREFIX wgs: PREFIX prov: - PREFIX wd: SELECT DISTINCT ?sourceWD ?sourceNameURI ?intxnName ?targetWD ?targetNameURI WHERE { { SELECT DISTINCT ?wd_chem WHERE { #retrieve metabolite data for sourceWD From bbb8f5d454e78cf10083b330400bf90c2a6d3dcc Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:36:11 +0100 Subject: [PATCH 15/17] Correct limit --- examples/dbgi/019b.ttl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/dbgi/019b.ttl b/examples/dbgi/019b.ttl index c8a829df2..01011de12 100644 --- a/examples/dbgi/019b.ttl +++ b/examples/dbgi/019b.ttl @@ -57,7 +57,7 @@ WHERE { VALUES ?hostPlant_WD { wd:Q25408 } #filter on the host plant Achillea millefolium wikidata-id - }} LIMIT 1000 + } LIMIT 1000} { SELECT DISTINCT ?hostPlant_WD ?wd_chem ?structure_inchikey ?npcClass WHERE { #retrieve metabolite data ?material sosa:hasSample ?extract ; From 14ef03640f6b96f745380deeedd541b75977fdf8 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:44:13 +0100 Subject: [PATCH 16/17] Correct service query and add federatesWith --- examples/dbgi/011b.ttl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/dbgi/011b.ttl b/examples/dbgi/011b.ttl index 60059b4f8..b1c8eed38 100644 --- a/examples/dbgi/011b.ttl +++ b/examples/dbgi/011b.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:011b a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -28,9 +29,10 @@ ex:011b a sh:SPARQLExecutable, qudt:hasUnit ?unit . #retrieve units for Trait data OPTIONAL {?tryData rdfs:comment ?unitComment .} #retrieve comments (containing original unprocessed unit information - necessary for understanding some data) for Trait data SERVICE { - ?source_wd wdt:P141 wd:Q719675 ; #filter wikidata-ids for trySpName, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) + ?source_wd wdt:P141 wd:Q719675 . #filter wikidata-ids for trySpName, which have IUCN status (wdt:P141) as near threatened (wd:Q719675) } BIND(REPLACE(STR(?source_trySpName), "%20", " ") AS ?sourceNameX) #remove percent-encoding for trySpName BIND(IRI(?sourceNameX) AS ?sourceNameURI) }""" ; - schema:target . + schema:target ; + spex:federatesWith . From 153ebf5762c0275caa0e6f78369c0ae7fb0b75f5 Mon Sep 17 00:00:00 2001 From: tarcisiotmf Date: Tue, 21 Jan 2025 17:45:13 +0100 Subject: [PATCH 17/17] Add federatesWith --- examples/dbgi/019a.ttl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/dbgi/019a.ttl b/examples/dbgi/019a.ttl index b63ad2d13..190575407 100644 --- a/examples/dbgi/019a.ttl +++ b/examples/dbgi/019a.ttl @@ -2,6 +2,7 @@ @prefix rdfs: . @prefix schema: . @prefix sh: . +@prefix spex: . ex:019a a sh:SPARQLExecutable, sh:SPARQLSelectExecutable ; @@ -60,4 +61,5 @@ WHERE { BIND(IRI(?hostPlantNameX) AS ?hostPlantNameURI) } LIMIT 1000 """ ; - schema:target . + schema:target ; + spex:federatesWith .