Lark has Concept model and Event Log model.
The Lark Concept
Lark’s concept model follows skos:Concept definition. A full authority record built from it and saved to the solr index.
The following Vocabulary/Property has been defined for an authority record:
"prefLabel", "alternateLabel", "hiddenLabel", "exactMatch", "closeMatch", "note", "scopeNote", "editorialNote", "historyNote", "definition", "scheme", "literalForm", "label_source", "campus", "annotation", "identifier"
The Lark Event Log
Lark’s state is maintained by a single append-only event log. This document provides the abstract specification for that log, as well as some notes about its implementation.
In principle, the full internal state of the application and its records can be reconstructed from the events on the log.
Events are simple data structures holding:
type: a token representing specifying the semantics of the event data.
data: a key-value structure providing the event details.
created_at: a unique timestamp.
The Event Log is a totally-ordered and persistent stream of Events. The log is append only, meaning events can only be added (never destroyed), and each event is added to the end of the log (i.e. after the previous event).
The log is primarily for internal use, though aspects of it MAY be exposed via the API, especially for expressing record history/provenance.
Events added to the log are published to listeners/subscribers.
Each Event has a
type, corresponding to semantics for its
section defines types that appear in the log, and specifies the expected data
and their impact on the application and record states.
Events missing required (MUST) data MUST be ignored (i.e. treated as a no-op); additionally SHOULD be rejected when added to the log.
For example: a
:create Event without an
id SHOULD result in an error
when added to the log. If such an event is encountered when reading the log, it
MUST NOT result in the creation of any record (or in any other change to
:create Event establishes the existence of a particular Authority
:create Events MUST have an
id. The value of this attribute is a
string identifier for the created record.
||MUST||The identifier of the record created by the event.|
:change_property Event updates the properties of an Authority
||MUST||The identifier of the record to which changes are applied.|
||MUST||A data structure containing the changes to be applied to the record.|