---
title: 【SPARQL】STR関数
description: "SPARQLの実行結果からダブルコーテーション、言語タグを除いた純粋な文字列の結果を取得するための関数\"STR()\"の使用方法とその実行例。"
---

[インサイトラボ新潟Blog](https://niigata.insight-lab.co.jp/blog)

# [【SPARQL】STR関数](https://niigata.insight-lab.co.jp/blog/str関数)

 作成者: [BI LAB編集室](https://niigata.insight-lab.co.jp/blog/author/bi-lab)｜2020年8月11日

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

## STR関数とは？

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

## 使い方

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

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

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

## 使用例

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

<SPQRQLクエリ>

``

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

 

<[実行結果](http://ja.dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fja.dbpedia.org&query=SELECT+DISTINCT+%3Fmascot+%3Fname%0D%0AWHERE+%7B%0D%0A++%3Fareamascots+skos%3Abroader+%3Chttp%3A%2F%2Fja.dbpedia.org%2Fresource%2FCategory%3A%E5%9C%B0%E5%9F%9F%E9%99%90%E5%AE%9A%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%B3%E3%83%83%E3%83%88%3E+%3B%0D%0A++++rdfs%3Alabel+%3Fareaname+.%0D%0A++%3Fmascot+dbpedia-owl%3AwikiPageWikiLink+%3Fareamascots+%3B%0D%0A++++rdfs%3Alabel+%3Fname.%0D%0A%7D&format=text%2Fhtml&timeout=0)>

ご覧の通り、"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.}
```

 

<[実行結果](http://ja.dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fja.dbpedia.org&query=SELECT+DISTINCT+%3Fmascot+%28STR%28%3Fname%29+as+%3Fname_str%29+%23aaaa%0D%0AWHERE+%7B%0D%0A++%3Fareamascots+skos%3Abroader+%3Chttp%3A%2F%2Fja.dbpedia.org%2Fresource%2FCategory%3A%E5%9C%B0%E5%9F%9F%E9%99%90%E5%AE%9A%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%B3%E3%83%83%E3%83%88%3E+%3B%0D%0A++++rdfs%3Alabel+%3Fareaname+.%0D%0A++%3Fmascot+dbpedia-owl%3AwikiPageWikiLink+%3Fareamascots+%3B%0D%0A++++rdfs%3Alabel+%3Fname.%0D%0A%7D&should-sponge=&format=text%2Fhtml&timeout=0&debug=on)>

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

[完全な記事を表示](https://niigata.insight-lab.co.jp/blog/str関数)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "BI LAB編集室"
  },
  "dateModified" : "2023-12-21T06:05:23.154Z",
  "datePublished" : "2020-08-11T10:34:55Z",
  "headline" : "【SPARQL】STR関数",
  "image" : {
    "@type" : "ImageObject",
    "height" : 553,
    "url" : "https://download.insight-lab.co.jp/hubfs/%E3%82%B5%E3%83%A0%E3%83%8D%E3%82%A4%E3%83%AB-4.png",
    "width" : 1293
  },
  "mainEntityOfPage" : "https://niigata.insight-lab.co.jp/blog/str関数",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "INSIGHT LAB新潟"
  }
}
```