您好,我有一个关于 sparql 查询的简单问题。
花括号对 where 子句有影响吗?
例如:
之间有区别吗
{
?s1 ab:wasBornIn "Berlin".
?s1 ?p1 ?o1
}
{
?s2 ab:someProperty "SomeLiteral".
?s2 ?p2 ?o2
}
和
{
?s1 ab:wasBornIn "Berlin".
?s1 ?p1 ?o1.
?s2 ab:someProperty "SomeLiteral".
?s2 ?p2 ?o2.
}
提前致谢
最佳答案
在很多情况下,没有区别
在您提供的示例中,没有区别。这实际上在规范中被调用:
但可能有过滤器
但是,可以看到差异的地方是过滤器:
我认为这意味着
{ ?s ?p ?o1 }
{ ?s ?q ?o2
filter( !isIri(?o1) )
}
不同于
{
?s ?p ?o1 .
?s ?q ?o2 .
filter( !isIri(?o1) )
}
空白节点标签
它可能发挥作用的另一个地方是空白节点标签:
例如,sparql.org 上的验证器将报告以下语法错误:
select * where {
{ _:s ?p ?o }
{ _:s ?p ?o }
}
关于rdf - sparql - 使用花括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28699799/