今日から使えるim@sparql術

アイドルマスター Advent Calendar 2020 4日目の記事です。

はじめに

冬優子ーー!!!誕生日おめでとーーー!!!

はい。
明日はアイマスハッカソンです。ご準備~?

imas.connpass.com

というわけでですね、おそらく今日から準備をしている人に向けて、「今日から使えるim@sparql術」を紹介しようと思います。

sparql.crssnky.xyz

数式を使う

体表面積、考えたこと無いけど合ってるんすかね?
10,11,12行目のbind句とその中身が注目ポイントです。bind句はas句と一緒に使います。where句の中で関数の戻り値や他の変数を別の変数に代入する際に使います。
値 as ?変数名のように、左から右に流れるのは慣れないかもしれませんね...
中では四則演算やmath関数が使われています。

XQuery and XPath Functions and Operators Math Namespace Document

Using Math Functions with SPARQL — GraphDB Free 9.4.0 documentation

に多くの関数があるので、必要に応じて使っていきましょう。

述語を連結して使う

10行目のschema:member/rdfs:labelが注目ポイントです。ユニットに所属するメンバーのURIschema:memberで取得した後、そのURIを主語にしてrdfs:labelで名称を取得できます。これを使えば、

のように、簡単に平均身長を抜き出すこともできます。

他のエンドポイントと繋がる

なんたって、LinkedOpenDataですから。他のエンドポイントと繋がってこそです。
こちらは、とある魔術シリーズに関するエンドポイント「とあるSPARQL」とim@sparqlが繋がる例です。
7行目のSERVICE句が注目ポイントです。
ここで別のエンドポイントを指定することで、別のエンドポイントに対してクエリを送ることができます。その結果と元のエンドポイントのクエリを統合することで、複数のエンドポイントの結果を纏めることができます。

WikipediaからLODを作成するDBpedia(更新が2016年で止まってる...)や、LODをWiki化して人間とコンピュータの双方が参照可能なDBであるWikidataなど、多種多彩なLODが世の中にあるので、ぜひご活用ください。

クエリを探す

im@sparqlのトップページにあるExampleに、少しだけクエリ例があります。また、JavaScriptの例も載せていますのでぜひご参考に。

☆ピコピコプラネット☆SPACEにも、im@sparqlや他のエンドポイントのクエリがたくさん共有されています。先人の知恵をどんどん吸収していきましょう。

space.pikopikopla.net

おわりに

以上です。im@sparqlを活用して、素早くアイマスエンジニアリングを制作していきましょう!!