微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SPARQL限制特定变量的结果数

如何解决SPARQL限制特定变量的结果数

假设我要寻找柏林的一些一级邻居。我问以下查询

select ?s ?p where {
  ?s ?p dbr:Berlin.
}

是否可以对返回结果进行限制,使得每个?p的唯一值最多有5个结果?

解决方法

我对子查询的尝试都超时了...

但是,可能有用的GROUP_CONCATMAX / MINSAMPLE作为潜在的有用的解决方案,如果不是完全完美的解决方案?

SELECT 
    ?writer (GROUP_CONCAT(?namestring; SEPARATOR = " ") AS ?namestrings) 
    (MIN(?namestring) AS ?min_name) 
    (MAX(?namestring) AS ?max_name) 
    (SAMPLE(?namestring) AS ?random_name) 
    (SAMPLE(?namestring) AS ?another_random_name_that_may_unfortunately_be_the_same_again) 
WHERE {
     ?writer wdt:P31 wd:Q5;
             wdt:P166 wd:Q37922;
             wdt:P735 ?firstname.
  ?firstname wdt:P1705 ?namestring.
}
GROUP BY ?writer
HAVING ((COUNT(?writer)) > 2 )
LIMIT 20

here直播。

而且,如您所见,SAMPLE显然只被评估一次,因此重复使用它不会使您接近五个(不同的)样本。

(您可以省略HAVING供您使用。我仅将其包括在内以将其限制为有用的示例)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?