J-GLOBALについて

ENGLISH

文字サイズ
  • 小
  • 大

ヘルプ

WebAPIの提供

J-GLOBAL の検索機能・出力データを自身の Webサイトで利用するための、「WebAPI」プログラムの提供を開始します。「WebAPI」は、J-GLOBAL の機能を他のサイトで利用できるようにするプログラムで、そのプログラムを組み込むことにより、手軽に J-GLOBAL の検索機能を使い、結果として得られた J-GLOBAL のデータを、自身のサイトで組み合わせて利用することができます。

  1. 1. J-GLOBAL WebAPI の概要と特徴
  2. 2. WebAPI ご利用の流れ
  3. 3. WebAPI関数について
  4. 4. 動作可能なサンプルスクリプト
  5. 5. JSON 形式の構造体について
  6. 6. 検索窓の配布について
  7. 7. より高度な連携について
  8. 8. よくあるご質問

1.J-GLOBAL WebAPIの概要と特徴

この WebAPI は、利用者自身が管理・運営しているWebサイト上で、Javascript をベースとしたスクリプトを組み込んだ Web ページを作成いただくことで、J-GLOBAL がもっているリソースを検索し、取得された検索結果を加工するなどして、検索結果を表示することができるインタフェースです。

J-GLOBAL WebAPI の特徴は、下記の通りです。

  • WebAPI が対象とする基本情報は「文献」、「科学技術用語」、「化学物質」、「資料」の4種類です。
  • J-GLOBAL サイトの検索結果一覧と同等レベルの情報を取得できます。
  • 検索結果は、あらかじめレイアウトが決まっていて簡単に実装できる HTML 形式と、項目ごとにデータを取得し、自由なレイアウトが可能な JSON 形式の二種類で取得できます。

例えば、JST のサイエンスポータルでは、ニュースの内容と対応した J-GLOBAL 検索結果を案内していますが、同様のことを JST 以外の Web サイトでも行えるようになります。

サイエンスポータルでのニュースの例

サイエンスポータルでのニュースの例

上記に対する、J-GLOBAL の出力情報(文献)

J-GLOBAL の出力情報(文献)

※上図では「内容類似の文献」となっていますが、今回の WebAPI で表示されるのは、単純な検索を J-GLOBAL で行い、ヒットした情報となります。

2.WebAPI ご利用の流れ

WebAPI ご利用の流れ

~アカウント登録(無料)~

※WebAPIを利用するためには、MyJ-GLOBALへのアカウント登録が必要です。MyJ-GLOBAL のアカウント登録には費用は掛かりません。

  • J-GLOBAL の各ページヘッダー部分の「MyJ-GLOBALログイン」をクリックし、MyJ-GLOBALログイン画面を表示します。
  • MyJ-GLOBALログイン画面より、「アカウントを作成」をクリックします。
  • アカウント情報を入力します。
  • 登録いただきましたメールアドレスに仮登録メールを送信します。メール内の本登録 URL をクリックすると登録が完了します。
  • J-GLOBAL の各ページヘッダー部分の「MyJ-GLOBALログイン」をクリックし、MyJ-GLOBALログイン画面より、ID/パスワードを入力しログインしてください。

[WebAPI 利用申請]

  • ログインした状態で、「WebAPI」タブをクリックします。
  • WebAPI 申請画面より、WebAPI を組込むサイト情報(URI)を入力します。

※サイト情報はイントラネットの登録はできません。実際に外部ネットワークからアクセス可能な URI を入力してください。

  • WebAPI 利用規約をお読みいただき、同意される場合はチェックボックスにチェックし、申請ボタンをクリックしてください。
  • 申請が受け付けられると WebAPI 申請中の画面になりますので、ご確認ください。

[申請受付処理]

  • 申請内容について、JST 担当者が、申請されたサイト情報(URI)の内容確認を行います。WebAPI 利用規約と照らして適当でないと判断された申請については、JST担当者より、アカウント登録時のメールアドレスに別途問い合わせをさせていただくことがあります。
  • 確認には、最大で1週間程度を要することがあります。

WebAPIキー取得

  • JST担当者により申請受付が行われると、WebAPI キーが発行されます。
  • 合わせて、確認が終了した旨のメールが登録メールアドレスに届きます。
  • WebAPI キーは、WebAPI の画面上にてご確認いただきます。

サイトページ作成(キー組み込み)

  • ログインした状態で、「WebAPI」タブをクリックし、WebAPI 画面上で、WebAPI キーが表示されていることを確認してください。
  • 画面内に表示されている WebAPI キーをサイトページに組み込んでご利用ください。

※WebAPI キーは申請したサイト(URI)以外では使えません。

  • 組込時にはサンプルスクリプトなどを参考にしてください。

以上で WebAPI を使った検索が行える状態になります。

3.WebAPI関数について

4種類の基本情報と2種類の出力形式に対応して、計8種類の WebAPI 関数を用意しました。

関数

1)getHTMLforXXX(function, query, page)
基本情報「XXX」に対し検索し、HTML形式で取得する関数。

2)getJSONforXXX(function, query, page)
基本情報「XXX」に対し検索し、JSON形式で取得する関数。

XXXは下記の4種類です。

  • 「Article」(文献)
  • 「Term」(科学技術用語)
  • 「Chemical」(化学物質)
  • 「Materials」(資料)

引数

  • function:検索結果データを取得・加工・表示するための呼び出し関数名
  • query : 検索キーワード(論理積はスペース、論理和は「OR」を入力)
  • page : 取得するページ(1ページ当たりの件数は20件)

サンプル


//基本情報「論文」に対して「アスベスト」で検索し、1ページ目(1~20件目)を取得するし、HTMLで表示する

var s = new jglobal.search();
s.getHTMLforArticle("jg_callback", 'アスベスト', 1);

function jg_callback(html){
    document.getElementById("result").innerHTML=html;
}

4.動作可能なサンプルスクリプト

サンプル1

テキスト入力エリアに検索キーワードを入力し、プルダウンで基本情報を指定して、検索ボタンをクリックすることで、HTML形式の検索結果一覧を表示するスクリプトです。


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://api.jglobal.jst.go.jp/webapi/api.js.php?key=[ご利用者のWebAPIキー]"  charset="UTF-8"></script>
<script type="text/javascript">
//<![CDATA[
function api_invoke(page){
    //フォームからクエリ、カテゴリを取得
    query=document.searchForm.query.value;
    func=document.searchForm.func.value;
    //サーチオブジェクト作成
    var s = new jglobal.search();
    //ローディングのアニメーションを表示
    document.getElementById("result").innerHTML="<img src='http://jglobal.jst.go.jp/images/ajax-loading.gif'>";
    //検索を実行
    switch(func) {
    case "0":
        s.getHTMLforArticle("jg_callback", query, page);
        break;
    case "1":
        s.getHTMLforTerm("jg_callback", query, page);
        break;
    case "2":
        s.getHTMLforChemical("jg_callback", query, page);
        break;
    case "3":
        s.getHTMLforMaterials("jg_callback", query, page);
        break;
    }
    return false;
}
//検索実行後に呼び出される関数
function jg_callback(html){
    document.getElementById("result").innerHTML=html;
}
//ページャがクリックされたときに呼ばれる関数(この名前で呼ばれる)
function jg_change_page(page){
    api_invoke(page);
}
//]]>
</script>
</head>
<body>
WebAPIのテストページです (選択したカテゴリのHTMLを返します)
<form onsubmit="return api_invoke(1);" name="searchForm">
    <input type="text" name="query" value="検索語を入力してください">
    <select name="func">
        <option value="0">文献
        <option value="1">科学技術用語
        <option value="2">化学物質
        <option value="3">資料
    </select>
    <input type="submit" name="btnSubmit" value="検索">
</form>
この下に結果が表示されます
    <div id="result" style="background-color:#f9f9f9">挿入対象のDIV</div>
この上に結果が表示されます
</body>
</html>

サンプル2

テキスト入力エリアに検索キーワードを入力し、プルダウンで基本情報を指定して、検索ボタンをクリックすることで、JSON形式で取得した検索結果のうち、見出し語の一覧を表示するスクリプトです。


<html>
<head>
<meta http-equiv="Content-Type" content="text/html;  charset=UTF-8" />
<script type="text/javascript"  src="http://api.jglobal.jst.go.jp/webapi/api.js.php?key=[ご利用者のWebAPIキー]"  charset="UTF-8"></script>
<script type="text/javascript">
//<![CDATA[
function api_invoke(page){
    //フォームからクエリ、カテゴリを取得
    query=document.searchForm.query.value;
    func=document.searchForm.func.value;
    //サーチオブジェクト作成
    var s = new jglobal.search();
    
    //ローディングのアニメーションを表示
    document.getElementById("result").innerHTML="<img  src='http://jglobal.jst.go.jp/images/ajax-loading.gif'>";
    //検索を実行
    switch(func) {
    case "0":
        s.getJSONforArticle("jg_callback",  query, page);
        break;
    case "1":
        s.getJSONforTerm("jg_callback",  query, page);
        break;
    case "2":
        s.getJSONforChemical("jg_callback",  query, page);
        break;
    case "3":
        s.getJSONforMaterials("jg_callback",  query, page);
        break;
    }
    return false;
}

//検索実行後に呼び出される関数
function jg_callback(json){
if(json.error != undefined){
        document.getElementById("result").innerHTML="エラー";
        alert(json.error);
    }else{
        var html="";
        html="結果:"+json.hit_count+"件中  "+json.item_from+"件~"+json.item_to+"件目を表示<p>";
        for(i=0;i<json.items.length;i++){
            switch(json.items[i].category){
            case  'article':
                html+="<a  href='http://jglobal.jst.go.jp/detail.php?from=API&JGLOBAL_ID="+json.items[i].JGID+"'  target='_blank'>"+json.items[i].TI.J+"</a><br>";break;
            case  'term':
                html+="<a  href='http://jglobal.jst.go.jp/detail.php?from=API&JGLOBAL_ID="+json.items[i].JGID+"'  target='_blank'>"+json.items[i].TM.J+"</a><br>";break;
            case  'chemical':
                html+="<a  href='http://jglobal.jst.go.jp/detail.php?from=API&JGLOBAL_ID="+json.items[i].JGID+"'  target='_blank'>"+json.items[i].TM.J+"</a><br>";break;
            case  'materials':
                html+="<a  href='http://jglobal.jst.go.jp/detail.php?from=API&JGLOBAL_ID="+json.items[i].JGID+"'  target='_blank'>"+json.items[i].JT+"</a><br>";break;
            }
        }
        document.getElementById("result").innerHTML=html;
        jg_create_pager(json.hit_count);
    }
}
//]]>
</script>
</head>
<body>
WebAPIのテストページです (選択したカテゴリのJSONを返します)
<form onsubmit="return api_invoke(1);" name="searchForm">
    <input type="text" name="query" value="検索語を入力してください">
    <select name="func">
        <option value="0">文献
        <option value="1">科学技術用語
        <option value="2">化学物質
        <option value="3">資料
    </select>
    <input type="submit" name="btnSubmit" value="検索">
</form>
この下に結果が表示されます
    <div id="result" style="background-color:#f9f9f9">挿入対象のDIV</div>
    <div id="jg_pager"></div>
この上に結果が表示されます
</body>
</html>

5.JSON 構造体について

共通

項目名 説明
エラー種別 json.error 検索エラーの有無を格納
エラーなし:(空)
APIキー無効:"invalid key"
Referer無効:"invalid key"
未承認:"invalid key"
アクセス上限回数超え:"upper limit"
検索ヒット件数 json.hit_count ヒット件数が30件の場合は、30が入ります。
件数開始値 json.item_from 引数pageに指定された件数開始値
Page=2の場合は21
件数終了値 json.item_to 引数pageに指定された件数終了値
Page=2の場合は40
1ページ当たりの件数 json.items.length 固定値 20
基本情報種別 json.items[n].category 以下の文字列が入ります。
get***forArticleの場合:"article"
get***forTerm:の場合"term"
get***forChemicalの場合:"chemical"
get***forMaterialsの場合: "materials"

文献

項目名 構造体 説明
J-GLOBAL ID JGID json.items[n].JGID 取得したページ中のn+1件目の文献のJ-GLOBALID
DOI ID[].DOI json.items[n].ID[m].DOI 取得したページ中のn+1件目の文献のm+1件目のDOI
※DOI:Digital Object Identifier
JOI ID[].JOI json.items[n].ID[m].JOI 取得したページ中のn+1件目の文献のm+1件目のJOI
※JOI:JST Object Identifier
論文タイトル(原) TI.O json.items[n].TI.O 取得したページ中のn+1件目の文献の論文タイトル(原語)
論文タイトル(日) TI.J json.items[n].TI.J 取得したページ中のn+1件目の文献の論文タイトル(日本語)
論文タイトル(英) TI.E json.items[n].TI.E 取得したページ中のn+1件目の文献の論文タイトル(英語)
著者所属機関(日) AU[].CSJ json.items[n].AU[m].CSJ 取得したページ中のn+1件目の論文のm+1番目の著者所属機関(日本語)
著者所属機関(英) AU[].CSE json.items[n].AU[m].CSE 取得したページ中のn+1件目の論文のm+1番目の著者所属機関(英語)
著者名(日) AU[].J json.items[n].AU[m].J 取得したページ中のn+1件目の論文のm+1番目の著者(日本語もしくは全角)
著者名(英) AU[].E json.items[n].AU[m].E 取得したページ中のn+1件目の論文のm+1番目の著者(英語)

科学技術用語

項目名 構造体 説明
J-GLOBAL ID JGID json.items[n].JGID 取得したページ中のn+1件目のJ-GLOBALID
科学技術用語 TM.J json.items[n].TM.J 取得したページ中のn+1件目の科学技術用語

化学物質

項目名 構造体 説明
J-GLOBAL ID JGID json.items[n].JGID 取得したページ中のn+1件目のJ-GLOBALID
分子式 MF json.items[n].MF 取得したページ中のn+1件目の分子式
化学物質名称 TM.J json.items[n].TM.J     取得したページ中のn+1件目の化学物質名称
化学物質慣用名 KAN[] json.items[n].KAN[m] 取得したページ中のn+1件目のm+1番目の慣用名

資料

項目名 構造体 説明
J-GLOBAL ID JGID json.items[n].JGID 取得したページ中のn+1件目のJ-GLOBALID
ISSN ISN json.items[n].ISN 取得したページ中のn+1件目のISSN
出版者名 PC json.items[n].PC 取得したページ中のn+1件目の出版者名
資料名 JT json.items[n].JT 取得したページ中のn+1件目の資料名

6.検索窓の配布について

調べものサイト、研究者Webページ、ブログ等々、J-GLOBAL 以外のサイトから簡単に J-GLOBAL を検索できる、検索窓の表示スクリプトを公開いたします。下記のスクリプトを Web ページに組み込むことで、検索窓の表示が可能です。

スクリプト


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div id="jglobal_searchbox">before</div>
<script type="text/javascript" src="http://api.jglobal.jst.go.jp/webapi/js/external_searchbox.js"></script>
</body>
</html>

検索窓の組み込み例

利用イメージ

利用イメージ

カスタマイズについて

本検索窓は次のようなカスタマイズが可能です。

  • 特定の検索タブのみを表示することができます(10種類のタブのうち、3種類のみにするなど)
  • 検索対象ごとのメッセージを変えることができます(「検索のヒント」と表示されているエリア)
  • デザインを替えることが出来ます(別途画像を用意する必要があります)

詳しくは、こちらよりお問い合わせください。

7.より高度な連携について

J-GLOBAL とのより高度な連携、例えば、制限回数の拡大や他基本情報の API 利用等を希望される場合には、こちらよりお問い合わせ下さい。双方のメリットになることを前提に、可能な連携サービスについてご相談させていただきます。

8.よくあるご質問

WebAPIキーの申請について

Q. WebAPI キーの申請には条件がありますか?
A. WebAPI キーの発行申請は、J-GLOBAL 上でMyJ-GLOBALにアカウント登録(無料)し、「WebAPI 利用規約」に同意していただくことで、どなたでも無料で行えます。
Q. アカウント登録はどのように行えばいいですか?
A. 「WebAPI ご利用の流れ」を参照ください。
Q. WebAPI キーの申請はどのように行えばいいですか?
A. 「WebAPI ご利用の流れ」を参照ください。
Q. WebAPI キーの申請をしました。いつから使えるようになりますか?
A. 申請をいただくと、JST担当者が、申請されたサイト情報(URI)の内容確認を行います。確認には、最大で1週間程度を要することがあります。WebAPI 利用規約と照らして適当でないと判断された申請については、JST担当者より、アカウント登録時のメールアドレスに別途問い合わせをさせていただくことがあります。 JST担当者が申請受付処理をしますと、登録メールアドレスに対して、完了メールを送信します。WebAPI キーの確認は再度ログインし、WebAPI リンクより確認できます。
Q. 発行された WebAPI キーをどのように埋め込めばいいですか?
A. キーが発行された後の WebAPI 画面内にサンプルスクリプトを用意していますので参考にしてください。
Q. サイト情報(URI)の入力を間違えた/サイト情報(URI)を変更したい/WebAPI をもう使わない場合はどうしたらいいですか?
A. WebAPI キーの取り消し依頼を J-GLOBAL サイト各画面のフッターにあります、「科学技術振興機構へのお問い合わせ」より行ってください。JST による取り消し処理後に完了メールが送られます。入力間違いや変更の場合は、再度 WebAPI 申請画面より利用申請を行ってください。

WebAPIの利用について

Q. どんな人が WebAPI を使うのですか?
A. WebAPI はご自身でWebサイトを管理・運営し、情報を発信している方がご利用になることを想定しています。
Q. 現在普通に J-GLOBAL を検索しています。WebAPI の公開により何か変りますか?
A. 今後、この WebAPI を組み込んだサイトが出現することで、J-GLOBAL サイトに訪れることなく J-GLOBAL上のリソースを検索できることが期待されます。J-GLOBAL サイト上の変化としては、アカウント登録や WebAPI キーの発行申請のためのリンクが増える程度で、通常の検索や詳細情報表示などのご利用にあたっては変化はありません。
Q. WebAPI で何ができますか?
A. WebAPI では J-GLOBAL サイトの画面を介すことなく、「文献」「科学技術用語」「化学物質」「資料」の各基本情報を対象にご自身が管理・運営されている Web サイト上で検索結果一覧の情報を取得できます。
Q. WebAPI利用上の注意点はありますか?
A1. API呼び出し回数が1日当たり5000回までとなっています。これを超えてアクセスしようとすると、エラーが返ります。
A2. 今回のバージョンでは検索時に同義語を自動展開しませんので、必要に応じて検索時に同義語を OR でつなぐなどをしてください。
A3. インターネットから接続可能な Web サイトのみとなります。社内イントラネットや Web ブラウザ以外の Windows アプリケーション経由ではご利用いただけません。
Q. WebAPI で論文などの詳細情報を取得するにはどうしたらいいですか?
A. 本 WebAPI では J-GLOBAL 詳細画面レベルの情報を取得することは出来ません。J-GLOBAL の詳細画面へリンクするようにお願いいたします。J-GLOBAL 詳細画面の URL は HTML 形式では埋め込まれおり、JSON 形式では J-GLOBAL ID を取得していただき、次のような形式でリンクを生成することで詳細画面へのリンクができます。
http://jglobal.jst.go.jp/detail.php?from=API&JGLOBAL_ID=[APIより取得したJ-GLOBALID]
Q. 出力形式にある JSON 形式と HTML 形式の違いはなんですか?
A. JSON 形式は検索結果情報から必要な情報を取得して、自由なレイアウトで表示したい場合に向いています。HTML 形式では返却された結果をそのまま埋め込むことができるため、手軽に検索結果を表示することができます。サンプルスクリプトなどを参考ください。
Q. 今回対象となっている4種類以外の、研究者や特許などの基本情報の対応予定はありますか?
A. ご利用者のお申し出に対して、WebAPI の利用目的や利用イメージをお伺いした上で、提携の覚書を交わす等、個別に対応いたします。