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

Compare with Current View Page History

« Previous Version 3 Next »


Overview

This proposes a change document structure using Activity Streams.  It includes examples for each type of change.

Activity Streams

References:

Specification for Activity Stream 2.0

Sidecar specification describing activity types (e.g. add, delete, etc.)

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/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/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/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/milk> <http://my.authority/vocab/hasLabel> b1:.
            <b1:> <http://my.authority/vocab/label> "milk"@en."
}

Deprecate Example:

Delete a single triple
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "Deprecate term milk",
  "type": "Add",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/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/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/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/milk> <http://my.authority/vocab/hasLabel> 'Milk'@en" 
}
Change multiple triples for an entity at once
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "Delete narrower terms for milk",
  "type": "Delete",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  }, 
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> 'bovine milk'@en.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> 'oxen milk'@en."
}

{
  "@context": "https://www.w3.org/ns/activitystreams", 
  "summary": "Add narrower terms for milk", 
  "type": "Add", 
  "actor": { 
    "type": "Authority", 
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> 'Bovine milk'@en.
            <http://my_repo/entity/cow_milk> <http://my.authority/vocab/narrow_term> '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/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/milk> <http://my.authority/vocab/hasLabel> b2:.
            <b2:> <http://my.authority/vocab/label> 'milk'@en."}
}


Split Example:

Split an entity with a single triple into two entities
{ 
  "@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": "Add",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/bovine_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/oxen_milk> <http://my.authority/vocab/hasLabel> 'oxen milk'@en" 
}
Split an entity with multiple triples into two entities
{ 
  "@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/altLabel> <http://my_repo/entity/bovine_milk>.
              <http://my_repo/entity/cow_milk> <http://my.authority/vocab/altLabel> <http://my_repo/entity/oxen_milk>. }}

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "Add term bovine milk split from cow milk",
  "type": "Add",
  "actor": {
    "type": "Authority",
    "id": "http://my.authority",
    "name": "My Authority"
  },
  "graph": "<http://my_repo/entity/bovine_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/oxen_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/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/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