Sparql 使用PageRank进行我的Dbpedia查询

Sparql 使用PageRank进行我的Dbpedia查询,sparql,dbpedia,pagerank,Sparql,Dbpedia,Pagerank,我有一个dbpedia查询,我想使用pageRank算法对结果进行排序。dbpedia dataset中开发了一些类,专门针对中的这个问题。现在,我想计算结果中每个资源的pageRank:与该资源关联的传入链接的分数/所有关联资源的传入链接总数。 这是我的疑问: PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> prefix foaf: <http://xmlns.com/foaf/0.1/> PREFIX vr

我有一个dbpedia查询,我想使用pageRank算法对结果进行排序。dbpedia dataset中开发了一些类,专门针对中的这个问题。现在,我想计算结果中每个资源的pageRank:与该资源关联的传入链接的分数/所有关联资源的传入链接总数。 这是我的疑问:

PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
prefix foaf: <http://xmlns.com/foaf/0.1/>
PREFIX vrank:<http://purl.org/voc/vrank#>
prefix dbo: <http://dbpedia.org/ontology/>
SELECT distinct  ?Nom ?resource ?url 
 WHERE{
   ?resource rdfs:label ?Nom.
   ?resource foaf:isPrimaryTopicOf ?url.
   ?Nom <bif:contains> "Apple".
   FILTER ( langMatches( lang(?Nom), "EN" )).
MINUS {?resource dbo:wikiPageRedirects|dbo:wikiPageDisambiguates  ?dis}
        } 
前缀rdfs:
前缀foaf:
前缀vrank:
前缀dbo:
选择不同的?名称?资源?url
在哪里{
?资源RDF:标签?名称。
?资源foaf:isPrimaryTopicOf?url。
?名称为“苹果”。
过滤器(langMatches(lang(?Nom),“EN”))。
减去{资源dbo:wikiPageRedirects | dbo:wikipagedisbiguates?dis}
} 
请帮帮我。提前谢谢。

看看这个

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
前缀rdf:
前缀dbo:
前缀vrank:
选择s?v
从…起
从…起
在哪里{
?s rdf:类型dbo:大学。
?s vrank:hasRank/vrank:rankValue?v。
}
按描述(?v)限值50订购

您想动态计算pagerank吗?或者您想查询pagerank。这取决于是否将此数据加载到端点。请注意,Virtuoso还支持返回类似pagerank的分数,但此功能必须由SPARQL端点的维护人员启用。@AKSW我想根据结果计算页面排名。例如,如果我的查询是关于包含单词“Apple”的资源的,那么PageRank只依赖于这个结果(依赖于Apple结果),而不依赖于所有dbpedia概念。据我所知,这不是PageRank算法的工作方式,因为这是一个迭代算法,直到达到一个固定点为止。您唯一能做的就是查询exist数据集中的现有分数,或者尝试使用Virtuoso pagerank函数(如果启用)。对于DBpedia,已经有一个pagerank数据集,问题是它是否加载到您正在使用的端点中。