在 DBpedia 中查询银行
Query for banks in DBpedia
使用 http://dbpedia.org/sparql, I want to receive the geographic coordinates of all bank buildings. 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
),我至少会看到一些结果。上面的代码有什么问题?
如果您查看银行的 dbpedia 页面,您会发现在 rdf:type
上,银行有 属性 dbpedia-owl:industry
dbpedia:Bank
(Refah bank) or dbpedia:Financial_services
(Cyprus bank) 作为一个值。因此,如果您按如下方式重写查询,您将得到一些结果:
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_services
,其他组织如London stock exchange也会出现:
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))
使用 http://dbpedia.org/sparql, I want to receive the geographic coordinates of all bank buildings. 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
),我至少会看到一些结果。上面的代码有什么问题?
如果您查看银行的 dbpedia 页面,您会发现在 rdf:type
上,银行有 属性 dbpedia-owl:industry
dbpedia:Bank
(Refah bank) or dbpedia:Financial_services
(Cyprus bank) 作为一个值。因此,如果您按如下方式重写查询,您将得到一些结果:
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_services
,其他组织如London stock exchange也会出现:
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))