DataSets.jl icon indicating copy to clipboard operation
DataSets.jl copied to clipboard

The role of the dataset UUID

Open mortenpi opened this issue 3 years ago • 0 comments

Right now, a dataset has two unique identifiers (unique within a data repository anyhow): name :: String and uuid :: UUID. The UUID is mandatory, but not really used as far as I can tell. I think we should explicitly document its role. A few thoughts:

  • UUID could be a more permanent way of referencing a dataset. It would also allow you to disambiguate if there are multiple data repositories with different datasets that have the same name.
  • A data repo should be thought of as UUID => DataSet dictionary. The name is there as additional metadata, for user-convenience.
  • It should be noted that there is nothing stopping you from having duplicate UUIDs (or names) referring to potentially very different data. However, for UUIDs, we would expect this to be rare.

There are a few tangential API changes we could do:

  • We should also probably introduce APIs for accessing datasets via a UUID (I don't think that exists right now).
  • We should probably allow users to rename datasets. It's not recommended to do it often, but it can be handy. The UUID would stay constant through renames, for cases where stability is important. This is really the case where UUID becomes important.

mortenpi avatar Nov 08 '22 05:11 mortenpi