如何在SPARQL中生成随机数据样本?

Hil*_*ary 1 sparql random-sample

是否可以使用SPARQL生成三元组的随机样本?我认为可能是通过SAMPLE函数,但这会返回一个SAMPLE.

我的解决方法是生成一个与OFFSET关键字一起使用的随机数,并使用LIMIT关键字返回所需的样本大小.我只是将偏移的随机数硬编码为200以方便,如下所示:

SELECT *
WHERE {
?s ?p ?o
} 
OFFSET 200 #random number variable
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

有没有更好的建议从SPARQL端点生成100个数据三元组的随机样本?

AKS*_*KSW 6

在SPARQL 1.1中,您可以尝试使用

 ...} ORDER BY RAND() LIMIT 100
Run Code Online (Sandbox Code Playgroud)

但这是否有效可能取决于三重商店.

  • @Hilary `SELECT { ... } ORDER BY RAND()` 与 `SELECT { ... BIND(RAND() AS ?rand) } ORDER BY ?rand` 执行相同的操作。它为每个结果绑定生成一个随机数,然后按该随机数对结果进行排序。它本质上是为你打乱结果。 (2认同)