【问题标题】:Meaning of SPARQL operator ';'SPARQL 运算符';' 的含义
【发布时间】:2013-08-13 16:25:43
【问题描述】:

';' 是什么意思WHERE 子句中的运算符在 SPARQL 中是什么意思?

例如:

SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }

什么;运营商的意思是这里?就像一个合乎逻辑的,这意味着这部分

?z 泡沫:

又在 :surname 之前?

【问题讨论】:

    标签: sparql


    【解决方案1】:

    它不是 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 部分,其中说:

    在属性列表中,分号 ;是重复主题的简写。在宾语列表中,是重复动词的简写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 2015-10-29
      • 2016-07-25
      • 2018-02-19
      • 2014-05-18
      相关资源
      最近更新 更多