问题描述
由于最近更新了 Virtuoso 版本,当我尝试在公共 DBpedai SPARQL 端点上使用以下查询时。结果为空。
PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-Syntax-ns#>
PREFIX dbo:<http://dbpedia.org/ontology/>
PREFIX vrank:<http://purl.org/voc/vrank#>
SELECT ?s ?v
FROM <http://dbpedia.org>
FROM <http://people.aifb.kit.edu/ath/#DBpedia_PageRank>
WHERE {
?s rdf:type dbo:University.
?s vrank:hasRank/vrank:rankValue ?v.
}
ORDER BY DESC(?v) LIMIT 50
谢谢!
解决方法
还可以选择通过查询联合查询 Wikidata 端点并将结果映射到 DBpedia URI:
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX vrank: <http://purl.org/voc/vrank#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX schema: <http://schema.org/>
SELECT * WHERE {
{
SELECT DISTINCT ?uni (URI(REPLACE(str(?article),"https://en.wikipedia.org/wiki","http://dbpedia.org/resource")) as ?dbpedia) WHERE {
SERVICE <https://query.wikidata.org/sparql> {
?uni wdt:P31/wdt:P279* wd:Q3918.
?article schema:about ?uni .
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/> .
}
}
}
OPTIONAL {
?uni vrank:pagerank ?rank.
}
} ORDER BY desc(?rank) LIMIT 50
只需按照 https://github.com/athalhammer/danker-hdt-docker 中的说明在本地运行带有 Wikidata PageRank 分数的 HDT 文件。结果更清晰(结果集中没有诸如 dbpedia:Physics
之类的资源)并且查询在