Open ThomasThelen opened 4 years ago
https://www.researchobject.org/ro-crate/1.1/appendix/implementation-notes.html#adding-ro-crate-to-bagit specifies how to use RO-Crate in BagIt.
I've raised https://github.com/bagit-profiles/bagit-profiles-specification/issues/36 as Tag-Files-Required
can't address data/
files from a bagit profile, so you would need Payload-Files-Required
instead (See https://github.com/bagit-profiles/bagit-profiles-specification/pull/42 )
As a person creating and using crates, I want to use BD-Bag's fetch.txt so that I can efficiently transport Crates that are linked to external data.
There are of course a few different ways to achieve the goal above without using BD-Bag (for example this). I did some exploratory work on seeing what it would take for BD-Bag to support RO-Crate. I'll summarize them in this issue for anyone else that finds it useful. Note that I left out references to the optional RO-Crate files. Also note that this isn't an actual use case of mine.
BD-Bag RO-Crate Format
Base BagIt
Before anything can be set in stone, one of the different BagIt formats should be accepted (see #13). That issue is about achieving harmony between BagIt and RO-Crate, which ultimately boils down to where the RO-Crate Root is defined.
BD-Bag Additions
BD-Bag adds
fetch.txt
to the bag root.RO-Crate Additions
Implicit though the Base BagIt integration
Final Structure
This ultimately comes down to what the outcome of #13 is with the addition of
fetch.txt
.BD-Bag tooling
Profile
BD-Bag extends support for other standards via BagIt profiles. The first step is creating a new profile for RO-Crate. I've mostly done this here. Note that I chose to make the data/ directory the Crate Root. The reason for this is purely because the bd-bag library places it there.
The main area of interest is
BD-Bag Library
I'm not entirely sure what the capabilities are, but it looks like it should be able to parse the canonical metadata file defined in the profile (ro-crate-metadata.jsonld in our case) and create the fetch.txt from it. It should also be able to validate them and presumably work in the GUI.