biocompute-objects / BCO_Documentation

Repository for documentation to support the IEEE 2791-2020 standard. Please see our home page for communications/publications:
http://biocomputeobject.org/
BSD 3-Clause "New" or "Revised" License
16 stars 12 forks source link

Recommend UUIDs for BCO_id? #8

Closed stain closed 6 years ago

stain commented 6 years ago

The field BCO_id is defined as

A unique identifier that should be applied to each BCO instance. These can be assigned by a BCO database engine. IDs should be URIs (expressed as a URN or URL). IDs should never be reused.

Hiroki Morizono suggested that we recommend using UUIDs (sometimes called GUIDs) as they are easy to generate and also to keep unique.

UUIDs can be URNs, e.g. urn:uuid:2bf8397b-9aa8-47f2-80a7-235653e8e824 (which are then not resolvable) or be used as part of an in-house identifier, http://repo.example.com/bco/2bf8397b-9aa8-47f2-80a7-235653e8e824

I don't think we should mandate which way - although I prefer the second form as it can be resolvable (e.g. click the hyperlink). We should probably only have a soft recommendations for UUIDs, something like:

It is RECOMMENDED that the BCO identifier is based on a UUID to ensure uniqueness, either as a location-independent URN (e.g. urn:uuid:2bf8397b-9aa8-47f2-80a7-235653e8e824) or as part of an identifier permalink, (e.g. http://repo.example.com/bco/2bf8397b-9aa8-47f2-80a7-235653e8e824)

A related question would be if a change of provenance_domain/version means the BCO_id should be changed or not.

stain commented 6 years ago

Technical meeting 2018-11-07 decided this is a good idea to add as a suggestion (not mandated)