Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Электронные архивы :  ИРБИС Irbis
Cистема структурированного хранения электронных документов, обеспечивающая надежность хранения, конфиденциальность и разграничение прав доступа, отслеживание истории использования документа, быстрый и удобный поиск. Источник: Wikipedia 
DSpace REST API - программный модуль для взаимодействия
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 08, October, 2020 02:29

Встал вопрос выудить информацию, которая содержится в репозитарии на dspace. В частности, посчитать количество документов автора - сотрудника организации или перечень его документов, чтобы расширить библиометрический профиль автора.
В dspace есть api на основе REST.
Документацию (для версии 5.x) можно почитать на REST API
Интересным смотрится
POST /items/find-by-metadata-field
Но в документации подробно про него не написанно.
В Windows 10 есть встроенный curl:
Из командной строки:
curl -help
Пример команды для поиска документов по автору:
curl -s -H "Accept: application/json" -H "Content-Type: application/json" -X POST "https://er.knutd.edu.ua/rest/items/find-by-metadata-field" -d "{\"key\": \"dc.contributor.author\",\"value\": \"Absaliamova, Yana\"}" > C:\results.json
,
где -s - "тихий" режим, -H - заголовки, -X - метод с url, -d - параметры.
Для использования двойных кавычек как содержимого данных, необходимо экранировать косой чертой "влево".
Полученный результат: results.zip
Посчитав id, получим количество документов для одной форме имени автора. Суммируя все id по всем формам имени автора, найдем общее количество документов, размещенных в репозитарии.
Для вывода названий документов и ссылки на них, используем:
curl -H "Accept: application/json" -X GET "https://er.knutd.edu.ua/rest/items/16581" > C:\item.json
Результат будет в формате json, где name - dc.title, handle - по сути ссылка на item.
Для получения метаданных:
curl -H "Accept: application/json" -X GET "https://er.knutd.edu.ua/rest/items/16581/metadata" > C:\item-metadata.json
Все раздумия навеяны темой ВебПортфолио ученого



Редактировано 1 раз. Последний раз 08.10.2020 02:30 пользователем woodyfon.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 08, October, 2020 07:14

Именно это и разбором CSV можно сделать... построить частотник по авторам (и дедуплицировать) а дальше сводная таблица.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 08, October, 2020 09:54

Но вообще, по мордели данных dspace - не CRIS. Коллеги из ТПУ положили в каждый документ dspace ссылку на авторитетную запись автора(ов) из АБИС и... ссылку на документ в АБИС. Получилось забавно. А разбирать логины в dc.description.provenance и строить частотники по dc.contributor - это от лукавого IMHO.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 08, October, 2020 10:43

Цитата:
Именно это и разбором CSV можно сделать...
не хотелось бы делать предварительный экспорт.
Цитата:
построить частотник по авторам (и дедуплицировать)
Поподробнее, пожалуйста, какой именно частотник? ДедуПлицировать?!
Цитата:
Коллеги из ТПУ положили в каждый документ dspace ссылку на авторитетную запись автора(ов)
Не могли бы привести ссылочку на ресурс.
Это само собой разумеющиеся, что необходимо делать через авторитетные записи, но тогда идентификатор необходимо ложить чуть ли не ручками в каждый item.
Цитата:
А разбирать логины в dc.description.provenance и строить частотники по dc.contributor
В репозитарии может использоваться не только принцип самоархивирования.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 08, October, 2020 21:40

> не хотелось бы делать предварительный экспорт.
Ну, парсить rest или даже oai можно так же без проблем. Сводная таблица в один xslt.

> Поподробнее, пожалуйста, какой именно частотник? ДедуПлицировать?!
Построить список всех значений поля dc.contributor.* и dc.creator.*, удалить дубли и/или составить список синонимов... дедупликация; от лат. deduplicatio — устранение дубликатов. По-русски придётся именно ДеДуплицировать. ДедуПлицировать не нужно... лишнее это.

> Не могли бы привести ссылочку на ресурс.
[earchive.tpu.ru]
Поля:
local.identifier.bibrec
local.identifier.perskey

Тут ведь вопрос только в том, на сколько точна, глубока и дуплексна синхронизация репозитория и АБИС и где собственн хранится авторитетная запись, а где данные/метаданные, которыми запись прирастает. Корллеги в Томске нереально крутые и был момент, когда они эту проблему решали на уровне хранимых процедур Oracle (и АБИС Руслан и DSpace у них используют Oraclе)... но в принципе, и REST - вполне себе вариант для "читать и писать dspace".

> В репозитарии может использоваться не только принцип самоархивирования.
Вот именно. Я помню, что Вы упоминали этот кейс, что автор не видит тех своих работ в своей учетке dspace, которые загружены библиотекарем.

Может всё же посмотреть на dspace cris? Там это всё почти по-человечески сделано. Другое дело что под местную национальную специфику его разработчики адаптировать не будут.



Редактировано 1 раз. Последний раз 08.10.2020 21:40 пользователем IdeaFix.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 08, October, 2020 21:41

а вообще конечно дуплеты и дублеты, это как репозиторий и репозитарий...

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 08, October, 2020 22:02

Я когда работал в библиотеке, для других целей, но делал рекий ресолвер, который по инеднтификатору записи открывал динамическую страницу с полями. На уровне АРМа читателя штатно так в АБИС было сделать нельзя, или я просто не знал как, но надо было накормить гугл метаданными. Теперь dspace у нас не в ведомстве библиотеки, но зато есть серьезная CRIS система... и ресолверы теперь в dspace тоже есть, но не на АБИС

[elar.urfu.ru]
Идентификатор SCOPUS: 85077608165
Идентификатор WOS: 000534327700001
Идентификатор PURE: 11899495
DOI: 10.1371/journal.pone.0219876

Так же есть ресолверы на шнекоторые гранты (РНФ, Cordis, NSF), но это всё факультативно. Учет публикационной активностив едется на стороне CRIS, а Repository слава Богу остаётся именно Repository'ем :)

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 08, October, 2020 23:49

Ушлые пользователи могут наделать делов, если REST открытым оставить.
Авторизируемся:
curl -X POST [er.knutd.edu.ua] -d "{\"email\":\"me@mail\", \"password\":\"password\"}" -v -H "Content-Type: application/json"
Получаем rest-dspace-token.
curl -v -X POST -H "Content-Type: multipart/form-data" -H "rest-dspace-token: 5f042a2a-3a11-4833-b5bf-07c161272bdb" --data-binary @/path/to/test2.pdf "http://localhost:8080/rest/items/120/bitstreams?name=test2.pdf"
Поэтому создаем файл rest.xml в /etc/tomcat7/Catalina/localhost (сервер за nginx) c содержимым:
<Context path="/rest"
docBase="/dspace/webapps" antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
    allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|IP-address" denyStatus="403" />
</Context>
Цитата:
Может всё же посмотреть на dspace cris? Там это всё почти по-человечески сделано. Другое дело что под местную национальную специфику его разработчики адаптировать не будут.
CRIS пока рановато.
PS.
Цитата:
а вообще конечно дуплеты и дублеты, это как репозиторий и репозитарий...
Для меня дуплет ассоциируется только с ударом на бильярде.smiling smiley

Задача стояла каким образом можно выудить информацию из dspace. Что дальше делать с ней делать, решать пользователю.



Редактировано 1 раз. Последний раз 08.10.2020 23:53 пользователем woodyfon.

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 09, October, 2020 00:26

Открытый rest (с аутентификацией!) может породить значительную нагрузку, но вот открытый SOLR... как раз за nginx... это куда забавнее, и к сожалению, встречается регулярно :(

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, October, 2020 11:46

Согласен. SOLR вешать только на localhost

Re: DSpace REST API - программный модуль для взаимодействия
Пользователь: IdeaFix (IP-адрес скрыт)
Дата: 09, October, 2020 17:49

Дак в том-то и дело, что если веб шлюз (не важно, iss, nginx или apache httpd без ajp) настраивала макака, и он на том же хотсе, то tomcat видит ВСЕХ клиентов как 127.0.0.1 и solr доступен всем желающим :) А там есть кнопка unload... на которую может "нажать" к примеру гугл.

Бонусом теряется часть статистики в контексте геолокации, т.к. разрешить страну для 127.0.0.1 геоип от чего-то не может :)



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.