Linked Open Data
何度も説明したことではありますが、im@sparqlはLinked Open Dataです。Linkしたオープンデータです。これが意味するところは同じエンドポイント内で相互に繋がるだけでなく、外部のエンドポイントとも繋がるということです。まぁ、述語の部分でschema:などの外部の語彙を使っているので今更ですかね。
今回は、データベースとして繋がるだけでなく、クエリの結果も繋げていくことを目指します。

クエリを打つ
「im@sparqlに眠る季語を含むユニット名」です。順に説明していきます。
SELECT文内は前半と後半に分けられ、後半は見慣れたものだと思います。そして前半ですが、service句で囲まれた部分があります。これが、外部のエンドポイントに繋げてクエリを送っている部分になります。今回指定しているのは、私がある方の要望にお答えして別途用意した季語のオープンデータのエンドポイントです。気になる方は、第3章を参考にして冒険してみてください。
service句が他のエンドポイントへクエリを飛ばすということが分かれば、あとは怖くないと思います。そのエンドポイントにある、季語と季節のセットを取り出しています。
他のエンドポイントに使った変数は、元のエンドポイントでも使用できます。後半では、im@sparqlからユニット名を取り出し、季語が含まれるもののみにフィルタリングしています。あまりにも数が多いのと同じサーバーに2つのクエリを送っているでlimitしています。あとはoffsetを変更していろいろ見てみてください。

世界中のオープンデータの海を泳ぎ回る
世の中には、このim@sparqlを作るきっかけになった行政データや研究機関のデータなど多くのエンドポイントが存在しています。京都市や大阪市では、役所が自前でエンドポイントを設けるなど積極的な取り組みが見られます。アイマスを発端に、ぜひともみなさんが良いSPARQL生活を過ごせることを願っております。