Edited at

DBpedia と neo4j で声優と出演作品をグラフ表示してみた

More than 3 years have passed since last update.

研究室の合宿で京都へ

夜中、なんか開発したいねということで、短時間のハッカソンを行いました(2人で)。

ラボメンの研究進捗のあとだったりしたので、研究でお世話になっているツールを使おうということで、


  • DBpedia Japanese

  • neo4j

を使って、声優と出演作品をグラフ表示してみました。


DBpedia Japanese


DBpediaはWikipediaから情報を抽出してLOD (Linked Open Data)として公開するコミュニティプロジェクトです.本家のDBpediaは主にWikipedia英語版を対象としています.DBpedia Japanese の目的は,Wikipedia日本語版を対象としたDBpediaを提供することです.


オープンデータといえば、これという感じ

SPARQL という RDF 向けのクエリ言語で、必要な情報を取得することができます。

今回は声優と、出演作の関係が必要だったので、利用したクエリはこんな感じ

select distinct ?anime_name ?actor_name where {

?anime <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Anime> ;
<http://xmlns.com/foaf/0.1/name> ?anime_name ;
<http://ja.dbpedia.org/property/出演者> ?actor .
?actor <http://www.w3.org/2000/01/rdf-schema#label> ?actor_name .
}


neo4j


Neo4j is a highly scalable native graph database that leverages data relationships as first-class entities, helping enterprises build intelligent applications to meet today’s evolving data challenges.


関係表現したり、クエリできるグラフデータベースです(ざっくりしかまだ分かっていない)

Cypherクエリで操作します。


今回の流れ


  1. DBpedia から SPARQL を使ってデータを取得

  2. データを Cypher クエリに整形

  3. neo4j に登録

1, 2 は ruby でやります。githubにソースはおいておきます。

3は、手動。


Cypher クエリを作る

him0/neo4j-voice-actor-graph

bundle install --path=vendor/bundle

bundle exec ruby app.rb| pbcopy # クリップボードにクエリを突っ込む


neo4j の環境構築

neo4j は、Dockerコンテナを利用 Kitematic で速攻コンテナを作る。

スクリーンショット_2016_09_01_1_03.png

スクリーンショット_2016_09_01_0_09.png

Port 情報をもとにブラウザを開く

スクリーンショット 2016-09-01 0.09.54.png

Password 初期は neo4j みたいです。新規パスワードを求められるので登録。

作ったクエリを実行

Neo4j.png

初期だと表示数が少ないので表示数の設定を変えます。

:config initialNodeDisplay: 5000

いざ表示

MATCH ()-[r]->() RETURN r

Neo4j 3.png

Neo4j.png

できた。