You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Current »


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:

Add a single triple
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'milk'@en."
}
Add an entity with multiple triples
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'cow milk'@en.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/broader_term> <http://my_repo/entity/milk>.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> <http://my_repo/entity/bovine_milk>. }
Add an entity with a blank node
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b1:.
            <b1:> <http://my.authority/vocab/label> 'milk'@en."
}

Delete Example:

Delete a single triple
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'milk'@en."
}
Delete an entity with multiple triples
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "Delete term cow milk",
  "type": "Delete",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'cow milk'@en.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/broader_term> <http://my_repo/entity/milk>.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> <http://my_repo/entity/bovine_milk>. }
Delete a triple with blank node
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b1:.
            <b1:> <http://my.authority/vocab/label> "milk"@en."
}

Change Example:

Change a single triple
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> '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/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'Milk'@en" 
}
Change a term with blank node intermediary
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b1:.
            <b1:> <http://my.authority/vocab/label> '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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b2:.
            <b2:> <http://my.authority/vocab/label> 'milk'@en."}}


Split Example:

Change a single triple
{ 
  "@context": "https://www.w3.org/ns/activitystreams", 
  "summary": "Delete term cow milk", 
  "type": "Delete", 
  "actor": { 
    "type": "Authority", 
    "id": "http://my.authority",    
    "name": "My Authority" }, 
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'cow milk'@en." 
}

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "Add term bovine milk split from cow milk",
  "type": "Delete",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'bovine milk'@en."
}

{
  "@context": "https://www.w3.org/ns/activitystreams", 
  "summary": "Add term oxen milk split from cow milk", 
  "type": "Add", 
  "actor": { 
    "type": "Authority", 
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/hasLabel> 'oxen milk'@en" 
}
Change a term with blank node intermediary
{
  "@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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b1:.
            <b1:> <http://my.authority/vocab/label> '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/entity/cow_milk> <http://my.authority/vocab/hasLabel> b2:.
            <b2:> <http://my.authority/vocab/label> 'milk'@en."}}


RDF Diff


RDF*

Specification (draft) of RDF* and SPARQL* - https://w3c.github.io/rdf-star/cg-spec/editors_draft.html

Other Refs



IIIF Change Discovery

Specification: https://iiif.io/api/discovery/0.9/

Uses ActivityStreams

  • No labels