Claim module — relational schema
Verifiable claims are content-addressable (digest) and supported by evidence. Evidence uses class-table inheritance: a base evidence table with a subtype discriminator and three subtype child tables. verification_activity records the PROV-O activity that generates a claim.
Tables
| Table | Realises | Kind | Notes |
|---|---|---|---|
claim | Claim | entity | identity = digest; FK → verification_activity |
claim_evidence | supportedBy / wasDerivedFrom M:N | junction | claim × evidence |
claim_assurance_level | assuranceLevel M:N | junction | claim × assurance_level_scheme |
evidence | Evidence | CTI base | digest; subtype CHECK (sh:xone) |
document_evidence | DocumentEvidence | CTI child | PK = FK → evidence |
electronic_record_evidence | ElectronicRecordEvidence | CTI child | PK = FK → evidence |
vouch_evidence | VouchEvidence | CTI child | adds attested_by_person_id (1..1) |
verification_activity | VerificationActivity | event | self-FK was_informed_by_id; FK → trust_framework |
trust_framework | TrustFramework | entity | identity = framework URI |
The three owl:equivalentClass aliases — Document, ElectronicRecord, Vouch — are views over the corresponding *_evidence tables, not separate tables. AssuranceLevel (a Quale-in-Region) is the assurance_level_scheme lookup, referenced through claim_assurance_level, not its own entity table.
Entity-relationship diagram
erDiagram
accTitle: Claim module — entity-relationship diagram
accDescr: claim supported by evidence and bound to assurance levels via junctions; evidence as a class-table-inheritance base with document, electronic-record and vouch subtype tables; verification_activity with a self re-verification chain and conformance to a trust framework.
claim {
uuid claim_id PK
text uri UK
text digest
uuid verification_activity_id FK
}
claim_evidence {
uuid claim_id PK,FK
uuid evidence_id PK,FK
}
claim_assurance_level {
uuid claim_id PK,FK
text assurance_level_notation PK,FK
}
evidence {
uuid evidence_id PK
text uri UK
text digest
text subtype
}
document_evidence {
uuid evidence_id PK,FK
}
electronic_record_evidence {
uuid evidence_id PK,FK
}
vouch_evidence {
uuid evidence_id PK,FK
uuid attested_by_person_id FK
}
verification_activity {
uuid verification_activity_id PK
text uri UK
uuid conforms_to_trust_framework_id FK
uuid was_informed_by_id FK
timestamptz ended_at_time
}
trust_framework {
uuid trust_framework_id PK
text uri UK
}
claim ||--o{ claim_evidence : "supported by"
evidence ||--o{ claim_evidence : "supports"
claim ||--o{ claim_assurance_level : "assurance level"
claim }o--o| verification_activity : "generated by"
evidence ||--o| document_evidence : "subtype"
evidence ||--o| electronic_record_evidence : "subtype"
evidence ||--o| vouch_evidence : "subtype"
vouch_evidence }o--|| person : "attested by"
verification_activity }o--o| trust_framework : "conforms to"
verification_activity ||--o{ verification_activity : "was informed by"
Lookup tables
| Lookup | Bound by | Members |
|---|---|---|
assurance_level_scheme | claim_assurance_level.assurance_level_notation | 4 |
evidence_method | aligns subtypes via skos:exactMatch | 3 |
Mapping notes
- Evidence is content-addressable. Both
claimandevidenceare keyed ondigest, not an auto-increment id — identical content must not exist as two rows. - Class-table inheritance with
sh:xone. Theevidence.subtypediscriminator plus one child table per subtype realises “exactly one subtype”. Onlyvouch_evidenceadds a mandatory facet (attested_by_person_id,1..1). - Aliases are views, not tables.
Document,ElectronicRecord, andVouchare the same OWL identity as the*_evidencelong names. - Re-verification is a self-chain.
verification_activity.was_informed_by_idreferences the prior activity (prov:wasInformedBy); the claim’sverification_activity_idrealisesprov:wasGeneratedBy. (personlives in the agent module.)
Cross-tier
Logical tier: claim module.
Comments