OPDA Knowledge base
Physical — relational Module: claim

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

TableRealisesKindNotes
claimClaimentityidentity = digest; FK → verification_activity
claim_evidencesupportedBy / wasDerivedFrom M:Njunctionclaim × evidence
claim_assurance_levelassuranceLevel M:Njunctionclaim × assurance_level_scheme
evidenceEvidenceCTI basedigest; subtype CHECK (sh:xone)
document_evidenceDocumentEvidenceCTI childPK = FK → evidence
electronic_record_evidenceElectronicRecordEvidenceCTI childPK = FK → evidence
vouch_evidenceVouchEvidenceCTI childadds attested_by_person_id (1..1)
verification_activityVerificationActivityeventself-FK was_informed_by_id; FK → trust_framework
trust_frameworkTrustFrameworkentityidentity = 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

LookupBound byMembers
assurance_level_schemeclaim_assurance_level.assurance_level_notation4
evidence_methodaligns subtypes via skos:exactMatch3

Mapping notes

  • Evidence is content-addressable. Both claim and evidence are keyed on digest, not an auto-increment id — identical content must not exist as two rows.
  • Class-table inheritance with sh:xone. The evidence.subtype discriminator plus one child table per subtype realises “exactly one subtype”. Only vouch_evidence adds a mandatory facet (attested_by_person_id, 1..1).
  • Aliases are views, not tables. Document, ElectronicRecord, and Vouch are the same OWL identity as the *_evidence long names.
  • Re-verification is a self-chain. verification_activity.was_informed_by_id references the prior activity (prov:wasInformedBy); the claim’s verification_activity_id realises prov:wasGeneratedBy. (person lives in the agent module.)

Cross-tier

Logical tier: claim module.

Comments

Loading comments…