Skip to content

Use Case: extend the core ro-crate graph with additional triples #526

@mpo-vliz

Description

@mpo-vliz

core case (as-a-I-want-so-that format)

As a ro-crate systems dev and/or usage steward with affinity to RDF ,

I want to advise and guide people on how to optimally include additional triples into the ro-crates

so that consumption of the ro-crate-metadata in RDF-aware processing is kept straightforward without overwhelming the scope and sice of the core metadata.json file

examples

Trying to list a number of cases that will produce different associated triples that are (or we would to have) associated to the ro-crate content

  • some ro-crate-md-as-dcat.ttl content holding dcat:... variant triples of the metadata
    • either to support clients that don´t process schema:... as fluently as we would want
    • or keep control on how otherwise the schema-2-dcat mapping happens
  • include **/*-prov-o.trig files that are capturing provenance tracking info on the crate as a whole, or its hasParts
  • include data-level as graphs in the shape of an actual semantically-uplifted alternative-distribution derived from composing csv files into a full-content.jsonld
  • include a croissantML discription for direct usage of the crate in some ML tool

others interested

This came up during a recent discussion with @esgg and @dgarijo

suggestions

Haven't given it much thought yet, surely details will need attention, but tapping into the wisdom of the community first.
To fuel reaction, I am not to shy to throw in some rough suggestions on how to deal with this.

Note that some of these ignore the premise that we would even need anything new for this. Still, having that as an explicit statement out is appreciated.

option 1 -- Just add the triples to the ro-crate-metadata.json

And simply suppress any bad vibes you might perceive from a potential extension of size or scope. If you ever get complaints you can still fix it through one of the other suggestions (which ignores the fact that people rather pass out on using your stuff than actually complain...)

option 2 -- Only add some strategic reference-triples and rely on rdf-dereferencing and make 'accessible' references to self-contained

Put any extra @id reference in the core @graph: [... ] and just make it point to any of these extra sources of triples. That technique works regardless if these are also provided by the ro-crate or not.

Optinally (or not?)

  • these can also get some extra properties (mime-type or profile),
  • these are explicitly put in the hasPart chain down from the root-data-entity

option 3 -- Forcefully include and mark these content parts

We require these additional RDF files to be listed in the hasPart chain as composing files.
Their individual role/expected content structure should be declared formally through a dc:conformsTo <profile>

Additionally we also introduce a clear marker-profile e.g. https://w3id.org/ro/crate/1.2#extra that labels these as "extensions to the ro-crate-provided-graph"

Ending up in maybe:

{ "@context": "https://w3id.org/ro/crate/1.2/context", 
  "@graph": [
    {
        "@type": "CreativeWork",
        "@id": "ro-crate-metadata.json",
        "about": {"@id": "./"},
        "conformsTo": {"@id": "https://w3id.org/ro/crate/1.2"}
    },
    
    {
        "@id": "./",
        "@type": "Dataset",
        "hasPart": [
            {"@id": "./extra-triples.ttl"}
        ]
    }, 

    {
        "@id": "./extra-triples.ttl",
        "conformsTo": [{"@id": "https://w3id.org/ro/crate/1.2#extra"}, {"@id": "urn:some:other:role"}, 
    }, 

  ]
}

option 4 -- Make 'the ro-crate-metadata description' composable

As an alternative to the above we could question if it is not more natural to consider 'these self-contained sources of more triples' as being parts of the metadata, and no tof the root-data-entry ?

so rather moving that hasPart relation up, which makes the marking-by-some-profile obsolete:

{ "@context": "https://w3id.org/ro/crate/1.2/context", 
  "@graph": [
    {
        "@type": "CreativeWork",
        "@id": "ro-crate-metadata.json",
        "about": {"@id": "./"},
        "conformsTo": {"@id": "https://w3id.org/ro/crate/1.2"}
        "hasPart": [
            {"@id": "./extra-triples.ttl"}
        ]
    },
    
    {
        "@id": "./",
        "@type": "Dataset",
        ...
    }, 

    {
        "@id": "./extra-triples.ttl",
        ...
    }, 

  ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    use-caseA (potential) use-case for RO-Crate creation, consumption or integration

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions