GraphStore`
GraphStore`

SPARQLSelect

SPARQLSelect[pattern]

pattern にマッチする部分グラフ内の値に相当する変数の連想のリストを返す,RDFStoreに適用可能なクエリ演算子である.

SPARQLSelect[patternvars]

変数 vars についての値のみを返す.

詳細とオプション

  • SPARQLExecuteSPARQLSelectを使ってSPARQL Endpointのクエリを行うことができる.
  • SPARQLSelect[pattern]を実行した結果は連想{<|var1val1,1,|>,}のリストである.ただし,varipattern に現れるSPARQLVariableで各 vali,jはマッチする部分グラフの対応する位置に現れる値である.
  • SPARQLSelect[pattern]pattern は以下の任意の形式でよい.
  • RDFTriple[s,p,o]トリプルパターン
    {RDFTriple[],RDFTriple[],}基本的なグラフパターン
    {patt1,patt2,}グラフパターンのグループ化
    SPARQLFilter[expr]expr で周囲のパターンの解にフィルタをかける
    patt/;exprexpr で解にフィルタをかける
    SPARQLOptional[patt]任意のパターン
    patt1|patt2|...和集合パターン
    Except[patt]patt と互換の解を削除する
    SPARQLPropertyPath[]特性パスのパターン
    varexprexpr と変数"var"をバインドする
    SPARQLValues[vars, values]変数の値を指定する
    SPARQLSelect[patt]サブクエリ
    SPARQLGraph[g,patt]patt と名前が g のグラフをマッチさせる
    SPARQLService[url,patt]マッチする patturl にあるSPARQL Endpointと連携させる
  • トリプルパターンRDFTriple[s,p,o]SPARQLVariableは任意の式を表す.
  • 次は,使用可能なオプションである.
  • "Distinct"False重複する解が削除されるかどうか
    "Limit"Infinity返す解の最大数
    "Offset"0飛ばす解の数
    "OrderBy"Noneそれによって解を並べる式
    "Reduced"False重複する解を削除してもよいかどうか

例題

すべて開くすべて閉じる

  (2)

果物についてのデータ:

果物の色を求める:

果物の色と形を求める:

Wikidataでカルシウム(Q706)を含む(P527)化学式(P274)と薬品の和名(Q11173)を求める:

スコープ  (9)

トリプルパターン  (1)

データ例:

トリプルパターンは,変数を含むことができるトリプルである:

変数はどこにでも現れることができる:

トリプルパターンが変数を含む必要はない:

基本的なグラフパターン  (1)

記事についてのデータ:

基本的なグラフパターンはトリプルパターンのリストである.すべての記事の"title"と"created"を取り出す:

変数とリテラルは任意の場所に現れることができる.2018年に著された記事の著者を求める:

基本的なグラフにおける異なるトリプルパターンは,グラフ中の異なるトリプルと一致する必要はない.以下には"art1"と"art2"を同じ記事とバインドする解が含まれている:

複数の記事を公開している著者を見付けるために,"art1"と"art2"は異ならなければならないとすることで解にフィルタをかける:

フィルタ  (1)

書籍についてのデータ:

1820年より前に出版された書籍:

任意  (1)

人についてのデータ:

すべての人の名前と,任意で電子メールアドレスを求める:

SPARQLOptionalラッパーが省略されていると,"Bob"についての解が見付からなくなる:

和集合  (1)

異なる"name"特性を使った物についてのデータ:

すべての物の"name"を求める:

特性パスを使った同じクエリ:

否定  (1)

人についてのデータ:

電子メールアドレスがない人を求める:

この場合,NOT EXISTSに基づいたクエリで同じ結果が得られる:

特性パス  (1)

家族データ:

Johannの子孫を求める:

孫だけを求める:

割当て  (1)

食品に関するデータ:

配達料を含む価格を調べる:

"select expression"を使った同じクエリ:

合計価格で製品にフィルタをかける:

特定の製品の価格を調べる:

集約  (1)

給与についてのデータ:

平均給与を求める:

部署ごとの平均給与:

部署の給与合計でグループにフィルタをかける:

平均給与の降順で順序付ける:

おもしろい例題  (1)

Wikidataを使ってクジラ(Q42196)の分類ツリー(P171)のGraphを作る:

Wolfram Research (2019), SPARQLSelect, Wolfram言語関数, https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html.

テキスト

Wolfram Research (2019), SPARQLSelect, Wolfram言語関数, https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html.

CMS

Wolfram Language. 2019. "SPARQLSelect." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html.

APA

Wolfram Language. (2019). SPARQLSelect. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html

BibTeX

@misc{reference.wolfram_2024_sparqlselect, author="Wolfram Research", title="{SPARQLSelect}", year="2019", howpublished="\url{https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_sparqlselect, organization={Wolfram Research}, title={SPARQLSelect}, year={2019}, url={https://reference.wolfram.com/language/GraphStore/ref/SPARQLSelect.html}, note=[Accessed: 22-November-2024 ]}