假设我有一个像这样的SPARQL查询,寻找具有焦点资源的共享属性的资源,并获得关于焦点资源的其他一些陈述:
CONSTRUCT {
?focal pred:icate ?shared .
?other pred:icate ?shared .
}
WHERE {
?focal pred:icate ?shared ;
more:info ?etc ;
a "foobar" .
?other pred:icate ?shared .
}
LIMIT 500
如果有超过500个其他资源,LIMIT可能会排除该more:info
语句和对象。那么,有没有办法说“我只想要最多500个?other
”,或者我是否必须将此查询分成多个部分?
答案 0 :(得分:11)
您可以在子查询中使用LIMIT,例如以下内容:
CONSTRUCT {
?focal pred:icate ?shared .
?other pred:icate ?shared .
}
WHERE {
?focal pred:icate ?shared ;
more:info ?etc ;
a "foobar" .
{
SELECT ?shared {
?other pred:icate ?shared .
}
LIMIT 500
}
}
答案 1 :(得分:1)
http://www.w3.org/TR/2012/WD-sparql11-query-20120105/#modResultLimit
LIMIT子句对解决方案的数量设置上限 回。如果在应用OFFSET后实际解决方案的数量, 大于极限,则最多为极限数量的解 将被退回。
您只能限制查询的解决方案数量,而不是其特定子集。您可以使用带有LIMIT子句的子查询:http://www.w3.org/TR/sparql-features/#Subqueries。