This repository contains a software development kit (SDK) to track data provenance across mutations, derive related annotations, and provide a generic architecture to assess those annotations to reach one or more conclusions.
- Installation
- Getting Started
- Basic SDK Usage
- Example Code
- Project Structure
- Opportunities for Improvement
This repository contains a module written in Golang.
It assumes a minimum Go version of 1.13.
To add it to your project: go get github.com/project-alvarium/go-sdk
Defines the terms used to communicate SDK concepts (which are echoed in implementation).
- Annotation. Information (metadata) derived from (and related to) specific data.
- Annotator. Evaluates data to create annotations.
- Assessment. Conclusion(s) derived from specific data and related annotations.
- Assessor. Assesses annotations and data to create an assessment.
- Data. Plural; two or more data points.
- Data Lineage. Description of the lifecycle of data to the current time. May Include details about the data's origin, who/what accessed or mutated the data, and where the data has transited. This is a key attribute of data provenance (that is, why-provenance).
- Data Point. Singular; a piece of information.
- Data Provenance. A historical record of the data and its origins.
- Identity. A specific data's unique identifier.
- Identity Provider. Derives identity from data.
- Publisher. Publishes annotations to external systems or persistence.
The SDK tracks the provenance of any type of data (for example, JSON, XML, or binary content) as long as the data can be represented as a Golang []byte