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

Are Storage Roots optional? #620

Open
kieranjol opened this issue Oct 10, 2022 · 4 comments
Open

Are Storage Roots optional? #620

kieranjol opened this issue Oct 10, 2022 · 4 comments
Milestone

Comments

@kieranjol
Copy link

Hi,

I'm reading through 1.1 and it's wonderful! Am I correct in thinking that a Storage Root is optional but highly recommended if you want to achieve the goal of rebuild-ability?
It seems that the key section is 4.3 Storage hierarchies, and the line

OCFL Object Roots must be stored either as the terminal resource at the end of a directory storage hierarchy or as direct children of a containing OCFL Storage Root.

This makes me think that a valid OCFL object can exist without a Storage Root as long as it's the 'terminal resource'? I'd never heard the term 'terminal resource' before, but I'm guessing that it just means that the OCFL object is the final set of files/folders at the end of a hierarchy?

If storage roots are optional, should this be stated as an explicit SHOULD somewhere in the document?

Best,

Kieran O'Leary
National Library of Ireland

@rosy1280
Copy link
Contributor

@kieranjol we've talked about this but are currently split on whether or not we should clear this up sooner or later because of potential impact on 2.0. i know that's a non-answer but i wanted you to know we aren't ignoring you.

@kieranjol
Copy link
Author

Thank you so much for the reply! I’m glad that it’s being discussed!

@zimeon
Copy link
Contributor

zimeon commented Nov 3, 2022

We discussed this on the editors' call today. The intention of the text in section 4.3 Storage hierarchies, a sub-section of 4. OCFL Storage Root and thus in the context of an OCFL Storage Root is:

OCFL Object Roots MUST be stored either (as the terminal resource at the end of a directory storage hierarchy or as direct children) of a containing OCFL Storage Root.

There are certainly also uses of OCFL Objects that might happen outside of an OCFL Storage Root. For example, one might transfer and OCFL Object to or from a repository, one might assemble an OCFL Object outside of a Storage Root and then move it in, and I'm sure other cases too. Perhaps a clearer wording would be:

Within an OCFL Storage Root, OCFL Object Roots MUST be stored either as direct children of the OCFL Storage Root, or as the terminal resource at the end of a directory storage hierarchy.

@neilsjefferies
Copy link
Member

May need to tighten up language to make clear that OCFL objects are independently validatable. No substantive changes required though.

@zimeon zimeon added this to the 2.0 milestone Sep 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants