PublicSchema

Government systems keep records about the same people, places, organizations, and assets. PublicSchema gives them a shared language: agreed definitions for concepts, fields, and value codes, from civil registration and social protection to land, agriculture, and tax. Start here; adapt and extend for your country's context.

One shared core, many sectors

What every sector shares (people, groups, organizations, places, identifiers, registrations, payments) is defined once in a shared core. Sector domains build on it for the records each ministry keeps. New domains are published as drafts so they can be reviewed early; the badges show how settled each one is.

Shared core

81

Concepts used across sectors: people and groups, organizations, locations, identifiers, registrations, documents and payments.

8 Normative10 Candidate63 Draft

Social protection

7

Benefit programmes, eligibility, enrollment, entitlements, referrals and grievance redress.

3 Candidate4 Draft

Civil registration

16

Civil registration of vital events and the associated roles and records.

6 Candidate10 Draft

Agriculture

22

Agricultural and fisheries production, holdings, cultivation and production-specific roles, facilities, inputs and assertions.

22 Draft

Land administration

4

Land administration, spatial/property units, tenure and boundary assertions.

4 Draft

Environment

2

Environmentally regulated facilities and their activities, and water-use authorizations.

2 Draft

Transport

2

Road vehicles, driving entitlements and vessel attributes.

2 Draft

Education

5

Education provision, programmes, delivery sites and educational facility types.

5 Draft

Health

1

Healthcare facility discovery and integration with selected external FHIR resources/profiles; no replacement medical ontology.

1 Draft

Tax administration

1

Registration of persons and organizations with tax authorities, by tax type.

1 Draft

Elections

1

Voter registration, electoral districts and polling stations.

1 Draft

Metrics

11

Computable aggregate indicators with declarative calculations, dimensions and external alignments.

11 Candidate

Why a shared vocabulary matters

A government wants to know whether the child enrolling in school is the same child registered at birth and the same child seen in the immunization roster. The civil registry has the authoritative record. The hospital recorded the delivery. The school admits a child whose age is estimated because no certificate was presented. The three records describe the same person, but their fields and values do not align, so reconciliation requires manual work that takes weeks and introduces errors.

System Field name Values
Hospital information system delivery_record Date and time of delivery, sex assigned, mother's hospital MRN
Civil registry birth_record Exact date, full legal name, parents' national identifiers, place of birth
School enrolment pupil_record Estimated age in years

Same person, three systems, three different models of who they are and when they were born.

The same happens beyond people. A plot of land appears in the cadastre, the farm register, and an irrigation scheme's list of water users, each with its own identifier and its own idea of the plot's area. A company is one record at the business registry, another at the tax authority, and a third in the environmental permit file.

This is the coordination tax: every time two systems need to share data, someone spends weeks mapping fields and translating codes. It is expensive, fragile, and starts over every time a system upgrades.

These aren't problems you solve with a lookup table. You cannot recover an exact date of birth from an estimated age, and the identifiers used by each system point to nothing the others can verify. Meanwhile, one system describes the family unit by hospital admission, another by parental link in a register, and a third not at all. The concepts themselves don't align. Shared definitions don't just save time; they make accurate exchange possible in the first place.

Without shared definitions Custom mapping per pair.
With shared definitions Each system maps once to the shared vocabulary

PublicSchema does not prescribe which representation is correct. It gives you a common reference point so you can see the differences, decide what fits your context, and extend it where your context needs more. Adopt the parts that work; leave the rest.

What the schema contains

PublicSchema is a shared set of definitions. When one system says "Person", "Farm", or "Registration", another system reading the same schema knows exactly what is meant, not just what fields to expect.

01

Shared meaning, not shared software

Definitions for what the words mean. Your systems stay yours.

02

Use what fits

Everything is optional. Adopt the parts you need, extend the rest.

03

Built on what already exists

International standards (ISO, UN, FAO, FHIR, SEMIC) reused wherever they cover the ground.

04

Citable, permanently

Every definition has a stable web address that can be referenced or carried in a digital credential.

Concepts and properties

153 concepts, 688 properties

Entities like Person, Organization, Registration, and Farm get clear definitions written for the people who run programs and registries. Each concept carries named, typed properties (given_name, date_of_birth, registration_date) defined once and reused across concepts.

Aligned with OpenSPP · OpenCRVS · openIMIS · DHIS2 · FHIR · SEMIC

Vocabularies

141 vocabularies

Controlled value sets for fields like gender, country, occupation, land tenure, and organization type. Where international standards exist (ISO, FAO, FHIR), we reference them. Where they don't, we define a common set based on observed convergence across systems.

Based on ISO · ILO · UN M49 · UNESCO · FAO · FHIR

How it relates to other standards

PublicSchema sits alongside the standards you already use. It does not replace them; it gives them a common semantic reference point.

Exchange standards such as the Digital Convergence Initiative (DCI) and GovStack define how data moves between systems: API contracts, transport protocols, building blocks. PublicSchema defines what the data means: what counts as an enrollment, a registration, or a farm, and which values are valid for a status or a tenure type. DCI can carry the record; PublicSchema says what its fields mean.

Sector standards such as HL7 FHIR for health, ISO 19152 (LADM) for land administration, and the FAO World Programme for the Census of Agriculture go deep in one field. PublicSchema reuses them where they cover the ground and connects them through a shared core, so a health facility, a school, and a land parcel use the same building blocks for location, identifiers, and registration.

Semantic vocabularies such as the EU SEMIC Core Vocabularies (Core Person, Core Business, Core Location) share the same goal. PublicSchema maps to them and extends the approach into sector registries and service delivery, which they do not cover. More on related standards.

Grounded in evidence

PublicSchema is grounded in a comparative analysis of real-world systems and standards: social protection (OpenSPP, openIMIS), civil registration (OpenCRVS), health (DHIS2, FHIR), household surveys (DHS, MICS, LSMS-ISA, Washington Group), humanitarian boundaries (OCHA COD-AB), payments and exchange (DCI, GovStack), and the EU Core Vocabularies (SEMIC). Where international standards (ISO for gender, countries, currencies) cover the ground, we reference them. Where they don't, we define a common set based on how these systems actually work.

See how systems compare

Where to start

“I coordinate or compare services across agencies, sectors, or countries”

You need consolidated numbers, deduplicated lists of people, farms, or businesses, referral pathways between services, or indicators that mean the same thing everywhere. PublicSchema gives you shared definitions so data from different sources can be linked and compared.

“I build or maintain integrations between systems”

You need shared field names and value codes so systems can exchange data without custom translation layers. Map your system once; every other mapped system becomes interoperable.

“I’m designing a new system or writing its requirements”

You need concrete interoperability specifications for your RFP, not “the system must be interoperable.” Reference PublicSchema properties and vocabulary codes so vendors have a testable target. Where your country needs more (local tenure types, benefit categories, legacy identifiers), extend PublicSchema in your own namespace; interoperability is preserved.

“I run a sector registry”

You keep the register of farms, land parcels, vehicles, taxpayers, or voters, and other agencies need to link to it. Build on the shared core for people, organizations, locations, and identifiers so your records line up with theirs, and use your sector domain for what is specific to you.

PublicSchema is maintained as an open project. Source on GitHub About the project