SPARQL ＡＰＩのご紹介
2014年9月27日

先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会
リーダー 荒本道隆
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLとはSPARQL（"スパークル"と発音[1]）はRDFクエリ言語の一種である。その名称は再帰的頭字語になっており、SPARQL Protocol and RDF Query Languageの略。RDF
クエリ言語とは、Resource Description Framework で記述されたデータを検索/操作するコンピュータ言語である。SPARQL は World Wide Web Consortium (W3C) のRDF Data Access Working Group (DAWG) による標準化作業が行われている。
W3C勧告に至る過程で、2006年4月に勧告候補としてリリースされたが、2つの問題により2006年10月に草案に戻された[2]。2007年6月、SPARQL は再び勧告候補となった[3]。2008年1月15日、SPARQLはW3C勧告となった[4]。
SPARQL はクエリのパターンとして、論理積、論理和、その他のパターンを指定可能である[5]。

ウィキペデアより• まとめると– RDBに対するSQLのようなもの– RDFというデータセットに対して検索、集計、フィルタリングなどが行える
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

気象庁XMLとRDFの関係• 気象庁XML

これをRDF化するのは、とても大変– 気象庁は、これまで、気象警報、津波警報、地震情報等、それぞれの防災情報毎に情報の性質・利用形態などを考慮し、それぞれの情報で個別の、気象庁独自の 電文形式（フォーマット）を作成してきました。この方式は、防災情報の種類が少なく、情報の伝達がFAXや低速の通信回線の時代はそれぞれの情報に適して いましたが、高度にICT化された現在社会において、より詳細で高度化された防災情報をより効果的に活用していただくために、新たな防災情報の提供様式を 検討すべきと考え、「気象庁防災情報XMLフォーマット」を策定することとし、平成23年5月12日より運用を開始しました。
http://xml.kishou.go.jp/• feed

これをRDF化＋エリア情報＋気象台の位置情報– 気象庁→ Google PubSubHubbub経由でfeedを配信• 概要と気象庁防災情報XMLのURLが記述されている– そのURLにアクセスして、気象庁XML本体を取得» 気象庁のサイトは、24時間で削除– １つのfeedの中に、複数のentryが入っている
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

RDFの構造http://www.kanzaki.com/works/2005/rap/graph-check で可視化

Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

配信数の詳細（2013/01/01～2014/09/21）========================================| "府県天気概況"| 140065 || "府県天気予報"| 125376 || "気象警報・注意報"| 81794 || "府県週間天気予報"| 70139 || "気象特別警報・警報・注意報"| 51804 || "地方海上警報"| 19537 || "地方海上予報"| 15134 || "地方週間天気予報"| 13935 || "府県気象情報"| 12772 || "紫外線観測データ"| 10653 || "震源・震度に関する情報"| 3764 || "地方気象情報"| 3262 || "特殊気象報"| 3244 || "噴火に関する火山観測報"| 2930 || "生物季節観測"| 2739 || "竜巻注意情報"| 2666 || "台風解析・予報情報（３日予報）"| 2578 || "全般海上警報（定時）"| 2526 || "府県高温注意情報"| 2202 || "土砂災害警戒情報"| 1799 || "指定河川洪水予報"| 1289 || "地方１か月予報"| 1001 || "全般台風情報（定型）"| 932 || "全般週間天気予報"| 722 || "府県海氷予報"| 558 |
| "震度速報"| 509 || "異常天候早期警戒情報"| 504 |
| "台風解析・予報情報（５日予報）"| 502 || "全般海上警報（臨時）"| 472 |

http://api.aitc.jp/ds/ から参照可能| "地方高温注意情報"| "火山の状況に関する解説情報"| "震源に関する情報"| "府県潮位情報"| "全般気象情報"| "スモッグ気象情報"| "府県天候情報"| "季節観測"| "地方３か月予報"| "全般台風情報"| "全般台風情報（詳細）"| "記録的短時間大雨情報"| "地方天候情報"| "地方潮位情報"| "竜巻注意情報（目撃情報付き）"| "全般１か月予報"| "気象特別警報報知"| "全般潮位情報"| "津波情報"| "地方暖・寒候期予報"| "津波情報a"| "地震の活動状況等に関する情報"| "東海地震観測情報"| "全般３か月予報"| "全般天候情報"| "噴火警報・予報"| "津波警報・注意報・予報"| "津波警報・注意報・予報a"| "顕著な地震の震源要素更新のお知らせ"| "全般スモッグ気象情報"| "JMAXML publishing feed"@ja| "火山現象に関する海上警報・海上予報"| "全般暖・寒候期予報"----------------------------------------

Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

| 393 |
| 371 |
| 360 |
| 345 |
| 328 |
| 308 |
| 241 |
| 213 |
| 209 |
| 193 |
| 159 |
| 125 |
| 106 |
| 103 || 101 |
| 91 || 49 || 43 || 34 || 33 || 25 || 23 || 20 || 19 || 16 || 15 || 15 || 13 || 12 ||6||4||4||3|実際の配信数の概要• 2013/01/01～2013/12/31（１年間）– feed• 572,595回（平均1,568回／日）、重複含む• 2,444MByte／年（平均6.69MByte／日）– 気象庁防災情報XML• 323,212件（平均885件／日）• 6,399MByte／年（平均17.53MByte／日）

Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLでできること• 欲しい形で結果を取得– 結果のカラム名や形式を自分で指定できる– 利用できる集計関数• COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, SAMPLE– サイトに掲載しているサンプル• Tripleの取得（元データのダンプ）• エリア名とコードのリスト• タイトルで集計← デフォルトでこの行が有効になっています• 特定のタイトルのものの中身を参照• 「雪」に関するコンテンツがどの気象台からいくつ出ているか？
• "全般週間天気予報"のうち、2014/01/01に配信されたもの• アプリへの組み込みが容易– HTTPでGETするだけ• エンドポイント： http://api.aitc.jp/ds/sparql?query=(SPARQL)• 更新系は別URLなので、勝手に更新される心配がない– 心配なのは負荷だけ
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLでできること－１• 「気象特別警報・警報・注意報」はいつから配信されているか？
– 「気象警報・注意報」との違い• 特別警報も、警報と表現されている
PREFIX atom: <http://www.w3.org/2005/Atom#>## 特定のタイトルのものの最初の10件
SELECT ?updated ?content ?link WHERE {?id atom:title "気象特別警報・警報・注意報" .
?id atom:updated ?updated .
?id atom:content ?content .
?id atom:link ?link} ORDER BY ?updated limit 10Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLでできること－２• 2014/02/14（関東で大雪だった日）に、– 「雪」に関するコンテンツが、– どのエリアに何回出たか？
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX atom: <http://www.w3.org/2005/Atom#>
PREFIX jma: <http://cloud.projectla.jp/jma/>
PREFIX area: <http://cloud.projectla.jp/jma/area#>
SELECT ?area ?areaname (COUNT(?id) as ?c) WHERE {?id atom:author ?author .
?id atom:content ?content .
?id atom:updated ?updated .
?id jma:area ?area .
?area area:name ?areaname .
FILTER(xsd:dateTime(?updated) >= "2014-02-14T00:00:00+09:00"^^xsd:dateTime &&xsd:dateTime(?updated) < "2014-02-15T00:00:00+09:00"^^xsd:dateTime &&REGEX(?content, "雪"))} GROUP BY ?area ?areaname ORDER BY DESC(?c)
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLでできること－３• オープンデータを使ったマッシュアップ– SPARQL 1.1 Federated Query– １回のSPARQLで、複数サイトのRDFデータを結合
気象庁XMLhttp://api.aitc.jp/ds/sparql

1回のSPARQL

WikipediaのRDF版
http://http://ja.dbpedia.org/sparql

経済産業省のオープンデータ
http://datameti.go.jp/sparql

Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLでできること－３• やってみたら、こうなりました
某SPARQLサイト

気象庁XMLhttp://api.aitc.jp/ds/sparql

よくないSPARQL

被害者にも加害者にもなりえるので、注意

11111 …..
22222 …..
33333 …..
44444 …..
55555 …..
：

60秒間にわたり、110回／秒のアクセスが発生

気象庁XMLの配信が、自動的に解除

気象庁XMLの配信が、２時間に渡り受信不能に
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

リソース不測でWebサーバがアクセス不能に注意事項• このサイトは、AITCの会費で運用しています– そのため、商用利用は遠慮してもらっています• 商用利用したい場合は、気象業務支援センターへ– CD-ROM, DVDによる販売– オンラインによるデータ配信– ２台のサーバで頑張ってます• RESTとSPARQLのデータは、受信モレがあります• 時々、高負荷になり、応答に時間がかかります• 時々、止まるかも知れません• 何かあれば、 staff@aitc.jp までCopyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.

SPARQLの勉強を兼ねて、最新情報は是非、触ってみてください
こちらをご参照ください
http://aitc.jp
https://www.facebook.com/aitc.jp
ハルミン
AITC非公式イメージキャラクター
Copyright © 2014 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.