【发布时间】:2013-08-13 16:25:43
【问题描述】:
';' 是什么意思WHERE 子句中的运算符在 SPARQL 中是什么意思?
例如:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
什么;运营商的意思是这里?就像一个合乎逻辑的,这意味着这部分
?z 泡沫:
又在 :surname 之前?
【问题讨论】:
标签: sparql
';' 是什么意思WHERE 子句中的运算符在 SPARQL 中是什么意思?
例如:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
什么;运营商的意思是这里?就像一个合乎逻辑的,这意味着这部分
?z 泡沫:
又在 :surname 之前?
【问题讨论】:
标签: sparql
它不是 SPARQL 运算符,而是 SPARQL 中三重模式语法的一部分。完整的规范在 SPARQL 规范的4.2 Syntax for Triples 部分。 4.2.1 谓词对象列表小节描述了; 表示法:
可以编写具有共同主题的三重模式,以便 主题只写一次并且用于不止一个三倍 模式通过使用“;”符号。
?x foaf:name ?name ; foaf:mbox ?mbox .这和写三重模式是一样的:
?x foaf:name ?name . ?x foaf:mbox ?mbox .
您可能还对 4.2.2 对象列表小节感兴趣:
如果三元组模式共享主语和谓语,则宾语可以 用“,”分隔。
?x foaf:nick "Alice" , "Alice_" .和写三重模式是一样的:
?x foaf:nick "Alice" . ?x foaf:nick "Alice_" .对象列表可以与谓词对象列表组合:
?x foaf:name ?name ; foaf:nick "Alice" , "Alice_" .相当于:
?x foaf:name ?name . ?x foaf:nick "Alice" . ?x foaf:nick "Alice_" .
在 RDF 的 Turtle 和 N3 序列化中使用相同的语法。参见 2.3 Abbreviating groups of triples 的 Turtle,它说
, 符号可用于重复仅在宾语 RDF 术语上不同的三元组的主语和谓语。 … 这 ;符号可用于重复仅在谓词和宾语 RDF 术语中不同的三元组的主语。
对于 N3,请参阅 Semantics 部分,其中说:
在属性列表中,分号 ;是重复主题的简写。在宾语列表中,是重复动词的简写。
【讨论】: