ResearchObject / ro-crate

Research Object Crate
https://w3id.org/ro/crate/
Apache License 2.0
88 stars 36 forks source link

Entry Points for RO-Crate Profiles #371

Open floWetzels opened 2 weeks ago

floWetzels commented 2 weeks ago

In the current specification, profiles are always defined on a complete RO-Crate. In case that such profile specifies requirements on the root data entity, they cannot be used in a modular or composable way, since subdirectories in RO-Crates don't specify a root data entity. An example for such a profile is the Workflow-Run-RO-Crate.

This issue came up at the BioHackathon Europe 2024, project 19 (@elichad @dnlbauer @floWetzels). Since composed research objects seem to be common and it should be possible to model them in RO-Crates without redundance in profiles, we propose the introduction of a Entrypoint mechanic into the RO-Crate specification, see https://github.com/dnlbauer/bh24-ro-crate-extension for details (will be fleshed out in the future).

Subscribe to this issue to stay updated on the development.

elichad commented 1 week ago

To consider:

dnlbauer commented 1 week ago
  • what should happen if multiple entry points conform to the same profile? e.g. in the case of uploading a crate with multiple workflow entry points to WorkflowHub

In this case, the service could decide to decompose the RO-Crate into "atomic" (for the lack of a better term) RO-Crates which can be handled like normal RO-Crates. I.e. WorkflowHub could decide to create multiple entries - one for each entry point in the crate; a workflow execution engine executing a workflow from RO-Crate could present a drop down selection to the user or require to specify an entrypoint during workflow submisson.

elichad commented 1 week ago

Intending to discuss this issue at the RO-Crate community call at 8:00 UTC tomorrow

marc-portier commented 1 week ago

Missed the meeting and thus the discussion in the call. Still sharing my two cents.

From a semantic point of view there is nothing preventing you to declare additional triples with the dcterms:conformsTo-predicate attached to any available part (subject) in the graph. And I don't think the ro-crate spec is formulating any restriction on that either. If anything, the jsonld-context just makes it handy to use conformsTo: keys in the json-ld to add these.

Its value is expected to contain an identifier (URI) for a standard, that

As such one could be using the conformsTo in ro-crates in combination with

This way of applying dcterms:conformsTo exists outside the RO-Crate concept and can be applied to any part of it as far as I see. The fact that the RO-Crate specification additionally introduced some specific suggestions to express conformity of ro-crates was considered as a useful and clear mechanism to guide people into some kind of "duck-type" declaring of valid assumptions on the crate contents. The fact RO-Crate 1.2 introduces some guidance on this level

If anything, IMHO the RO-Crate spec should state it does deliberately not want to interfere with that detail level. And

elichad commented 1 week ago

Summarising discussion from community call 2024-11-14: