获得 DOI 后,您可以使用开放引文 API https://opencitations.net/index/coci/api/v1获取有关引用该文章的出版物的数据。通过以下方式访问 APIrjson
-封装通过https://opencitations.net/index/coci/api/v1/citations/{DOI}
。字段名称citing
包含引用该出版物的所有出版物的 DOI 作为值。然后您可以使用CrossRef 的 API https://github.com/CrossRef/rest-api-doc获取有关施引论文的更多元数据,例如标题、期刊、出版日期和作者(通过https://api.crossref.org/works/{DOI}
).
这是一个例子 https://opencitations.net/index/coci/api/v1/citations/10.1177/1369148118786043 of 开放引文' API 被引用 3 次(截至 2021 年 1 月)。
这是一个可能的代码(与上面的示例相同):
opcit <- "https://opencitations.net/index/coci/api/v1/citations/10.1177/1369148118786043"
result <- rjson::fromJSON(file = opcit)
citing <- lapply(result, function(x){
x[['citing']]
})
# a vector with three DOIs, each of which cite the paper
citing <- unlist(citing)
现在我们有了向量citing
具有三个 DOI。然后您可以使用rcrossref
查找有关施引论文的基本信息,例如:
paper <- rcrossref::cr_works(citing[1])
# find out the title of that paper
paper[["data"]][["title"]]
# output: "Exchange diplomacy: theory, policy and practice in the Fulbright program"
由于您有一个 DOI 向量citing
,您也可以使用这种方法:
citingdata <- rcrossref::cr_cn(citing)
的输出citingdata
应生成三篇施引论文的元数据,其结构如这两个示例所示:
[[1]]
[1] "@article{Wong_2020,\n\tdoi = {10.1017/s1752971920000196},\n\turl = {https://doi.org/10.1017%2Fs1752971920000196},\n\tyear = 2020,\n\tmonth = {jun},\n\tpublisher = {Cambridge University Press ({CUP})},\n\tpages = {1--31},\n\tauthor = {Seanon S. Wong},\n\ttitle = {One-upmanship and putdowns: the aggressive use of interaction rituals in face-to-face diplomacy},\n\tjournal = {International Theory}\n}"
[[2]]
[1] "@article{Aalberts_2020,\n\tdoi = {10.1080/21624887.2020.1792734},\n\turl = {https://doi.org/10.1080%2F21624887.2020.1792734},\n\tyear = 2020,\n\tmonth = {aug},\n\tpublisher = {Informa {UK} Limited},\n\tvolume = {8},\n\tnumber = {3},\n\tpages = {240--264},\n\tauthor = {Tanja Aalberts and Xymena Kurowska and Anna Leander and Maria Mälksoo and Charlotte Heath-Kelly and Luisa Lobato and Ted Svensson},\n\ttitle = {Rituals of world politics: on (visual) practices disordering things},\n\tjournal = {Critical Studies on Security}\n}"