什么';' WHERE子句中的运算符在SPARQL中意味着什么?
例如:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
Run Code Online (Sandbox Code Playgroud)
什么; 算子意味着什么?就像一个逻辑,这意味着这一部分
?z foaf:
走了之前:再次姓?
Jos*_*lor 29
它不是SPARQL运算符,而是SPARQL中三重模式的语法的一部分.完整规范在SPARQL规范的第4.2节" 三元组语法"中.第4.2.1节谓词 - 对象列表描述了;符号:
可以编写具有共同主题的三重模式,使得主题仅被写入一次并且通过使用";"而被用于多于一个三重模式.符号.
Run Code Online (Sandbox Code Playgroud)?x foaf:name ?name ; foaf:mbox ?mbox .这与编写三重模式相同:
Run Code Online (Sandbox Code Playgroud)?x foaf:name ?name . ?x foaf:mbox ?mbox .
您可能还对第4.2.2节对象列表感兴趣:
如果三重模式共享主语和谓词,则对象可以用","分隔.
Run Code Online (Sandbox Code Playgroud)?x foaf:nick "Alice" , "Alice_" .与编写三重模式相同:
Run Code Online (Sandbox Code Playgroud)?x foaf:nick "Alice" . ?x foaf:nick "Alice_" .对象列表可以与谓词对象列表组合使用:
Run Code Online (Sandbox Code Playgroud)?x foaf:name ?name ; foaf:nick "Alice" , "Alice_" .相当于:
Run Code Online (Sandbox Code Playgroud)?x foaf:name ?name . ?x foaf:nick "Alice" . ?x foaf:nick "Alice_" .
在RDF的Turtle和N3序列化中使用相同的语法.参见2.3对Turtle的缩写三元组,其中说
该符号可用于重复仅在对象RDF术语中不同的三元组的主语和谓词....... 符号可用于重复三元组的主语,这三元组仅在谓词和对象RDF术语中有所不同.
对于N3,请参阅语义部分,其中说:
在财产清单中,分号; 是重复主题的简写.在对象列表中,是重复动词的简写.