如何将维基数据的结果过滤为特定语言
How to filter results of wikidata to specific language
我有一个获取所有大写字母的查询。 (首府城市)
SELECT DISTINCT ?Stadt ?label ?Staat ?StaatLabel ?geographische_Koordinaten ?StadtLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?Stadt wdt:P31 wd:Q5119.
?Stadt rdfs:label ?label.
OPTIONAL { ?Stadt wdt:P17 ?Staat. }
OPTIONAL { ?Stadt wdt:P625 ?geographische_Koordinaten. }
}
LIMIT 100
结果是:
wd:Q61 Washington D.C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Washington D. C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 واشنگٹن ڈی سی wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Washington D.C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 واشنګټن ډي سي wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Вашингтон wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 ওয়াশিংটন, ডি.সি. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
我得到了同一个城市的多种语言的许多结果。
如何过滤查询以便每个城市只获得一个带有英文标签的结果?
* 已更新 *
感谢您帮助 Stanislav。你回答了问题。我的新查询是:
SELECT DISTINCT ?Stadt ?label ?StadtLabel ?Staat ?StaatLabel ?geographische_Koordinaten WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
?Stadt wdt:P31 wd:Q5119.
?Stadt wdt:P17 ?Staat.
OPTIONAL { ?Stadt wdt:P625 ?geographische_Koordinaten. }
}
LIMIT 100
我可以问以下问题吗?为什么我不仅得到这个查询的大写字母?为什么是“?Stadt wdt:P31 wd:Q5119。”被忽略了?
按照@Stanislav Kralin 的commnet 和示例here,此查询returns 个国家及其首都:
SELECT ?country ?countryLabel ?capital ?capitalLabel ?coords WHERE {
?country wdt:P31 wd:Q3624078.
?country wdt:P36 ?capital.
FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240} # not a former country
OPTIONAL { ?capital wdt:P625 ?coords. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ?countryLabel
LIMIT 1000
然而some countries such as Bolivia, Costa Rica and South Africa由于某些原因拥有不止一个资本!
要将每个国家限制为一个(随机)首都,请尝试:
SELECT ?country ?countryLabel ?aCapital ?aCapitalLabel ?coords
WHERE
{ { { SELECT ?country (SAMPLE(?capital) AS ?aCapital)
WHERE
{ ?country wdt:P31 wd:Q3624078
FILTER NOT EXISTS { ?country wdt:P31 wd:Q3024240 }
?country wdt:P36 ?capital
}
GROUP BY ?country
}
OPTIONAL
{ ?aCapital wdt:P625 ?coords }
SERVICE wikibase:label
{ bd:serviceParam
wikibase:language "en"
}
}
}
ORDER BY ?countryLabel
LIMIT 1000
我有一个获取所有大写字母的查询。 (首府城市)
SELECT DISTINCT ?Stadt ?label ?Staat ?StaatLabel ?geographische_Koordinaten ?StadtLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?Stadt wdt:P31 wd:Q5119.
?Stadt rdfs:label ?label.
OPTIONAL { ?Stadt wdt:P17 ?Staat. }
OPTIONAL { ?Stadt wdt:P625 ?geographische_Koordinaten. }
}
LIMIT 100
结果是:
wd:Q61 Washington D.C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Washington D. C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 واشنگٹن ڈی سی wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Washington D.C. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 واشنګټن ډي سي wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 Вашингтон wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
wd:Q61 ওয়াশিংটন, ডি.সি. wd:Q30 Vereinigte Staaten Point(-77.036666666 38.895) Washington, D.C.
我得到了同一个城市的多种语言的许多结果。
如何过滤查询以便每个城市只获得一个带有英文标签的结果?
* 已更新 *
感谢您帮助 Stanislav。你回答了问题。我的新查询是:
SELECT DISTINCT ?Stadt ?label ?StadtLabel ?Staat ?StaatLabel ?geographische_Koordinaten WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
?Stadt wdt:P31 wd:Q5119.
?Stadt wdt:P17 ?Staat.
OPTIONAL { ?Stadt wdt:P625 ?geographische_Koordinaten. }
}
LIMIT 100
我可以问以下问题吗?为什么我不仅得到这个查询的大写字母?为什么是“?Stadt wdt:P31 wd:Q5119。”被忽略了?
按照@Stanislav Kralin 的commnet 和示例here,此查询returns 个国家及其首都:
SELECT ?country ?countryLabel ?capital ?capitalLabel ?coords WHERE {
?country wdt:P31 wd:Q3624078.
?country wdt:P36 ?capital.
FILTER NOT EXISTS {?country wdt:P31 wd:Q3024240} # not a former country
OPTIONAL { ?capital wdt:P625 ?coords. }
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ?countryLabel
LIMIT 1000
然而some countries such as Bolivia, Costa Rica and South Africa由于某些原因拥有不止一个资本!
要将每个国家限制为一个(随机)首都,请尝试:
SELECT ?country ?countryLabel ?aCapital ?aCapitalLabel ?coords
WHERE
{ { { SELECT ?country (SAMPLE(?capital) AS ?aCapital)
WHERE
{ ?country wdt:P31 wd:Q3624078
FILTER NOT EXISTS { ?country wdt:P31 wd:Q3024240 }
?country wdt:P36 ?capital
}
GROUP BY ?country
}
OPTIONAL
{ ?aCapital wdt:P625 ?coords }
SERVICE wikibase:label
{ bd:serviceParam
wikibase:language "en"
}
}
}
ORDER BY ?countryLabel
LIMIT 1000