Sparql 按大地水准面名称查询Wikidata
我试图通过地理名称ID查询城市的Wikidata 我可以看到该物业的id为P1556: 因此,我对柏林的查询(作为一个例子)是: 但我没有找到匹配的Sparql 按大地水准面名称查询Wikidata,sparql,wikidata,Sparql,Wikidata,我试图通过地理名称ID查询城市的Wikidata 我可以看到该物业的id为P1556: 因此,我对柏林的查询(作为一个例子)是: 但我没有找到匹配的 我做错了什么?在Wikidata上进行简单的试错会产生以下结果:不需要wd:2950157,它是一个文本,所以只使用“2950157”。使用以下(服务用于显示城市名称): 编辑:简单的方法: SELECT ?id ?idLabel WHERE { ?id wdt:P1566 "2950157". SERVICE wi
我做错了什么?在Wikidata上进行简单的试错会产生以下结果:不需要
wd:2950157
,它是一个文本,所以只使用“2950157”
。使用以下(服务
用于显示城市名称):
编辑:简单的方法:
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 "2950157".
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
编辑结束
使用绑定或筛选
SELECT ?id ?idLabel WHERE {
Bind ("2950157" as ?x)
?id wdt:P1566 ?x.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
或者(较慢的选项)使用FILTER
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 ?x.
filter (?x = "2950157")
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
在Wikidata上进行简单的试错会产生以下结果:不需要
wd:2950157
,它是一个文本,因此只使用“2950157”
。使用以下(服务
用于显示城市名称):
编辑:简单的方法:
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 "2950157".
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
编辑结束
使用绑定或筛选
SELECT ?id ?idLabel WHERE {
Bind ("2950157" as ?x)
?id wdt:P1566 ?x.
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
或者(较慢的选项)使用FILTER
SELECT ?id ?idLabel WHERE {
?id wdt:P1566 ?x.
filter (?x = "2950157")
SERVICE wikibase:label {
bd:serviceParam wikibase:language "en" .
}
}
为什么要使用
BIND
和FILTER
而不是最明显的用法,即将文本放在三重模式的对象位置?你是对的,我将立即修改它!我习惯于从Jena开始工作,在查询中我总是需要插件点。为什么你使用BIND
和FILTER
而不是最明显的用法,即将文本放在三重模式的对象位置?你是对的,我会立即修改它!我习惯于从Jena工作,我总是需要在查询插件点。