Linked Dataの基盤技術となるRDFへ問い合わせを行う言語、SPARQLには様々な関数が用意されています。今回は使用頻度も高いと思われる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()を使用して不要な部分は除くことができます。