インサイトラボ新潟Blog

【SPARQL】STR関数

作成者: BI LAB編集室|2020年8月11日

Linked Dataの基盤技術となるRDFへ問い合わせを行う言語、SPARQLには様々な関数が用意されています。今回は使用頻度も高いと思われるSTR関数をご紹介いたします。

STR関数とは?

STR関数とはダブルコーテーションや言語タグを除いて、純粋な文字列だけを取得するための関数です。

使い方

STR関数は以下のように使用します。

(STR(元の変数名) as 純粋な文字列を取得した値を格納する変数名)

実際の使用方法は以下となります。

使用例

まずは日本語版DBpediaのSPARQL例にある"全国の地域限定"ゆるキャラ"のサンプルクエリを実行してみます。使用クエリと結果は以下のようになります。

<SPQRQLクエリ>

SELECT DISTINCT ?mascot ?name
WHERE {
?areamascots skos:broader <http://ja.dbpedia.org/resource/Category:地域限定のマスコット> ;
rdfs:label ?areaname .
?mascot dbpedia-owl:wikiPageWikiLink ?areamascots ;
rdfs:label ?name.
}

 

<実行結果>

ご覧の通り、"name"で表されるrdfs:labelにはダブルコーテーションと@jaという言語タグが表示されています。

ではSTR関数を使用してみましょう。

<SPQRQLクエリ>

SELECT DISTINCT ?mascot (STR(?name) as ?name_str) #nameを純粋な文字列として取得
WHERE {
?areamascots skos:broader <http://ja.dbpedia.org/resource/Category:地域限定のマスコット> ;
rdfs:label ?areaname .
?mascot dbpedia-owl:wikiPageWikiLink ?areamascots ;
rdfs:label ?name.
}

 

<実行結果>

このようにSPARQLエンドポイントからデータを取得する際に文字列だけ欲しい場合はSTR()を使用して不要な部分は除くことができます。