[英]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.