Open
Description
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. Thename
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.