Sparql 在DBpedia中查询银行

Sparql 在DBpedia中查询银行,sparql,dbpedia,Sparql,Dbpedia,使用,我希望接收所有银行大楼的地理坐标。告诉我应该查询银行 然而,以下代码不会产生任何结果: 选择不同的标签?横向?纵向 在哪里{ [] rdf:dbpediaowl:Bank类型; 地理:拉特?拉特; 长?长; 标签?标签。 过滤器(LANGMATCHES(LANG(?标签),'en')) } 相反,如果我查询银行(例如啤酒厂或律师事务所)的任何兄弟姐妹,我至少会看到一些结果。上面的代码有什么问题?如果你查看一家银行的dbpedia页面,你会看到,相反,在rdf:type上,银行有一个属性d

使用,我希望接收所有银行大楼的地理坐标。告诉我应该查询
银行

然而,以下代码不会产生任何结果:

选择不同的标签?横向?纵向
在哪里{
[]
rdf:dbpediaowl:Bank类型;
地理:拉特?拉特;
长?长;
标签?标签。
过滤器(LANGMATCHES(LANG(?标签),'en'))
}

相反,如果我查询
银行
(例如
啤酒厂
律师事务所
)的任何兄弟姐妹,我至少会看到一些结果。上面的代码有什么问题?

如果你查看一家银行的dbpedia页面,你会看到,相反,在
rdf:type
上,银行有一个属性
dbpedia owl:industry
,它的值是
dbpedia:bank
()或
dbpedia:Financial\u 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')) 
}
如果您添加
dbpedia:Financial\u 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')) 
}
同样,通过检查伦敦证券交易所,你可以看到,有一种产品属性将这些金融机构分隔开来。因此,这将为您提供银行,但它可能不包括所有可用的银行:

SELECT DISTINCT ?label ?lat ?long
WHERE {
    [] dbpedia-owl:industry ?place ;
    geo:lat ?lat ;
    geo:long ?long ;
    rdfs:label ?label;
    dbpedia-owl:product ?product.
    FILTER ( ?place in (dbpedia:Financial_services, dbpedia:Bank) 
    && ?product in (dbpedia:Bank, dbpedia:Private_banking, dbpedia:Professional_Banking, dbpedia:Retail_banking, dbpedia:Investment_banking, dbpedia:Commercial_bank)
    && LANGMATCHES(LANG(?label), "en")) 
} ORDER BY DESC(COUNT(DISTINCT ?product))

我刚刚尝试再次共同运行您的quries,但我不断收到错误
Virtuoso 37000错误SP030:SPARQL编译器,第5行:在“dbpedia:Bank”之前的“dbpedia owl”处未定义的命名空间前缀(对于第一个查询)。他们更改了标准命名空间。我会编辑这篇文章。他们还删除了我得到的两个答案中的lat和long。你可以把
location
拿出来,但就是这样。甚至不是所有的东西都是这样(事实上,像这样的地方已经完全消失了)。你可能不知道为什么会发生这种情况,我在哪里可以抱怨呢?我想一个月前有一个新版本的dbpedia。我将整个集合加载到一个triplestore中,我认为它已被完全删除,因为wiki页面也缺少它们。也许是出于安全原因?