来自 DBpedia public 端点的 SPARQL 查询结果

SPARQL Query results from DBpedia public endpoint

我正在使用 DBpedia public 端点 http://dbpedia.org/sparql,但我怀疑它对 return 的结果数量设置了限制。我不确定,只是想确认一下。例如,对于这两个查询:

select distinct ?property 
where { 
   ?property <http://www.w3.org/2000/01/rdf-schema#domain> <http://dbpedia.org/ontology/Person> . 
}


select distinct ?property 
where {
     ?instance a <http://dbpedia.org/ontology/Person> . 
     ?instance ?property ?obj . 
}

我希望第二个 return 的结果比第一个多得多,因为尽管它们都要求 "Person" 的属性,但第二个检索的属性在模式。但奇怪的是,第二个只有 return 个结果。我想知道端点是否对其 returns 的结果设置了限制,以及如何更改此限制。如果我想检索完整的信息,我真的需要设置我的本地 DBpeida 实例吗?

有一个限制,但这不是您在第二个查询中得到意外结果的原因(来自 dbpedia。org/sparql):

  • 第二个查询在 live.dbpedia.org 上工作正常,所以 dbpedia.org 端点一定有问题(正在加载新版本?)

关于 DBPedia 结果限制及其解决方法:How to get all companies from DBPedia?

更新:第二个查询从 dbpedia 返回了更多结果。org/sparql如果查询的一部分在可选子句中:

select distinct ?property 
where {
     ?instance a <http://dbpedia.org/ontology/Person> . 
     OPTIONAL {?instance ?property ?obj . }
}

您正在使用 Virtuoso SPARQL 查询编辑器来获得这些结果?很奇怪。我也得到了一个结果,rdf:type 使用该服务。但是,如果我使用不同的工具(在我的例子中是 TopBraid Composer)和下面的 SERVICE 关键字,我会看到合理的结果,例如身高体重、别名、child 等

select distinct ?property 
where {
   SERVICE <http://dbpedia.org/sparql> {
      ?instance a <http://dbpedia.org/ontology/Person> . 
      ?instance ?property ?obj . 
   }
}

很可能是 Virtuoso SPARQL 查询编辑器的问题。