主题没有在每一行查询中使用 - 为什么?

时间:2015-09-15 10:10:20

标签: sparql

我对SPARQL相对较新,并且正在努力解决以下两个查询示例的区别:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
  ?person a foaf:Person.
  ?person foaf:name ?name.
  ?person foaf:mbox ?email.
}

VS

PREFIX mo: <http://purl.org/ontology/mo/>
PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
SELECT ?name ?img ?hp ?loc
WHERE {
  ?a a mo:MusicArtist ;
     foaf:name ?name ;
     foaf:img ?img ;
     foaf:homepage ?hp ;
     foaf:based_near ?loc .
}

我的问题:&#39;?人为什么&#39;第一个例子中的变量名在每一行都需要,而&#39;?a&#39;第二个例子中的变量名只使用一次吗?

1 个答案:

答案 0 :(得分:0)

这是一个简短的手。看到&#34;;&#34;在行尾?这意味着&#34;下一个三重模式使用与此相同的主题&#34;。

http://www.w3.org/TR/sparql11-query/#QSynTriples

?a a mo:MusicArtist ;
   foaf:name ?name ;
   foaf:img ?img ;
   foaf:homepage ?hp ;
   foaf:based_near ?loc .

是一个与

完全相同的三元模式的块
?a a mo:MusicArtist .
?a foaf:name ?name .
?a foaf:img ?img .
?a foaf:homepage ?hp .
?a foaf:based_near ?loc .

这只是语法。

相关问题