Core profile

The basic building blocks every other profile depends on: jurisdictions, organizations, people, and the roles people hold.

Schemas: 9

Code lists: 3

Standards: schema.org, Popolo, W3C ORG

Boundary boundary link

The extent of a governed area over a period of time.

FieldTypeDefinitionRequired
@id string This boundary's own dereferenceable identifier. Yes
@type "Boundary" Always Boundary - a separate, citable entity rather than a field on the jurisdiction, because boundaries change and the change matters: wards are redrawn, municipalities annex and merge, electoral districts are reapportioned. A 2022 contest was fought on the 2022 boundary, and a budget line or permit attributed to an area is anchored to the boundary in force at the time. Attaching a single current geometry to a Jurisdiction silently rewrites history. Yes
name string A human-readable label for this boundary, e.g. 'Ward 3 (2022)'. No
boundaryOf Reference The Jurisdiction this is the extent of. Yes
geometry Geometry The Geometry describing this boundary's shape. Yes
validFrom string When this extent took effect. Yes
validUntil string When it ceased to apply. Absent means current. A superseded boundary is retained, not deleted - it is what historical records were drawn against. No
authoritative boolean Whether this is the legally definitive extent, as opposed to a published rendering of it. No
supersedes Reference The Boundary this replaced. No
identifier Identifier[] Any scheme-qualified identifiers for this boundary beyond its @id. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/boundary/example-city/current",
  "@type": "Boundary",
  "name": "Example City municipal boundary, from 2018",
  "boundaryOf": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "validFrom": "2018-07-01",
  "authoritative": true,
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "gs:local",
      "value": "city-2018"
    }
  ],
  "geometry": {
    "@type": "Geometry",
    "geometryType": "MultiPolygon",
    "contentUrl": "https://example-city.gov/geo/city-boundary-2018.geojson",
    "encodingFormat": "application/geo+json",
    "sourceReferenceSystem": "epsg:2229",
    "simplified": false,
    "vertexCount": 4812
  }
}
Download JSON

Facility facility link

A physical place operated by government: a city hall, chamber, courthouse, depot, library.

FieldTypeDefinitionRequired
@id string This facility's own dereferenceable identifier. Yes
@type "GovernmentBuilding" | "CityHall" | "LegislativeBuilding" | "Courthouse" | "Embassy" | "DefenceEstablishment" | "CivicStructure" | "EventVenue" | "Place" A Facility is a Place and nothing else - it is neither the territory (Jurisdiction) nor the body (GovernmentOrganization). The occupying organization points here with schema:location; meetings point here with schema:location too, which is why this belongs in _core rather than in the meetings profile. Types listed here are cleanly Place-only: avoid GovernmentOffice, PoliceStation, FireStation, and Library, each of which is dual-typed as Organization and Place through LocalBusiness, collapsing the distinction this profile depends on. Use GovernmentBuilding for those buildings instead. Yes
name string The facility's public name, e.g. 'City Hall'. Yes
alternateName string[] Other names this facility is known by. No
description string A plain-language description of the facility. No
url string Where more information about this facility can be found. No
identifier Identifier[] Any scheme-qualified identifiers for this facility beyond its @id. No
address object schema.org PostalAddress. No
geo object schema.org GeoCoordinates or GeoShape. No
containedInPlace Reference The Jurisdiction this facility sits in. Lets a facility be located without duplicating the territorial hierarchy. No
openingHoursSpecification object[] schema.org OpeningHoursSpecification. Note that schema:publicAccess is a Boolean on Place, not an hours structure - a common mistake. No
publicAccess boolean Whether the public may enter. Boolean, per schema.org. No
isAccessibleForFree boolean Whether visiting this facility costs nothing. No
maximumAttendeeCapacity integer Useful for chambers hosting public meetings. No
hasMap string A URL to a map of this facility. No
photo string A photo of this facility. No
branchCode string The facility's internal branch or location code, when the organization uses one. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/facility/city-hall",
  "@type": "CityHall",
  "name": "Example City Hall",
  "url": "https://example-city.gov/city-hall",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "gs:local",
      "value": "city-hall"
    }
  ],
  "containedInPlace": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 City Hall Drive",
    "addressLocality": "Example City",
    "addressRegion": "CA",
    "postalCode": "90210",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 34.0522,
    "longitude": -118.2437
  },
  "publicAccess": true,
  "isAccessibleForFree": true,
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "08:00",
      "closes": "17:00"
    }
  ]
}
Download JSON

Geometry geometry link

A shape on the earth, held either by reference or inline.

FieldTypeDefinitionRequired
@type "Geometry" Always Geometry - a value type rather than an entity, like Identifier and MonetaryAmount. schema:GeoShape cannot do this job: its polygon is a space-delimited text string with no coordinate reference system, no multipolygon and no interior rings, and schema.org's own GeospatialGeometry is a declared placeholder that was never filled in. Exactly one of contentUrl or coordinates must be present. Yes
geometryType "Point" | "LineString" | "Polygon" | "MultiPoint" | "MultiLineString" | "MultiPolygon" | "GeometryCollection" GeoJSON geometry type. MultiPolygon is the common case for real administrative areas, which have islands and exclaves. Yes
contentUrl string URL of a GeoJSON resource. The default for anything shared, authoritative or large: a jurisdiction boundary is referenced by every record in that jurisdiction, and duplicating it into each is the drift SPEC section 1.2 exists to prevent. No
coordinates array Inline GeoJSON coordinates. Permitted for geometry that is specific to one record and small - an alert polygon, a parcel outline - because real standards inline it and a profile that forbade it could not describe CAP. The validator warns above a vertex threshold rather than failing, since that is a publishing judgement rather than a correctness error. No
encodingFormat string Usually application/geo+json. No
sourceReferenceSystem string The CRS the publisher's authoritative source is held in, as an OGC CRS URI or 'epsg:NNNN' shorthand. This is provenance, not a claim about the coordinates here: GeoJSON mandates WGS84 longitude/latitude and forbids alternatives, so referenced and inline GeoJSON are always CRS84. Recording it matters because national-grid coordinates read as WGS84 land in the wrong hemisphere. No
simplified boolean Whether this is a generalised rendering for display. A simplified boundary is not the legal boundary, and using one to decide whether an address falls inside a district gives wrong answers at the edges. A consumer needs to know which it has. No
vertexCount integer Approximate vertex count, where the publisher knows it. No
Download JSON

Identifier identifier link

A scheme-qualified identifier.

Standards: Open Contracting Data Standard, Wikidata QID, Open Civic Data

FieldTypeDefinitionRequired
@type "PropertyValue" Always PropertyValue, where propertyID names the scheme and value carries the code. This is the mechanism that makes the model work internationally: no national identifier system is privileged, and an entity may carry as many as it has. The same pattern is used by OCDS for organization identifiers. Yes
propertyID string The identifier scheme. Use a registered token below, an 'org-id:<prefix>' token from the org-id.guide register, 'local:<scheme>' for a publisher's own internal register (distinct from org-id: so that provenance is never overstated), or an absolute IRI. Yes
value string The identifier's actual code or value. Yes
name string Human-readable name of the scheme. No
Download JSON

Jurisdiction jurisdiction link

A governed territory: a country, region, municipality, or special-purpose area.

Standards: Wikidata QID

FieldTypeDefinitionRequired
@id string This jurisdiction's own dereferenceable identifier. Yes
@type "AdministrativeArea" | "Country" | "State" | "City" A Jurisdiction is a Place. It has no employees, departments, or legislation - those belong to the Organization that governs it, which points here with areaServed. Keeping these two apart is the central rule of this profile. Use the most specific schema.org type below that applies. Yes
name string The jurisdiction's official name. Yes
alternateName string[] Endonyms, historical names, and the local-language term for the tier (e.g. 'Comune di Bologna'). No
description string A plain-language description of the jurisdiction. No
url string Where more information about this jurisdiction can be found. No
identifier Identifier[] At least one. A Wikidata QID is strongly recommended as the cross-border join key. Yes
sameAs string[] Links to authoritative external records for this jurisdiction, e.g. its Wikidata entry. No
governmentLevel string termCode from the GovernmentLevel code list. Yes
containedInPlace Reference The next jurisdiction up. Chaining these yields the full territorial hierarchy without any country-specific nesting rules. No
containsPlace Reference[] Jurisdictions directly contained within this one. No
geo object schema.org GeoCoordinates or GeoShape. No
population object A QuantitativeValue, so the count keeps its observation date and source. No
timeZone string IANA time zone, e.g. 'Europe/Lisbon'. No
jurisdictionOf Reference[] GovernmentOrganizations governing this area. Convenience inverse of Organization.areaServed. No
boundary Reference[] References to Boundary entities for this area, including superseded ones. Separate entities rather than inline geometry so that a historical extent can be cited: an electoral district boundary is exactly what gets cited in a dispute, and a citation needs something to point at. No
{
  "@id": "https://example-city.gov/id/jurisdiction/us",
  "@type": "Country",
  "name": "United States of America",
  "governmentLevel": "national",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "iso3166-1-alpha2",
      "value": "US"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "iso3166-1-alpha3",
      "value": "USA"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "wikidata",
      "value": "Q30"
    }
  ]
}
Download JSON

GovernmentOrganization organization link

A body that exercises public authority: a government, a department, a council, a committee, an agency.

Standards: W3C ORG, Popolo

FieldTypeDefinitionRequired
@id string This organization's own dereferenceable identifier. Yes
@type "GovernmentOrganization" Always GovernmentOrganization. This is where people, budgets, decisions, and legislation attach. It points at the territory it governs with areaServed; it is not itself a place. Yes
name string The organization's official name. Yes
alternateName string[] Other names this organization is known by. No
description string A plain-language description of the organization. No
url string Where more information about this organization can be found. No
identifier Identifier[] At least one scheme-qualified identifier for this organization. Yes
sameAs string[] Links to authoritative external records for this organization. No
organizationClassification string termCode from the OrganizationClassification code list. Yes
governmentLevel string termCode from the GovernmentLevel code list. No
areaServed Reference The Jurisdiction this body governs. Optional at Core conformance, because an organization referenced from another profile (a buyer in a procurement record, an issuing body on a permit) is legitimately known by identity without its territory being restated. Required at Standard conformance for organizations a publisher describes in their own org chart. No
parentOrganization Reference The body this organization reports to or operates under. No
subOrganization Reference[] Bodies constituted under this one, including committees and commissions. No
department Reference[] Operating units. Use subOrganization for bodies with their own constitution, department for units of this body's administration. No
member OrganizationRole[] Officeholders, as Roles. A bare Person here loses the term of office, so always wrap in a Role. No
contactPoint object[] Ways to contact this organization. No
address object schema.org PostalAddress. No
location Reference The Facility this body occupies. The organization points at the place; the place never points back with an organization property. No
foundingDate string When this organization was established. No
dissolutionDate string Present means the body no longer exists. Records are retained rather than deleted, so historical documents keep resolving. No
knowsLanguage string[] BCP 47 tags for the languages this body conducts business in. Consumers use this to pick among multilingual name and document variants. No
timeZone string IANA time zone this organization operates in, e.g. Europe/Lisbon. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/organization/city-government",
  "@type": "GovernmentOrganization",
  "name": "Example City Government",
  "organizationClassification": "executive",
  "governmentLevel": "municipal",
  "url": "https://example-city.gov",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "gs:local",
      "value": "city-government"
    }
  ],
  "areaServed": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "foundingDate": "1950-03-15",
  "knowsLanguage": [
    "en-US",
    "es-US"
  ],
  "timeZone": "America/Los_Angeles",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 City Hall Drive",
    "addressLocality": "Example City",
    "addressRegion": "CA",
    "postalCode": "90210",
    "addressCountry": "US"
  },
  "subOrganization": [
    {
      "@id": "https://example-city.gov/id/organization/city-council",
      "name": "Example City Council"
    }
  ],
  "department": [
    {
      "@id": "https://example-city.gov/id/organization/public-works",
      "name": "Public Works Department"
    }
  ],
  "member": [
    {
      "@type": "OrganizationRole",
      "@id": "https://example-city.gov/id/role/mayor-2023",
      "roleName": "Mayor",
      "startDate": "2023-01-01",
      "member": {
        "@id": "https://example-city.gov/id/person/jane-smith",
        "name": "Jane Smith"
      },
      "post": {
        "@id": "https://example-city.gov/id/post/mayor"
      }
    },
    {
      "@type": "EmployeeRole",
      "@id": "https://example-city.gov/id/role/city-manager-2021",
      "roleName": "City Manager",
      "startDate": "2021-06-14",
      "member": {
        "@id": "https://example-city.gov/id/person/john-doe",
        "name": "John Doe"
      },
      "post": {
        "@id": "https://example-city.gov/id/post/city-manager"
      }
    },
    {
      "@type": "OrganizationRole",
      "@id": "https://example-city.gov/id/role/mayor-2019",
      "roleName": "Mayor",
      "startDate": "2019-01-01",
      "endDate": "2022-12-31",
      "post": {
        "@id": "https://example-city.gov/id/post/mayor"
      },
      "member": {
        "@id": "https://example-city.gov/id/person/alan-reyes",
        "name": "Alan Reyes"
      }
    }
  ],
  "location": {
    "@id": "https://example-city.gov/id/facility/city-hall",
    "name": "Example City Hall"
  }
}
Download JSON

Person person link

A human being who holds or held a public role.

Standards: Popolo

FieldTypeDefinitionRequired
@id string This person's own dereferenceable identifier. Yes
@type "Person" Always Person. A Person record carries identity only - never the office, the term, or the body. Those live on the Role, so that one person can hold several offices over time without duplicate Person records. Yes
name string Full name as the person presents it. Yes
givenName string Given (first) name, where the naming culture decomposes this way. No
familyName string Family (last) name, where the naming culture decomposes this way. No
additionalName string A middle name or patronymic, where applicable. No
honorificPrefix string A title preceding the name, e.g. 'Dr.', 'The Honorable'. No
honorificSuffix string A title following the name, e.g. 'Jr.', 'Esq.'. No
alternateName string[] Transliterations and other-script forms. Do not assume given/family decomposition applies to every naming culture; name is the authoritative field and the decomposed parts are optional. No
identifier Identifier[] Any scheme-qualified identifiers for this person beyond their @id. No
sameAs string[] Links to authoritative external records for this person. No
image string A photo of this person. No
url string This person's official page, when one exists. No
email string Official contact only. Do not publish personal contact details. No
telephone string Official contact only. No
knowsLanguage string[] Languages this person conducts official business in. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/person/jane-smith",
  "@type": "Person",
  "name": "Jane Smith",
  "givenName": "Jane",
  "familyName": "Smith",
  "email": "mayor@example-city.gov",
  "identifier": [
    {
      "@type": "PropertyValue",
      "propertyID": "gs:local",
      "value": "jane-smith"
    }
  ]
}
Download JSON

Reference reference link

A pointer to another entity. Cross-domain links MUST be references, never inlined copies of the target entity. The optional @type and name are display hints for consumers that will not dereference; they are not authoritative and MUST NOT be relied on.

FieldTypeDefinitionRequired
@id string Absolute IRI of the referenced entity. Yes
@type string The referenced entity's type, as a display hint. No
name string The referenced entity's name, as a display hint. No
Download JSON

OrganizationRole role link

One person holding one office in one body for one span of time - the equivalent of a Popolo Membership.

Standards: Popolo

FieldTypeDefinitionRequired
@id string This role's own dereferenceable identifier. No
@type "OrganizationRole" | "EmployeeRole" | "Role" Always OrganizationRole (or the EmployeeRole/Role schema.org supertypes, where more specific). This is the join between Person and Organization, and the reason the model can answer 'who was mayor in 2019' rather than only 'who is mayor'. Follows the schema.org Role idiom: the Role sits in the property slot, and the property name repeats inside it to carry the actual value. Yes
roleName string Title of the office as the body names it locally, e.g. 'Alcalde', 'Ratsvorsitzende', 'Chair'. Yes
member Reference The Person holding the office. Repeating the outer property name here is the schema.org Role idiom, not a mistake. Yes
memberOf Reference The Organization, when the Role is published standalone rather than nested under one. No
post Reference The Post this tenure fills, when the org profile is in use. Grouping Roles by Post is what turns a list of officeholders into a succession. No
startDate string When this tenure began. No
endDate string Absent means the role is current. No
identifier Identifier[] Any scheme-qualified identifiers for this role beyond its @id. No
representsJurisdiction Reference For seats tied to a district or ward rather than the whole area - a Jurisdiction of level submunicipal or subregional. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@type": "OrganizationRole",
  "@id": "https://example-city.gov/id/role/mayor-2023",
  "roleName": "Mayor",
  "startDate": "2023-01-01",
  "member": {
    "@id": "https://example-city.gov/id/person/jane-smith",
    "name": "Jane Smith"
  },
  "post": {
    "@id": "https://example-city.gov/id/post/mayor"
  }
}
Download JSON