来自DBpedia公共端点的SPARQL查询结果

时间:2016-03-06 06:05:39

标签: sparql dbpedia endpoint

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

     Public Function NewOrder()
     Dim product As List(Of Product) = New List(Of Product)
     Dim orders As List(Of PurchaseOrder) = New List(Of PurchaseOrder)
     For Each p As Product In product
        If p.Remaining < p.PurchaseLevel Then
            PurchaseOrder.totalToOrder = (p.PurchaseLevel - p.Remaining) * 2
            orders.Add(PurchaseOrder)
        End If
    Next
    Return orders
    End Function

我希望第二个返回比第一个更多的结果,因为虽然它们都要求“Person”的属性,但第二个检索模式中不明确的属性。但奇怪的是,第二个只返回一个结果。我想知道端点是否对其返回的结果设置了限制,以及如何更改此限制。如果我想检索完整的信息,是否真的需要设置我的本地DBpeida实例?

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

答案 1 :(得分:0)

您是否正在使用Virtuoso SPARQL查询编辑器获取这些结果?很奇怪。我也得到一个结果,rdf:使用该服务输入。但是如果我使用不同的工具(在我的情况下是TopBraid Composer)和下面的SERVICE关键字,我会看到明智的结果,例如身高,别名,孩子等。

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

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