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

Design item link schema #1

Open
strogonoff opened this issue Jan 8, 2021 · 6 comments
Open

Design item link schema #1

strogonoff opened this issue Jan 8, 2021 · 6 comments
Assignees
Labels
enhancement New feature or request

Comments

@strogonoff
Copy link
Contributor

strogonoff commented Jan 8, 2021

Implement universal registry item linking format, e.g. using an informal URN.

  • Possibly support relative (any item in the same registry, but possibly in another subregistry) and absolute (item in another registry altogether) link formats
    • Capture item ID, item class and subregistry ID for relative links, and registry ID for absolute links
    • Provide functions to convert between link formats
  • Update basic registry item schema to capture imported item source (handled in Support item source in basic registry item schema #2)
@strogonoff strogonoff added the enhancement New feature or request label Jan 8, 2021
@strogonoff strogonoff self-assigned this Jan 8, 2021
@strogonoff strogonoff changed the title Support item linking Design item links Jan 8, 2021
@strogonoff strogonoff mentioned this issue Jan 8, 2021
5 tasks
@strogonoff strogonoff changed the title Design item links Design item link schema Jan 11, 2021
@strogonoff
Copy link
Contributor Author

strogonoff commented Jan 11, 2021

@ronaldtse

It looks like informal URN namespaces should still be registered[1][2]. Should we provision a single namespace for all registers? Or require that each register has its own namespace, which would be configured by register/registry manager in metadata?

A single namespace could presumably help us distinguish all registers that conform to our schema, though I don’t know how registration works and whether someone else can use this namespace without our input.

If we go with a single namespace, perhaps it could reference Relaton (e.g., urn:relaton) or something else universal enough. Then, register URN could looks something like urn:relaton:register:6e8bc430-9c3a-11d9-9669-0800200c9a66. Presumably absolute item links could use URNs of the form urn:relaton:register:<register_id>[:subregister:<subregister_id>]:<item_id> (potentially item IDs might have to be scoped with item class ID as well, but not yet sure).

@strogonoff
Copy link
Contributor Author

(Assigning you as well, since if we need to register a namespace it might require action by Ribose or Relaton.)

@strogonoff
Copy link
Contributor Author

I am not sure if we will support relative links. It looks like there is no strong precedent for relative URNs[1][2].

That would make it easier in a way, since we can be certain that any relation/link between register items will be fully qualified.

@ronaldtse
Copy link

Agree with something like this:

urn:relaton:register:<register_id>[:subregister:<subregister_id>]:<item_id>

Potentially we could try something as you suggested like urn:metaregistry:... and link it to a resolver for registry items.

Each register should definitely be namespaced.

@strogonoff
Copy link
Contributor Author

Agree with something like this:

urn:relaton:register:<register_id>[:subregister:<subregister_id>]:<item_id>

Potentially we could try something as you suggested like urn:metaregistry:... and link it to a resolver for registry items.

Each register should definitely be namespaced.

@ronaldtse

That works. The top-level namespace ("relaton" or otherwise) may need to be registered, right? And as you noted, it may better be registered by a non-profit organization.

Should we commit to registration and implement linking when we have the namespace?

If registration takes a while or we are not sure about committing to this, is there something that prevents us from using the desired namespace for linking right now, before it is registered?

(If so, we can start with a shared informal namespace, but that means we would have to perform data migration on all registers to convert links from that namespace to our chosen and registered one.)

@ronaldtse
Copy link

@strogonoff as discussed let's use urn:relaton:... for now and we could request a namespace registration for relaton.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants