使用http://dbpedia.org/sparql,我希望收到所有银行大楼的地理坐标。 The list of classes告诉我,我应该查询Bank
。
然而,以下代码没有产生任何结果:
SELECT DISTINCT ?label ?lat ?long
WHERE {
[]
rdf:type dbpedia-owl:Bank ;
geo:lat ?lat ;
geo:long ?long ;
rdfs:label ?label.
FILTER (LANGMATCHES(LANG(?label), 'en'))
}
如果我要查询任何兄弟Bank
,(例如Brewery
或LawFirm
),我至少会看到一些结果。上面的代码有什么问题?
答案 0 :(得分:0)
如果你查看某个银行的dbpedia页面,你可以看到rdf:type
上的银行有一个dbpedia-owl:industry
(Refah bank)或dbpedia:Bank
(Cyprus bank)作为值。因此,如果您按以下方式重写查询,您将获得一些结果:
dbpedia:Financial_services
如果您添加SELECT DISTINCT ?label ?lat ?long
WHERE {
[] dbpedia-owl:industry dbpedia:Bank ;
geo:lat ?lat ;
geo:long ?long ;
rdfs:label ?label.
FILTER (LANGMATCHES(LANG(?label), 'en'))
}
,其他组织(例如London stock exchange)也会显示:
dbpedia:Financial_services
再次,通过检查伦敦证券交易所,您可以看到有一个产品属性将这些金融机构分开。所以这会给你银行,但它可能不会覆盖所有可用的银行:
SELECT DISTINCT ?bank
WHERE {
?bank dbpedia-owl:industry ?place ;
geo:lat ?lat ;
geo:long ?long ;
rdfs:label ?label.
FILTER (?place in (dbpedia:Financial_services, dbpedia:Bank) &&
LANGMATCHES(LANG(?label), 'en'))
}