У меня есть список из 1200 географических объектов, таких как города, озера или горы в виде строк.Я хотел бы обогатить эти данные авторитетным файлом WikiData ID.Это работает, но в результате я иногда получаю более одного предложения WikiDataID.Мне нужно определить правильный по появлению страны в заявлениях.
В качестве примера я попробовал город Карлсруэ.Для строки «Карлсруэ» я получаю три результата.Но мне нужен только один конкретный идентификатор WikiData (в данном случае: https://www.wikidata.org/wiki/Q1040) с меткой и altLabel (также известный как) на немецком, английском и французском языках. В качестве условия сущность должна быть частью страны. Этовы можете определить по свойству P17 или как значение Q6256.
Есть ли способ просто запросить свойство без значения в Filter of the Query Helper?
Большое спасибо за вашhelp!
Вот запрос:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
prefix schema: <http://schema.org/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
SELECT DISTINCT ?country ?item ?itemLabel ?altLabel ?label_en ?
label_de ?label_fr
WHERE {
?item rdfs:label "Karlsruhe"@de.
?item skos:altLabel ?altLabel.
?item rdfs:label ?label_en.
?item rdfs:label ?label_de.
?item rdfs:label ?label_fr.
FILTER(LANGMATCHES(LANG(?altLabel), "de"))
FILTER((LANG(?label_en)) = "en")
FILTER((LANG(?label_de)) = "de")
FILTER((LANG(?label_fr)) = "fr")
SERVICE wikibase:label { bd:serviceParam wikibase:language "
[AUTO_LANGUAGE],de, en, fr". }
}