Discovery and data catalogue profile
How a government lists its published datasets so people and search engines can find them.
Schemas: 3
Code lists: 2
Standards: schema.org, DCAT / DCAT-AP
Catalog
A catalogue of a government's published datasets, aligned with DCAT and expressed as a schema.org DataCatalog. DCAT is the international standard here (DCAT-AP in the EU, DCAT-US in the States, and the basis of most national open-data portals), and schema.org DataCatalog is what Google Dataset Search consumes - so this projection has an immediate real consumer rather than a hypothetical one.
Standards: DCAT / DCAT-AP
| Field | Type | Definition | Required |
|---|---|---|---|
@id |
string |
This catalogue's own dereferenceable identifier. | Yes |
@type |
"DataCatalog" |
Always DataCatalog, a real schema.org type. |
Yes |
name |
string |
The catalogue's title. | Yes |
description |
string |
A plain-language description of what this catalogue covers. | No |
url |
string |
Where this catalogue's canonical human-readable page lives. | No |
identifier |
Identifier[] |
Any scheme-qualified identifiers for this catalogue beyond its @id. |
No |
publisher |
Reference |
The GovernmentOrganization publishing this catalogue. |
Yes |
about |
Reference |
The Jurisdiction covered. | No |
dataset |
Reference[] |
The Datasets listed in this catalogue. |
No |
license |
string |
The default licence for datasets in this catalogue, where one applies to all of them. | No |
inLanguage |
string[] |
The language(s) this catalogue is published in. | No |
dateModified |
string |
When this catalogue last changed. | No |
contactPoint |
object |
How to reach the publisher with questions about this catalogue. | No |
{
"@id": "https://example-city.gov/id/catalog/open-data",
"@type": "DataCatalog",
"name": "Example City open data catalogue",
"description": "Datasets published by Example City, including its schemaGov profiles.",
"url": "https://example-city.gov/data",
"publisher": {
"@id": "https://example-city.gov/id/organization/city-government",
"name": "Example City Government"
},
"about": {
"@id": "https://example-city.gov/id/jurisdiction/example-city",
"name": "Example City"
},
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"inLanguage": [
"en-US"
],
"dateModified": "2025-09-06",
"dataset": [
{
"@id": "https://example-city.gov/id/dataset/budget-fy2026"
},
{
"@id": "https://example-city.gov/id/dataset/service-requests"
},
{
"@id": "https://example-city.gov/id/dataset/council-meetings"
},
{
"@id": "https://example-city.gov/id/dataset/tree-inventory"
}
]
}
Dataset
One published dataset, aligned with DCAT and expressed as a schema.org Dataset. Every schemaGov profile a publisher serves should also appear here as a dataset, so that a consumer arriving through an open-data portal finds the structured data rather than only a CSV of it.
Standards: DCAT / DCAT-AP
| Field | Type | Definition | Required |
|---|---|---|---|
@id |
string |
This dataset's own dereferenceable identifier. | Yes |
@type |
"Dataset" |
Always Dataset, a real schema.org type. |
Yes |
name |
string |
The dataset's title. | Yes |
description |
string |
A plain-language description of what this dataset contains. | No |
url |
string |
Where this dataset's canonical human-readable page lives. | No |
identifier |
Identifier[] |
Any scheme-qualified identifiers for this dataset beyond its @id. |
No |
publisher |
Reference |
The GovernmentOrganization publishing this dataset. |
Yes |
creator |
Reference |
Who produced the data, when different from the publisher. | No |
includedInDataCatalog |
Reference |
The Catalog this dataset is listed in. |
No |
keywords |
string[] |
Search terms someone looking for this dataset might use. | No |
dataTheme |
string[] |
termCode(s) from the DataTheme code list, aligned with the EU data-theme vocabulary that DCAT-AP uses. | No |
updateFrequency |
string |
How often this is refreshed, as an ISO 8601 duration (P1D, P1M) or 'continuous' or 'irregular'. DCAT dct:accrualPeriodicity. A dataset with no stated cadence cannot be told apart from an abandoned one. | No |
accessRights |
string |
DCAT dct:accessRights. 'restricted' means the metadata is public but the data is not. | No |
spatialCoverage |
Reference |
The Jurisdiction or area this dataset covers. |
No |
temporalCoverage |
string |
ISO 8601 interval, e.g. 2020-01-01/2025-12-31. | No |
datePublished |
string |
When this dataset was first published. | No |
dateModified |
string |
When this dataset last changed. | No |
license |
string |
The licence this dataset is published under. | No |
inLanguage |
string[] |
The language(s) this dataset is published in. | No |
conformsToProfile |
"core" | "org" | "code" | "meetings" | "requests" | "budget" | "procurement" | "catalog" | "alerts" |
The schemaGov profile this dataset serves, where it serves one. This is what links an open-data catalogue entry to structured schemaGov data. | No |
distribution |
object[] |
The actual files or endpoints. A dataset with no distribution is an announcement, not data. | Yes |
conformsTo |
string[] |
External standards this dataset follows, e.g. an Akoma Ntoso or OpenAPI version. DCAT dct:conformsTo. Distinct from conformanceLevel. | No |
applicableLegislation |
string[] |
Legislation mandating or governing this dataset, typically an ELI URI. Observed on EU portals under the Open Data Directive; a direct join from catalog to the code profile. | No |
hvdCategory |
string |
EU High Value Dataset category URI. A legal classification under the Open Data Directive, not a subject theme. | No |
highValueDataset |
boolean |
Whether this dataset is designated a High Value Dataset under the EU Open Data Directive. See hvdCategory for which category. |
No |
spatialReferenceSystem |
string |
EPSG code of the dataset's coordinate reference system, e.g. 'epsg:2157'. GeoJSON mandates WGS84 but national grids are in daily use, so an international profile cannot assume it. | No |
provenanceStatement |
string |
A plain-language note on where the data comes from and how it's produced, where that isn't obvious from the publisher alone. | No |
{
"@id": "https://example-city.gov/id/dataset/budget-fy2026",
"@type": "Dataset",
"name": "FY2026 approved budget",
"description": "Adopted operating budget for fiscal year 2026, classified by COFOG and GFSM.",
"publisher": {
"@id": "https://example-city.gov/id/organization/city-government",
"name": "Example City Government"
},
"includedInDataCatalog": {
"@id": "https://example-city.gov/id/catalog/open-data",
"name": "Example City open data catalogue"
},
"dataTheme": [
"ECON",
"GOVE"
],
"updateFrequency": "P1Y",
"accessRights": "public",
"spatialCoverage": {
"@id": "https://example-city.gov/id/jurisdiction/example-city",
"name": "Example City"
},
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"inLanguage": [
"en-US"
],
"conformsToProfile": "budget",
"temporalCoverage": "2025-07-01/2026-06-30",
"datePublished": "2025-06-20",
"dateModified": "2025-06-16",
"distribution": [
{
"@type": "DataDownload",
"name": "schemaGov budget profile",
"contentUrl": "https://example-city.gov/data/budget.jsonld",
"encodingFormat": "application/ld+json"
},
{
"@type": "DataDownload",
"name": "Fiscal Data Package",
"contentUrl": "https://example-city.gov/budget/fy2026/datapackage.json",
"encodingFormat": "application/json"
},
{
"@type": "DataDownload",
"name": "CSV extract",
"contentUrl": "https://example-city.gov/budget/fy2026/lines.csv",
"encodingFormat": "text/csv"
}
]
}
PublisherManifest
The document that makes a government's schemaGov data findable at all. Served at /.well-known/schemaGov.json (RFC 8615), it declares who is publishing, which jurisdiction they cover, which profiles they publish, and where each one lives. Without it a consumer has no entry point: seven profiles of well-modelled data are useless if nobody can discover the URLs. This is the only document in schemaGov with a fixed, conventional location.
| Field | Type | Definition | Required |
|---|---|---|---|
@id |
string |
This manifest's own dereferenceable identifier. | Yes |
@type |
"PublisherManifest" |
Always PublisherManifest. |
Yes |
name |
string |
The publisher's name, for display. | No |
description |
string |
A plain-language description of what this publisher makes available. | No |
publisher |
Reference |
The GovernmentOrganization responsible. Required: unattributed data cannot be trusted or corrected. | Yes |
about |
Reference |
The Jurisdiction covered. | Yes |
specVersion |
string |
The schemaGov version this publisher targets, e.g. '1.0.0'. Lets a consumer detect a publisher pinned to an older profile. | No |
conformanceLevel |
string[] |
schemaGov conformance level claimed, per SPEC section 4. Distinct from conformsTo, which names an external standard the data follows. | No |
profileEndpoint |
object[] |
One entry per published profile. This is the routing table. | Yes |
catalog |
Reference |
The publisher's DataCatalog, where one exists. | No |
contactPoint |
object |
How to reach the publisher with questions about this data. | No |
inLanguage |
string[] |
The language(s) this publisher's schemaGov data is published in. | No |
license |
string |
The default licence for the data this manifest points to, where one applies across all of it. | No |
dateModified |
string |
When this manifest last changed. | No |
{
"@id": "https://example-city.gov/.well-known/schemaGov.json",
"@type": "PublisherManifest",
"name": "Example City schemaGov publication",
"description": "Structured government data published by Example City.",
"publisher": {
"@id": "https://example-city.gov/id/organization/city-government",
"name": "Example City Government"
},
"about": {
"@id": "https://example-city.gov/id/jurisdiction/example-city",
"name": "Example City"
},
"specVersion": "1.0.0",
"conformanceLevel": [
"standard"
],
"inLanguage": [
"en-US",
"es-US"
],
"license": "https://creativecommons.org/publicdomain/zero/1.0/",
"dateModified": "2025-09-06",
"catalog": {
"@id": "https://example-city.gov/id/catalog/open-data",
"name": "Example City open data catalogue"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "open data",
"email": "data@example-city.gov",
"availableLanguage": [
"en-US",
"es-US"
]
},
"profileEndpoint": [
{
"@type": "ProfileEndpoint",
"profile": "core",
"url": "https://example-city.gov/data/core.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-06",
"description": "Jurisdictions, organizations, people, roles and facilities."
},
{
"@type": "ProfileEndpoint",
"profile": "org",
"url": "https://example-city.gov/data/org.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-06"
},
{
"@type": "ProfileEndpoint",
"profile": "code",
"url": "https://example-city.gov/data/code.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-07-15"
},
{
"@type": "ProfileEndpoint",
"profile": "meetings",
"url": "https://example-city.gov/data/meetings.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-05"
},
{
"@type": "ProfileEndpoint",
"profile": "requests",
"url": "https://example-city.gov/data/requests.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-06",
"description": "Rolling 90 days. The full Open311 endpoint is at /api/open311/v2."
},
{
"@type": "ProfileEndpoint",
"profile": "budget",
"url": "https://example-city.gov/data/budget.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-06-16"
},
{
"@type": "ProfileEndpoint",
"profile": "procurement",
"url": "https://example-city.gov/data/procurement.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-01"
},
{
"@type": "ProfileEndpoint",
"profile": "catalog",
"url": "https://example-city.gov/data/catalog.jsonld",
"encodingFormat": "application/ld+json",
"dateModified": "2025-09-06"
}
]
}