【发布时间】:2018-08-15 14:50:42
【问题描述】:
我目前正在尝试自学如何制定 SPARQL 查询以从 DBpedia 中提取与旅游相关的信息(通过 http://dbpedia.org/sparql/)。
到目前为止,我已经设法获得了一个国家的所有博物馆。
select ?thing ?type ?category ?long ?lat ?country
where
{
VALUES ?country { <http://dbpedia.org/resource/Canada> }
optional
{
?city dbo:country ?country
}
?thing dbo:location ?city.
optional
{
?thing a ?type .
VALUES ?type { dbo:Museum }
BIND( 'Museum' as ?category )
}
optional
{
?thing a ?type.
VALUES ?type { dbo:skiLift }
BIND( 'Skilift' as ?category )
}
optional
{
?thing geo:long ?long.
?thing geo:lat ?lat
}
{
?thing a dbo:Place
}
filter (BOUND (?type))
}
但是,我不明白我需要做什么才能获得dbo:skiLift、dbo:touristicSite 之类的相同信息(可在此处找到:http://dbpedia.org/ontology/Place)。
我做错了什么?
【问题讨论】:
-
你没有选择变量
typeName,所以应该是BIND( 'Skilift' as ?category ) -
此外,公共 DBpedia 端点的默认限制为 10000 行。您不会立即看到整个结果。使用
OFFSET对其进行分页 -
我已将查询从“typeName”更改为“category”,但仍未乘坐滑雪缆车。