8. Opzetten van een koppeling van ORCID met een Brocade repository voor academici

8.1. Inleiding

ORCID (Open Researcher and Contributor ID) is een alpha-numerieke code die wordt gebruikt om auteurs van wetenschappelijke werken uniek te identificeren.

Achter ORCID staat een non-profitorganisatie, waarvan wetenschappers, instituten en organisaties lid kunnen worden.

Dit document gaat dieper in op de vraag, welke services een Brocade systeem kan aanbieden in de desktop, bedoeld voor de onderzoeker.

8.2. Een brug tussen ORCID en Brocade

Volgende diensten kunnen worden aangeboden via de desktop van een eindgebruiker :

  • Een wetenschapper kan opvragen wat zijn ORCID is, zoals gekend in de Brocade databank.

  • Een wetenschapper kan eventueel zijn ORCID invullen of wijzigen.

  • Een wetenschapper krijgt een link aangeboden, waarmee volgende dingen kunnen :

    • Hij of zij kan zich registreren of authenticeren op de ORCID website.

    • Hij of zij kan de toestemmimg geven aan de jouw instelling, om bepaalde gegevens met ORCID uit te wisselen.

    • In eerste instantie wordt - na authorizatie door de wetenschapper - zijn/haar ORCID gekoppeld aan zijn account in Brocade.

8.2.1. Opzet

Dit eerder complex gebeuren is mogelijk door volgende stappen uit te voeren :

  1. Maak een authority attribuut 'orcid' met volgende minimale eigenschappen:

    • Authority types : P

    • Hoort bij 'Loi'

    • URL type 'orcid'

    • Nummer type 'nrisni'

  2. Registreer je instelling bij orcid.org : je bekomt hierbij een client id en een secret. Communiceer nooit deze beide gegevens aan de buitenwereld.

  3. Maak een authorisatiesysteem aan:

  • Kies hiervoor menu optie de menu optie Autorisatiemodellen [link]

  • Maak een authorisatiemodel aan met volgende gegevens :

    Client ID:

    je client id, bekomen van ORCID

    Client secret:

    je client secret, bekomen van ORCID

    Token URI: (test voorbeeld)

    https://api.sandbox.orcid.org/oauth/token

    Authorisatie URI template (test voorbeeld):

    https://sandbox.orcid.org/oauth/authorize?scope=/read-limited{%}20/activities/update&family_names={%fn|url}&given_names={%vn|url}&email=%email

    Authorisatie URI key generator:

    (leeg laten)

    Redirect menu-ingang:

    orcidrdr

    Desktop verwoording bij Authorisatie URI (geen id):

    Creëer of link je ORCID (voorbeeld)

    Desktop verwoording bij Authorisatie URI (niet geauthoriseerd):

    Link je ORCID (voorbeeld)

    Desktop verwoording bij Authorisatie URI (geauthoriseerd):

    Je profiel is gekoppeld met ORCID. (Voorbeeld)

    Melding in de desktop bij gelukte authorisatie:

    Je verleende authorisatie... (voorbeeld)

  1. In het beheer van de desktop : (menu optie Desktops [link] ):

  • Voeg service acadbibiam toe aan je desktop.

  1. In het beheer van je IR systeem (menu optie Institutional repositories - Beheersfuncties - IR systemen [link] ):

  • Voeg volgende lijn toe bij 'Toon attributen in desktop': orcid::orcidp

  1. Bij het beheer van de services : voeg volgende service toe:

  • SYS_lupar : Redirectie OAuth2 ; URL = lupar

8.2.2. Technische documentatie

  • Overzicht van uitgewisselde gegevens tussen Brocade en orcid:

    • link in desktop scherm naar orcid

      -->> orcid.org (login/registreer/authoriseer) << (state, code)

      >> (code, secret) << (token)

    • file token/file orcid bij enduser

    'U bent gekoppeld'

  • Via desktop service acadbibiam wordt een doorlinken naar orcid.org aangeboden (macro m4_getAuthorizationURI )

  • Na authenticatie en authorizatie op orcid.org wordt doorgelinkt naar routine %EntryA^bluwauto : hier gebeurt het volgende :

    • controleer de waarde van state met de oorspronkelijke waarde in de link. (error scherm indien mislukt)

    • haal bij orcid.org een token op met behulp van de opgestuurde code en je secret (error scherm indien mislukt), via macro m4_fetchAuthorizationToken : dit voert uit :

      • roep onderhuids op : lupa -token [code] source=orcidp

      • file de token data (^BTOKEN("token","orcidp","eloi",eloiid)) . Alleen de laatste token wordt bewaard/overschreven ; ook de 'slechte'.

    • toon een error scherm als er iets is mislukt

    • redirect naar menu-ingang 'orcidrdr' (routine %EntryOR^birwrdc) : deze doet het volgende :

      • indien de token info ok is, haal de orcid hier uit:

        • zoek de a loi, verbonden met de eindgebruiker

        • indien de a loi nog geen orcid heeft : link de orcid met de aloi / toon een scherm 'Uw UAntwerpen Repository profiel is nu gekoppeld aan uw ORCID profiel.'

        • indien de a loi gekoppeld is met een andere orcid : toon een scherm 'Uw gegevens kloppen niet'

        • indien de a loi gekoppeld is met dezelfde orcid : toon een scherm 'Uw gegevens zijn geupdated'.

8.2.3. Werkplan voor Orcid Auto update

Hieronder wordt beschreven, hoe je een Orcid-Auto-update service kan ter beschikking stellen in je desktop. Hiermee kan een onderzoeker op een eenvoudige wijze zijn/haar publicaties synchroniseren met de ORCID databank. Je moet voorgaande stappen ook al hebben uitgevoerd.

  • Maak een desktop service aan 'orcidsync', met minstens volgende gegevens :

    • Omschrijving: synchroniseer mijn publicaties met ORCID

    • URL: orcidsync?UDextra=orcidp(tst)~irua~irua~irua

      kies het juiste lupa authorisatie id~regelwerk~lidmaatschap~irsysteem: dit bepaalt welke publicaties zullen worden aangeboden ter synchronisatie

    • Wanneer authenticeren: Indien nog niet geauthenticeerd of max. geldigheidsduur verstreken is

    • Authenticatiemechanisme: Via eindgebruikersbeheer

    • Maximale geldigheidsduur: 60 min (of gelijkaardig)

  • voeg 'orcidsync' toe als submenu bij desktop service myacadbib

  • vermeld in de desktop meta data 'orcidsync' als verborgen dienst

  • maak een catalografische export generator 'orcid', met minstens volgende parameters : - Extra executable=d %Extra^lmosorc - alles aanstippen mbt authority verwoordingen - Taal van de authority verwoordingen : E - Samenstelling van naam en voornaam van auteurs : Anet

  • voeg bij je authorisatiemodel (lupa) volgende get/put operaties toe: (voorbeeld) - vervang orcidptst door de juiste lupa id

cg lupa.orcidptst:
$attribute: apiuri

$$value: https://api.sandbox.orcid.org/v3.0

$attribute: getid

$$value: bio

$attribute: getname

$$value: «Get biography»

$attribute: geturi

$$value: $apiuri/$ident/biography

$attribute: getexe

$$value:

$attribute: gettype

$$value: json

$attribute: getheader

$$value: application/json

$attribute: getid

$$value: worksxml

$attribute: getname

$$value: «Get publications in XML format»

$attribute: geturi

$$value: $apiuri/$ident/works

$attribute: getexe

$$value:

$attribute: gettype

$$value: xml

$attribute: getheader

$$value: application/vnd.orcid+xml

$attribute: getid

$$value: diffworks

$attribute: getname

$$value: «Make publications difference list»

$attribute: geturi

$$value: $apiuri/$ident/works

$attribute: getexe

$$value: «d %DiffWks^borcjapi("irua","irua","orcidptst")»

$attribute: gettype

$$value: json

$attribute: getheader

$$value: application/json

$attribute: getid

$$value: works

$attribute: getname

$$value: «Get publications from Orcid in JSON»

$attribute: geturi

$$value: $apiuri/$ident/works

$attribute: getexe

$$value:

$attribute: gettype

$$value: json

$attribute: getheader

$$value: application/json

$attribute: getid

$$value: syncput

$attribute: getname

$$value: «Update put codes in irua»

$attribute: geturi

$$value: $apiuri/$ident/works

$attribute: getexe

$$value: «d %UpdPut^borcjapi("irua","putcode")»

$attribute: gettype

$$value: json

$attribute: getheader

$$value: application/json

$attribute: geturikeys

$$value:

$attribute: putid

$$value: bulk

$attribute: putname

$$value: «Upload bulk works file»

$attribute: puturi

$$value: $apiuri/$ident/works

$attribute: puttype

$$value: xml

$attribute: putheader

$$value: application/vnd.orcid+xml

synchronisatie gebeurt onderhuids in volgende stappen:

  • Bij het opstarten van service orcidsync: (voorbeeld):

    • lupa get diffworks token=2ae7d142-93e1-4e74-bb6e-c0bac0eb37c8 source=orcidptst id=0000-0003-1297-5641

    Dit haalt de ORCID publicaties over van een gegeven onderzoeker, vergelijkt ze met de academische bibliografie, en produceert o.m.:

    • een lijst ulst:orcidptst:irua:0000-0003-1297-5641:notinorcid van ontbrekende c loi identifiers.

    • een lijst ulst:orcidptst:irua:0000-0003-1297-5641:matching van c loi identifiers, die matchen met record uit ORCID

    • Op basis van deze lijst krijgt de onderzoeker dan het overzicht, waaruit hij/zij kan kiezen.

  • Na selecteren in de lijst, en het klikken op de 'Synchroniseer' button gebeurt het volgende:

    • Een lijst ulst:orcidptst:irua:0000-0003-1297-5641:upload wordt aangemaakt, die de geselecteerde records bevat

    • Op basis hiervan wordt een xml file aangemaakt in ORCID bulk formaat, die de publicatiedata bevat:(voorbeeld) catcnv -export ulst:orcidtst:irua:0000-0003-1297-5641:upload format=orcidbulk target=/library/tmp/orcidbulk123981.xml gen=orcid

    • Deze file wordt op een geauthoriseerde manier gestuurd naar ORCID: lupa put bulk /library/tmp/orcidbulk123981.xml kind=file token=2ae7d142-93e1-4e74-bb6e-c0bac0eb37c8 source=orcidptst id=0000-0003-1297-5641 method=POST

    • Er wordt opnieuw opgestart:

      • lupa get diffworks token=2ae7d142-93e1-4e74-bb6e-c0bac0eb37c8 source=orcidptst id=0000-0003-1297-5641

        De lijst van opgestuurde records wordt vergeleken met de nieuwe lijst ulst:orcidptst:irua:0000-0003-1297-5641:matching. De onderzoeker krijgt een overzicht van de op te laden records, met een vermelding of ze werden gematcht (vinkje) of niet (kruisje)

  • Hoe kan je achter de schermen de reden achterhalen waarom bepaalde publicaties niet worden opgeladen ?

    • Zoek de cloi. Hint, in de Audit global worden deze bijgehouden: mutil gl 'BAUDIT("log","orcid-upload-fail"'|grep xxx

    • Maak een export bestand in orcid bulk formaat, voor deze ene cloi:

      catcnv -export c:irua:1234 format=orcidbulk target=/library/tmp/myorcid.xml gen=orcid

    • Zoek de juiste token en orcid, van de persoon, die deze c loi wilde opladen. Hint, voorbeeld mutil gl BTOKEN/|grep e:UA:75884

    • Laad dit bestand op met de geijkte procedure: voorbeeld:

      lupa put bulk /library/tmp/myorcid.xml kind=file token=2ae7d142-93e1-4e74-bb6e-c0bac0eb37c8 source=orcidptst id=0000-0003-1297-5641 method=POST

    • Controleer de output hiervan : (Hint : check tag error:developer-message) Indien alles goed verloopt, krijg je een works xml uitdraai te zien.