What a schema is
The register is a shared grammar. Its rules are stated in a schema: a formal description of the fields every entry carries, published once on-chain and reused by every entry that follows. Anyone can read the schema and know exactly what shape a record will have before it appears.
The schema is registered once, on Celo, using the Ethereum Attestation Service. It cannot be altered after registration. If a new field is needed later, a new schema is registered alongside the old one. This immutability is a feature of on-chain records and enables the register built on it to be tamper-proof.
Schemas are public. Once registered, a schema is available to anyone: a record can be made under it without asking the registrar's permission. A registrar can attach a smart contract that limits who may record under it — restricting attestations to a list of wallet addresses, or to addresses that meet some other condition. The Eo1 register's schema has no such restriction. Any wallet can record a work under it.
Two schemas, one view
Commoning uses two schemas. The Eo1 base schema holds works that enter the register. The Commoning research schema holds the activity that produces them: reading notes, drafts, arguments, and decisions. Both schemas are registered on Celo. The records made under each are separate attestations, with separate fields, signed at different times.
On the register page, the two are shown together. A work recorded under one schema and the same work recorded under the other are linked by a sameAs relationship, and the entry names both registers. This is the cluster's main demonstration: a cluster can register its own schema alongside the base one, without modifying the base, and the two coexist in a single view. The relationship between the schemas is visible to anyone who reads the register.
Base fields
Every entry in the register carries the same fields. The base schema is deliberately thin.
Four of these fields need explanation.
Licence is a coded value. It records the terms under which a work circulates. The codes are:
Phase is a coded value. It records a work's position in the register's lifecycle. The codes are:
Both are recorded as uint8. This keeps the record compact and forces a controlled vocabulary.
Date is the work's own date. A manuscript from 1890, registered today, carries 1890 here — and separately, EAS records today's block timestamp as the moment the attestation was written. The schema's date holds what the work claims about itself; the block timestamp holds when the record entered the register.
SourceUID is the parent link. Each entry names the attestation it derives from, by UID. A translation cites the original, a revival cites the edition, a response cites the paper. The chain of derivation is public and cannot be broken without invalidating the records that follow.
One limitation is worth noting. sourceUID is a single field, so a record carries exactly one parent. Many works have more than one (eg, a translation of one text, responding to another, drawing on a third). The register does not yet resolve this. Three approaches are possible: recording the work several times with different parents; carrying the primary parent in sourceUID and the rest in uri by convention; or adding a references field in a cluster schema.
The Commoning research schema
Where the works schema is for things that enter the register, the research schema is for the activity that produces them. It captures the granular flow — reading notes, drafts, design decisions, responses, revisions — as they happen. Commoning uses it to make the trajectory of research visible, and to record the reasoning behind the build.
Three fields need explanation.
WorkType distinguishes one kind of record from another. The values in use are source, reading-note, draft, argument, response, design-decision, working-paper, paper, log-entry, and revision. This is the field that makes the schema granular: a design decision is a different kind of thing from a reading note, and the register now says so.
ResearchStage records where the work is in the process. The values are source, reading, drafting, revision, review, and publication. It replaces the works schema's phase, which tracks an iterative cycle rather than a research process. The two schemas carry different stage vocabularies because they describe different things.
Summary is a one-line description. For a design decision, this is the rationale — why this, and not the alternative. For a reading note, it is what was taken from the source. It is the field that carries the thinking, and it is what makes the trail legible to a reader who was not there.
parentWork has the same single-parent limitation as sourceUID. Research activity often has more than one antecedent — a draft responds to two reading notes and a design decision — and the same three approaches apply. The choice is not yet made.
Identifiers
The schemas and their supporting contracts are all public. Anyone can verify that a given attestation belongs to this cluster by checking the schema it cites.
Provisional nature
The schema is registered once, on Celo, using the Ethereum Attestation Service. Its structure is fixed: the fields it defines, and their types, cannot be changed after registration. If a new field is needed, a new schema is registered alongside the old one, and records made under the new schema are distinct from those made under the old.
What is not fixed is the vocabulary the cluster uses to fill those fields. The workType and researchStage values are strings, not enums: new values can be introduced without registering a new schema. The lists given below are what is currently used, not the limit of what can be said.
This page is a snapshot. It describes the schemas as they stand at the time of writing, and the records page notes when the description changes.