Skip to main content

Data Model Reference

This page documents the JSON data model used for the Ministry Deep Dive analysis and how it maps to OpenGIN entity types.

File Structure

docs/src/data/
ministry-health-ecosystem.json # Ministry-level overview (18 acts)
health-services-act-analysis.json # Deep analysis of one act

ministry-health-ecosystem.json

Top-Level Schema

FieldTypeDescription
ministryobjectMinistry metadata (name, gazette reference, date, country)
domainCategoriesarrayDomain categories with id, label, and color
actsarrayAll acts under this ministry

Act Entity Schema

FieldTypeDescriptionOpenGIN Mapping
idstringUnique identifier (slug format)Entity ID
titlestringShort act titleEntity name
numberstringOfficial act/ordinance number
yearnumberYear of enactmentTemporal attribute
kind.majorstring"Legislation"Entity kind (major)
kind.minorstring"act" or "ordinance"Entity kind (minor)
statusstring"active" or "repealed"Entity status
analysisDepthstring"deep", "catalog", or "none"
pdfUrlstringURL to source documentExternal reference
domainCategorystringReferences a domainCategories[].id
summarystringBrief description of the act
crossReferencesstring[]IDs of related actsRelationship (outgoing)
amendmentsobject[]Amendment act numbers and yearsRelationship (incoming)

Domain Category Schema

FieldTypeDescription
idstringUnique identifier
labelstringDisplay name
colorstringHex color for UI presentation

health-services-act-analysis.json

Top-Level Schema

FieldTypeDescription
actobjectAct metadata (id, title, number, year, kind)
statutoryBodiesarrayBodies established by the act
amendmentsarrayAll amendments with section-level details
timelinearrayChronological events
governanceHierarchyobjectThree-tier hierarchy and current replacement
dataConfidenceobjectConfidence levels for different data categories

Statutory Body Schema

FieldTypeDescriptionOpenGIN Mapping
idstringUnique identifierEntity ID
namestringBody nameEntity name
kind.majorstring"Organisation"Entity kind (major)
kind.minorstring"statutory-body"Entity kind (minor)
sectionsstringAct sections that establish this body
currentStatusstring"legally-active" or "obsolete"Entity status
operationalStatusstring"unknown" or "superseded"
statusNotestringExplanation of current status
compositionobjectMembers, terms, rolesSub-entity relationship
meetingsobjectFrequency, quorum, reporting
powersstring[]Statutory functions
dataGapsstring[]Known missing information

Amendment Schema

FieldTypeDescription
idstringUnique identifier
actNumberstringAmendment act number
yearnumberYear of amendment
typestringCategory (Technical, Governance, Constitutional)
sectionsAmendedstring[]Sections changed
summarystringBrief description of changes
impactOnMeetingsstring"none" or "medium"
impactRatingstring"low" or "medium"
detailsstringFull amendment details

Timeline Entry Schema

FieldTypeDescription
yearnumberYear of event
eventstringShort event description
typestring"enactment", "amendment", or "devolution"
detailsstringExpanded description

OpenGIN Field Mapping

The data model aligns with OpenGIN's entity classification system:

OpenGIN ConceptJSON FieldValues Used
Entity IDidSlug-format strings
Entity Kind (major)kind.majorLegislation, Organisation
Entity Kind (minor)kind.minoract, ordinance, statutory-body
Temporal AttributeyearInteger year
RelationshipcrossReferences, amendmentsArray of entity IDs
Statusstatus, currentStatusactive, legally-active, obsolete

Extending to Other Ministries

The data model is ministry-agnostic. To add another ministry:

  1. Create a new ministry-<name>-ecosystem.json with the same schema
  2. Populate domainCategories relevant to that ministry
  3. Add acts with appropriate kind classifications
  4. For deep dives, create <act-name>-analysis.json following the same structure
  5. Components will render the data without modification