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

Every deposited document is assigned a persistent identifier (ARK) [5] #399

Closed
sebdeleze opened this issue Nov 30, 2020 · 7 comments · Fixed by #561
Closed

Every deposited document is assigned a persistent identifier (ARK) [5] #399

sebdeleze opened this issue Nov 30, 2020 · 7 comments · Fixed by #561
Assignees
Labels
new feature New feature

Comments

@sebdeleze
Copy link
Contributor

sebdeleze commented Nov 30, 2020

When a document is created, it will be assigned a persistent identifier (ARK).

Data model
The ARK identifier must be stored in the identifiedBy property, like the following example:

{
    "identifiedBy": [
        {
            "value": "ark:/99999/ffk37p4d",
            "type": "bf:Local",
            "source": "ARK"
        }
    ]
}

A flag is set to know that the identifier has been created automatically and thus cannot be modified in the editor. This flag can be the creation date or a boolean.

Editor

The ARK identifier cannot be edited.

Search

The ARK identifier is searchable in the identifier index.

Display
In the document detailed view (public + admin), The identifier is displayed like this ("Permalink" renamed in "Persistent URL"):
image

The persistent URL is a link that displays the current document and the ARK identifier is kept in the URL (no redirection to /global/documents/XXX).

Previous proposal:
ark

API

The API documentation is available here: https://www.arketype.ch/doc/api.
Here's the info to test the API:
Account: apitest
Shoulder: 99999/ffk3
Password: communicated separately
This is an access only for testing purpose.

@sebdeleze sebdeleze added 8 new feature New feature labels Nov 30, 2020
@sebdeleze sebdeleze added triage and removed 8 new feature New feature labels Jan 27, 2021
@pronguen pronguen added new feature New feature and removed triage labels Feb 22, 2021
@sebdeleze sebdeleze changed the title Every deposited document is assigned a persistent identifier (DOI or ARK) Every deposited document is assigned a persistent identifier (DOI or ARK) [5] Mar 17, 2021
@sebdeleze sebdeleze changed the title Every deposited document is assigned a persistent identifier (DOI or ARK) [5] Every deposited document is assigned a persistent identifier (ARK) [5] Mar 29, 2021
@sebdeleze
Copy link
Contributor Author

@pronguen Questions concerning the URL.

  1. The URL with ARK identifier should be redirected to the standard URL (https://sonar.ch/ark:/99999/ffk37p4d --> https://sonar.ch/global/documents/xxx)?
  2. Should this URL be displayed in the Permalink section or, as specified in mockup, in Persitent URL section?

@pronguen
Copy link
Contributor

@sebastiendeleze

1. The URL with ARK identifier should be redirected to the `standard` URL (https://sonar.ch/ark:/99999/ffk37p4d --> https://sonar.ch/global/documents/xxx)?

I would say yes. Any other options?

2. Should this URL be displayed in the `Permalink` section or, as specified in mockup, in `Persitent URL` section?

In "Persistent URL" if possible.

For the context, we are going to abandon all RERO Explore permalinks. With ARK in SONAR, this situation should be avoided, and identifiers will be really persistent even if we change to a new system. So: permalink is not a real promise, but persistent URL/ID it is.

@sebdeleze
Copy link
Contributor Author

For the context, we are going to abandon all RERO Explore permalinks. With ARK in SONAR, this situation should be avoided, and identifiers will be really persistent even if we change to a new system. So: permalink is not a real promise, but persistent URL/ID it is.

1. The URL with ARK identifier should be redirected to the `standard` URL (https://sonar.ch/ark:/99999/ffk37p4d --> https://sonar.ch/global/documents/xxx)?

I would say yes. Any other options?

We can keep the URL as is (https://sonar.ch/ark:/99999/ffk37p4d) and display directly the document detail without a redirection.

@jma
Copy link
Contributor

jma commented Apr 22, 2021

I have several questions/propositions:

  • the ark link should be: https://n2t.net and not sonar.ch [OK]
  • we should not generate an ark for harvested records [NO]
  • do we include the view code in the resolved URL? [always, shared and dedicated]
    • if yes we need to change the resolved URL when the institution is changed [yes]
  • how to deal with hiddenFromPublic[not a problem, seb remove this feature from the editor]
  • do we put also the metadata? => need to update the metadata at each time the record is changed [later]
  • what to do when a record is removed? [see the mom answer]

@mmo
Copy link
Collaborator

mmo commented Apr 22, 2021

I have several questions/propositions:

The ARK Identifiers FAQ provides useful information which helps explain this choice, namely the following two items.

(emphasis added)

How do I cite or advertise an ARK?

The URL (https or http) form of the ARK is preferred, for example,
https://n2t.net/ark:/99166/w66d60p2
An ARK meant for external use is generally advertised (released, published, disseminated) in this way in order to be an actionable identifier.
(...)
An important decision is whether your URL-based ARKs will use the hostname of your local resolver or the N2T.net resolver. If local control or branding is important enough, you would advertise ARKs based at your local resolver. If you're concerned about the stability of your local hostname, you would advertise your ARKs based at n2t.net.

Resolving your ARKs through N2T is always possible for users, regardless of how you advertise them.

If most ARKs run on their own resolvers, why is there also a global resolver for ARKs?

Most ARKs are created by organizations that advertise ("publish") them based at their own resolvers. For example, this ARK was published based at the ark.bnf.fr resolver:
http://ark.bnf.fr/ark:/12148/btv1b8449691v/f29
Having to run and maintain your own resolver is the cost of complete autonomy. Using your own resolver also lets you do branding via the hostname, the downside being that brands are transient and tend to make identifiers fragile. Political and even legal (eg, trademarks) pressures may make supporting older branded hostnames, hence their identifiers, difficult.

@mmo
Copy link
Collaborator

mmo commented Apr 22, 2021

I have several questions/propositions:

  • what to do when a record is removed?

The identifier's _status field should be set to unavailable and its metadata be removed. See the section "Identifier status" in the EZID API documentation.

Ideally, we should provide a reason for the unavailability, such as "resource deleted". The API seems to support this: instead of setting the status to unavailable, we set it to unavailable | resource deleted. Cf. section "Identifier status": A reason for the object's unavailability may optionally follow the status separated by a pipe character ("|", U+007C), e.g., "unavailable | withdrawn by author".

@jma
Copy link
Contributor

jma commented Apr 22, 2021

Sample of ark request:

import requests
from requests.auth import HTTPBasicAuth

res = requests.post('https://www.arketype.ch/shoulder/ark:/99999/ffk3', auth=HTTPBasicAuth('user', 'password'), data='
    ...: _target: http://www.sonar.ch/global/records/1')

jma added a commit to jma/sonar that referenced this issue May 19, 2021
* Adds command line interface to interact with a NMA ARK server.
* Mints a new ARK identifier when a document is created.
* Registers the ARK identifier at the document creation.
* Marks the ARK persistent identifier as deleted when the document is
  removed.
* Closes rero#399.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
jma added a commit to jma/sonar that referenced this issue May 19, 2021
* Adds command line interface to interact with a NMA ARK server.
* Mints a new ARK identifier when a document is created.
* Registers the ARK identifier at the document creation.
* Marks the ARK persistent identifier as deleted when the document is
  removed.
* Replace the persistent URL by the ARK resolver URL if it is relevant.
* Closes rero#399.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
sebdeleze pushed a commit to jma/sonar that referenced this issue Jun 15, 2021
* Adds command line interface to interact with a NMA ARK server.
* Mints a new ARK identifier when a document is created.
* Registers the ARK identifier at the document creation.
* Marks the ARK persistent identifier as deleted when the document is
  removed.
* Replace the persistent URL by the ARK resolver URL if it is relevant.
* Closes rero#399.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
sebdeleze pushed a commit to jma/sonar that referenced this issue Jun 15, 2021
* Adds command line interface to interact with a NMA ARK server.
* Mints a new ARK identifier when a document is created.
* Registers the ARK identifier at the document creation.
* Marks the ARK persistent identifier as deleted when the document is
  removed.
* Replace the persistent URL by the ARK resolver URL if it is relevant.
* Closes rero#399.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
sebdeleze pushed a commit that referenced this issue Jun 15, 2021
* Adds command line interface to interact with a NMA ARK server.
* Mints a new ARK identifier when a document is created.
* Registers the ARK identifier at the document creation.
* Marks the ARK persistent identifier as deleted when the document is
  removed.
* Replace the persistent URL by the ARK resolver URL if it is relevant.
* Closes #399.

Co-Authored-by: Johnny Mariéthoz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature New feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants