[英]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)
,Virtuoso Github 空間( 指令)保存了6.1.6
stable/7
和develop/7
(和stable/6
和develop/6
),每個都提供路徑建議的內容。
對於未來——特別是關於 Virtuoso 的問題通常最好在公共 OpenLink 討論論壇、 Virtuoso 用戶郵件列表或機密支持案例中提出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.