AIツール入門講座に合わせて,人工知能学会の私のブックマークにLinked Open Dataというテーマで書きました.紙の前にWeb版がすでに公開されています (Vol.28.No.5 (2013/09) Linked Open Data
).紙面の都合もあり全部をカバーできているわけではないですが,最初の取っ掛かりとしては良いのではないかとおもいます.

この投稿にタグはありません。

最近自分が何をしているかはここよりslideshareをみたほうが良いという感じになってしまっています.先日2013年7月5日に人工知能学会主催で行ったセミナーがこれまでのまとめのような内容なのでここでも共有しておきます.Linked Open Dataについて一から知りたい人向けです.

Facebook上では数ヶ月前から公開していたのですが,ここに書いていなかったので.本当はdebやrpmパッケージ作ると良いとはおもうのですがいまのところgithubからのインストールになります.まだ色々と書きかけで検証不足のところもありますので是非コメントよろしくお願いします.

私も翻訳に参加したLinked Dataの本が2/4に発売されます.日本語でLinked Dataについて包括的に解説するはじめての本ですので,Linked Dataやオープンデータ,Web技術に興味がある方皆様に役立つとおもいます.是非お手にとって頂ければ幸いです.(目次案)

アマゾンのサーバでエラーが起こっているかもしれません。
一度ページを再読み込みしてみてください。

今年は全然ブログ書く気力がなかったので最後に軽くまとめを書いておこうとおもいます.まだ書いていないことも色々ありますが,総じて今年はオープンデータ・オープンガバメントが日本でも花開きそうな一年でした.

LODチャレンジJapan

オープンデータのコンテストとして,昨年度LODチャレンジ Japan 2011を開催しました.一委員として,主にチャレンジデーの運営等を担当していました.震災後から活動のお手伝いをしているsaveMLAKについて,オープンデータとして整備したので応募したところデータセット部門 最優秀賞を頂きました.これは私個人というよりsaveMLAKコミュニティ全体が評価されたということだとおもいます.

LODチャレンジは今年度も絶賛募集中です.応募〆切は2013年1月31日なので興味のある方は是非応募をご検討下さい.

DBpedia Japanese

長年日本のLinked Data業界的に懸念だった”日本語のハブがない”問題を解決するために,DBpediaの日本語版であるDBpedia Japaneseを立ち上げました.DBpediaはWikipediaのダンプデータを変換してLODとして再公開するコミュニティプロジェクトです.それの日本語Wikipedia分を担当しています.

DBpedia Japaneseまだ発展途上で,WikipediaのテンプレートやテーブルをDBpedia の語彙 (DBpedia OntologyやFOAF等)に対応付ける作業を進める必要があります.現時点でのマッピング状況はMapping Statistics for jaで見ることができます.
もしこの作業に興味のある方は http://lod.ac/wiki/DBpedia_Mappings を読んでいただければとおもいます.

特定非営利活動法人リンクト・オープンデータ・イニシアティブ

Linked Data / Open Dataの普及,利活用を推進していくためにNPO法人
今年4月に申請,8月に設立しました.社会的貢献として,主に技術面から日本のオープンデータ,オープンガバメント推進の手助けをしていく予定です.

すでに福井県鯖江市と技術面での共同作業をしていますし,関係者が省庁や地方自治体のオープンデータ・オープンガバメント関連委員会の委員を勤めたりしているなど,様々な活動を開始しています.今まで福井に行ったことなかったのに今年鯖江に4回も行く事になるとは去年の段階では想像していませんでした...

CKAN

GLOCOM主催のオープンデータ活用アイデアソンがきっかけで,CKANの日本語化プロジェクトをスタートしました.CKANはデータポータルサイトのFLOSSで,データカタログやデータストア,API等の機能を持っています.大分本家にフィードバックされているのですがまだまだ足りない作業もありますし,今後は日本語化だけではなくてCKAN自体にコミットして行くことが望まれるかなと.

この手のソフトウェアでは,他にOGPLがFLOSSになりました.SocrataもFLOSSになる予定らしいです.そんな中CKANを個人的に推している理由は,これがいくつかの意味でLinked Dataのプラットフォームでもあるからです.

CKANで入力されたカタログデータは実はLinked Dataとして公開されています.例えばブルガリア政府の支出についてのデータ.また,LOD Cloudに載せてもらうための手続きは,CKANで構築されたサイトthe Data Hub決められた情報を追加することです.

CKANについてはいずれまとまった文章を書くつもりです.

生物学関係

昨年から生物種名のLinked Dataについてあれこれやってきました.LODチャレンジ2011にLODAC BDLSを出し,それをベースにLODAC Speciesという種名のLinked Dataを構築しました.生物種に関するデータのハブになることを目指しています.また,これを利用した検索拡張のデモ (1, 2)とかも作りました.

生物学は分散データの統合プラットフォームとしてLinked DataやSPARQLの採用が進んでいる分野です.私もBiohackathon等様々なイベントに参加させて頂いて大変刺激になりました.

mmmap: Yet Another 学会支援システム

奈良で開催されたACM Multimedia 2012JIST2012用のスケジュール等をLinked Dataのアプリケーションとして作成しました.

Evernote APIの連載

技術評論社で昨年からEvernote APIについての不定期連載を書いていました.しかし,上記のOpen Data/Linked Data関連の仕事が今年一気に来たので執筆時間が取れず,途中で連載終了にさせて頂きました.Evernoteはユーザとしては今後も使い続けていきます.

ニコニコ学会β

深く運営に関わっているわけではないですが,ニコニコ学会βは手伝える範囲でお手伝いしています.今年はマッドネスの投票サイト(第2回,第3回を作ったりニコニコ超会議でスタッフやったりしていました.

EPUB3仕様書翻訳手伝い

とあるきっかけによりEPUB3仕様書の翻訳の手伝い(主に校正)をしています.電子書籍関係は元々興味対象なので,EPUBが広まるきっかけになればと.

ReVIEWで触れたbookshopについて.bookshopは独自の形式ではなくて,HTML+CSS+JSで書いたものをpdfやepubにできるようにしようというツールです.

bookshopもrubyベースで,gemがあります.

$ gem install bookshop

新しく本のプロジェクトを作るのは以下のコマンドです.

$ bookshop create book_name

生成されたプロジェクトにサンプルが入っているのですが,それを見るとHTMLと言っている部分は,実際にはERBのようです.

pdfやepubを作成するには,プロジェクトのトップで以下のようにします.

$ bookshop build pdf
$ bookshop build epub

bookshopでpdf等を作るためには,PrinceXMLを予めインストールしておく必要があります.しかし,これは非営利利用限定で無料で使えるもので,営利の場合は別途ライセンスを購入する必要があります.

ワンソース・マルチユース的なツールは好きで,昔原稿書きにはHTMLとLaTeXを同時に吐けるSmartDocを使っていました.しかし,もう全然更新されておらず,今時epubも作って欲しいということで,最低限HTMLとpdfとepubを作れるツールがないかと調べたところ,以下の3つが候補に挙がりました.

  1. DocBook
  2. ReVIEW
  3. bookshop

この中でまずReVIEWを試しました.ReVIEWは達人出版会とかオライリー・ジャパンでも使われているそうなので苦労しなさそうかなと (ソース1, ソース2).

ReVIEWはrubyでできていてgemもあるので,インストールは簡単です.

$ gem install review

最新を使いたければhttps://github.com/kmuto/review.gitを入れればOK.

達人出版会の高橋さんがreviewのサンプルをgithubに置いてくれているので,それを使ってテストします.

$ git clone https://github.com/takahashim/review-sample-book.git
$ cd review-sample-book/src
$ review-epubmaker config.yml

問題なければこれでbook.epubができます.pdfの作り方は以下の通り.

$ review-pdfmaker config.yml

但し,review-pdfmaker/epubmakerを連続でやろうとするとbookという作業ディレクトリが残っていて駄目と言われるので,毎回bookディレクトリを削除する必要があります.何かオプションとかあるのかもしれません.

嵌った点として,ReVIEWのpdfはLaTeX経由で作られるのですが,MacPortsから入れていたplatex-utf8ではdvipdfmxできませんでした.LionでビルドしたLaTeX環境だと,jpg画像を含んだdviをpdfにできないという既知のバグがあるそうで...SnowLeopardでビルドした環境ならOKらしい.いつも画像はepsしか使っていなかったので気づきませんでした.

どうせなのでtwitterで話題になっていたTeXLiveのMac版であるMacTeXでLaTeX環境を作りました.作業手順は”MacTeX 2011 で日本語“に書かれている通りに実行するだけで大丈夫でした.

ReVIEWフォーマットはASCIIのEWBをベースに拡張したものだそうです.

先日2012年4月28-29日にニコニコ超会議にてニコニコ学会βが開催されました.ニコニコ学会βの中で野生の研究者に発表してもらう研究マッドネスというセッションがあり,その研究を公募するサイトを担当しました.ただ作るだけでは面白くなかったので,裏でMicrodataとSchema.orgのテストをすることにしました (参考: 当時のGoogle+).

例えば,メカの部で賞を取った電子楽器ウダーのページのソース抜粋は以下のようになっています.

<div class='entry' id='work' itemid='http://nicores.herokuapp.com/entry/10#work' itemscope='itemscope' itemtype='http://schema.org/CreativeWork'>
  (...snip...)
  <h2><span class='hashtag'>#マッドネス10</span>「<span class='title' itemprop='name'>電子楽器ウダー</span>」</h2>
  <h3><span class='author' id='person' itemid='http://nicores.herokuapp.com/entry/10#person' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>発表者:<a href='http://twitter.com/uda807'><span itemprop='name'>宇田道信</span></a></span> (<span itemprop="genre">メカ</span>の部希望)</h3>
  <div class='video'><script type="text/javascript" src="http://ext.nicovideo.jp/thumb_watch/sm14918619?w=490&h=307" itemprop="url"></script></div>
  <p class='description' itemprop='description'>ウダーは個人で開発している電子楽器です。電子楽器ではありますが、操作は非常にシンプルです。 
  (...snip...)  

これをMicrodata等からRDFを抽出するRDF Distillerに掛けると以下のキャプチャのようになります.result of RDF Distiller

また,Google Rich Snippets Testing Toolに通すとこんな感じ.the result of Rich Snippets Testing Tool

今見なおすと動画のurlが取れていないみたいですが,Microdataの仕様を読むとscript要素は対象外なんですね.当時は取れていたきがするけど.

更に,これらのデータをRDF Distillerを通して,データクラウドサービスであるDydraに取り込みました.公開レポジトリはfumi/nicoresです.色々クエリが書けて便利.

本日DBpediaの日本語版を公開しました.これはWikipedia日本語版からデータを抽出してLinked Open Dataとして公開するものです.まだinfoboxからdbpedia-owl等の語彙へのマッピング作業等をしていないので取得できるデータが少ないですが,まずは第一段階ということで.

LinkedData.jpに投げたのをこちらにも載せます.

FacebookのOpen Graph Protocol (Web pageに埋め込むほう)は元々RDFaやMicroformatsから派生して作られていますが,今回のf8からの変更で,Open Graph API (グラフの情報を取得するほう)がJSONだけではなくてTurtleを返すようになりました.

例えば私のfacebookの情報はhttp://graph.facebook.com/fumihiroから取れます.

% curl -H 'Accept: text/turtle' http://graph.facebook.com/fumihiro
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix api: <tag:graph.facebook.com,2011:/> .
@prefix og: <http://ogp.me/ns#> .
@prefix fb: <http://ogp.me/ns/fb#> .
@prefix : <http://graph.facebook.com/schema/~/> .
@prefix user: <http://graph.facebook.com/schema/user#> .
</1209165766#>
       user:id "1209165766" ;
       user:name "Fumihiro Kato" ;
       user:first_name "Fumihiro" ;
       user:last_name "Kato" ;
       user:link <http://www.facebook.com/fumihiro> ;
       user:username "fumihiro" ;
       user:gender "male" ;
       user:locale "en_US" .

@base <http://graph.facebook.com> .があったほうが良いとおもうのですが,そこらへんは修正されることを期待します.同じものをntriplesにしてみると,以下のようになります.こちらのほうがURIがはっきりしていてわかりやすいかもしれません.

% rapper -i turtle -o ntriples 'http://graph.facebook.com/fumihiro'
rapper: Parsing URI http://graph.facebook.com/fumihiro# with parser turtle
rapper: Serializing with serializer ntriples
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#id> "1209165766" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#name> "Fumihiro Kato" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#first_name> "Fumihiro" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#last_name> "Kato" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#link>
<http://www.facebook.com/fumihiro> .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#username> "fumihiro" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#gender> "male" .
<http://graph.facebook.com/1209165766#>
<http://graph.facebook.com/schema/user#locale> "en_US" .
rapper: Parsing returned 8 triples

f8でのもう一つの変更は,ページやアプリの作成者がActionとObjectを定義できるようになったことです.Actionは動作,Objectは対象物として,User => Action => Object という関係を取れるようになります.これは,今までのUser => Like => Page の関係が発展したものです.見ての通りこれはトリプルになります.今はまだ出していないですが,今後Turtleでこの関係が取れるようにしてくるでしょう.

schemaもrdfsでとれるようになっています.

ユーザのschema

% curl -H 'Accept: text/turtle' 'http://graph.facebook.com/schema/user'

ページのschema

% curl -H 'Accept: text/turtle' 'http://graph.facebook.com/schema/page'

また,もっと様々な付加情報が欲しい場合は,’?metadata=1’をつけると取れます.

% curl -H 'Accept: text/turtle' 'http://graph.facebook.com/fumihiro?metadata=1'
</1209165766#>
       user:home <http://graph.facebook.com/fumihiro/home> ;
       user:feed <http://graph.facebook.com/fumihiro/feed> ;
       user:friends <http://graph.facebook.com/fumihiro/friends> ;
       user:mutualfriends <http://graph.facebook.com/fumihiro/mutualfriend> ;
       user:family <http://graph.facebook.com/fumihiro/family> ;
......

但しこれらのURIの先はOAuth認証しないと取れないようになっています.

やはりすでに大量の人URIを持っているauthorityが提供し始めるとインパクトが違いますね.Twitterのメタデータ埋め込みがまったく音沙汰なくなっていて悲しいですが,Google+とかにも頑張ってもらいたいです.

色々試した画面キャプチャや参考リンクなどをGoogle+にまとめています.