'是什么';' WHERE子句中的运算符在SPARQL中意味着什么?
例如:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
什么;算子意味着什么?就像一个逻辑,这意味着这部分
?z foaf:
之前:姓氏再次?
答案 0 :(得分:24)
它不是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序列化中使用相同的语法。有关Turtle的信息,请参阅2.3 Abbreviating groups of triples,
该符号可用于重复仅在对象RDF术语中不同的三元组的主语和谓词。 ......符号可用于重复三元组的主语,仅在谓词和对象RDF术语中有所不同。
,对于N3,请参阅Semantics部分,其中包含:
在财产清单中,分号;是重复主题的简写。在对象列表中,是重复动词的简写。