Rdf SPARQL通过变量而不是行数限制查询结果

Rdf SPARQL通过变量而不是行数限制查询结果,rdf,sparql,semantic-web,owl,sesame,Rdf,Sparql,Semantic Web,Owl,Sesame,假设我有以下数据集: :a rdf:type :AClass :a :hasName "a"^^xsd:string :a :hasProperty :xa :a :hasProperty :ya :a :hasProperty :za :b rdf:type :AClass :b :hasName "b"^^xsd:string :b :hasProperty :xb :b :hasProperty :yb :c rdf

假设我有以下数据集:

:a  rdf:type      :AClass
:a  :hasName      "a"^^xsd:string
:a  :hasProperty  :xa
:a  :hasProperty  :ya
:a  :hasProperty  :za

:b  rdf:type      :AClass
:b  :hasName      "b"^^xsd:string
:b  :hasProperty  :xb
:b  :hasProperty  :yb

:c  rdf:type      :AClass
:c  :hasName      "c"^^xsd:string
:c  :hasProperty  :xc
我想查询数据集以返回
:AClass
实例的所有内容,但只返回两个实例。我知道我必须使用
LIMIT
关键字,我尝试了很多查询,但都没有成功

换句话说,我想找回这个:

:a  :hasName      "a"^^xsd:string
:a  :hasProperty  :xa
:a  :hasProperty  :ya
:a  :hasProperty  :za

:b  :hasName      "b"^^xsd:string
:b  :hasProperty  :xb
:b  :hasProperty  :yb

如何将结果限制为2个实例的数量而不是2行的数量?

使用子查询选择这两项内容,然后在外部查询中获取其余数据。它总是有助于显示我们可以测试的合法工作数据。您显示的数据实际上不是合法的RDF(因为它在行尾缺少一些句点),但我们可以轻松创建一个工作示例。以下是工作数据、查询和结果:

@前缀:
:a:a类。
:a:hasName“a”。
:a:hasProperty:xa。
:a:hassproperty:ya。
:a:hasProperty:za。
:b:a:a类。
:b:hasName“b”。
:b:hasProperty:xb。
:b:hasProperty:yb。
:ca:AClass。
:c:hasName“c”。
:c:hasProperty:xc。
前缀:
选择s?p?o{
#--首先,选择两个实例:AClass
{select?s{s a:AClass}limit 2}
#--然后,选择所有的三元组
#--他们是什么科目
?s?p?o
}
--------------------------------------------------------------------
|s|p|o|
====================================================================
|:a | |:a类|
|:a |:hasName |“a”|
|:a |:hasProperty |:xa|
|:a |:hasProperty |:ya|
|:a |:hasProperty |:za|
|:b | |:A类|
|:b |:hasName |“b”|
|:b |:hasProperty |:xb|
|:b |:hasProperty |:yb|
--------------------------------------------------------------------

我已经尝试过这个解决方案,但它不起作用。这是按行限制结果。除非我在你的问题中遗漏了什么,否则这似乎是你想要的。这意味着选择两个类a的实例,然后在选择了这两个之后,获取关于它们的所有信息。如果你没有得到这些结果,你能发布你尝试过的确切查询和得到的结果吗?@whitefang1993我添加了一个完整的工作示例。我建议的查询确实得到了您要求的结果。如果不适合您,您能告诉我们您使用的SPARQL引擎和版本吗?也许在实现中有一个bug。它听起来越来越像一个芝麻bug,所以你现在最好的办法可能是在他们的邮件列表上询问。在这里添加了关于芝麻中潜在bug的后续问题:。结果是,它是工作台客户端显示结果中的一个bug,而不是查询引擎本身。