Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PID - DOI - Dokumenty a Knihovna 3D #2591

Open
8 of 19 tasks
motyc opened this issue Nov 13, 2024 · 1 comment
Open
8 of 19 tasks

PID - DOI - Dokumenty a Knihovna 3D #2591

motyc opened this issue Nov 13, 2024 · 1 comment
Assignees
Labels
data migration Issues concerning data migration from old to new DB. enhancement New feature or request Fedora Related to the Fedora repository.
Milestone

Comments

@motyc
Copy link
Member

motyc commented Nov 13, 2024

Cílem je přidělovat všem jednotlivým záznamům v modelech Dokumenty a Knihovna 3D persistentní identifikátor DOI. V praxi to znamená uskutečnit v určitých momentech spolu aktualizací metadat také volání do API. Plná dokumentace je k dispozici na https://support.datacite.org/docs/api.
Produkční endpoint: https://api.datacite.org/
Testovací endpoint https://api.test.datacite.org/

Prefixy a přihlašovací údaje poskytne @motyc

Vše je v principu řešeno voláním (POST - vytváření / PUT - update):

Veškeré údaje jsou pak obsaženy v JSON souboru, který je přiložen k requestu:

  • Definice JSON obsahuje poznámky uvedené pomocí ###, které je třeba zohlednit vůči příslušnému elementu.
  • Pokud není uvedeno jinak, tak pokud nějaké pole není dostupné (prázdná hodnota), ponechat v JSON daný element, ale s prázdnou hodnotou (tím se odstraní původní indexovaná metadata).
  • Pozn:
    -- po dokončení registrace AIS CR doplnit ROR do publisher


  • Do tabulky dokument bude doplněno pole doi.
  • Do amcr.xsd bude za element dokument/ident_cely doplněn element: <xs:element name="doi" minOccurs="0" maxOccurs="1" type="xs:string"/> <!-- "{doi}" -->
  • Do detailu dokumentu doplnit zobrazení DOI do závorky vedle zobrazení ident_cely v záhlaví (nemusí být tučně, ať není tak výrazný).
  • Při první archivaci dokumentu (transakce D23) se do pole dokument.doi vloží údaj <DOI_PREFIX>/<ident_cely> (např. 10.82734/C-TX-123456789) a dojde k vytvoření a publikaci záznamu DOI pomocí POST podle definice: AMCR_DOI_POST_publish.json
  • Pokud se při volání POST ukáže, že DOI již existuje (návratový kód 422, odpověď obsahuje "title": "This DOI has already been taken") vrátit modal s dotazem, zda má být existující DOI aktualizován (tj. zavolat místo POST AMCR_DOI_PUT_publish.json), nebo zda se chce uživatel vrátit zpět (tj. archivaci neprovádět a udělat rollback).
  • Pokud již má záznam přiděleno DOI, dojde k updatu pomocí PUT:
    -- při každé další archivaci (D23), a to podle definice: AMCR_DOI_PUT_publish.json
    -- při posunu záznamu zpět (D-1), a to podle definice: AMCR_DOI_PUT_hide.json
    -- před smazáním záznamu, a to podle definice: AMCR_DOI_PUT_delete.json
    -- při každé archivaci navázaného záznamu (P56, AZ23) pokud je záznam v D3, a to podle definice: AMCR_DOI_PUT_update.json
  • Do administrace přidat novou funkci pro superadminy, pomocí které půjde na základě tabulky (CSV, XLSX) se seznamem ident_cely hromadně zavolat:
    -- AMCR_DOI_POST_publish.json - povolit pouze pro záznamy bez DOI ve stavu D3 (je třeba zajistit uložení DOI a aktualizaci metadat ve Fedoře)
    -- AMCR_DOI_PUT_publish.json - povolit pouze pro záznamy s již existujícím DOI ve stavu D3
    -- AMCR_DOI_PUT_hide.json - povolit pouze pro záznamy s již existujícím DOI ve stavu <D3
    -- AMCR_DOI_PUT_update.json - povolit pouze pro záznamy s již existujícím DOI
    -- chování udělat obdobně jako v Nástroj pro generování XML a přidělování PID - úprava chování #2567
  • V případě nedostupnosti služby (DataCite) vrátit chybu a nepovolit daný krok (obvykle archivaci).

Pozn. pro @motyc na základě https://datacite-metadata-schema.readthedocs.io/en/4.6/introduction/version-update/:

  • Doplnit Coverage
  • Upravit Event na Project
  • Používat Documents místo isDerivedFrom pro odkazy na lety.
  • Zrušit Container element
  • Pro date - Updated doplnit dateInformation podle historie.typ_zmeny (použít překlady)
  • smazat resourceTypeGeneral pro HasMetadata
  • Přidat HostingInstitution (AMČR) do Contributor
@motyc motyc added enhancement New feature or request data migration Issues concerning data migration from old to new DB. Fedora Related to the Fedora repository. labels Nov 13, 2024
@motyc motyc added this to the v1.1.0 milestone Nov 13, 2024
@motyc motyc self-assigned this Nov 13, 2024
@motyc motyc assigned pesikj and jhavrlant and unassigned motyc and jhavrlant Nov 18, 2024
pesikj added a commit that referenced this issue Dec 1, 2024
@pesikj pesikj mentioned this issue Dec 1, 2024
pesikj added a commit that referenced this issue Dec 1, 2024
pesikj added a commit that referenced this issue Dec 1, 2024
pesikj added a commit that referenced this issue Dec 1, 2024
@motyc
Copy link
Member Author

motyc commented Dec 3, 2024

@pesikj Po konzultaci s lidmi s DataCite jsem ještě mírně upravil zadání, nicméně v bodech, které ještě nebyly označené jako hotové. V principu šlo o to, že jako suffix DOI budeme používat náš ident_cely a nebude tak přidělován ze strany DataCite. Musíme proto také umět pracovat s případnými duplicitami, kdyby náhodou vznikly (nemělo by se to stávat, ale ve vzácných případech je to teoreticky možné).

V této souvislosti si prosím stáhni znovu AMCR_DOI_POST_publish.json, kde se změnil element prefix na element doi a byla upravena jeho definice.

Stejnou úpravu jsem udělal i v #2596 a #2615, které jsi ale asi ještě nezačal dělat.

pesikj added a commit that referenced this issue Dec 5, 2024
pesikj added a commit that referenced this issue Dec 6, 2024
pesikj added a commit that referenced this issue Dec 6, 2024
pesikj added a commit that referenced this issue Dec 31, 2024
pesikj added a commit that referenced this issue Jan 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data migration Issues concerning data migration from old to new DB. enhancement New feature or request Fedora Related to the Fedora repository.
Projects
None yet
Development

No branches or pull requests

3 participants