簡體   English   中英

限制本地 DBpedia SPARQL 查詢的結果

[英]limiting results in local DBpedia SPARQL query

我正在嘗試使用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

我嘗試使用嵌套查詢,但是當我添加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

官方 DBpedia 端點在 Virtuoso 上運行,因此如果這樣做是正確的,您可能只需要更新自己的 Virtuoso 實例。 VOS 目前是7.2.2 (或6.1.8 ,如果你必須留在 v6) 6.1.6 ,Virtuoso Github 空間指令)保存了stable/7develop/7 (和stable/6develop/6 ),每個都提供路徑建議的內容。

對於未來——特別是關於 Virtuoso 的問題通常最好在公共 OpenLink 討論論壇Virtuoso 用戶郵件列表機密支持案例中提出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM