Wikidata SPARQL 接口:随机排序
Wikidata SPARQL interface: order by random
我一直在玩 Wikidata SPARQL 页面 (here),我想知道我们是否可以随机打乱结果集的顺序。
我试过下面的例子,我把随机部分留作注释,因为我找不到正确的语法:
SELECT ?partyLabel ?countryLabel ?count
WHERE{
?party wdt:P31 wd:Q7278.
?party wdt:P17 ?country.
?party wdt:P2124 ?count
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".}
}
order by #random
limit 15
有人试过随机排序选项吗?它存在吗?
可能的候选人是:
然而,即使 hint:Query hint:optimizer "None"
(that's why),ORDER BY RAND()
和 ORDER BY BNODE()
都无法在维基数据上运行。
至于UUID()
和STRUUID()
,似乎没有明显的性能差异,所以你可以使用它们中的任何一个。
请注意,浏览器和服务器都cache结果,因此,在每个查询中添加一些空格或注释当前时间。
更新
对于单个三重模式,可以使用 the sample service。
我一直在玩 Wikidata SPARQL 页面 (here),我想知道我们是否可以随机打乱结果集的顺序。
我试过下面的例子,我把随机部分留作注释,因为我找不到正确的语法:
SELECT ?partyLabel ?countryLabel ?count
WHERE{
?party wdt:P31 wd:Q7278.
?party wdt:P17 ?country.
?party wdt:P2124 ?count
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".}
}
order by #random
limit 15
有人试过随机排序选项吗?它存在吗?
可能的候选人是:
然而,即使 hint:Query hint:optimizer "None"
(that's why),ORDER BY RAND()
和 ORDER BY BNODE()
都无法在维基数据上运行。
至于UUID()
和STRUUID()
,似乎没有明显的性能差异,所以你可以使用它们中的任何一个。
请注意,浏览器和服务器都cache结果,因此,在每个查询中添加一些空格或注释当前时间。
更新
对于单个三重模式,可以使用 the sample service。