Starrydata APIの使い方
Starrydataに登録されている情報を、コマンドから直接ダウンロードする機能(API)ができましたので紹介します。
1. 試料検索
WebブラウザのURLバーに以下の文字列を入れます。
https://www.starrydata2.org/paperlist/api/paper/search?atom=Bi,Te
すると、組成式にBiとTeを含む試料を含む論文のpaperid(SID)のリストがブラウザに表示されます。出力はJSON形式です。(見やすくするため出力結果に改行を加えています)
{ "paperid": [161, 3, 7975, 11497, 18603, 3282, 1711, 3792, 721, 2098, 18569, 18616, 18096, 13057, 1533, 8702], "sampleid": [], "figureid": [] }
デフォルトはAND検索です。atom=Bi,Te,orと書けばOR検索となり、BiまたはTeを含む論文のリストが表示されます。
上の作業は、コマンドライン(UNIX)で以下のように打ち込んでもできます。
# BiとTeを含む試料を含む「論文」のID (paperid) $ curl https://www.starrydata2.org/paperlist/api/paper/search?atom=Bi,Te # BiとTeを含む「試料」そのもののID (sampleid) $ curl https://www.starrydata2.org/paperlist/api/sample/search?atom=Bi,Te # BiとTeを含む試料を含む「図表」のID (figureid) $ curl https://www.starrydata2.org/paperlist/api/figure/search?atom=Bi,Te
出力結果はそれぞれ以下のようになります。欲しいところ以外は空の配列が返ってきます。
# paper {"paperid": [161, 3, 7975, 11497, 18603, 3282, 1711, 3792, 721, 2098, 18569, 18616, 18096, 13057, 1533, 8702], "sampleid": [], "figureid": []} # sample {"paperid": [], "sampleid": [135, 407, 6071, 24, 1426, 1427, 404, 1429, 22, 535, 536, 411, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 5928, 48, 306, 2547, 181, 6070, 2505, 56, 2933, 195, 6084, 6085, 6086, 1479, 201, 2506, 2507, 80, 6072, 3041, 85, 2553, 346, 3035, 3037, 3038, 3039, 3040, 208, 3042, 3043, 2551, 2928, 2545, 2546, 243, 2548, 2549, 2550, 375, 2552, 1428, 2554, 2555, 380, 5498, 3093], "figureid": []} # figure {"paperid": [], "sampleid": [], "figureid": [2048, 2049, 2050, 3, 2052, 2053, 2054, 2051, 43, 4657, 4658, 4660, 4661, 54, 4663, 4664, 4665, 4667, 4668, 5181, 3143, 1608, 3145, 1963, 86, 4794, 98, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 72, 129, 131, 140, 4205, 151, 156, 4786, 4787, 181, 182, 184, 4793, 186, 3144, 4662, 4844, 237, 238, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 4881, 4882, 4886, 4887, 4888, 835, 836, 837, 870, 871, 872, 4846, 1960, 1961, 1962, 1607, 1964, 1965, 1966, 1967, 1968, 1969, 1609, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2047]}
2. 取得したIDからの個別情報の取得
各IDについて特定の情報がほしい場合は、以下のように書けば取得できます。
# paperid=161の論文のタイトルを取得 $ curl https://www.starrydata2.org/paperlist/api/paper/161/title "Surfactant-Free Scalable Synthesis of Bi2Te3and Bi2Se3Nanoflakes and Enhanced Thermoelectric Properties of Their Nanocomposites" # paperid=161の論文の著者リストを取得 $ curl https://www.starrydata2.org/paperlist/api/paper/161/author [{"affiliation": [], "given": "Yuho", "family": "Min"}, {"affiliation": [], "given": "Jong Wook", "family": "Roh"}, {"affiliation": [], "given": "Heeseung", "family": "Yang"}, {"affiliation": [], "given": "Minwoo", "family": "Park"}, {"affiliation": [], "given": "Sang Il", "family": "Kim"}, {"affiliation": [], "given": "Sungwoo", "family": "Hwang"}, {"affiliation": [], "given": "Sang Mock", "family": "Lee"}, {"affiliation": [], "given": "Kyu Hyoung", "family": "Lee"}, {"affiliation": [], "given": "Unyong", "family": "Jeong"}] # sampleid=135の試料の組成を取得 $ curl https://www.starrydata2.org/paperlist/api/sample/135/composition "Sn0.96Bi0.04Te1" # sampleid=3089の試料の名前を取得 $ curl https://www.starrydata2.org/sample/3089/samplename "x=0.1"
3. 取得したIDに関する全データの一括取得
以下のように書けば、各IDについて、関連するデータをJSON形式ですべて取得することができます。出力結果は長すぎるので省略します。
# paperid=161の論文の情報をすべて取得 curl https://www.starrydata2.org/paperlist/api/paper/161 # sampleid=135の試料の情報をすべて取得 curl https://www.starrydata2.org/paperlist/api/sample/135 # figureid=2048の図表の情報をすべて取得 curl https://www.starrydata2.org/paperlist/api/figure/2048