Legislation and codes profile

How laws, ordinances, and municipal codes are described so their text, status, and history can be tracked.

Schemas: 2

Code lists: 2

Standards: schema.org, Akoma Ntoso, ELI

LegislationObject legislation object link

One file of a piece of legislation - the actual document, not the law itself.

Standards: Akoma Ntoso, ELI

FieldTypeDefinitionRequired
@id string This file's own dereferenceable identifier. No
@type "LegislationObject" Always LegislationObject. Dual-typed as Legislation and MediaObject - the FRBR work/expression split that ELI and Akoma Ntoso both rely on: the Legislation is the law, a LegislationObject is a particular rendering of it. Yes
contentUrl string Where the file actually is. Yes
encodingFormat string The file's IANA media type. Use application/akn+xml for Akoma Ntoso. Yes
legislationLegalValue "AuthoritativeLegalValue" | "DefinitiveLegalValue" | "OfficialLegalValue" | "UnofficialLegalValue" Which of several parallel renderings of the same law is authoritative. The same law may have an authoritative signed PDF, an Akoma Ntoso XML marked up for machines, and an unofficial HTML reading copy - this is what says which is which, so consumers can pick the citable text rather than guessing from the file extension. Real schema.org LegalValueLevel enumeration. Yes
inLanguage string This file's language. No
contentSize string The file's size, e.g. 2 MB. No
dateModified string When this specific file was last modified. No
conformsTo string The document standard this file follows, e.g. the Akoma Ntoso namespace URI. No
Download JSON

Legislation legislation link

A law, ordinance, resolution, or a numbered part of a code.

Standards: ELI, Akoma Ntoso

FieldTypeDefinitionRequired
@id string The law's own dereferenceable identifier. Yes
@type "Legislation" Always Legislation - the abstract work, not a file of it; the text itself lives in one or more LegislationObjects (see encoding). schema.org's legislation vocabulary derives from the European Legislation Identifier, so almost everything needed here already exists. Yes
name string The law's short title, e.g. 'Noise Control Ordinance'. Yes
description string A plain-language summary of what the law does. No
url string Where this Legislation's canonical human-readable page lives. No
identifier Identifier[] Any additional scheme-qualified identifiers beyond legislationIdentifier. No
legislationIdentifier string The citation as the jurisdiction writes it - 'Ordinance 2025-15', 'Chapter 17.40', an ELI or CELEX URI. No
legislationType string termCode from the LegislationType code list. Yes
codificationLevel string Which structural tier of a code this is. hasPart nests parts but never says what kind of part, which is the one gap in schema.org's legislation vocabulary. No
position integer Ordering among siblings. Real schema.org CreativeWork property. No
legislationJurisdiction Reference The Jurisdiction this law applies within. Yes
legislationPassedBy Reference The GovernmentOrganization that adopted it. No
legislationResponsible Reference The GovernmentOrganization that administers or enforces it, when different from the body that passed it. No
enactedAt Reference The Meeting at which it was adopted. This is the join to the meetings profile, and the reason the two are built together. No
legislationDate string Date of adoption or signature. No
legislationDateOfApplicability string When it becomes applicable, which can differ from entry into force. No
legislationDateVersion string The point in time this description of the legislation is valid for. This is how consolidated codes express versioning, and the hardest part of publishing a municipal code correctly. No
legislationLegalForce "InForce" | "NotInForce" | "PartiallyInForce" Real schema.org property with a real enumeration. Do not invent a status field. No
datePublished string When this Legislation was first published. No
dateModified string When this record was last updated - not when the law itself changed; see legislationDateVersion for that. No
temporalCoverage string The period the law applies to, when it isn't open-ended. No
inLanguage string[] The language(s) the text is authoritative in. No
isPartOf Reference The parent tier: a section's chapter, a chapter's title. No
hasPart Reference[] The next tier down: a chapter's sections, a title's chapters. No
legislationAmends Reference[] The Legislation this amends, if any. No
legislationRepeals Reference[] The Legislation this repeals, if any. No
legislationChanges Reference[] The general effect this has on another Legislation, when legislationAmends/legislationRepeals aren't specific enough. No
legislationConsolidates Reference[] The prior versions this consolidated text supersedes. No
legislationCorrects Reference[] The Legislation this issues a correction to. No
legislationCommences Reference[] The Legislation this brings into force. No
encoding LegislationObject[] The actual files. Attach the Akoma Ntoso XML here. Structural markup inside the text (clauses, provisos, amendment instructions) is out of scope by design - that's what Akoma Ntoso is for. No
keywords string[] Subject keywords. Not schema:about, which ranges over Thing and is for references to entities - free-text strings there expand as relative IRIs. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/legislation/municipal-code",
  "@type": "Legislation",
  "name": "Example City Municipal Code",
  "description": "The consolidated body of city ordinances currently in force.",
  "url": "https://example-city.gov/municipal-code",
  "legislationType": "code",
  "codificationLevel": "code",
  "legislationIdentifier": "ECMC",
  "legislationJurisdiction": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "legislationLegalForce": "InForce",
  "legislationDateVersion": "2025-07-15",
  "dateModified": "2025-07-15",
  "inLanguage": [
    "en-US"
  ],
  "hasPart": [
    {
      "@id": "https://example-city.gov/id/legislation/municipal-code/title-17",
      "name": "Title 17 — Zoning"
    }
  ]
}
Download JSON