RIRO версия 1.0

riro ror wikidata microsoft academic scopus scival web of science incites elibrary

Версия 1.0 открытого индекса российских научных организаций.

true , true
05-25-2021

ENGLISH VERSION

Что такое RIRO?

RIRO - это проект Russian Index of the Research Organizations, запущенный в мае 2021 года. RIRO v.1.0 - представляет из себя набор таблиц, которые связывают российские юридические лица, задействованные в научных исследованиях, с идентификаторами и профилями российских и международных информационных систем:

Все версии датасета будут доступны на Zenodo: https://zenodo.org/communities/riro/.

Фрагменты кода и примеры использования будут выкладываться на GitHub: https://github.com/OpenRIRO.

Зачем всё это?

Основная цель создания RIRO – открыть и связать профили и идентификаторы российских научных организаций в информационных системах. Объединение и соотнесение данных из этих систем необходимо как для изучения, так и для управления сетью организаций на современном этапе развития науки и данных о ней.

Работа по созданию RIRO заключается далеко не только в механическом соединении источников. У каждого из существующих идентификаторов свои “детские болезни”: одни стараются быстро реагировать на переименования и реорганизации, но полностью переписывают историю со всеми правопредшественниками; другие, напротив, привязываются к “славным” именам мифических героев, которые уже не актуальны. В результате одна организация в различных сервисах может быть представлена совершенно различными наборами идентификаторов, что уменьшает и без этого ограниченную применимость наукометрических инструментов для анализа российской науки.

Опубликованный датасет нацелен на решение следующих задач:

На иллюстрации ниже показано наличие идентификаторов Scopus, ROR, Wikidata, InCites для организаций, включенных в RIRO (v.1.0). Приведенные на иллюстрации знчения основаны на подсчете идентификаторов для головных и действующих организаций и не учитывают идентификаторы, соответствующие структурным подразделениям или ликвидированным правопредшественникам.

Show code
filename <- paste0(img.dir, "chart_upset.png")
knitr::include_graphics(filename)

Датасет

Набор таблиц можно скачать с Zenodo вручную или программными средствами, используя OAI-PMH Harvesting API или REST API. Zenodo – один из ведущих репозиториев данных открытой науки, развиваемый на базе ЦЕРН (подробнее).

Датасет состоит из отдельных таблиц в стандартном формате CSV (может быть открыт в Excel и любых программах по работе с данными), связанных через идентификатор code, который выступает в роли первичного ключа.

Show code
riro_versions <- list.dirs(paste0(dir, "/final_tables/"), 
                           recursive =  FALSE) %>% 
  sort(., decreasing = TRUE) %>% .[grepl("1.0",.)]

riro_tables <- list.files(riro_versions, full.names = TRUE)

riro_data <- map(riro_tables, ~read_csv(.x, 
                    col_types = cols(.default = col_character())))

Ниже будут показаны фрагменты каждой таблицы с информацией о 3 учреждениях, выбранных в качестве примера:

Таблица 1. Официальные сведения

Содержит официальные сведения об организации - ОГРН, ИНН/КПП, полное и краткое названия, тип (головное, филиал или представительство) и статус (активное, ликвидировано или в стадии реорганизации).

В таблице ниже для экономии места краткие названия не приведены.

Show code
t1 <- riro_data[[1]] 
test_group <- t1 %>% 
  filter(ogrn %in% c("1021100511332", "1037739552740", "1027000861568"))
test_group %>% select(code, level, status, name_full, ogrn, inn, kpp) %>% 
datatable(rownames = FALSE, filter = "none", escape = FALSE, 
      class = "row-border", 
      options = list(columnDefs = list(
              list(width = '600px', targets = c(3)))))

Поиск по таблице выполнялся по значениям ОГРН, поэтому в таблице появились также действующие филиалы, но каждая строка (запись) имеет свой собственный уникальный код (поле code), который и выступает связующим звеном (ключом) между таблицами.

Таблица 2. Адреса и геоданные

В этой таблице по значениям code можно найти полный адрес организации (или филиала), отдельные фрагменты адреса, а также код geocode, временной пояс и географические координаты. В примере приведены данные для всех записей, приведенных в таблице выше.

Show code
t2 <- riro_data[[2]] 
t2 %>% filter(code %in% test_group$code) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, 
            class = "row-border", 
            options = list(columnDefs = list(
              list(width = '450px', targets = c(6)))))

Таблица 2 - единственная(!) таблица, которая имеет уникальное соответствие с таблицей 1 (по полю code), по сути это продолжение таблицы 1. Во всех остальных таблицах одному коду (code) могут соответствовать несколько строк.

Таблица 3. Иерархия

Данная таблица связывает существующие головные организации с филиалами и правопредшественниками (для удобства в этом документе они обозначены как “дочерние организации”).

Таблица не является абсолютно полной, но для большинства научных организаций включает в себя включает все официальные филиалы и представительства (на момент сборки), а также правопредшественников последней реорганизации. Для некоторых учреждений (например, больниц) в таблице присутствуют только головные учреждения.

Столбцы code относятся к головной организации, child_code - это code для дочерних организаций, relation - тип отношения (2 значения - “Филиал” или “Правопредшественники”).

Show code
t3 <- riro_data[[3]] 
full_test <- t3 %>% filter(code %in% test_group$code) %>% arrange(desc(code))
full_test %>% datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE, 
                           columnDefs = list(list(className = 'dt-center', targets = c(0:2)))))

Итак, используя список из 3 ОГРН, мы из таблицы 1, извлекли 6 code, по которым в таблице 3 извлекли дополнительные code для правопредшественников, получим в итоге значений 42 “объекта” с уникальными значениями code.

Соберем теперь группы вида: {code головной организации} - {все родственные коды} - {отношение}.

Show code
hierarchy <- full_test %>% 
  add_row(code = unique(full_test$code), 
          child_code = unique(full_test$code),
          relation = "Головная") %>% 
  rename(parent_code = code, code = child_code) %>% 
  arrange(parent_code, relation)

hierarchy %>% count(parent_code, relation) %>% 
  pivot_wider(names_from = relation, 
              values_from = n, values_fill = 0) %>%
  relocate(parent_code, `Головная`, 
           `Филиал`, `Правопредшественники`) %>% 
  datatable(rownames = FALSE, filter = "none", 
            escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE, 
  columnDefs = list(list(className = 'dt-center', 
                         targets = c(0:3)))))

Несмотря на то, что все найденные в таблице 3 дочерние организации также содержатся в таблице 1, легко найти в последней удастся только филиалы (они имеют одинаковые значения ОГРН и ИНН с головной организацией). Поэтому, если Вас интересуют только головные учреждения или филиалы, но не правопредшественники, Вы можете использовать для поиска только таблицу 1.

Однако, не спешите закрывать документ, ниже мы покажем, какую роль в RIRO играют правопредшественники и почему не стоит игнорировать таблицу 3.

Таблица 4. ROR

Research Organizations Registry – стартовавший в 2019 г. международный общественный проект по созданию открытой базы уникальных идентификаторов научных организаций, по смыслу близкий проекту ORCID для отдельных ученых, построенный с использованием наработок аналогичного проекта GRID (Global Research Identifier Database). Идентификаторы ROR открыто доступны для скачивания как в виде датасета, так и через API. Любой может предложить дополнение или исправление в ROR.

Таблица содержит записи из БД ROR, которым найдено соответствие в RIRO (ключ code).

Show code
t4 <- riro_data[[4]] 
hierarchy %>% inner_join(t4, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", 
            escape = FALSE, class = "row-border", 
            options = list(columnDefs = list(
              list(width = '250px', targets = c(3:5)),
              list(width = '400px', targets = c(8)))))

Некоторые записи в поле Relationships содержат композитную строку следующего вида:

label:xxxx|type:yyyyyy|id:https://ror.org/zzzzz

которая содержит 3 компонента label (название), type (тип отношений) и id (ROR идентификатор) для организации, которая по мнению создателей ROR имеет отношение искомой.

Таблица 5. Wikidata

WikiData – общественный репозиторий всевозможных структурированных характеристик разнообразных объектов (в нашем случае – научных организаций), дополнять и редактировать которые может любой. Данные из WikiData доступны открыто через разнообразные интерфейсы.

Важно понимать, что обилие информации в WikiData (от профилей в twitter до списка ректоров) внесено разнообразными людьми без системной верификации и нередко содержит неточности и неофициальную информацию.

Таблица содержит фрагменты записей из БД Wikidata, которым было найдено соответствие в реестре RIRO.

Show code
t5 <- riro_data[[5]] 
hierarchy %>% inner_join(t5, by = "code") %>% 
  arrange(parent_code) %>% 
  select(-parent_code, - relation, -wd_item) %>%  
  mutate_at(c("wikipedia_eng", "wikipedia_rus", "wd_itemaltlabel", "wd_altlabel"),
            ~ifelse(is.na(.x),.x, paste0(substr(.x,1,40),"...")))%>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(columnDefs = list(
              list(width = '250px', targets = c(2:4)),
              list(width = '150px', targets = c(6:9)))))

Таблица 6. Scopus

Scopus – одна из ведущих мировых баз научного цитирования, аккумулирующая метаданные научных публикаций из десятков тысяч журналов и конференций, а также части книг. Большинство государственных научно-образовательных организаций России имеет к ней доступ в рамках национальной подписки. В рамках этого стандартного доступа всем желающим без дополнительной платы доступен и полноценный API-интерфейс, к которому доступны дружелюбные для неискушенных пользователей API-обертки (wrapper) на python и R, в которых есть функции для сбора информации по идентификаторам организаций.

Таблица содержит идентфикаторы Scopus, которым было найдено соответствие в БД RIRO.

Обращаем внимание, что соответствие профилей организациям определялось по названиям первых и данная таблица не гарантирует полноту или безошибочность их наполнения в Scopus. Приведенное в таблице количество публикаций соответствовало действительности на момент сбора данных (апрель-май 2021).

О том, как корректировать профиль организации в Scopus можно прочесть на русскоязычном сайте Elsevier.

Show code
t6 <- riro_data[[6]] 
hierarchy %>% inner_join(t6, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(columnDefs = list(
              list(className = 'dt-center', targets = c(0,6)),
              list(width = '350px', targets = c(2:3)))))

Таблица 7. Microsoft Academic

Microsoft Academic Graph (MAG) – проект исследовательского подразделения Microsoft по созданию базы научного цитирования и метаданных на основе информации, собираемой парсерами Bing с сайтов журналов и PDF-файлов (подробнее). В этом заключается главное отличие MAG от Web of Science и Scopus, которые получают информацию от издателей.

За счет сочетания открытости и сбора роботом MAG является уникальным источником, особенно в «горячей» и приоритетной области Computer Science, и основой для ряда инструментов нового поколения (Lens, Semantic Scholar, Open Academic Graph).

Несмотря на последние новости о прекращении работы Microsoft Academic, было принято решение включить идентификаторы MAG в RIRO. Есть вероятность, что проект MAG в силу своей большой значимости для инфраструктуры открытой науки будет перезапущен сообществом.

Show code
t7 <- riro_data[[7]] 
hierarchy %>% inner_join(t7, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE,
              columnDefs = list(
                list(className = 'dt-center', targets = c(0:1)),
                list(width = '450px', targets = c(2)))))

Таблица 8. InCites

InCites – аналитическая надстройка над базой Web of Science Core Collection, доступная части российских вузов. К сожалению, в системе нет API-интерфейса для сбора показателей по организациям, но они доступны для ручного скачивания и связывания с другими данными через название, которое и служит «идентификатором».

В таблице приведены официальные названия организации в БД Web of Science и InCites.

Show code
t8 <- riro_data[[8]] 
hierarchy %>% inner_join(t8, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE,
              columnDefs = list(
                list(className = 'dt-center', targets = c(0,3)),
                list(width = '450px', targets = c(1:2)))))

Таблица 9. SciVal

SciVal – аналитическая надстройка над базой Scopus, доступная части российских вузов. У ряда подписчиков системы есть доступ к API-интерфейсу, который позволяет собирать многочисленные показатели по идентификаторам организаций, представленным в таблице.

В таблице приведены официальное название и уникальный идентификатор организации в БД SciVal.

Show code
t9 <- riro_data[[9]] 
hierarchy %>% inner_join(t9, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE,
              columnDefs = list(
                list(className = 'dt-center', targets = c(0:1)),
                list(width = '450px', targets = c(2)))))

Таблица 10. Мониторинг эффективности вузов Минобрнауки (1-Мониторинг)

Мониторинг эффективности вузов Минобрнауки – основной национальный сбор данных всевозможной информации о работе вузов, включает все организации высшего образования, кроме относящихся к силовым ведомствам.

Идентификатор в системе мониторинга однозначно указывает на URL открытой веб-страницы с данными о кадрах, финансовой информации, студентах и аспирантах, недвижимости и многом другом, что является очень ценным в соотнесении с данными из других таблиц.

Show code
t10 <- riro_data[[10]] 
hierarchy %>% inner_join(t10, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE,
              columnDefs = list(list(className = 'dt-center', 
                                     targets = c(0:1)))))

Таблица 11. Web of Science

Web of Science – старейшая и наиболее известная в мире наукометрическая база данных, доступная для большинства научно-образовательных организаций России в рамках национальной подписки.

В настоящий момент Web of Science не предоставляет пользователям уникальные идентификаторы организаций, вместо них используются «официальные» варианты названий, но ситуация осложняется тем, что вместе с ними существует и множество неофициальных. И те, и другие представлены в таблице 11 в том виде, в котором они встречаются в результатах поиска в интерфейсе онлайн-сервиса Web of Science.

Все эти варианты можно использовать для автоматизации процессов сбора сведений о публикациях с участием организаций (через выгрузку вариантов названий из модуля analyze results с последующим сопоставлением вариантов названий с теми, что присутствуют в таблице 11.

К моменту запуска релиза 1.0 мы распознали лишь часть названий. Надеемся, что нам удастся увеличить количество строк в этой таблице в следующих релизах.

К сожалению, в рамках централизованной подписки на Web of Science доступ к API-интерфейсам для выгрузки информации об организациях не предоставлен.

Show code
t11 <- riro_data[[11]] 
hierarchy %>% inner_join(t11, by = "code") %>% 
  arrange(parent_code) %>% select(-parent_code, - relation) %>% 
  datatable(rownames = FALSE, filter = "none", 
            escape = FALSE, class = "row-border", 
            options = list(autoWidth = FALSE,
              columnDefs = list(
                list(className = 'dt-center', targets = c(0)),
                list(width = '450px', targets = c(1,3)))))

Все идентификаторы для 3 организаций

На иллюстрации ниже для выбранных организаций показано как идентификаторы зарубежных сервисов (ROR, GRID, Scopus Affiliation ID, InCites ID, MAG, Wikidata) и российского оператора (Мониторинг) соответствуют головным организациям, их филиалам и правопредшественникам.

Группы идентификаторов для каждой организации представлены в виде блоков (по горизонтали). В каждом блоке на оси X расположены идентификаторы, по оси Y - сами организации, их филиалы и правпредшественники. Для каждого идентификатора показан тип организации.

Show code
filename <- paste0(img.dir, "chart_examples.png")
knitr::include_graphics(filename)

Примечания

Критерии отбора организаций для включения в RIRO

Приоритетными организациями для RIRO являются:

Обратная связь

Форма для обратной связи предусматривает следующие варианты:

Ваши замечания и предложения помогут улучшить RIRO.

Acknowledgments

Allaire J, Xie Y, McPherson J, Luraschi J, Ushey K, Atkins A, Wickham H, Cheng J, Chang W, Iannone R (2021). rmarkdown: Dynamic Documents for R. R package version 2.7, <URL: https://github.com/rstudio/rmarkdown>.

Blondel E (2021). zen4R: Interface to ‘Zenodo’ REST API. R package version 0.4-3, <URL: https://github.com/eblondel/zen4R>.

Chang, W (2014). extrafont: Tools for using fonts. R package version 0.17, <URL: https://CRAN.R-project.org/package=extrafont>.

Henry L, Wickham H (2020). purrr: Functional Programming Tools. R package version 0.3.4, <URL: https://CRAN.R-project.org/package=purrr>.

Krassowski M (2020). “ComplexUpset.” doi: 10.5281/zenodo.3700590 (URL: https://doi.org/10.5281/zenodo.3700590), <URL: https://doi.org/10.5281/zenodo.3700590>.

Lex A, Gehlenborg N, Strobelt H, Vuillemot R, Pfister H (2014). “UpSet: Visualization of Intersecting Sets,.” IEEE Transactions on Visualization and Computer Graphics, 20(12), 1983–1992. doi: 10.1109/TVCG.2014.2346248 (URL: https://doi.org/10.1109/TVCG.2014.2346248), <URL: https://doi.org/10.1109/TVCG.2014.2346248>.

Wickham H (2020). tidyr: Tidy Messy Data. R package version 1.1.2, <URL: https://CRAN.R-project.org/package=tidyr>.

Wickham H (2016). ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. ISBN 978-3-319-24277-4, <URL: https://ggplot2.tidyverse.org>.

Wickham H (2019). stringr: Simple, Consistent Wrappers for Common String Operations. R package version 1.4.0, <URL: https://CRAN.R-project.org/package=stringr>.

Wickham H, Francois R, Henry L, Muller K (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.3, <URL: https://CRAN.R-project.org/package=dplyr>.

Wickham H, Hester J (2020). readr: Read Rectangular Text Data. R package version 1.4.0, <URL: https://CRAN.R-project.org/package=readr>.

Wickham H, Seidel D (2020). scales: Scale Functions for Visualization. R package version 1.1.1, <URL: https://CRAN.R-project.org/package=scales>.

Xie Y (2020). knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.30, <URL: https://yihui.org/knitr/>.

Xie Y (2015). Dynamic Documents with R and knitr, 2nd edition. Chapman and Hall/CRC, Boca Raton, Florida. ISBN 978-1498716963, <URL: https://yihui.org/knitr/>.

Xie Y (2014). “knitr: A Comprehensive Tool for Reproducible Research in R.” In Stodden V, Leisch F, Peng RD (eds.), Implementing Reproducible Computational Research. Chapman and Hall/CRC. ISBN 978-1466561595, <URL: http://www.crcpress.com/product/isbn/9781466561595>.

Xie Y, Allaire J, Grolemund G (2018). R Markdown: The Definitive Guide. Chapman and Hall/CRC, Boca Raton, Florida. ISBN 9781138359338, <URL: https://bookdown.org/yihui/rmarkdown>.

Xie Y, Cheng J, Tan X (2021). DT: A Wrapper of the JavaScript Library ‘DataTables’. R package version 0.17, <URL: https://CRAN.R-project.org/package=DT>.

Xie Y, Dervieux C, Riederer E (2020). R Markdown Cookbook. Chapman and Hall/CRC, Boca Raton, Florida. ISBN 9780367563837, <URL: https://bookdown.org/yihui/rmarkdown-cookbook>.

Reuse

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

Citation

For attribution, please cite this work as

Lutai & Sterligov (2021, May 25). Russian Index of Research Organizations: RIRO версия 1.0. Retrieved from https://openriro.github.io/posts/rirov10/

BibTeX citation

@misc{lutai2021riro,
  author = {Lutai, Aleksei and Sterligov, Ivan},
  title = {Russian Index of Research Organizations: RIRO версия 1.0},
  url = {https://openriro.github.io/posts/rirov10/},
  year = {2021}
}