ER Linker のリリース

はじめに

ER Linker(E-Resources Linker) をリリースしました。

chrome.google.com


CiNii ArticlesやCiNii Books、NDL Search(NDL OPACは現在未対応)、J-Globalや各種OPACの書誌情報のページなどのあらゆるページでオープンなナレッジベースを利用したリンクを生成する拡張機能です。具体的にはオープンなナレッジベース(現在はERDB-JPに対応)に登録された情報源を利用してリンクを自動で作成し表示します。Google Chrome Extensionです。

f:id:haseharu:20150712154645p:plain

f:id:haseharu:20150712154655p:plain

f:id:haseharu:20150712154713p:plain

f:id:haseharu:20150712154726p:plain

動きの流れと仕組み

ERDB-JP(Electronic Resources Database-JAPAN)は国立情報学研究所が運用しているオープンアクセス誌を共有するための仕組みです。ERDBに登録されたデータはCC0 1.0 Universalとして公開されていて一括ダウンロード可能です。オープンなナレッジベースを活用するためのツールとしてER Linkerを作成しました*1

ERDB │ ニュース

ERDB-JPとは | ERDB-JP

具体的な動き

ページ内で「ISSNらしき文字列」をサーチし、「ISSNらしき文字列」にてERDBのリストへ検索・マッチングすることであらゆるページ上で動作するように作りました*2。あまり特殊な書き方をしていなければ、ISSNが表示されているページであれば、動作すると思います*3

最後に

ぜひ、ERDB-JPについてはWeb APIを公開していただきたいです。今回の実装において、ERDBのデータをいかに持つか、が一番の課題でした*4

*1:以前作成したどこでもリゾルバの流れを汲んでいるので、どこでもリゾルバ for ERDBとも言えます。

*2:公開直前にhttpsでの動作にはまだ未対応,ということに気がつきました。というわけでNDL OPACではまだ動作していません。

*3:動作しないページがあれば教えていただけると幸いです。

*4:Google拡張機能JavaScriptで動作しています。拡張機能内でデータを持ち、JavaScriptでERDBのリストと「ISSNらしき文字列」とのマッチングをかけてリスト生成するには少し状況が悪い場合があるのと、JSONを吐き出すAPIがあればなんの問題もないため、とりあえずAPIを立てて対応しています。もし公式のWeb APIなどを公開していただければ拡張機能以外の、また別の展開も考えられると思います。

3日目の福岡

今日はリードテック合宿の最終日。朝起きて、案の定、 id:kitone は寝ているので id:otani0083 と一緒に大濠公園をぐるりと散策。スタバでソイラテを買って戻る。

その後、CrossRef Taxonomy Interest Groupについての記事を書いて、


CrossRef Taxonomy Interest Group - Katachi

朝昼ごはんはうどんの和助で。

f:id:haseharu:20150308121332j:plain

肉ごぼうどん。上にのってるのがごぼうの天ぷら。圧巻。

さくさくしゃりしゃりでおいしかたです。

そのあと、ブックスキューブリックという本屋さんに連れて行ってもらいました。旅行中はだいたい財布のひもがゆるんでるので「コールド・スナップ」を買ってしまう。舞城王太郎、訳。図書館で借りずに買い続けているのは舞城くらい。

Amazon.co.jp: コールド・スナップ: トム・ジョーンズ, 舞城 王太郎: 本

その後、志賀島へ。

f:id:haseharu:20150308143758j:plain

id:kitoneid:otani0083 が二人でだーっと走っていってしまったので、あとを追う、の図です。

f:id:haseharu:20150308143829j:plain

f:id:haseharu:20150308144026j:plain

「Li:d tech」ではなく「Li:ed tech」となっているのがあとから分かり、あとの祭り。誰が書いたのかは内緒にしておきます。

その後、福岡空港から帰りの便に。

今回の合宿の成果もそのうち形になるかと思います。

2泊3日でお世話になりました。
また近いうちに集まって何かやりましょう。

今回で写真多め日記風エントリは一旦おしまい、でリードテックラボ風に戻ります。

CrossRef Taxonomy Interest Group

気づけば CrossRef Taxonomy Interest Group というのができてました。オントロジーとタクソノミーあたりを"Knowledge Model"と呼んでて、そのKnowledge Modelに関するノウハウやベストプラクティスなどの情報共有、コミュニティ形成あたりが目的のよう。将来的にはサービスプロバイダからの参加、フォーラムの開催なども視野に入れているみたいです。

サイト自体は2014年の12月に作っていた様子です。参加している出版社は、

  • ACM
  • AMERICAN PSYCHOLOGICAL ASSOCIATION *
  • De Gruyter
  • IOP
  • PLOS *
  • Taylor & Francis
  • Wiley

* をつけたのはあとから参加した出版社っぽいところです。

Knowledge Modelのテンプレが公開されていて、まずはそれをそれぞれ埋めて共有しましょうっていうステージの様子。2015年3月8日時点でKnowledge Modelが公開されているのは以下。

  • General Linguistics Taxonomy
  • Medical Subject Headings (MeSH®)
  • SNOMED CT
  • IOP Thesaurus
  • PLOS Thesaurus
  • Unified Astronomy Thesaurus
  • ACM Computing Classification System (CCS)
  • Thesaurus of Psychological Index Term®
  • NewsIndexer Thesaurus
  • NICEM Thesaurus

2015年3月3日にウェビナーがあったようで、その資料はこちら。
http://taxonomies.labs.crossref.org/wp-content/uploads/2015/03/2015-03-03-Webinar-CrossRef1.pdf

今後の活動が楽しみです。

2日目の福岡

リードテック合宿 in 福岡の2日目の記録です。

朝ご飯は前日のパンストックでのパンと id:kitone 特製のスムージーをいただきました。その後、ちょっと近所の図書館を見に行こう、ということで移動。お昼ご飯は、 id:shibure もおすすめの牧のうどん。肉うどんにごぼ天をつけてもらい、かしわめしはおにぎりにしてもらいました(1個70円)。

f:id:haseharu:20150307110653j:plain

f:id:haseharu:20150307110707j:plain

福岡のソウルフードとのことなので、これは外せません。やわやわ麺がスープを吸いつつ、スープを継ぎ足しながら麺が減らない様子を楽しみながら完食。普通においしかったです。

お昼ご飯後、さらに移動。休憩で寄ったコンビニでソウルフードの第2弾、ブラックモンブランを購入。こちらも普通においしかったです。

f:id:haseharu:20150307125056j:plain

そして、さらに移動。まずは伊万里図書館。

f:id:haseharu:20150307140002j:plain

「図書館」なんだなあ。記号的というかシンボル的というか。

その後、も少し移動して武雄師市図書館へ。最寄りの駐車場が満車で5分くらい待ち駐車。

f:id:haseharu:20150307162037j:plain

館内は人でごった返してました。入ってすぐに新刊本こんなに扱ってるのか、とややびっくり。武雄図書館せんべいと飴をセルフレジで購入。Tポイントが70円くらい貯まってたので全部使ってみました。はじめてでも特段迷うことなくセルフで支払うことができました。

f:id:haseharu:20150307160526j:plain

館内をきょろきょろしながら、スタバでちょっと休憩。

ジャズが流れてコーヒーの香りがする図書館は初めてでした。近くにあったら普通に使うだろうなあ。

その後、武雄温泉でまったり。

f:id:haseharu:20150307175943j:plain

選んだのは鷺の湯。外風呂とサウナが付いてる。

f:id:haseharu:20150307175929j:plain

その後、 id:otani0083 のおすすめのお店で1日のまとめ的な議論をして2日目が終了。なんだか観光ばかりじゃないか、と言われそうですが、明日*1がいよいよ合宿最終日です。

*1:これを書いてるのは3日目の朝

Local Storageのクロスドメイン問題

はじめに

前回のエントリで書いたChromeアドオンの実装で詰まった部分があるのでそれをメモ的に。


デジコレエクステンション with Taggy Bank - Katachi

技術的課題

今回、CiNii Books, NDL Search, Worldcatで件名標目を収集し、どのサイトにいてもその収集したタグを参照することができる仕組みが求められました。LocalStorageをとりあえず使ってみようかと思ったのですが、LocalStorageはシングルドメインでのみ利用可能である、というクロスドメイン問題が発生します。つまり

  • CiNii Booksで収集した件名標目はCiNii Booksドメインでのみ参照可能
  • NDL Searchで収集した件名標目はCiNii Books側で収集した件名標目ともマージできない
  • 収集した件名標目はそれぞれ収集したドメイン内でしか活用できない

という問題があります。いろんなウェブサイトから件名標目を収集していろんなサイトで活用するための仕組みとしては、ここをクリアする必要がありました。

Background.js

自分がとった方法はBackground.jsからLocalStorageを参照する方法です。

f:id:haseharu:20150306233640p:plain

Background.jsからLocalStorageを参照すると、上記のように、ローカルファイルをドメインとしてデータを記録します。参照されているローカルファイルはChrome拡張機能の保存されているローカルファイルです。つまり、どのサイトにアクセスしても、同一のドメインとして同一のLocalStorageに保存し参照することができます。

セキュリティ的にどうなのか、とかいろいろ検証が必要とは思いますが、とりあえずこんな方法もあるということで。

デジコレエクステンション with Taggy Bank

2014年9月19,20,21日に id:kitoneid:otani0083 とリードテック合宿をしたのですがその成果としてLODチャレンジ2014にエントリーしてみました。

NDL・NIIのデータセットをISBNをキーとしマッピングしたデータセット - データセットのエントリーシート | Linked Open Data Challenge Japan 2014

デジコレエクステンション with Taggy Bank - アプリケーションのエントリーシート | Linked Open Data Challenge Japan 2014

データセットを作ってそれはデータセット部門へ応募。そのデータセットを使ったアプリをアプリケーション部門へ応募しました。

データセット部門では、NDLがデータセットとして提供していたデータセット

対応一覧データセットとNIIが提供しているデータセット及びCiNii APIを利用して、CiNii側の識別子であるNCIDとNDL側の識別子であるNDLBibID,JPNO,NDLJPをISBNをキーとしてマッピングしたデータセットを作成しました。このデータセットによって、たとえばCiNii BooksとNDLデジタルコレクションがつながることになります。

アプリケーション部門では、そのデータセットを使ったアプリケーション(Chrome拡張機能)を作りました。仕組みは非常にシンプルでCiNii Booksの書誌情報ページからNDL SearchやNDLデジタルコレクションへのリンクを表示します。双方向に作ったので、NDL SearchからCiNii BooksとNDLデジタルコレクションへのリンク、NDLデジタルコレクションからCiNii BooksとNDL Searchへのリンクも表示されます。

フルテキストがウェブ上で公開されているにも関わらずそのフルテキストへのリンクがない書誌情報をどうするのか、は大きな課題だと思います。

Googleに5ドル払ってChromeウェブストアで公開中です。


デジコレエクステンション with Taggy Bank - Chrome Web Store


また、それ以外にも、実験的にメタデータを収集する仕組みを追加してみました。Taggy Bankというのがその機能です。具体的にはNDL Search、CiNii Books、Worldcatで書誌情報を閲覧した際にその書誌情報にNDLSH、BSH、FAST、LCSHなどの件名標目と呼ばれるメタデータが付与されている場合、全てアドオン側で勝手に収集します。収集したメタデータをあれこれ活用できたら面白い、と思いますが、とりあえずは収集された件名標目を組み合わせてCiNii Booksから検索し書誌情報をレコメンドする機能、としました。

f:id:haseharu:20150306225656p:plain

このTaggy Bankは、SIMILE ProjectのPiggy Bank*1を件名標目に応用したものです。

Piggy Bank

Taggy Bankの中身についてはまた次回書きたいと思います。

*1:現在は開発中止

1日目の福岡

初九州!という感じで福岡へきました。リードテック合宿 in 福岡です。
前々回のリードテック合宿 in 沖縄は台風の影響で一人だけ参加できなかったため、今回は初めての遠征合宿です。


ヒッチハイクの途中で - Katachi

茨城空港スカイマークにのって福岡空港へ。
福岡空港についたのが11時40分。定刻より10分早い到着。
その後、id:otani0083 が迎えにきてくれてそのままパンストックへ。
おいしいパンを4つ食べました。
二人の職場を見学させてもらいながら、 id:kitone とも合流。
夜は水炊き長野というお店でぐつぐつと水炊きを食べました。
その後は二日間お世話になる id:kitone 宅へ。
荷物を置いてから乱立する長浜屋に目を回しながら長浜ラーメンを。
今はmanu coffeeで3人でラップトップを3台開いている始末です。