先日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に掛けると以下のキャプチャのようになります.Microdata&Schema.org @ニコニコ学会βシンポジウム研究マッドネス

また,Google Rich Snippets Testing Toolに通すとこんな感じ.Microdata&Schema.org @ニコニコ学会βシンポジウム研究マッドネス

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

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

Microdata&Schema.org @ニコニコ学会βシンポジウム研究マッドネス
 
Tags: , ,

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

DBpedia Japanese
 
Tags: ,

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+にまとめています.

Facebook Linked Data
 
Tags: , , ,

すでにEbookは販売されているのですが,O’reilly MediaからLearning SPARQLという本がでています.紙は7/22からのようです.一通り読みましたが,今のところ唯一のSPARQL解説本ですし,SPARQL1.1の細かい内容まで含んでいるのでお薦めです.セマンティックWeb プログラミングLearning SPARQLではSPARQLの話は少しでてくるだけでしたが,この本が補完してくれます.

既にWeb上では,SPARQLを使うことで政府データや音楽データ,生物データなどの多種多様なデータにアクセスできるようになっています.単なるWebAPIと異なるのは,SPARQLを一度覚えることで,SPARQLに対応しているサイトであればどこでも同じ仕組みでデータを使えるということです.他には複数のサイトからデータを取得してマージするときなどにメリットがあったりします.

日本でもすでに国立国会図書館典拠データ検索・提供サービス (Web NDL Authorities)DBCLSのAllie: A Search Service for Abbreviation / Long Form,我々のプロジェクトであるLODACなど,SPARQL Endpointを持っているサイトがでてきています.これらのデータを使うためにSPARQLを勉強するには良い本だと思います.

ちなみに今週末開催の第2回LinkedData勉強会のメインテーマはSPARQLです.SPARQLに少しでも興味がありましたら是非ご参加ください.

Learning SPARQL
 
Tags: , , , ,