Meaning of SPARQL operator ';'

前端 未结 1 1339
耶瑟儿~
耶瑟儿~ 2020-12-05 14:29

What does \';\' operator in WHERE clause means in SPARQL?

For example:

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

What th

相关标签:
1条回答
  • 2020-12-05 15:27

    It's not a SPARQL operator, but rather part of the syntax for triple patterns in SPARQL. The full specification is in section 4.2 Syntax for Triples from the SPARQL spec. Subsection 4.2.1 Predicate-Object Lists describes the ; notation:

    Triple patterns with a common subject can be written so that the subject is only written once and is used for more than one triple pattern by employing the ";" notation.

    ?x  foaf:name  ?name ;
        foaf:mbox  ?mbox .
    

    This is the same as writing the triple patterns:

    ?x  foaf:name  ?name .
    ?x  foaf:mbox  ?mbox .
    

    You might also be interested in subsection 4.2.2 Object Lists:

    If triple patterns share both subject and predicate, the objects may be separated by ",".

    ?x foaf:nick  "Alice" , "Alice_" .
    

    is the same as writing the triple patterns:

    ?x  foaf:nick  "Alice" .
    ?x  foaf:nick  "Alice_" .
    

    Object lists can be combined with predicate-object lists:

    ?x  foaf:name ?name ; foaf:nick  "Alice" , "Alice_" .
    

    is equivalent to:

    ?x  foaf:name  ?name .
    ?x  foaf:nick  "Alice" .
    ?x  foaf:nick "Alice_" .
    

    The same syntax is used in Turtle and N3 serializations of RDF. See 2.3 Abbreviating groups of triples for Turtle, which says

    The , symbol may be used to repeat the subject and predicate of triples that only differ in the object RDF term. … The ; symbol may be used to repeat the subject of of triples that vary only in predicate and object RDF terms.

    and for N3, see the Semantics section, which says:

    In property lists, the semicolon ; is shorthand for repeating the subject. In object lists , is shorthand for repeating the verb.

    0 讨论(0)
提交回复
热议问题