有人能解释一下这些Sparql之间的区别吗
我有rdf数据:有人能解释一下这些Sparql之间的区别吗,sparql,Sparql,我有rdf数据: @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:knows _:b . _:a foaf:knows _:c . _:b foaf:name "Bob" . _:c foaf:name "Clare" . _:c foaf:nick "CT" . PREFIX foaf: <ht
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
_:a foaf:name "Alice" .
_:a foaf:knows _:b .
_:a foaf:knows _:c .
_:b foaf:name "Bob" .
_:c foaf:name "Clare" .
_:c foaf:nick "CT" .
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?nameX
WHERE
{ ?x foaf:knows ?y.
?x foaf:name ?nameX .
}
@前缀foaf:。
_:一个foaf:name“Alice”。
_:foaf:知道。
_:foaf:knows\uuc。
_:b foaf:name“Bob”。
_:c foaf:name“Clare”。
_:c foaf:nick“CT”。
前缀foaf:
选择?nameX
哪里
{?x foaf:知道吗?y。
x foaf:name?nameX。
}
我得到一个结果,爱丽丝
但是如果我运行这个查询
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?nameX
WHERE
{ ?x foaf:knows ?y.
{?x foaf:name ?nameX .}
}
前缀foaf:
选择?nameX
哪里
{?x foaf:知道吗?y。
{?x foaf:name?nameX.}
}
我得到了同样的结果。由于我是Sparql新手,请解释在{}内编写?x foaf:name?nameX有什么好处。没有区别,并且包含通过添加大括号获得的额外块也没有好处。通常最好选择最简单的方式来表示给定的查询。如果我将在大括号内应用筛选器,那么它将应用于{}内的模式,或者应用于整个模式。筛选器将应用于{}块。在这种情况下,您的两个表单可能会根据过滤器的性质产生不同的答案。