3

我正在尝试使用 获取包含关键字的实例bif:contains,但我只想为每个?s(实例)获取一个标签,我不在乎是哪一个。我不能用类似的东西过滤它,regex因为它是用于一般查询。这是我的查询,但它从每个实例 () 中获取所有标签?s

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) . 
  ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l      
}
ORDER BY DESC ( ?sc )
LIMIT 30
OFFSET 0

我尝试使用嵌套查询,但是当我添加 a 时,LIMIT我没有得到任何结果。

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .   
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) .                 
  {
    SELECT DISTINCT ?s,?l WHERE {
      ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l
    }
    LIMIT 1
  }      
}
ORDER BY DESC ( ?sc )
LIMIT 30
OFFSET 0

我还看到了SAMPLE聚合函数;它完全符合我在 DBpedia 端点中的要求,但它不适用于我自己的 Virtuoso!(我使用的是开源版本。)

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) . 
  {
    SELECT DISTINCT ?s,(SAMPLE(?l) AS ?l) WHERE {
      ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l
    }
    GROUP BY ?s
  }
}
ORDER BY desc ( ?sc )
LIMIT 30
OFFSET 0
4

1 回答 1

3

官方 DBpedia 端点在Virtuoso 上运行,因此如果这样做是正确的,您可能只需要更新自己的 Virtuoso 实例。VOS 目前在7.2.2(或者6.1.8,如果你必须留在 v6) 6.1.6,并​​且 Virtuoso Github 空间( instructions ) 保存最新的代码剪辑stable/7develop/7(and stable/6and develop/6),每个都提供路径建议的内容。

对于未来——特别是关于 Virtuoso 的问题通常最好在公共 OpenLink 讨论论坛Virtuoso 用户邮件列表机密支持案例中提出。

于 2012-12-21T15:30:38.260 回答