Open jeannekitchens opened 6 years ago
I am not sure I am adding anything here or perhaps misinterpreting the graphic, but the metadata license boilerplate should, at a minimum, appear in the resource RDF payload so it is present in the wild where no envelop is involved.
There are a few issues/questions/approaches there:
When an envelope is involved, the payload's signature is included. Modifying the payload in this case breaks the signature and makes it look like all of the records in the registry were tampered with. So we would need to include the license outside of the payload, in the envelope itself. We'd need a property to attach it to.
When there is no @graph
to return, we would have to create a property (maybe use the same property as we use inside the envelope?) inside of the JSON object itself (the payload) to add the license information. This is doable, but data consumers will need to be aware of it.
When there is a @graph
to return, we could add the license to it as the last item in the @graph
in order to avoid breaking applications that are "dumbly" only looking at whatever resource is the first object in the @graph
and expecting that to be the main payload (although maybe we shouldn't worry about that?). Alternatively, we could, at the risk of violating the JSON-LD spec(?), include the license as the value for a property at the same level as @context
and @graph
in order to be consistent with the other two approaches where systems will be looking for that property.
@siuc-nate, just to make sure I am understanding @graph, the metadata license should be there when I retrieve a competency framework and it's associated competencies. There is no need to include the metadata license for interactions on a single subgraph...e.g., "give me competency X". The point is to include it at points of "distribution".
We have no similar clean distinction with metadata license with credentials.
The items described in my previous post would apply regardless of the @type
s involved, unless we did something special for certain cases.
Regardless of the technical implications for the registry and our partners, the overall solution looks like the below model. The output needs to be proper RDF.
The technical implementation requires a determination of the "container":
@graph
:@graph
which in turn contains the license and payload?@graph
when data is pulled by its CTID@context
and a@graph
?Envelope
:@graph
with appropriate context data?Sample structures:
Graph:
Envelope:
Hybrid: