Как определить публикации, в которых цитируются две конкретные работы?

Найти цитаты любой конкретной статьи несложно.

Но как определить набор публикаций, в которых цитируются две конкретные работы?

Причина, по которой я спрашиваю об этом, заключается в том, что я пытаюсь написать обзорную статью, чтобы решить проблему в литературе. Есть 2 статьи, которые придерживаются противоположных взглядов на этот вопрос. Чтобы проверить, не предпринимались ли ранее попытки провести какое-либо исследование, подобное моему, я пытаюсь найти любые статьи, в которых эти две статьи цитировались вместе. Любой способ сделать это?

Каждая статья имеет сотни цитирований, поэтому поиск общих цитирований нецелесообразен!

Итак, вы хотите по какой-то причине найти все статьи, в которых цитируются две конкретные статьи? Что ж, если легко найти все статьи, в которых цитируется одна из них, сделайте это для обеих и сравните полученные результаты.
@DSVA Это было бы легко, если бы в каждой статье было несколько ссылок. К сожалению, каждая статья имеет сотни ссылок. Итак, вы хотите, чтобы я процитировал сотни цитат? Мне также любопытно, это ваш голос против?
нет, это то, что вы хотите, чтобы программное обеспечение делало. Я только что сделал это для двух своих статей, используя Web of Science. Я искал цитирующие документы для каждого из них, сохранял наборы данных и сравнивал наборы данных с помощью функции «И». Получается только одна общая цитата.
БИБЛИОТЕКА ... Вы работаете в учреждении, где есть академическая библиотека? У них в штате будут "справочники-библиотекари"... проконсультируйтесь с ними. Тот факт, что у нас есть компьютеры в наши дни, не означает, что вы должны делать все самостоятельно.

Ответы (6)

Моя процедура была простой, но работала для меня. Это похоже, но отличается от предложенного tripartio.

  • Найдите статью А в Google Scholar.
  • Щелкните ссылку на статьи, в которых цитируется эта статья A.
  • Отметьте «Поиск по цитирующим статьям»
  • Введите сведения о статье B в строке поиска (например, авторы или название)
  • Изучите результаты

Это не так систематично, как было бы идеально, но должно помочь дать первое представление.

Можно использовать API OpenCitations . Вот пример кода в R , основанный на двух DOI, видимых в виде https://w3id.org/oc/index/coci/api/v1/citations/[DOI]:

library(jsonlite)

work1 <- jsonlite::fromJSON("https://opencitations.net/index/coci/api/v1/citations/10.1017/s0020818313000337")

work2 <- jsonlite::fromJSON("https://opencitations.net/index/coci/api/v1/citations/10.1177/1354066106067346")

citingworks <- intersect(work1$citing, work2$citing)

Затем citingworksперечисляет 32 DOI, которые цитируют work1и , и work2:

> citingworks
 [1] "10.1017/9781108644082"                 "10.1017/9781108644082.001"            
 [3] "10.1017/9781108644082.002"             "10.1017/9781108644082.003"            
 [5] "10.1017/9781108644082.004"             "10.1017/9781108644082.005"            
 [7] "10.1017/9781108644082.006"             "10.1017/9781108644082.007"            
 [9] "10.1017/9781108644082.008"             "10.1017/9781108644082.009"            
[11] "10.1017/9781108644082.010"             "10.1177/1354066119889401"             
[13] "10.1093/jogss/ogy021"                  "10.31338/uw.9788323542988"            
[15] "10.1080/13533312.2020.1753513"         "10.1080/13569775.2020.1795372"        
[17] "10.1007/978-3-030-51521-8_1"           "10.1007/978-3-030-51521-8_2"          
[19] "10.1080/13600826.2020.1828298"         "10.1057/s41268-018-0147-z"            
[21] "10.1146/annurev-polisci-040711-135425" "10.1111/pops.12616"                   
[23] "10.1093/isq/sqz055"                    "10.1093/isr/viy006"                   
[25] "10.1093/isr/viz002"                    "10.1017/s0260210516000176"            
[27] "10.1017/s026021051600019x"             "10.3384/cu.2000.1525.1572479"         
[29] "10.1177/1354066117745365"              "10.1163/24056006-12340008"            
[31] "10.1177/0010836716653161"              "10.1080/09662839.2018.1497985"   

Но обратите внимание, что выборка данных OpenCitation — это CrossRef , а не то же самое, что Google Scholar .

Сам этим не занимался, поэтому конкретных подробностей дать не могу, но вот общий алгоритм:

  • Найдите статью А в Google Scholar. Нажмите на ссылку для статей, которые цитируют эту статью. Извлеките все результаты в виде списка статей. (Здесь я не могу дать подробностей, так как сам этим не занимался.)
  • Сделайте то же самое для статьи B.
  • Сравните два списка, чтобы определить общие статьи.
Действительно, это может сработать. Библиотечное программное обеспечение может проверять наличие повторяющихся ссылок (очень просто в Endnote) и, таким образом, может упростить шаг 3.

Для биомедицинских публикаций вы можете использовать сеть цитирования PMC Европы (я работаю в этой базе данных). Вот пример поиска публикации, в которой цитируются две конкретные статьи: https://europepmc.org/search?query=CITES%3A24240771_med%20AND%20CITES%3A24036476_med . Вы также можете сделать это программно ( https://europepmc.org/RestfulWebService#cites ).

Это можно сделать с достаточно высокой точностью с помощью Scopus, и это намного проще, чем другие предложенные здесь методы. Просто выполните расширенный поиск

"название статьи 1" И "название статьи 2"

Идея состоит в том, что публикации, цитирующие эти две статьи, будут иметь свои названия в разделе ссылок.

Это может не дать абсолютно точных результатов, потому что:

  • Это не удастся, если журнал не укажет название публикации в списке литературы (я думаю, что Nature просто указывает номер журнала, тома и страницы).
  • Это не удастся, если одно из заголовков недостаточно отчетливо и случайно появляется в основном тексте публикации, в которой оно не цитируется.

Возможно, вы сможете обойти эти проблемы, включив имена авторов или номера страниц и выполнив более сложный поиск. См. https://www.scopus.com/search/form.uri?display=advanced .

Конечно, вам нужен доступ к Scopus, а в вашем учреждении его может и не быть. Но что-то подобное может работать с Google Scholar.

Использование API OpenCitation в Python будет выглядеть так:

import requests
import pandas as pd
import numpy as np

link1 = "https://opencitations.net/index/coci/api/v1/citations/10.1017/s0020818313000337"
work1 = requests.get(link1).json()
df1 = pd.DataFrame.from_dict(work1)
link2 = "https://opencitations.net/index/coci/api/v1/citations/10.1177/1354066106067346"
work2 = requests.get(link2).json()
df2 = pd.DataFrame.from_dict(work2)

print(np.intersect1d(df1['citing'].unique(), df2['citing'].unique()))