SPARQL の WHERE 句の ';' 演算子はどういう意味ですか?
例えば:
SELECT ?x ?y
WHERE { ?z foaf:name ?x ; :surname ?y }
ここでの;演算子は何を意味するのでしょうか?論理演算子のようなもので、この部分を意味します
?z フォアフ:
:surname の前にまた来ますか?
ベストアンサー1
これはSPARQL演算子ではなく、SPARQLのトリプルパターンの構文の一部です。完全な仕様はセクションにあります。4.2 トリプルの構文SPARQL仕様より。サブセクション4.2.1 述語-目的語リスト表記法を説明します;
:
共通の主題を持つトリプル パターンは、主題が 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 三つ組のグループの省略タートルは
, 記号は、目的語 RDF 用語のみが異なるトリプルの主語と述語を繰り返すために使用できます。… ; 記号は、述語と目的語 RDF 用語のみが異なるトリプルの主語を繰り返すために使用できます。
N3については、セマンティクスセクションには次のように書かれています。
プロパティ リストでは、セミコロン ; は主語の繰り返しの省略形です。オブジェクト リストでは、 , は動詞の繰り返しの省略形です。