ORCID的公開API簡介 / Introduction of ORCID's Public API
ORCID的公開API簡介 / Introduction of ORCID's Public API
ORCID提供了兩種API,一種是要以機構付費的會員API,一種是免費公開的API。作為一個研究者,我們來看看公開API有提供什麼功能,可以讓我們可以應用在書目計量的資料分析上。
API是什麼方式運作? / How to use ORCID's API?
ORCID在「INTRODUCTION TO THE ORCID PUBLIC API」中介紹他們的公開API,做法是用OAuth 2.0註冊後搭配RESTful API的方式運作。但即使沒有用OAuth註冊,也可以直接用RESTful API來查詢。
雖然REST對網頁工程師來說就跟「吃飽沒?」一樣是個家常便飯的問候,但對只聽過Z39.50、OAI-PMH的圖書館員來說可能不是這麼的熟。Marshall Breeding在「Interoperability and Standards」(2013)一篇文章中是以「Application Programming Interfaces」來介紹RESTful API。這是一種類似在網頁表單中輸入資料、傳送資料給伺服器、取回資料的資料運作方式,但是基本上全部都是以程式碼的方式運作,以達到自動化資料操作、查詢、交換的目的。換句話說,RESTful API不是人直接輸入一個查詢語句,然後就可以將匯出結果成為Excel表格的工具。
附帶一提,RESTful API是一種風格架構(所以是ful,意思是「的樣子」),本身並沒有像Z39.50跟OAI-PMH有嚴謹的定義,各家的RESTful API都有各家的發展方式,所以Marshall Breeding在這部分也沒有辦法詳盡介紹。
儘管如此,在以TCP/IP架構下的網際網路中,RESTful API依然是大家普遍認同的API開發方式。ORCID也不例外,在部分資料的查詢上也開放了RESTful API的途徑。
查詢研究者資料的Public API / Public API of Researcher
ORCID在「TUTORIAL: RETRIEVE DATA WITH THE PUBLIC API WITH CURL 1.2 AND EARLIER」介紹如何查詢研究者的資訊,查詢的資料有三種:
- Bio (/orcid-bio):回傳名字跟個人資訊。
- Works (/orcid-works):回傳所屬機構清單、文章作品以及被贊助的文章。
- Full (/orcid-profile):回傳全部ORCID的資料,也就是上述兩種資料。
我們來以我自己的ORCID頁面為例。我的ORCID是「0000-0003-3751-610X」,那麼我們可以簡單地用以下三種網址來查到三種研究者的個人資料:
- Bio (/orcid-bio): http://pub.orcid.org/v1.2/0000-0003-3751-610X/orcid-bio
- Works (/orcid-works): http://pub.orcid.org/v1.2/0000-0003-3751-610X/orcid-works
- Full (/orcid-profile): http://pub.orcid.org/v1.2/0000-0003-3751-610X/orcid-profile
查詢研究者的資訊 / Get Researcher’s Profile
以Full為例,我們會下載一個名為「orcid-profil」的XML檔案。一般來說會以文字編輯器(例如Notepad++)開啟,可是IE的XML檢視介面做得挺好的,所以我們也可以用IE來看看。
要解讀這個XML檔案,我們可以從大綱看起。orcide-profile底下有以下幾種資料:
- orcid-identifier:記錄ORCID帳號資訊
- orcid-preferences:使用語言
- orcide-history:帳號更新資訊,可以瞭解這個帳號是機器人建立的還是人手工建立的。
- orcid-bio:個人公開履歷
- orcid-activites:這一項裡面包含兩種資訊
- affiliations:所屬機構,以及年分
- orcid-works:發表文章資訊。
API也可以查到新增這篇文章的來源是來自誰,從這裡可以看到是我自己建置的資料。
查詢機構的資訊 / Get Organization’s Profile
如果是以機構為對象,那會查到什麼呢?我們以AcademicHub跟ORCID密切整合的臺大醫學院為例來查詢看看:
因為臺大醫學院的ORCID公開資訊上就只有ORCID ID資訊而已,所以API查到的結果也就只有帳號的資訊。可惜沒能看到機構底下所屬研究者的資訊。
搜尋的公開API / Searching Public API
ORCID的搜尋API教學「TUTORIAL: SEARCHING WITH THE API 1.2 AND EARLIER」介紹了如何以RESTful API來執行搜尋。
雖然教學一開始有提及機構會員可以用OAuth的方式先登入,這樣可以進一步取得ORCID中被設為「trusted parties」(被信任的機構)的資訊,但我們依然可以用公開API來找尋被公開的資訊。
首先我們來看看搜尋API可以查詢什麼欄位:
- orcid (//orcid-profile/orcid-identifier):就是ORCID的ID,例如我的「0000-0003-3751-610X」。
- given-names (//orcid-profile/orcid-bio/personal-details/given-names):作者設定的名稱
- family-name (//orcid-profile/orcid-bio/personal-details/family-name):作者的姓
- credit-name (//orcid-profile/orcid-bio/personal-details/credit-name):作者一般出現在發表文章上的名稱
- other-names (//orcid-profile/orcid-bio/personal-details/other-names):作者其他的名稱。
- email (//orcid-profile/orcid-bio/contact-details/email):作者的email。這是一個很實用的查詢欄位
- external-id-reference (//orcid-profile/orcid-bio/external-identifiers/external-identifier/external-id-reference):其他系統上的作者辨識碼,例如Scopus的Author ID
- digital-object-ids* (//orcid-profile/orcid-activities/orcid-works/orcid-work/work-external-identifiers/work-external-identifier[work-external-identifier-type="doi"]/work-external-identifier-id):從文章的DOI反查作者。這也是實用查詢欄位
- work-titles (//orcid-profile/orcid-activities/orcid-works/orcid-work/work-title/(title|subtitle) ):從作品發表反查作者。
- keywords ( //orcid-profile/orcid-bio/keywords/keyword ):查詢作者的關鍵字欄位(自己可以為自己設關鍵字)。
- creation date (//orcid-profile/orcid-history/submission-date):查詢作者建立ORCID帳號的時間。(這個不是作品的時間喔)
- last modified date (//orcid-profile/orcid-history/last-modified-date):作者最後修改的時間。
- text (//orcid-profile/orcid-bio):所有以上的欄位。
搜尋文章標題 / Search Work Title
我們先試著查查看一個明確的欄位「work-titles」好了。
很好,第一筆就是我的ORCID。看來ORCID使用的Lucene全文搜尋引擎即使面對中文也運作良好!
用任意欄位搜尋所屬機構 / Search Affiliations by Any Fields
各種排行都很注重以機構為主、統計機構中研究者發表的數量,所以我們很注重作者所屬機構的資訊。雖然ORCID的搜尋API沒有所屬機構的欄位,但我們可以用text來查詢看看:
第一位是Yi Shen,是政大圖書館的核心館員之一。第一筆就是圖資界的前輩,所屬機構也的確是政大,真是準確。
第二位是Yuei-An Liou,現職為國立中央大學特聘教授。可是奇怪的是,劉老師的ORCID公開資訊上沒有找到檢索詞「國立政治大學」。我猜可能是「國立政治大學」被斷詞為「國立」、「政治」、「大學」,所以找到很多「國立」跟「大學」的資訊。
第三位ty yeh也是在自己的履歷上寫了很多「國立」跟「大學」,可惜這位也不是隸屬於國立政治大學的同仁。
用email搜尋所屬機構 / Search Affiliations by Email
Email是另一個可以標示所屬大學的查詢方式。所以我想用email應該可以找出對應機構的作者,除非作者不公開email資訊。
讓我們以政大的Domain Name 「*@nccu.edu.tw」來查詢看看。必須注意的是,這裡要搭配萬用字元*來做查詢喔:
第一位就是大力推動ORCID的邱炯友老師。不過搜尋結果也只有一位而已,這可能是因為大家的email預設都是不公開的緣故。
讓我來看看以AcademicHub跟ORCID密切整合的臺大醫學院能不能用email「*@ntu.edu.tw」來查詢:
查詢結果為24筆,跟AcademicHub上的801筆資料有相當大的落差。
這不僅是因為預設並不公開作者的email,而且連老師似乎也不是以ntu.edu.tw為主要的email,而是選用gmail.com。
因此從上面的兩點來看,email似乎不是一個適合用來搜尋所屬機構的好方法,因為:
- email預設是不公開的資訊
- 並不是所有人都用機構發行的email來註冊ORCID
除非ORCID開放檢索所屬機構欄位,不然看來目前沒有能夠完整找到作者所屬機構的檢索方式。
結語:ORCID是一個稱職的研究者公開查詢目錄 / Conclusion: ORCID is a good researcher public directory
儘管ORCID的API並非採用圖書館界中交換典藏資料常用的OAI-PMH或Z39.50的下一版SRU,但是依然提供了現在網頁開發流行的RESTful API與OAuth認證,十分具有現代網站的風範。
站在想要以大學為單位來統計研究者著作發表的書目計量角度,本文試著以Public API來看看如何才能取得完整的作者資訊。但是目前看來搜尋功能尚未考量到所屬單位的欄位,目前還沒辦法很準確地以機構來找到所屬作者。也就是說,ORCID現在還難以支援以機構為分析對象的書目計量統計。
但是因為ORCID可以記錄研究者的所屬單位,所以相信這就跟檢索作品題名(work-titles)是類似的欄位,因此這非是不可能做到的功能。讓我們繼續拭目以待ORCID的成長吧!
(more...)
Comments