Sparql 是否在另一个查询中使用有序查询结果而不进行单独处理?

Sparql 是否在另一个查询中使用有序查询结果而不进行单独处理?,sparql,rdf,wikidata,Sparql,Rdf,Wikidata,如何根据新查询的行号从排序结果列表中访问谓词+对象对 来自Wikidata的查询示例: SELECT ?p ?o (COUNT (?o) as ?oCount) WHERE{ ?s ?p ?o. #return every predicate + object... ?s wdt:P31 wd:Q5. #...for humans ?s wdt:P19 wd:Q37100. #...born in Auckland (NZL)

如何根据新查询的行号从排序结果列表中访问谓词+对象对

来自Wikidata的查询示例:

SELECT ?p ?o (COUNT (?o) as ?oCount) WHERE{
  ?s ?p ?o.                 #return every predicate + object...
  ?s wdt:P31 wd:Q5.         #...for humans
  ?s wdt:P19 wd:Q37100.     #...born in Auckland (NZL)
  ?s wdt:P21 wd:Q6581097.   #...which are male
}
GROUP BY ?p ?o ?oCount
ORDER BY DESC(?oCount)      #order by most common predicate/object combination

以下是一些初步结果(为更清晰起见进行了编辑):

现在我要执行以下查询:
返回此结果列表中第n个谓词+对象的所有主语。

我的实际用例是将这些REULT的多行与'AND'或'or'组合在一起,例如,返回所有主题,其中给出了该结果的前5个谓词+对象

知道如何从结果中访问某些行将是一个良好的开端。如果可能的话,我不想通过读取结果(使用脚本)并将其用作第二个查询的输入来使用单独的查询

知道如何从结果中访问某些行将是一个良好的开端。如果可能的话,我不想通过读取结果(使用脚本)并将其用作第二个查询的输入来使用单独的查询

那真的不可能。您可以在子查询中使用排序依据,但结果在外部查询中不能作为结果的有序列表使用;它们只是提供给外部查询。但是,如果确实只需要第n个结果,还可以使用限制偏移,这可能就足够了。例如,您可以执行以下操作(为了示例而故意简化,为了完整性而包含示例数据):


不幸的是,仅仅访问前n个结果并不适合我的问题。无论如何谢谢你@rinderwahn您说过“现在我想做以下查询:返回所有主语以及这个结果列表的第n个谓词+对象。”这里的代码被简化了。如果将偏移量与限制一起使用,则可以精确获得第n个结果。我刚刚更新了答案,让它更明确一点。对不起。我正要编辑我的评论。使用偏移量应该可以完成这项工作。我对SPARQL真的很陌生。@rinderwahn我刚刚用一个完整的例子再次更新了答案。这对你的案子有用吗?
p                           o                                 oCount
--------------------------------------------------------------------
wdt:P19 (place of birth)    wd:Q37100 (Auckland)              1083
wdt:P21 (gender)            wd:Q6581097 (male)                1083
wdt:P31 (instance of)       wd:Q5 (human)                     1083
wdt:P27 (country)           wd:Q664 (New Zealand)             844
(...)
wdt:P106 (occupation)       wd:Q14373094 (rugby player)       202
(...)
wdt:P69 (educated at)       wd:Q492467 (Univ. of Auckland)    62
@prefix : <urn:ex:>

:p :hasRank 1 .
:q :hasRank 2 .
:r :hasRank 3 .
:s :hasRank 4 .
:t :hasRank 5 .
:u :hasRank 6 .
:v :hasRank 7 .
:x :hasRank 8 .

:a :s :s0, :s1, :s2 ;
   :t :t0, :t1 ;
   :u :u0, :u1, :u2, :u3 .
-----------------
| s  | p  | o   |
=================
| :a | :t | :t1 |
| :a | :t | :t0 |
-----------------