Overview
This document describes potential technologies that may be used for creating or processing change management documents.
Activity Streams
Specification for Activity Stream 2.0
Compatible with JSON-LD, but has its own media-type.
Example: (Rough approximation of how a NEW entity action could be recorded. Exact recommendation TBD.)
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "New Term: milk", "type": "NEW", "published": "2021-06-10T15:04:55Z", "URI": "http://my.authority/uri/of/new/entity", "authority" : { "id": "http://my.authority/", "name": "My Authority", }, "json-ld": { ... full json-ld of the new entity ... }, }
Sidecar specification describing activity types (e.g. add, delete, etc.)
Many of the changes we will make are covered by the activity types in the spec. May need to add custom types for some (e.g. label change).
If done on a triple by triple basis, this might look like...
Add Example:
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Add term milk", "type": "Add", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> "milk"@en." }
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Add term milk", "type": "Add", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> b1:. <b1:> <http://my.authority/vocab/hasLabel> "milk"@en." }
Delete Example:
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Delete term milk", "type": "Delete", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> "milk"@en" }
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Delete term milk", "type": "Delete", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> b1:. <b1:> <http://my.authority/vocab/hasLabel> "milk"@en." }
{ "@context": "https://www.w3.org/ns/activitystreams", "summary": "Delete term milk", "type": "Delete", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> "milk"@en" } { "@context": "https://www.w3.org/ns/activitystreams", "summary": "Add term Milk as a replacement of term milk", "type": "Add", "actor": { "type": "Authority", "id": "http://my.authority", "name": "My Authority" }, "graph": "<http://my_repo/uri/of/new/entity> <http://my.authority/vocab/term> "Milk"@en" }
RDF Diff
- Provides info on several tools that (for the most part) compare 2 graphs and report on differences (https://www.w3.org/2001/sw/wiki/How_to_diff_RDF)
RDF*
Specification (draft) of RDF* and SPARQL* - https://w3c.github.io/rdf-star/cg-spec/editors_draft.html
Other Refs
- High level description and examples - https://enterprise-knowledge.com/rdf-what-is-it-and-why-do-i-need-it/
IIIF Change Discovery
Specification: https://iiif.io/api/discovery/0.9/
Uses ActivityStreams