oaFinderの公開

はじめに

学術論文誌の出版社サイトに迷い込んだ研究者が目の前にある課金ボタンを押すのではなくて、オープンアクセス(OA)論文へのリンクボタンを押すこともできるようなChrome拡張機能を公開しました。

chrome.google.com

公開したのは9ヶ月ほど前です。

今年のLODチャレンジは何しようかな、と考えて、ちょうどその頃公開されていたoaDOIを触って何かに使えないかなと考えていたのでそれを使うことに。LODチャレンジへの参加は3回目、3年目です。oaFinderという拡張機能を公開してエントリーしたのは2017年1月のはじめのこと*1。今年は計画的に作っていたので、正月は返上せずにすんだかなあというところでした。

oaDOI

idea.linkdata.org

通常であれば、出版社等の論文ページにアクセスした場合、目の前の論文が読める環境(所属組織が購読あるいはオープンアクセス論文)であれば読めますが、非購読を理由に読めない場合、クリックをするごとにその論文を手に入れるためにはいくら必要で、どうやって課金するのか、と課金するしか入手方法がないような課金小径へとどんどこ導かれていく感じになります。そこで、目の前にある論文のOA論文がウェブ上のどこかにあればそこへリンクしてもらえれば嬉しいよね、ということを考えました。出版元のサイトから例えば、この論文、◯◯大学の機関リポジトリに収録されていて機関リポジトリ版であれば無料で読めますよ、とかいうことはやっぱり教えてくれないので。まあ、論文名でググったりすればいいのでしょうが、LODチャレンジ的な発想で、ちょっとスマートに実現する拡張機能を作ってみた、という感じです。

仕組み

流れはわかったけど、目の前の出版社サイトで表示された論文情報のウェブページとoaDOIで公開されているOA論文の公開アドレスをどうやってリンクさせるのだ、という点については、そこが今回の機能の肝となります。oaDOIからOA論文の公開アドレスをひっぱってくるためにはDOIが必要です。目の前にある出版社の論文サイトにはその論文のDOIが画面上どこかに表示されていて、それを抽出すればよい、ということを考えました。2015年のLODチャレンジネタ「ER Linker」でもページ全体からISSNらしき文字列を正規表現で取り出してERDB側のリンク情報と突合させて無償提供のEリソースを活用、という感じにしましたが、今回もほとんど同様でページ全体を正規表現使ってDOIを見つけてしまうやり方です*2。入手したDOIをoaDOIへWeb APIで投げればOA論文の公開ウェブアドレスを返戻するのでそれを画面上に表示します。

haseharu.hatenablog.com

出版社側の論文ページに表示された書誌事項の中にDOIが含まれている、という前提に一度立てればあとは実装方法はなんとでも、ですね。上に書いた通りの力技でもサイトごとに書き切ってやるぜ、でもそれぞれのお好みで、でしょう。幸いなことにCrossrefの方で、検証済みの正規表現があり、ある程度の精度は保証されていたので自分はこれを使いました。

https://www.crossref.org/2015/08/doi-regular-expressions.html

基本的には、目の前にあるページの全てのDOIをえいやと取り出してoaDOIからOA論文のありかのウェブページ情報をとってきます。すべてのページで動作させる設定のため、論文調査の際に論文末尾のレファレンスなどに反応して全部表示すると大変なことになるケースもあるので、3つくらいで順次消えていく設定にしてあります。拡張機能のボタンを押すと、ページ内にあるDOIに対する全てのOA論文を表示してくれます。3つ以上あって、画面から消えてしまうという場合はこちらをクリックしてください。

最後に

ここまで読んで、あれ、これってあれに似てない?と思った方、そうそう、あれです。Impactstoryが2017年3月に公開したUnpaywallです。

Unpaywall

Impactstory、無料公開の研究論文に誘導するChrome拡張機能"Unpaywall"を公開 | カレントアウェアネス・ポータル

重要なことなので、一応書いておきますが、oaFinderの方がリリースは2ヶ月早いのでぱくりではないです。Unpaywallをみて、まあoaDOIの活用法ってこれが王道だよね、と思いました。

Unpaywall公開後、oaDOIにも変化がありました。DOIを検索窓にいれさせてそのOA論文のページを表示するというトップページが消えました。当初はこんな感じ。

oaDOI


まあ、DOIを入力フォームに入力して、OA論文のウェブアドレスを入手する、なんて使い方する人はたぶんあまりいないはず。oaDOI側でも入力フォームはなくしてWeb APIをメインに出します。その後、Web APIの仕様も若干変わってしまい、oaFInder側も結構大きな修正をする必要がありました。oaDOIのWeb APIだけでは論文名などの書誌事項を提供しない仕様になってしまい、oaFinderではCrossrefのAPIも叩きにいく感じに作りかえて、とか。今は1度に2個のウェブサービスのWeb APIを叩いています。なんかここだけは正直ちょっとええーって感じ。

あとは、oaDOIのメタデータをみていると結構いろんなデータが入っていて面白い。

気がつけば11月が見えてきていて、郵便局で年賀状買っている人をみると、今年はLODチャレンジで何をやるかな、と考える程度に、年末を感じる風物詩になりつつ。

締め切りがあるという点でイベント駆動型のものづくりも悪くないなあと思う今日このごろのリードテックです。

*1:エントリーページには1月15日と書いてありました。

*2:この出版社サイトはここにDOIが書かれている、というスクレイピングを実装できれば一番綺麗なんでしょうが、我が家の正月休みもかかってますので、まずはアイディアを実装するための一番簡単な方法で実装。