読者です 読者をやめる 読者になる 読者になる

フツーって言うなぁ!

フツーなサラリーマンのフツーな嘆き.

Microsoft Academic APIを利用してみた

Microsoft Academic APIは,Microsoftの文献検索用の検索エンジンであるMicrosoft Academic Searchのデータを外部プログラムから利用するための,いわゆるWeb APIです.

以前は登録制で,使用目的などをメールでMS社に伝えると,IDが送られる形式だったそうですが,現在はMicrosoft Azure Marketplace上でWebサービスとして提供されているようです.*1

このAPIについてはあまり情報が多くないため,できることについてまとめておこうと思います.

Microsoft Academic APIでできること

とりあえず
https://api.datamarket.azure.com/MRC/MicrosoftAcademic/v2/Paper?$filter=ID%20eq%20224857
このURLを実行してみるとよい.

これは,Paperというスキーマから,idが224857となる論文の情報を取り出すリクエストである.

こんな感じで,文献,著者,論文誌,引用についての情報をMASのデータベース(RDB)から抽出できる.

一応,リファレンスは存在して,詳細については
MicrosoftAcademicSchemaRef.docx - Microsoft Word Online
に記載されている.
しかし,Paper_Refのスキーマ情報がなかったり,完全なものではない様子.

APIを試してみる

最も手っ取り早くこのAPIを試してみる方法として,Webインタフェースを用いる方法がある.
Microsoft Academic APIは,Webインタフェースを持っており,クエリに対する結果をテーブルの形で確認することができる.

今回は,わかりやすさのため,この方法を紹介することとする.
※外部プログラムからAPIを利用するだけなら,(適切なクエリがわかっていれば)以下の手順は必要なく,上のようなリクエストを送信するだけでよいことに注意.

  • Microsoft Azure Marketplaceへサインインする.

Microsoftアカウントがあれば,そのアカウントでログインできる.
ない人は取得を.

f:id:lethe2211:20141004195107p:plain

  • 「marketplaceの検索」と書かれた検索ボックスに,"Microsoft Academic"と入力し,「Microsoft Academic」データセットを検索する.

f:id:lethe2211:20141004195440p:plain

  • 「サインアップ」をクリックして次の画面に移動し,利用規約を読んだ上で,「サインアップ」をクリックする.

f:id:lethe2211:20141004211433p:plain

f:id:lethe2211:20141004195904p:plain

  • 「マイアカウント」 -> 「マイデータ」 -> 「Microsoft Academic」から,「使用」をクリックする.

f:id:lethe2211:20141004201311p:plain

f:id:lethe2211:20141004201318p:plain

f:id:lethe2211:20141004201325p:plain

  • 下のような画面が表示されたらOK.

f:id:lethe2211:20141004201431p:plain

この画面では,GUIのインタフェースで,文献情報の検索結果と,同じ検索を行いたい時のクエリとなるリクエストURLを表示している.
例えば,文献引用数が200以上の論文誌を検索したい場合には,「PaperJournalCount」スキーマのタブをクリックし,「paperCount」カラムにフィルターをかければよい.

f:id:lethe2211:20141004202310p:plain

f:id:lethe2211:20141004202318p:plain

このページ上部に表示されているURLにGETリクエストを送信すると,検索結果に対応するデータがXML形式(かJSON形式)で返される.

f:id:lethe2211:20141004202712p:plain

このXMLスクレイピングツールなどでいじって,欲しい情報を取り出せばよい.

使用する上での注意点

f:id:lethe2211:20141004203508p:plain

f:id:lethe2211:20141004203541p:plain

  • このAPIは,一般的な文献検索(例えば,"pagerank"のようなクエリを入力して対応する検索結果を得る)に対応していない.
    個人的にはこれが一番必要な機能なのだが…

参考

Microsoft Academic Search API dataset in Windows Azure Marketplace

*1:なぜこんなことを知っているかというと,Web上には新APIの情報が少なく,旧APIの情報を見てMS社にメールを送ってしまったから.赤っ恥をかいた

*2:Microsoft独特の記法っぽい

*3:この記事を書く際に調べて,初めてJSON形式をサポートしていることを知った.全体的にドキュメントが不足している感は強い

*4:他のIDにも一致しているものがあると思うが,確認していない