novaWaste2 entities, roles, identity rules and vocabulary: distillation

Pre-release. This site describes standard version 0.1.0-dev, which is in development and may change before version 1.0.0.

Sweep scope: entities, roles, identity, vocabulary. Activities/choice lists and indicators/methods are covered by sibling sweeps; rows here point there instead of repeating.

Sources are in ~/novaWaste2. CTX = CONTEXT.md (line of the term). SCH = db/schema.sql (line of CREATE TABLE). ADR-nnnn = arch/adr/. SC = arch/contracts/schema-contract.md. II patterns are from ~/greeningstandard (NCGS ADR-0002 identity, 0003 consignments/lazy creation, 0004 observer roles, 0005 StateClaims, 0007 no personal data, 0018/0025/0027 restatement).

Classifications: generic, project-level, operational, personal. “?” marks a proposal I am unsure of. Proposed terms are proposals only.

Ground rules applied: the graph holds identifiers and roles only (NCGS ADR-0007). An observed state is an aiao:StateClaim about an impactont:State, with the observer as claimant (ADR-0005). A thing gets a urn:uuid: identity when it first becomes individually distinguishable (ADR-0002/0003). A tag/QR is a bearer, never the identity.

1. Concept table

1.1 Place and property

novaWaste2 term source what it is classification proposed generic term II mapping notes
Town CTX:12; SCH:8984 Locality served; tenant row attribute (town_id) on every scoped record generic (as concept), project-level (instances) Service area Place; project-design element listing service areas; coded to a census-like place scheme (cf. NCGS census place) has_cadastre, cutover_at, first_payable_on, termination_writes_enabled columns are project/ops config, not standard. Tenancy (RLS) is operational. Standard should never say “town” in normative text.
Cadastral Town CTX:61; SCH:8984 (has_cadastre) Town whose land is surveyed into erven project-level Cadastre availability (property of a service area) Project-design declaration Boolean today; generic form is “which land-parcel register, if any, the project aligns service points to”.
Stand CTX:20; SCH:8617 Operational property unit serviced; one current Block; may align to Erf(s) generic Service point (a Site subtype; NCGS “household stand” site type is the nearest precedent) Site with urn:uuid identity; point geometry mandatory Core unit of service; everything weighed/collected/evaluated is about one. Name is SA-township flavoured; “premises” is the alternative. ?
Stand Number CTX:26; SCH:8617 (nova_stand_number) Human label, unique within town, never an identifier project-level Service-point label Literal attribute (like NCGS tagNumber/case label), not identity Confirms NCGS pattern: label is display text, identity is the uuid. Uniqueness scope (per service area) is project design.
Stand Reference CTX:80; SCH:9400 Value a Submission carries naming the Stand (legacy record id; stand or erf) operational (none; migration artefact) Replaced by capture shapes referencing service points by IRI (cf. NCGS ADR-0022) Exists only because legacy forms reference legacy ids. In a fresh standard the form carries the service point’s urn:uuid (or a bearer code resolved to it). Resolution states (one/many/none) = triage; keep only the rule “only an unambiguous resolution counts”.
Block CTX:33; SCH:4098 Spatial service area containing Stands; at most one Service Group generic Service zone Site-adjacent spatial entity (polygon) with urn:uuid; versioned ADR-0022: immutable id, mutable number label, versions, lineage. Strong generic pattern for any project that zones service points.
Block Version CTX:39; SCH:4261 Immutable number+polygon snapshot generic Zone version Versioned record; supersession via new version, same IRI Same pattern as NCGS “project version”/location records (new record, never edit).
(block lineage) SCH:4203; ADR-0022 Predecessor/successor for split/merge generic Zone lineage prov:wasDerivedFrom / ncgs:replaces-style link between new zones Split/merge creates new identities; old id never inherited.
(stand-block mismatch) arch/erd/operational.stand_block_mismatch.md Triage view: stand point outside assigned block polygon operational (none) Validation warning (sh:Warning) Geometry validates assignment, never assigns (ADR-0022). Worth a standard rule: explicit assignment wins, mismatch is a warning.
Erf / Erven CTX:45; SCH:4621 Official surveyed cadastral parcel project-level Land parcel (cadastral) External register entity keyed by its official reference, imported snapshot Country-specific legal record. erf_ref normalised unique within town (ADR-0021). Standard should allow an optional parcel link, not mandate a cadastre.
Stand-erf alignment CTX:51; SCH:8820, 8927; arch/erd/operational.stand_erf_resolution.md Many-to-many evidence linking Stand to Erf(s), resolved by rule project-level Parcel alignment Evidence-based links; resolution = derived view over append-only claim sets ADR-0021 pattern (append-only versioned claim sets, truth derived, manual evidence wins, conflicts surfaced) is reusable far beyond erven. Alignment itself is project-level.
Waste Site CTX:109; SCH:9938 Place within a Town where waste work happens (sorting/drop-off) generic Facility Site (facility type) with urn:uuid; point geometry Alternatives: “processing site”, “depot” (CTX says avoid). Distinguish from NCGS/II “site” generally; the type scheme should include facility.
Service Group CTX:115; SCH:8504 Partition within a Waste Site into groups/service days project-level Service round / service group Project-design element (grouping of zones with a service day) service_day is a weekday label; scheduling of rounds is a design choice. Also a QR-bearing entity.
Period Site CTX:299 Waste Site of most of a picker’s weighings in an ISO week operational (derived) Derived value, not stored Payment rule artefact.
Site Jump CTX:305 Picker weighs at >1 site in a week operational (derived flag) Derived warning
Route CTX:127 One picker’s GPS trail; scans hang off points generic (concept) ? Collection route / trail Activity trace (prov:Activity with geometry) with agent in collector role Persistent identifiable GPS tracks of a named worker are personal-data-adjacent: graph keeps agent IRI + role, raw track stays in the ledger/evidence store (ADR-0007 pattern). ?

1.2 Identity bearers and assets

novaWaste2 term source what it is classification proposed generic term II mapping notes
QR Code CTX:133; SCH:8021 Printed code on a stand, bin, picker or service group; assignment is a validity window generic Tag (identifier bearer) Bearer of identity (NCGS ADR-0002/0003 “tag”); code text only Matches NCGS rule: code carries a token, not the uuid. Novel here: bearer can be re-assigned over time (window [assigned_at, superseded_at)), globally unique code, one active code per entity, history never rewritten. NCGS tag is one-shot per tree; the standard needs a bearer-window rule.
QR assignment window SCH:8021 One (code, entity, validity) row generic Bearer assignment Dated assignment record (append-only); time-aware resolution Scan resolves against the window valid at scan time.
Bin SCH:4009; arch/erd/operational.bin.md Container asset identified by the QR on it; minted on first scan generic Container / bin Asset with urn:uuid, created when first distinguishable Textbook NCGS ADR-0003 lazy creation. Deliberately no status machinery.
(bin placement) arch/erd/marts.mart_bin_placements.md Event: bin placed at a stand generic (event) Container placement Activity record See activities sweep.

1.3 Data capture and ingestion

novaWaste2 term source what it is classification proposed generic term II mapping notes
Form CTX:69; SCH:5087 SurveyCTO instrument, keyed (source_system, server_id, form_id) operational Capture instrument Instrument mapping (NCGS: “capture shape/projection”) Standard defines record shapes; forms are projections (NCGS CONTEXT “Record”).
Form Version SCH:5316 Immutable per deployed version operational Instrument version Pinned in ledger provenance
Form Question / Form Version Question CTX:88, 92; SCH:5166, 5387 Reusable question and its per-version placement (lineage anchor) operational Field mapping Mapping nodes owned by the provider (NCGS ADR-0002) Form drift absorbed by mapping. Not standard content.
Choice List / Choice CTX:97, 103; SCH:4439, 4376 Form-local select lists operational (form-local) Each real list becomes a SKOS concept scheme in the standard Sibling sweep (choice lists).
Form registry SCH:5221 Ingestion cursor and current-version pointer operational
Submission CTX:74; raw SCH:10235 One captured response, identified by scoped key generic (as Record) Record Typed graph node (urn:uuid v5 from instrument namespace + submission key; NCGS ADR-0002) Never globally unique in source; the standard needs a deterministic record IRI so re-export is idempotent.
raw.ingestion_event SCH:10235 Immutable event per source revision (scoped key + source_updated_at + payload_hash) operational Ledger/raw-store layer, below the graph Corresponds to “preserve raw submissions” (NCGS ADR-0018).
raw.ingestion_observation / current_submission / submission_conflict SCH:10357; arch/erd/raw.*.md Observation log, current view, conflicts operational
raw.submission_tombstone SCH:10554 Source-absence marker operational Not a claim; absence is not a void Importer never infers a void from absence (CTX:360).
raw.attachment_manifest SCH:10143 Attachment refs per submission operational Evidence item (content-addressed) NCGS evidence item with content address Attachment becomes an evidence artifact by hash.
raw.pipeline_run, tracker_ingest_quarantine, reconcile_resolution SCH:10822, 10981; arch/erd/raw.reconcile_resolution.md Pipeline run, quarantine, reconcile decisions operational
tracker_project_crosswalk, device_heartbeat SCH:9755, 4494 Tracker source-to-town map; device telemetry operational
migration_crosswalk, migration_exceptions SCH:5701, 5797 Legacy-id to canonical-uuid map; triage queue operational Pattern worth noting: crosswalk keyed (source system, db, table, source id) is how legacy ids survive as external identifiers.
stg_* / int_* / mart_* arch/erd/staging., intermediate., marts.* dbt derived layer operational Derived indicators/views Not entities; out of scope here.

1.4 Service-state observations and lifecycle

novaWaste2 term source what it is classification proposed generic term II mapping notes
Service Week CTX:139 ISO week (Monday start) a service round falls in generic Service period (week) time:Interval / period concept; ISO 8601 week Canonical ISO week; legacy Sunday weeks mapped. Period length is a project choice; the standard should fix the calendar convention.
Collection Status CTX:145 Per-stand per-week outcome (collected, no waste, no bin access, …) generic Service outcome (per service point per period) impactont:State observed via aiao:StateClaim; outcome values = SKOS scheme Derived from scans + submissions; time-dependent history kept. Value list in sibling sweep.
Occupancy Class CTX:154 occupied / vacant / non_residential / unknown, consolidated from raw enumeration status generic Occupancy state StateClaim about service point; 4-value SKOS scheme Raw status kept beside the mapped class. Rule for later enrolment overriding earlier “vacant” is a latest-observation-wins pattern. Mapping rules per project.
Eligible Stand CTX:169 Stand qualifying for service (placement + signed unterminated enrolment + occupied + active block) project-level Eligible service point Derived determination (cf. NCGS derived determination) Eligibility rule is a project design choice; the standard should provide the pattern (derived, never captured) not the rule.
Termination CTX:178; SCH:9452 End of a Stand’s signed enrolment generic Service withdrawal / agreement ended Agreement act (NCGS: withdrawn, formal act) with status derived Closest to NCGS “Withdrawn”. Event log append-only, latest event wins. Legacy label contract_terminated is a project value.
Termination Reversal CTX:187; SCH:9452 Termination entered in error; existing enrolment counts again generic Withdrawal reversal (error) Restatement/withdrawal of the termination act (NCGS ADR-0018/0027), NOT a reinstatement NCGS distinguishes error correction (restatement) from formal reinstatement (new act). novaWaste2 makes the same split: reversal vs restart (new signed enrolment). Direct fit.
Enrolment (stand enrolment, signed) CTX:169, 178 (no own term); arch/erd/staging.stg_enrollment.md Signed agreement to receive the service generic Enrolment / participation agreement Agreement act + evidence item (signature); NCGS enrolment Not a glossary term but central. Signatory and signature file are personal/evidence, kept in the file store.
Evaluation CTX:193 Field visit assessing the service at a Stand generic Service evaluation aiao:Activity subclass (visit) producing a record See activities sweep.
Evaluation Attempt CTX:199 Evaluation with non-completed outcome; a real record, never filtered generic Visit attempt Same activity, outcome value Aligns with NCGS “every assessed site gets a record” and “withheld is a result”.
Scheduled Evaluation / Evaluation Schedule / Schedule Run / Schedule Status CTX:205, 213, 229, 219; SCH:4719, 4989 Planned visits, run records, derived outcome generic (plan) / operational (runner) Planned visit; schedule run Monitoring-plan element + scheduled record; status derived Never edited: cancel or supersede (restatement-like). Missed/attempted/completed derived. Sibling sweep covers workflow.
evaluation_schedule_config SCH:4883 Per-(town, site) scheduler parameters operational
Sample Frame / Visit Week / Cutover CTX:235, 242, 247 Legacy weekly draw; its 7-day window; migration switch operational Legacy-migration artefacts, not standard. Sampling design itself belongs to the monitoring plan (sibling sweep).
Action List CTX:254 Read-only xlsx lists of stands needing follow-up operational
Stand Occupancy Count CTX:397; SCH:9284 Household and person counts at a Stand at a date (source enrolment/evaluation) generic Occupancy count StateClaim with count values; observed_on is observed time Counts only, no individuals: fits NCGS “learners are counted, never identified”. Longitudinal, latest valid wins.
Household CTX:385 Aggregate measure, never a tracked entity generic (as measure) Household (count only) Not an entity; count property Explicit design decision (ADR-0014) that matches NCGS ADR-0007. Keep.
Weight flag review SCH:10051 “No change” review of a high-weight flag operational Anomaly review Review record by reviewer role (NCGS review seat) Pattern: reviewer is a different agent/role.

1.5 Waste, payments

novaWaste2 term source what it is classification proposed generic term II mapping notes
Waste Category CTX:262; SCH:9898 Catalog code with bucket (recyclable, non_recyclable, sanitary, organic) and label generic Waste category SKOS concept scheme with skos:broader bucket Exact mixed-case codes are legacy; standard should mint stable IRIs, keep legacy code as skos:notation. Sibling sweep covers lists.
Project Rate CTX:270; SCH:7839 Flat price/kg and holiday multiplier per town over a half-open window project-level (none) Not in standard Payment term. Half-open validity windows are a good generic pattern for any dated parameter.
Public Holiday CTX:280; SCH:7923 Dates paying holiday multiplier operational (and SA-specific)
Recycler Payment (+ line) CTX:287; SCH:8185, 8318 What a recycling company paid for a site’s recyclables operational Recyclate sale (revenue) Possibly an evidence item for a recovery claim ? The weight sold is indicator-relevant (circularity); the money is not. Voided, never deleted.
Recycler Bonus CTX:293; SCH:6438 Picker’s equal share of a recycler payment operational
Payment Statement (+ day, picker, bonus, row, counter) CTX:310; SCH:6244, 6554, 6676, 6438, 6782, 6512 Weekly frozen pay run; draft, signed off, paid; gapless number operational Four-eyes sign-off and canceled-number-burned are good audit patterns but not standard content. Money stays out of the standard (II bounties are operational).
Day Line / Payment Slip / Detail xlsx CTX:323, 329, 334 Statement sub-lines and exports operational

1.6 Corrections

novaWaste2 term source what it is classification proposed generic term II mapping notes
Correction CTX:340; SCH:9581 Append-only attributed amendment of one captured value; supersedable generic Correction New record that restates the original (NCGS ADR-0018/0025) See section 3. Granularity differs: field-level vs record-level.
Field Void CTX:354 One captured value is void, record stands generic Value withdrawal Restatement omitting/blanking the value, with reason NCGS has no value-level void; restated record without the value. ?
Submission Void CTX:360 Whole submission void: the event never happened generic Record withdrawal ncgs:withdraws-style withdrawal of the record’s introduced things; record kept, not counted Explicit invalidation only; never inferred from absence.
Repair CTX:348 Superseding raw event restoring what the source sent operational Pipeline layer, outside the graph Not a correction of the world, of the pipeline.
Supersession of a correction SCH:9581 (supersedes_id) Amending a correction supersedes it generic Latest governing correction wins NCGS: latest governing, IRI ordering on ties.

1.7 People, organisations, roles

novaWaste2 term source what it is classification proposed generic term II mapping notes
Person CTX:369; SCH:6918 One real human; non-town-scoped identity personal (not in graph) aiao:Agent IRI in the graph; person record stays in a people register Graph holds agent IRI + role only (NCGS ADR-0007). Link identifier: a minted agent urn:uuid held in the register against the person row (do not reuse a database PK if that would leak linkability ?).
person_identifier (RSA ID, passport) SCH:7289 Government identity numbers personal Never in graph Tier 2 definer-only.
person_address, person_contact SCH:7041, 7169; CTX:442 Addresses, phones, emails personal Never in graph
Bank, Bank Branch CTX:449, 454; SCH:3716, 3906 Reference data for payroll operational
bank_account SCH:3795 Banking and tax details personal Never in graph
Resident CTX:380 Person tied to a Stand (lives, owns, responsible) generic (role) Resident / occupant role Stakeholder aiao:Role of an agent re: a site (NCGS owner/steward/landowner pattern) Describes a relationship, not a kind of human.
Stand Relationship (person_stand_relationship) CTX:391; SCH:7645 resident, owner, head_of_household, responsible_party, other, with dates generic Site relationship (role at a site) Role assignment of an agent to a site, with validity Types ~ NCGS landowner/owner/steward. head_of_household is household-centric; standard may keep only owner/responsible/occupant. ?
Organization CTX:404; SCH:5925 Formal entity: Nova, municipality, funder, subcontractor, partner generic Organisation aiao:Agent (organisation) with role Not town-scoped; participation is an edge. Household is not an organisation.
Organization Town Relationship CTX:412; SCH:6130 Org to town edge (provider, municipality, funder, partner) generic Organisation participation in a service area Party-by-role in project design “Parties by role” is already a project-design section in NCGS.
Organization Relationship CTX:417; SCH:6015 Directed org to org (contracted by, funds, subcontracts) generic Organisation relationship Role-qualified relation between agents Keep generic, no contract terms.
Person Organization Relationship CTX:434; SCH:7393 Employee, municipal contact, subcontractor staff, partner rep personal/operational In graph only as agent holds role for an organisation Who the person is relative to an org; separate from Job Role. The edge itself is HR-ish; only the resulting role at the project goes in the graph.
Organization Scope / Resident Scope CTX:424, 429 Derived town visibility operational Access-control derivation; not standard.
Job Role (person_role) CTX:468; SCH:7507 Operational function: field_staff, waste_picker, supervisor, admin, other generic Operational role aiao:Role / observer role (NCGS ADR-0004) Observer roles grade evidence. Map field_staff to fieldworker, supervisor to supervisor, waste_picker to collector; admin is operational, not an observer role. Contact on role = personal.
Waste Picker CTX:121 Person performing the service: scans, collects, sorts; identified in legacy by SurveyCTO instance id (uuid: prefix) generic (as role) / personal (as person) Collector (role); the person is an agent Agent in collector role; observer in role for weighing/scan records The role is generic and carries evidence weight. The legacy id is a source identifier held in the register. CTX says avoid “collector”; the generalisation deliberately overrides that (informal-sector context specific to SA). Alternatives: “service operative”, “waste worker”.
User CTX:461; SCH:3644 App login account, distinct from Person operational Standard only needs agent IRIs; logins are resolved by exporters (NCGS ADR-0007).
Access Role, permission, role_permission, user_role, user_town CTX:475; SCH:8402, 6871, 8457, 9804, 9851 RBAC and town membership operational
app_credential, app_session, pii_read_log SCH:3534, 3581, 7767 Auth and PII audit operational
mail_list, mail_subscription, mail_delivery SCH:5563, 5603, 5482 Mailing lists operational

2. Identity rules found

Thing How novaWaste2 identifies it Refs Mapping to urn:uuid + bearers
Internal rows uuid surrogate uuidv7() default on every table; plus (source_system, source_dbname, source_id) provenance SCH (all tables); ADR-0012 note in column comment NCGS requires urn:uuid version 4 (ADR-0002 as glossed in CONTEXT “Identifier contract”); v7 is not v4. Open question 1.
Stand Surrogate uuid; label nova_stand_number unique within town; never a join key; legacy identity via migration_crosswalk (legacy tbl_stand_properties.id); canonical store is operational.stand (ADR-0024); promotion guard rejects UUID-shaped submission ids so an instance UUID never becomes a stand number CTX:20-31; ADR-0024; ADR-0026 Service point gets urn:uuid at enumeration (the moment it becomes distinguishable). Stand Number = label attribute. QR = bearer. Legacy ids = external identifiers. Live identity (where live numbers come from) is a recorded deferral in ADR-0024.
Stand to Submission link By Stand Reference only; resolved via stand_reference (one row per town, reference, candidate); only exactly one candidate counts; others to triage ADR-0026; SCH:9400 In the standard the record references the service point IRI directly (NCGS ADR-0022 capture shapes reference entities by IRI). Resolution table is migration scaffolding.
Person Surrogate uuid; “one human is one Person”; not town-scoped; legacy waste picker id = SurveyCTO instance id with uuid: prefix; gov ids (RSA ID national unique, passport unique within issuing country) on tier-2 table CTX:369; ADR-0014; ADR-0020; SCH:7289 Agent IRI minted for the graph, held against the person in the people register; ids/contacts never exported (NCGS ADR-0007). A QR attached to a person is a bearer of the agent identity; keep the code to person link in the register.
QR code code text globally unique (one print namespace); window [assigned_at, superseded_at); one active code per entity; no overlapping windows in history; exactly one of stand/bin/person/service_group per row CTX:133; SCH:8021 Tag as bearer (NCGS ADR-0002/0003): carries the token only, scan resolves time-aware to the entity valid at scan time. Standard needs the window rule (NCGS has none yet because trees keep one tag).
Bin uuid minted when an unknown bin QR first scanned; identity = its sticker SCH:4009 Lazy creation at first distinguishability; same as NCGS tree rule.
Block Immutable canonical id; number is a mutable town-scoped label; versions immutable; boundary fix = new version; split/merge = new ids plus lineage ADR-0022; SCH:4098, 4261, 4203 urn:uuid for zone, versions as records; lineage as derivation links.
Waste Site, Service Group uuid; site_code / group_code unique within scope; legacy provenance SCH:9938, 8504 urn:uuid plus code as notation.
Erf uuid; erf_ref normalised unique within town ADR-0021; SCH:4621 External register id as notation on a parcel entity.
Town uuid; town_code slug unique SCH:8984; ADR-0031 Service area IRI; slug as notation.
Submission Scoped key (source_system, server_id, town_id, form_id, submission_id); revisions by source_updated_at; variants by payload_hash; submission_id is the instance UUID, uuid: prefix normalised away in readers; town is part of the key (a change of town is a conflict) CTX:74; SC §4 (lines 204-1057); ADR-0016 (not adopted, SC governs); ADR-0031 Record IRI = deterministic UUIDv5 from instrument namespace + submission key (NCGS ADR-0002 reference exporter); re-export idempotent.
Form (source_system, server_id, form_id); versions immutable; generic town-agnostic forms carry town as a payload field CTX:69; ADR-0031 Instrument identity is provider-owned mapping, not graph identity.
Scheduled Evaluation One per (stand, date) issued in a run; never edited CTX:205 Planned record; supersede by new record.
Payment Statement Number <TOWN_CODE>-<year>-<NNNN>, gapless, canceled numbers burned CTX:310 Operational only.
Correction Append-only row, supersedes_id chain, addressed by (scoped submission key, payload_key) SCH:9581 Restatement node with deterministic IRI from submission id + edit instant (NCGS ADR-0025).

3. Correction / void / termination semantics

novaWaste2 Semantics NCGS/II restatement mapping Gap or tension
Correction (correction_kind='correction') Replaces one captured value (payload_key); append-only; attributed (corrected_by, supplier legacy or app); reason NOT NULL; applied in dbt below all marts; amended by supersession (supersedes_id) New record restates the original, with reason, observer and time; original stays; latest governing correction wins (ADR-0018/0025) (a) novaWaste2 corrects one field; NCGS restates a whole record. (b) NCGS places the correction in the original’s observation-time slot so an old fact corrected today is not a new event; novaWaste2 stores corrected_at as when the correction was made and applies it to the original submission, which by construction also leaves the value in the original week. Confirm that payment periods (frozen statements) never re-read a correction made after sign-off (see open Q5). (c) NCGS requires reason >= 20 chars; novaWaste2 only NOT NULL.
Field Void One value void, record stands Restatement that omits the value, with reason NCGS has no value-level void. ?
Submission Void Entire event never happened; app act or legacy is_valid=false; never inferred from absence Withdrawal of the record and what it introduced (ncgs:withdraws, withdrawn true), nothing deleted, record kept but not counted (ADR-0027 section 2) Only supervisor/office analyst may withdraw under NCGS; check app permission equivalent. Distinguish recording error (withdraw/replace) from a real new event (replanting analogue: new placement, not replace).
Supersession of a correction Amending closes the earlier correction; both remain Later governing correction; deterministic ordering on ties Equal.
Repair Superseding raw event when a live row carries another scan’s record Not a world claim; pipeline-layer Keep outside the standard.
Tombstone Source-absence marker; newer observation reinstates Not a claim Keep outside the standard.
Termination Append-only event; latest event of a Stand is its state; recorded by Person, supplier legacy or app Agreement act; status derived from acts (“status in force” at observed time) NCGS requires status read at the record’s time; novaWaste2 reads “latest”, while Eligible Stand and per-week status use dates. Standard should say eligibility is read at the service period.
Termination Reversal Termination was an error; enrolment counts again; restart needs a NEW signed enrolment Reversal is a restatement/withdrawal of the termination act; restart is a formal reinstatement-like act Same two-way split as NCGS (ADR-0018 vs reinstatement). Good alignment, worth stating explicitly.
Block version Boundary fix = new immutable version; schedule/collection facts snapshot Block Version, Service Group, Waste Site Versioned zone records, facts reference version in force Matches NCGS “point in force”.
Scheduled Evaluation Never edited; cancel or supersede Plan record superseded by new record Equal.
Recycler Payment / Statement Voided, never deleted; canceled statements free rows Operational Out of scope.

4. Open questions for the standards body

  1. Identity version: NCGS says urn:uuid v4; novaWaste2 keys are uuidv7(). Accept v7 (time-ordered) or mint separate v4 graph IRIs per entity? Same question for deterministic v5 record IRIs.
  2. Is the central unit a service point (stand) at a household/premises, with Site as supertype, or should it be a new class? How does it relate to the NCGS “site” and “household stand” site type?
  3. Bearer lifecycle: standardise the QR window rule (re-assignment, reuse of a printed code, one active code per entity, time-aware scan resolution) as a general “tag assignment” pattern across standards?
  4. A bearer attached to a person (picker QR) is linkable to an individual. Keep QR-to-person in the people register only, with the graph carrying agent IRI + role? Same for GPS routes.
  5. Corrections after payment sign-off: standard should say whether a restatement observed after a period is closed changes the closed period’s claims (NCGS: restatement occupies original slot) or is recognised as a later adjustment.
  6. Granularity of restatement: value-level (field void/correct) vs record-level (NCGS). Accept record-level only?
  7. Collector role naming: “collector” vs “waste picker” vs “service operative”; which observer roles grade evidence (collector, supervisor, evaluator, auditor)? Which are mandatory in a project design?
  8. Zone (Block) versioning and lineage: adopt as a general pattern for any zoned service area? Explicit-assignment-beats-geometry rule as a standard warning.
  9. Eligibility and occupancy: standard defines the pattern (derived, read at service period) and states, or just the state vocabulary? Which parts are project design?
  10. Parcel (Erf) alignment: optional link with append-only claim-set evidence, or leave wholly project-level?
  11. Termination vs reversal vs restart: adopt NCGS agreement-act pattern (withdrawn, reversal-by-restatement, formal reinstatement) verbatim for service agreements?
  12. Waste Site vs facility types: what is the facility type scheme (sorting, drop-off, landfill, recycler) and how do recycler/offtaker organisations attach as agents?
  13. Which payment-adjacent facts (weights sold, recycler offtake) are indicator evidence versus bounty/operations? Payments themselves are out; revenue amounts?
  14. Household counts: keep only counts, never household identity (matches NCGS ADR-0007)? Confirm.
  15. Route/trail: a standard concept at all, or a capture-channel detail kept in the ledger?
  16. Time zone and calendar conventions: ISO week, local midnight (Africa/Johannesburg in rates); fix the standard’s period calendar and timezone handling.

This page explains the standard and does not decide conformance: only the released corpus does. It describes docs/distillation/entities.md at standard version 0.1.0-dev.