';'是什么WHERE子句中的运算符意味着在SPARQL中?
例如:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
什么;运算符是指这里?就像一个逻辑,这意味着这部分
z foaf:
再去:surname之前?
最佳答案
它不是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部分,其中说:
在属性列表中,分号;是重复主题的简写。在对象列表中,是重复动词的简写。
关于sparql - SPARQL运算符';'的含义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18214338/