17,519
edits
Line 435: | Line 435: | ||
} | } | ||
} | } | ||
</sparql> | |||
===Generate QuickStatements to create new parent taxon items for symbionts based on Wikidata mapping=== | |||
<sparql tryit="1"> | |||
PREFIX pp: <https://ppsdb.wikibase.cloud/entity/> | |||
PREFIX ppt: <https://ppsdb.wikibase.cloud/prop/direct/> | |||
SELECT DISTINCT ?qid ?Len ?P18 ?P2 | |||
WITH { | |||
SELECT DISTINCT ?symb ?symbLabel ?wditem | |||
WHERE { | |||
?host ppt:P19 ?symb. | |||
FILTER NOT EXISTS { ?symb ppt:P29 ?parent. } | |||
?symb ppt:P2 ?wditem. | |||
?symb rdfs:label ?symbLabel. | |||
} | |||
} AS %in | |||
WHERE { | |||
INCLUDE %in | |||
SERVICE <https://query.wikidata.org/sparql> { | |||
?wditem wdt:P171 ?wdparent. | |||
?wdparent rdfs:label ?wdparentlabel. | |||
FILTER ( LANG(?wdparentlabel) = "en" ) | |||
} | |||
# Check that a parent taxon item with the same wikidata mapping | |||
# does not already exist | |||
FILTER NOT EXISTS { ?qid ppt:P2 ?wdparent } | |||
BIND (CONCAT('"', STR(?wdparent), '"') as ?P2) | |||
BIND (STR("Q1488") AS ?P18) # instance of higher taxon | |||
BIND (?wdparentlabel as ?Len) | |||
} ORDER BY ?Len | |||
</sparql> | |||
===Generate QuickStatements to link symbiont items to their parent taxa based on Wikidata mappings=== | |||
<sparql tryit="1"> | |||
PREFIX pp: <https://ppsdb.wikibase.cloud/entity/> | |||
PREFIX ppt: <https://ppsdb.wikibase.cloud/prop/direct/> | |||
SELECT DISTINCT ?qid ?P29 | |||
WITH { | |||
SELECT DISTINCT ?symb ?symbLabel ?wditem ?qid | |||
WHERE { | |||
?host ppt:P19 ?symb. | |||
FILTER NOT EXISTS { ?symb ppt:P29 ?parent. } | |||
?symb ppt:P2 ?wditem. | |||
?symb rdfs:label ?symbLabel. | |||
BIND (ENCODE_FOR_URI(REPLACE(STR(?symb), ".*Q", "Q")) AS ?qid) | |||
} | |||
} AS %in | |||
WHERE { | |||
INCLUDE %in | |||
SERVICE <https://query.wikidata.org/sparql> { | |||
?wditem wdt:P171 ?wdparent. | |||
?wdparent rdfs:label ?wdparentlabel. | |||
FILTER ( LANG(?wdparentlabel) = "en" ) | |||
} | |||
OPTIONAL { | |||
?parent ppt:P2 ?wdparent. | |||
?parent rdfs:label ?parentLabel. | |||
BIND (ENCODE_FOR_URI(REPLACE(STR(?parent), ".*Q", "Q")) AS ?P29) | |||
} | |||
} ORDER BY ?Len | |||
</sparql> | </sparql> | ||