『☆ピコピコプラネット☆』が誕生しました
この記事は、アイドルマスター Advent Calendar 2019 の 2 日目の記事です。
この記事では、先日公開した『☆ピコピコプラネット☆』の紹介をさせていただきたいと思います。
『☆ピコピコプラネット☆』とは?
『☆ピコピコプラネット☆』は、『アイドルマスター ミリオンライブ!』の情報を Linked Open Data(LOD)によって提供する非公式のオープンデータプラットフォームです。
例えば、ランティスのミリオンライブのページを見に行けばアルバム情報が手に入りますが、人間が読むために書かれた内容であり、機械が読むためにはひと手間が必要です。
『☆ピコピコプラネット☆』では、こういった情報を RDF というメタデータを記述するための統一された枠組みに従って提供しています。正規化されたメタデータで記述されているため、機械で使用するのに都合がいいのです。
この RDF を読んだり、後述する SPARQL を用いて検索したりすることで、ミリオンライブの情報を使用したアプリを作ることも可能になります。
RDF の詳しい説明については、わかりやすい解説サイトや W3C 勧告がありますので、そちらに説明を譲ります。
- RDF -- リソース表現のフレームワーク
- RDF入門(W3C 勧告の日本語訳)
このようなメタデータを共有するための技術の総称を Linked Open Data(LOD)といいます。
『im@sparql』との違い
みなさんのなかには、類似する LOD の『im@sparql』をご存知の方もいらっしゃるかもしれません。『im@sparql』は、広がるアイマスワールドをオープンデータ化する LOD プラットフォームです。アイマスの各シリーズを横断的にアイドルの情報などを提供されています。
『☆ピコピコプラネット☆』は、『im@sparql』が提供していないアルバムや楽曲、声優さんの情報など、ミリオンライブに関することという切り口から、なんでもオープンデータ化することをコンセプトにしています。今後は、ライブや書籍、ミリシタのゲーム情報などを追加していきたいと考えています。
ちなみに、筆者は『im@sparql』のコントリビュータでもあります。『☆ピコピコプラネット☆』では、アイドルの情報などで『im@sparql』へリンクさせることにより連携しやすくなる工夫をしています。
情報を検索する
データを正規化すると容易になるのが検索です。RDF クエリ言語の SPARQL を用いることで、RDF で記述されたリソース(情報)を SQL のように検索できます。
SPARQL は HTTP を介して発行できるため、Web API のように使用できます。
SPARQL の詳細についても、他の解説サイトや W3C 勧告に説明を譲ります。
- ジャパンサーチのSPARQLエンドポイント
- SPARQL 1.1 クエリ言語(W3C 勧告の日本語訳)
この記事では、『☆ピコピコプラネット☆』の実際のクエリ例をいくつか紹介します。以下で紹介するクエリは、『☆ピコピコプラネット☆』のトップページにあるフォームにコピペすることで、実際に試すことができます。
詳しい解説ができなくて申し訳ないですが、アイデア次第でいろんなクエリを書いて検索できるので、みなさんも試してみてください。提供している RDF は GitHub で公開していますので、SPARQL を書くときの参考にしてください。
https://github.com/foooomio/pikopikoplanet/tree/master/dataset
アイドルの名前とタイプを取得する
PREFIX mltd: <https://mltd.pikopikopla.net/mltd-schema#> PREFIX : <http://schema.org/> SELECT ?name ?type WHERE { ?s a mltd:Idol ; :name ?name ; mltd:typePrFaAn/:name ?type ; :position ?position . } ORDER BY ?position
七尾百合子が参加している楽曲
PREFIX mltd: <https://mltd.pikopikopla.net/mltd-schema#> PREFIX : <http://schema.org/> SELECT ?album ?position ?song WHERE { ?s a :MusicAlbum ; :name ?album ; :track [ :recordingOf/:name ?song ; :byArtist/:member?/:name "七尾百合子" ; :position ?position ] . }
収録された回数の多い楽曲
PREFIX : <http://schema.org/> SELECT ?song (COUNT(?song) AS ?count) WHERE { ?s a :MusicAlbum ; :name ?album ; :track/:recordingOf/:name ?song . } GROUP BY ?song HAVING (?count >= 2) ORDER BY DESC(?count)
ミリオン声優のTwitterアカウント
PREFIX mltd: <https://mltd.pikopikopla.net/mltd-schema#> PREFIX : <http://schema.org/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?account ?url WHERE { ?s a mltd:VoiceActor ; :name ?name ; foaf:account [ foaf:name "Twitter" ; foaf:accountName ?account ; foaf:page ?url ] . }
im@sparql からアイドルのイメージカラーを引いてくる
PREFIX mltd: <https://mltd.pikopikopla.net/mltd-schema#> PREFIX : <http://schema.org/> PREFIX imas: <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#> SELECT ?name ?color WHERE { ?s a mltd:Idol ; :name ?name ; :position ?position ; :sameAs ?uri . SERVICE <https://sparql.crssnky.xyz/spql/imas/query> { ?uri imas:Color ?color } } ORDER BY ?position
フィードバック受付中!
『☆ピコピコプラネット☆』は、まだ生まれたばかりのサービスです。よりよいサービス提供のために、ご意見・ご感想を募集しています。また疑問点などありましたら、どんどん質問をお寄せください。
IM@Study Slack の #pikopikoplanet で受け付けております。みなさまのコントリビュートをお待ちしております!
宣伝です!
今週末の 12 月 7 日(土)、アイマスハッカソン 2019 が関東と関西で同時開催されます。参加者はまだ受付中ですので、ご興味ありましたら是非ご参加ください!
(『☆ピコピコプラネット☆』が使ってもらえたら嬉しいな〜)