cic-schema/README.md

93 lines
3.0 KiB
Markdown
Raw Permalink Normal View History

# Overview
2023-03-06 08:50:37 +01:00
This project aims to contain sufficient tools for generation, validation
and packaging of metadata describing impacts and externalities from the
use of Community Inclusion Currencies (CICs).
2023-03-06 08:50:37 +01:00
The expression of impacts and externalities will henceforth be referred
to as *attestations*.
2023-03-06 08:50:37 +01:00
**This is a work in process. It is in alpha state, and may radically
change at any time.**
2023-03-06 08:50:37 +01:00
## Getting started
2023-03-06 08:50:37 +01:00
To build json schemas and run tests, please install the python
dependencies from `requirements.txt`:
2023-03-06 08:50:37 +01:00
`pip install -r requirements.txt`
2023-03-06 08:50:37 +01:00
(You may want to use a virtual environment)
## Project Structure
2023-03-06 08:50:37 +01:00
Each unit of metadata consists of two parts:
1. RDF documents the certifications of vouchers, accounts and
transactions.
2023-03-06 08:50:37 +01:00
2. A JSON metadata structure bundlinf certficiations as tradeable NFTs.
2023-03-06 08:50:37 +01:00
NFT tooling is at the current time intended for EVM blockchains only.
# Attestations
2023-03-06 08:50:37 +01:00
## Attestation vocaularies
2023-03-06 08:50:37 +01:00
Four base vocabularies are used to define the attestations.
2023-03-06 08:50:37 +01:00
2023-05-24 09:47:03 +02:00
- `http://xmlns.com/foaf/0.1/` - well-known library used to describe
human resources and relationships.
- `evm` - EVM specific resources like transactions and account
addresses.
- `cic` - concepts specific to CICs, e.g. *Unit of Account*, *voucher
validity* and other parameters decribing kinds of economic activity.
- `ge` - subject impact types, areas of interest and inter-currency
relations according to Grassroots Economics - the organization
pioneering this work.
2023-03-06 08:50:37 +01:00
### Including other vocabularies
Authors of attestations may express impacts and externalities in
vocuabularies managed by themselves or other interested parties.
2023-03-06 08:50:37 +01:00
For example, Grassroots Economics can author a attestation with the
fictious **We Do Good NGO** as intended recipient. When doing so,
elements from the `wedogood` vocabulary is used to reference specific
points of interest in terms recognized by the systems of the recipient.
2023-03-06 08:50:37 +01:00
`wedogood` can furthermore be a vocabulary that systems of the fictious
**We Do More Good NGO** trusts and recognizes, which in turn can improve
reliability and confidence for them.
2023-03-06 08:50:37 +01:00
# EVM NFT
2023-03-06 08:50:37 +01:00
The JSON metadata implements the ERC721 standard, as well as parts of
the Opensea metadata standard.
2023-03-06 08:50:37 +01:00
It also contains immutable references to one or more certifications
which the NFT represents.
2023-03-06 08:50:37 +01:00
Apart from the `certifications` field, data in the JSON structure is
only intended for purposes of displaying the NFT in a user interface.
2023-03-06 08:50:37 +01:00
## Files
2023-03-06 08:50:37 +01:00
Current state of the JSON schema can be found in `dist/cic.json`. It is
composed by the `build.py` script from `*.in.json`.
2023-03-06 08:50:37 +01:00
`test_valid.json` is a single example data file used to test the JSON
schema. `make test` builds the schema and runs the corresponding tests.
2023-03-06 08:50:37 +01:00
## The attribute property
2023-03-06 08:50:37 +01:00
The `attributes` property may contain one or more values that represents
parameters within certifications. However, it does not represent the
autoritative data.
2023-03-06 08:50:37 +01:00
Care must be taken to make sure the display parameters does not conflict
with the data defined in the certification itself.