台湾特許庁の GPSS API を使ってみる~ほぼ検索システムや~

台湾特許庁は域内のデータを持つ twpat とグローバルデータを扱う GPSS という web サービスを行っていますが、API サーバーもこの2つに分かれています。
前回はtwpat の API サービスを紹介しました。

https://note.com/preview/n7bf02b2530ea?prev_access_key=cfaa3e44b510f64113a9d4b4b3e9d630

今回は GPSS の API サービスを紹介します。


GPSS (全球專利檢索系統)とは

TW, US, JP, EP(EUIPO含む), KR, CN, WO, SEA(東南アジア), OT(その他) の特許・実案、一部の国の意匠の検索ができるサイトです。収録状況を見ると、2週間~1か月程度のタイムラグがあります。

GPSS の検索法説明のページや GPSS の ブーリアン検索も確認しておきましょう。GPSS API と関連があります。 

API キーの取得方法

GPSS のページのいちばん下に API のリンクがあるので、これをクリックすると、API のページに遷移します。
このページの中ほどに 驗證碼申請 の欄があり、API驗證碼線上申請 というボタンがあります。

API驗證碼線上申請 ボタン(右上)

ボタンを押すと申請フォームがポップアップで開きます。
申請フォームに氏名、E-mail アドレス、個人/法人、産業別などを入力して
 送出 ボタンを押すだけです。
前回の台湾内 API の申請と比べると楽に申請できます。
申請後3日程度で、メールにてAPI キーが送られてきます。您的驗證碼為 に続く赤文字が API キーです。

網址工具 の使い勝手最高

API のページに 使用範例 が記載されていますが、網址工具 を使うと楽に URL を生成できます。
API のページのいちばん上に、網址工具 へのリンクがありますのでこれをクリックしましょう。ブーリアン検索フォームが現れます。

検索フォーム(一部)

證碼為 の欄に API キーを入力します。
布林檢索 のキーワード検索欄の @ 以降は 公開/公告號(公報番号)となっていますが、專利名稱(発明の名称)、摘要(要約)、專利範圍(請求の範囲)第一申請人國別 や F-TERM などの項目もあります。

検索フォームの下の方は出力設定です。

出力設定

キーワード入力するには、GPSS 檢索語法說明 のページを参照に行ってください。
GPSS と異なり検索条件にワイルドカードや近接演算は使えません。

検索条件にワイルドカードや近接演算を使用したときの表示

検索条件や出力条件を入力して 產生API網址 ボタンを押すと、画面上の方に URL が生成されます。

URL を生成したところ

複製鏈接 ボタンを押すとこのURL がクリップボードにコピーされますので、ブラウザの URL 欄に貼り付けて移動してみてください。
出力の XML または json が表示されます。
ここまでプログラミングなしでできるのですから、素晴らしいです。

python コードの紹介

参考までに、python コードを紹介します。いつもの内包表記ですが、IPC と出願人は複数あるので、内包表記の入れ子を使っています。

# 検索条件
path = 'https://gpss1.tipo.gov.tw/gpsskmc/gpss_api'
patDB = 'CNA,CNB,CND'
patAG = 'A,B' # 公開公報:A, 登録公報:B
patTY = 'I,M' # I:特許, M:実用新案, D:意匠
searchitem1 = 'TI=' # TI/AB/CL:発明の名称、要約、請求の範囲
searchquery1 = '轮胎 AND 充气' # キーワード 空白なしで AND/OR
searchitem2 = '' 
searchquery2 = '' 
expFld = 'PN,AN,ID,AD,TI,PA,IC' # 出力項目
expFmt ='xml' # 'json, XML'
noticebdate = '20171201'
noticeedate = '20171231'
expQty = '10' # 取得件数
skip = '20' # スキップ件数 1001件目から取得する場合、1000とする
# 検索実行
import requests

url = '{}?&userCode={}&patDB={}&patAG={}&patTY={}&{}{}&{}{}&expFld={}&expFmt={}&expQty={}&skip={}'.format(
    path, usercode, patDB, patAG, patTY, searchitem1, searchquery1, searchitem2, searchquery2, expFld, expFmt, expQty, skip)

print(url)
response = requests.get(url)
print(response.headers)
# XML の場合
from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, 'html.parser')

[[item.find('application-reference').find('doc-number').text, 
  item.find('publication-reference').find('doc-number').text, 
  item.find('publication-reference').find('date').text,
  [ipc.text for ipc in item.find('classifications-ipc').find_all('ipc')],
  item.find('patent-title').find('title').text,
  [applicant.find('name').text for applicant in item.find('applicants').find_all('applicant')]
  ]
 for item in soup.find_all('patentcontent')]
# json の場合

d = json.loads(response.text)

[[item['application-reference']['doc-number'],
  item['publication-reference']['doc-number'],
  item['publication-reference']['date'],
  [ipc['keyValue'] for ipc in item['classifications-ipc']['ipc']],
  item['patent-title']['title'],
  [parties['name'] for parties in item['parties']['applicants']['applicant']]
 ]
 for item in d['gpss-API']['patent']['patentcontent']]

GPSS API の機能について感想など

GPSS は純粋な検索システムのため、GPSS API も、日本の OPD-API のように実体書類をダウンロードする機能はありません。
GPSS API の単純な検索機能では、GPSSと同じヒット数となるので、データベースは同じものを使用していると思われます。
クエリーはワイルドカードや近接演算ができないという違いがありました。網址工具 はそうした設定をしたときにエラーメッセージを出す機能がついています。
データ収録については、JPA, KPA, KPB の全文が含まれないことは、検索機能が十分使えないという点で改善してほしいところです。
一方、中国特許は1985年からの全文を収録しているけれどもタイムラグが1か月あります。簡体字中国語で検索できるので、無料 DB としては秀逸です。
台湾特許庁の twpat, GPSS ともに台湾内の特許文献を簡体字中国語で検索できます。アジア特許情報研究会の伊藤さんが台湾特許庁の方に面会して要望したら翌日 twpat が改修されたとのことです。GPSS もその機能を受け継いでいます。

シリーズ最後ですけれど…続きます

各国・地域の特許庁が提供する API サービスの紹介は今回の GPSS API で終了です。
次回は非営利団体が提供する Lens.org の API を紹介します。

アジア特許情報研究会 西尾 潤