RFC 9676

LEX: A Uniform Resource Name (URN) Namespace for Sources of Law

๐Ÿ“… published May 2025, from ietf

RFC 9676: LEX, a URN Namespace for Sources of Law ๐Ÿ’–

okay bestie, this one is LEX, a Uniform Resource Name (URN) namespace for legal stuff ๐Ÿ“œโœจ It's RFC 9676, published in May 2025. It's an Informational doc (so it's not an official Internet Standard, no cap), and it's an Independent Submission to the RFC Series, which means it didn't come out of the IETF consensus process. The authors are P. Spinosa, E. Francesconi, and C. Lupo, all from the National Research Council of Italy (CNR) ๐Ÿ‡ฎ๐Ÿ‡น It's catalogued under ISSN 2070-1721. The header doesn't list anything it obsoletes or updates, so nothing is being retired here ๐ŸŒธ


Abstract

okay so the main idea: LEX is a URN namespace that gives persistent names to resources in the legal domain ๐Ÿฆ‹ It's built so that multiple jurisdictions can agree on one shared convention, which makes it way easier to refer to legal resources and get to them. ngl it's giving global interoperability for lawyers ๐Ÿ’…

This is an Independent Submission to the RFC Series. It is not a standard and it doesn't have IETF consensus, so keep that in mind while you read ๐Ÿซถ


Status of This Memo

this doc is not an Internet Standards Track spec. It's published just for information ๐ŸŽ€

It's a contribution to the RFC Series, independent of any other RFC stream. The RFC Editor picked to publish it at their discretion, and they make no statement about how valuable it is for implementation or deployment. Docs the RFC Editor approves aren't candidates for any level of Internet Standard, see Section 2 of RFC 7841 ๐Ÿ’œ

For the current status of this document, any errata, and how to send feedback, check https://www.rfc-editor.org/info/rfc9676 ๐Ÿ”—


Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. ๐ŸŒˆ

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they stand on the publication date. Please read these carefully, bestie, because they describe your rights and restrictions for this document ๐Ÿ“–


Table of Contents ๐Ÿงš

   1.  Introduction
     1.1.  The Purpose of Namespace LEX
     1.2.  Background
     1.3.  General Characteristics of the System
     1.4.  Linking a LEX Name to a Document
     1.5.  Use of LEX Names in References
     1.6.  Definitions
     1.7.  Terminology
     1.8.  Syntax Used in This Document
     1.9.  Namespace Registration
   2.  Registration of LEX
     2.1.  Identifier Structure
     2.2.  Jurisdiction-Code Registry
     2.3.  Conformance with URN Syntax
     2.4.  Validation Mechanism
     2.5.  Scope
   3.  General Syntax and Features of the LEX Identifier
     3.1.  Allowed and Not Allowed Characters
     3.2.  Reserved Characters
     3.3.  Case Sensitivity
     3.4.  Unicode Characters Outside the ASCII Range
     3.5.  Abbreviations
     3.6.  Date Format
   4.  Specific Syntax and Features of the LEX Identifier
     4.1.  Spaces, Connectives, and Punctuation Marks
     4.2.  Acronyms
     4.3.  Ordinal Numbers
   5.  Creation of the Source of Law LEX Identifier: Baseline
           Structure
     5.1.  Basic Principles
     5.2.  Model of Sources of Law Representation
     5.3.  Structure of the Local-Name
     5.4.  Structure of the Document Identifier at "Work" Level
     5.5.  Aliases
     5.6.  Structure of the Document Identifier at "Expression" Level
     5.7.  Structure of the Document Identifier at "Manifestation"
           Level
     5.8.  Sources of Law References
   6.  Specific Syntax of the Identifier at "Work" Level
     6.1.  The Authority Element
       6.1.1.  Indication of the Authority
       6.1.2.  Multiple Issuers
       6.1.3.  Indication of the Issuer
       6.1.4.  Indication of the Body
       6.1.5.  Indication of the Function
       6.1.6.  Conventions for the Authority
     6.2.  The Measure Element
       6.2.1.  Criteria for the Indication of the Type of Measure
       6.2.2.  Further Specification to the Type of Measure
       6.2.3.  Aliases for Sources of Law with Different Normative
               References
       6.2.4.  Relations Between Measure and Authority in the Aliases
     6.3.  The Details Element
       6.3.1.  Indication of the Details
       6.3.2.  Multiple Dates
       6.3.3.  Unnumbered Measures
       6.3.4.  Multiple Numbers
     6.4.  The Annex Element
       6.4.1.  Formal Annexes
       6.4.2.  Annexes of Annexes
   7.  Specific Syntax of the Version Element of the "Expression"
     7.1.  The Version Element
       7.1.1.  Different Versions of a Legislative Document
       7.1.2.  Identification of the Version
   8.  Summary of the Syntax of the Uniform Names of the LEX Namespace
   9.  Procedure of Uniform Names Assignment
     9.1.  Specifying the Jurisdiction Element of the LEX Identifier
     9.2.  Jurisdictional Registrar for Names Assignment
     9.3.  Identifier Uniqueness
     9.4.  Identifier Persistence Considerations
   10. Recommendations for the Resolution Process
     10.1.  General Architecture of the System
     10.2.  Catalogues for Resolution
     10.3.  Suggested Resolver Behavior
   11. Security Considerations
   12. IANA Considerations
   13. References
     13.1.  Normative References
     13.2.  Informative References
   Acknowledgements
   Authors' Addresses

1. Introduction โœจ

1.1. The Purpose of Namespace LEX ๐ŸŽ€

okay so the whole point of the LEX namespace is to give each document that counts as a source of law its own unique identifier, in a well-defined format ๐Ÿ“œ "Sources of law" covers any legal document in legislation, case law, administrative acts, or regulations. Potential sources of law (acts that are still being formed, like bills) are included too ๐Ÿ™Œ What's not included is "legal doctrine", the body of knowledge and theory that legal scholars produce (commentary on judgments, jurisprudence reviews, commentary on legislation, encyclopedic entries, monographs, magazine articles, manuals, and so on). Those are explicitly not covered, so don't go looking for them here ๐Ÿ™ˆ

The identifier is designed so that it's built only from the content of the document itself, not from where it's posted online, where it physically lives, or how you can access it. The jurisdiction of the identified document is the one that assigns the identifier itself. A document that isn't available online can still have a LEX URN identifier, and that's lowkey the best part ๐ŸŒธ

The LEX URN can be used to represent references (and any other kind of relation) among different sources of law ๐Ÿ”— In an online world where resources are spread across lots of web publishers, LEX URNs make it possible to link legal documents together globally through automated resolution, which is so iconic ๐Ÿ‘‘ LEX URNs are persistent and location-independent identifiers, and they're especially useful when they can be mapped to, or associated with, locators such as HTTP URLs. And LEX URN details can also be used as a reference to create persistent, location-independent identifiers that are HTTP-based [RFC3986] ๐Ÿ’œ

1.2. Background ๐ŸŽ€

Okay so this spec is the newest chapter in a LONG story about giving legal documents unique IDs ๐Ÿ“šโœจ. It builds on a bunch of earlier initiatives, so let's do the tour.

Since 2001, the Italian Government has been pushing the NormeInRete project ๐Ÿ‡ฎ๐Ÿ‡น. It worked through the National Center for Information Technology in the Public Administration, the Ministry of Justice, and the National Research Council of Italy (CNR). The goal was to introduce standards for describing and identifying sources of law using XML and URN techniques ๐Ÿ’–.

Other national initiatives in Europe came up with standards for describing legal sources [FRAN]. Teams made up of government folks, national research institutes, and universities have defined national XML standards for legal document management, plus schemes for legal document identification ๐Ÿค“. Outside Europe, similar initiatives have tackled similar problems [FRAN]. A bunch of these identifiers are built on a URN schema ๐Ÿฆ‹.

In today's information society, the European Union (EU) Member States are becoming more politically, socially, and economically integrated ๐ŸŒ. The worldwide legal and economic processes are also integrating more and more. Put those together and people are super interested in swapping legal information at both national and transnational levels ๐Ÿ‘€. Everyone wants better quality and easier access to legal information, which makes interoperability among legal information systems across national boundaries a HUGE need ๐Ÿ˜ญ. A common, well-defined schema for identifying sources of law at an international level is basically the essential prerequisite for interoperability ๐Ÿ”‘.

Several interest groups in different countries have already said they want to adopt a shared solution based on a URN technique ๐Ÿ™Œ. At several conferences (such as [LVI]), reps from the Publications Office of the European Union (OP) have talked about needing a unique identifier for sources of law. It should be based on open standards and offer advanced ways to hyperlink documents, all so national and European institution information systems can work together better ๐Ÿ”—. Similar concerns have come up with international groups that care about free access to legal information. The Permanent Bureau of the Hague Conference on Private International Law [HCPIL] encourages State Parties to "adopt neutral methods of citation of their legal materials, including methods that are medium-neutral, provider-neutral and internationally consistent". Meanwhile, the CEN Metalex initiative is working at the European level toward a standard interchange format for sources of law. That includes recommendations for defining naming conventions for them ๐Ÿ“.

Unique identifiers for sources of law are especially important for case law ๐Ÿ‘ฉโ€โš–๏ธ. This need is acutely felt in both common law systems (where cases are the main law sources) and civil law systems. Unique identifiers can give integrated access to cases and legislation and let you track the relationships between them. The catch is that this domain is super fragmented, with case law information systems that usually don't play nicely together ๐Ÿ˜ค.

In the European Union, the community institutions have stressed that citizens, businesses, lawyers, prosecutors, and judges need to be more aware of (directly applicable) EU laws and the various national legal systems ๐Ÿ‡ช๐Ÿ‡บ. The European Parliament's resolution of 9 July 2008 on the role of the national judge in the European judicial system stressed how much national judiciaries matter for applying community law ๐Ÿ‘‘. The Council of the European Union has also underlined how important cross-border access to national case law is, plus the need to standardize it. Its vision is a decentralized architecture with integrated access ๐Ÿงฉ. The Working Party on Legal Data Processing (e-Law) of the Council of the European Union formed a task group to study ways to improve cross-border access to national case law. After the task group's report, the Council of the European Union decided in 2009 to work out a uniform European system for identifying case law, the European Case-Law Identifier (ECLI), plus a uniform set of metadata based on the Dublin Core ๐Ÿ’….

The Council of the European Union also invited Member States to bring the European Legislation Identifier (ELI) into their legal information systems. ELI is an HTTP-based, Semantic Web-oriented identification system for legislation of the European Union and Member States ๐ŸŒ.

The LEX identifier (also called the "LEX name" in this text) is designed to be general enough to give guidance at the core of the standard. It's also flexible enough to cover lots of different needs for identifying legal documents, like legislative, case law, and administrative acts ๐ŸŽ€. It works well in a federative environment, where different publishers (public and private) can each provide their own items of a legal document. Those items are in the [FRBR] sense (see Section 5.2). In other words, there can be more than one manifestation (see Section 5.2) of the same legal document ๐Ÿ“š.

The name syntax and rules for the LEX identifier can also be used for HTTP-based naming conventions. That helps with different requirements in legal information management. For example, you might want an identifier that fits the Linked Open Data principles ๐Ÿ”—๐Ÿ’œ.

This document adds to the required name syntax with a naming convention. It takes all these recommendations and turns them into an original solution for identifying sources of law โœจ.


1.3. General Characteristics of the System ๐ŸŒธ

This document promotes interoperability among legal information systems by defining a namespace convention and structure. That structure creates and manages identifiers for legal documents ๐Ÿ’…. The identifiers are meant to have these qualities:

  • globally unique
  • transparent
  • reversible
  • persistent
  • location-independent
  • language-neutral

Together, these qualities make it easier to manage legal documents and give a reliable way to make cross-collection and cross-country references ๐Ÿฆ‹.

Transparency means that, for a given act and its relevant metadata (issuing authority, type of measure, etc.), you can create a related URN that uniquely identifies the act. It's reversible, too, so you can go from an act to its URN and from a URN back to the act ๐Ÿ”.

Language neutrality is a big deal ๐ŸŒ. It helps organizations that have to follow official language requirements adopt the standard. This specification gives guidance to both public and private groups that create, promulgate, and publish legal documents. Registrants want to avoid creating conflicting proprietary schemes, but they also need enough flexibility for diverse document types. They also need to respect local control of collections by a diverse assortment of administrative entities ๐Ÿ™ƒ.

It's a tricky balance: give the right amount of guidance at the core, but still leave enough flexibility for all sorts of needs ๐Ÿคนโ€โ™€๏ธ. LEX does this by splitting the identifier into parts. The first part uses a preexisting standard specification (the "country/jurisdiction name standard") to show the country (or more generally, the jurisdiction) where the legal document came from. The rest (the "local-name") is for local use, identifying documents issued in that country or jurisdiction ๐Ÿ—บ๏ธ.

The second part depends only on the identification system for sources of law used in that nation. It's mainly made up of formalized information about the enacting authority, the type of measure, the details, and possibly the annex ๐Ÿ“‘.

The identification system based on uniform names includes:

  • A schema for assigning names that can unambiguously represent any addressed source of law (namely legislation, case law, and administrative acts) issued by any authority (intergovernmental, supranational, national, regional, and local) at any time (past, present, and future) โณ.
  • A resolution mechanism, in a distributed environment, that ties a uniform name to the online location of the corresponding resource(s) ๐Ÿ“.

This document covers the first of these requirements. It also has a few references to the architecture of the resolution service and to the corresponding software ๐Ÿ’ป.


1.4. Linking a LEX Name to a Document ๐Ÿ”—

The LEX name gets linked to the document through metadata, which can be specified in these ways ๐Ÿ’–:

  • Within the document itself, through a specific element within an XML schema or by a meta tag [W3C.HTML].
  • Externally, by means of a Resource Description Framework [W3C.RDF-SCHEMA] triple, a specific attribute in a database, etc.

At least one of these references is necessary. That's what enables automated construction, updating of catalogues (distributed and centralized), and implementing resolvers that match a document's uniform name with its physical location ๐Ÿงš. LEX doesn't assume any particular relationship between the document's originator, its publisher, the implementer of catalogues, or the resolution services. No drama, no assumptions ๐Ÿ’….


1.5. Use of LEX Names in References ๐Ÿ“Ž

LEX names can be used in references as an HREF attribute value of the hypertext link to the referred document ๐ŸŒˆ. There are two ways to create that link:

  • Manually inserting the link with the uniform name in the referring document. This is a burdensome procedure, especially for documents that are already online ๐Ÿ˜ฉ.
  • Automatically constructing the link with the uniform name from references in the text, using a parser. Constructing it either permanently or temporarily. This saves way more time, even though it comes with a certain percentage of errors, since references aren't always accurate or complete ๐Ÿค–. This solution could still be acceptable for documents that are already published ๐Ÿ“š.

No matter which method you pick, new documents produced in a certain format (for example, XML, XHTML, etc.) should express references through the uniform name of the document being referred to โœจ.


1.6. Definitions ๐Ÿ“–

These are the terms used in this document ๐Ÿ’œ:

Source of Law: A general concept that refers to legislation, case law, regulations, and administrative acts. In its broadest sense, the source of law is anything that can be conceived as the originator of 'erga omnes' legal rules. In this document, "source of law" also refers to acts during their creation, such as bills, that might or might not become laws ๐Ÿ‘‘.

Jurisdictional Registrar: An organization in any jurisdiction that shares and defines the assignment of the main components of the resource identifier. That's how identifier uniqueness is guaranteed ๐Ÿ”.


1.7. Terminology ๐ŸŽ€

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here ๐Ÿ’…โœจ.

1.8. Syntax Used in This Document

okay so this doc is written in ABNF ([RFC5234]), the grammar language tons of RFCs use, so if you've seen it before you'll feel right at home ๐ŸŽ€

1.9. Namespace Registration

the LEX namespace got registered in the "Formal URN Namespaces" registry ๐Ÿ’… see Section 12 for the deets โœจ

2. Registration of LEX

2.1. Identifier Structure

the identifier has this hierarchical vibe ๐ŸŒธ

"urn:lex:" NSS

where NSS is the Namespace Specific String, and it's built like this:

NSS = jurisdiction ":" local-name

where:

  • jurisdiction: tells you the scope (state, regional, municipal, supranational, or organizational) where a set of sources of law is valid. international organizations can be represented too (states, public administrations, or private entities) ๐ŸŒ
  • local-name: the uniform name of the source of law in the country or jurisdiction where it's issued. its internal structure is common to the schemas that are already adopted. it covers the whole life of an intellectual production, from the initial idea, through its evolution over time, to how it finally shows up in different forms (paper, digital, etc.) ๐Ÿ“œ

the jurisdiction element is made of two specific fields:

jurisdiction = jurisdiction-code *(";" jurisdiction-unit)

where:

  • jurisdiction-code: usually the identification code of the country where the source of law is issued. to keep the name transparent, it usually follows the same identification rules as other Internet apps, which are based on domain names (for details and special cases, see Section 2.2).

because countries represent things differently across their languages, using the standard [ISO.3166-1] is strongly RECOMMENDED for easier identification of the country. so a LEX URN ID always begins with a sequence of ASCII characters: "urn:lex:ccTLD". for all the other components after the jurisdiction-code, the Jurisdictional Registrar decides the mode of representation (ASCII or UTF-8 percent-encoding; see Section 3.4).

where it applies, the domain name of the country or multinational or international organization is used. if that info isn't available for a particular institution, a specific code will be defined (see Section 2.2). examples in this document are hypothetical and assume the corresponding domain name is used for the jurisdiction-code.

  • jurisdiction-unit: the possible administrative hierarchical sub-structures each country or organization defines within its own legal system. this extra info is super useful when two or more levels of legislative or judicial production exist (e.g., federal, state, and municipality level) and the same bodies show up in each one. so the jurisdiction-unit differs for acts of the same type issued by similar authorities but covering different geographical areas. here's an example:
"br:governo:decreto" (decree of federal government),
"br;sao.paulo:governo:decreto" (decree of Sรฃo (SU+00E3o) Paulo
state)
"br;sao.paulo;campinas:governo:decreto" (decree of Campinas
municipality).

the following are fictitious examples of sources of law identifiers ๐Ÿงš

urn:lex:it:stato:legge:2003-09-21;456
    (Italian act)
urn:lex:fr:etat:loi:2004-12-06;321
    (French act)
urn:lex:es:estado:ley:2002-07-12;123
    (Spanish act)
urn:lex:ch;glarus:regiere:erlass:2007-10-15;963
    (Glarus Swiss Canton decree)
urn:lex:eu:commission:directive:2010-03-09;2010-19-EU
    (EU Commission Directive)
urn:lex:us:supreme.court:decision:1978-04-28;77-5953
    (US SC decision: Riley vs Illinois)
urn:lex:be:conseil.etat:decision:2008-07-09;185.273
    (Decision of the Belgian Council of State)

2.2. Jurisdiction-Code Registry

a brand new jurisdiction-code registry just dropped! ๐ŸŽ‰ quick heads-up though: it's a CNR registry and not an IANA registry ๐Ÿ’…

each entry has these elements:

  • jurisdiction-code: the identifier assigned to the jurisdiction (aka the country or organization).
  • jurisdiction: the official name of the jurisdiction (aka the country or organization).
  • registrant: essential info that identifies the organization that requested the registration of the code. the registrant is responsible for its DNS zone, the attribution of sub-zone delegations, and so on. It is RECOMMENDED that each jurisdiction create a registry of all delegated levels so the organization responsible for each sub-zone can easily be identified ๐Ÿซถ
  • reference: a reference to the defining document (if any).

the table lives at lex-urn.nic.it and it's initially empty, and so is the registry ๐Ÿฅบ here are some possible example entries:

"br"; "Brazil"; "Prodasen, Federal Senate, address, contact";
      \[reference\]
"eu"; "European Union"; "DG Digit, European Commission, address,
      contact"; \[reference\]
"un.org"; "United Nations"; "DPI, United Nations, address,
          contact"; \[reference\]

CNR is responsible for the jurisdiction-code and the root lex-nameserver.nic.it registries of the resolution routing.

a new Jurisdictional Registrar will contact CNR or the designated expert(s) following the established rules of governance (published on the CNR website dedicated to LEX governance). the application gets evaluated based on the Jurisdictional Registrar's authoritativeness and the guarantees it offers. the designated expert(s) will evaluate these applications with a similar approach to DNS evaluations. typically, these applications should come from public administrations, as the authorities enacting sources of law.

the adopted registration policy is similar to the "Expert Review" policy specified in [RFC8126]. the designated expert(s) will assign jurisdiction-codes based on these principles:

  • If a request comes from a jurisdiction that corresponds to a country and the jurisdiction-code is the same as a top-level Country Code Top-Level Domain (ccTLD), then the top-level ccTLD should be used as the jurisdiction-code.
  • If a request comes from a jurisdiction that corresponds to a multi-national organization (e.g., European Union) or international organization (e.g., United Nations and World Trade Organization), the Top-Level Domain Name (e.g., "eu") or the Domain Name (e.g., "un.org" and "wto.org") of the organization should be used as the jurisdiction-code.
  • If a multi-national or international organization does not have a registered domain, the designated expert(s) should assign something like "name.lex.arpa", where the name will be the acronym of the organization name in the language chosen by the organization itself. for example, the jurisdiction-code of the European Economic Community could be "eec.lex.arpa". the alias mechanism allows for acronyms in different languages.
โš ๏ธ Jurisdiction-codes MUST NOT be renamed, because that would violate the rule that URN assignments be persistent.
โš ๏ธ Jurisdiction-codes MUST NOT ever be deleted. They can only be marked as "obsolete", i.e., closed for new assignments within the jurisdiction. Requests to obsolete a jurisdiction-code are also processed by the designated expert(s).

designated expert(s) can unilaterally start the allocation or obsolescence of a jurisdiction-code ๐Ÿ‘‘

requests for new jurisdiction-code assignments must include the organization or country requesting it and the contact information (email) of whoever requested the assignment.

2.3. Conformance with URN Syntax

the LEX namespace identifier (NID) syntax conforms to [RFC8141]. however, a bunch of characters are reserved for identifying elements or sub-elements, or for future extensions of the LEX naming convention (see Section 3.2) ๐Ÿ”’

2.4. Validation Mechanism

the Jurisdictional Registrar (or whoever it delegates to) of each adhering country or organization is responsible for defining or accepting the uniform name's primary elements (issuing authority and type of legal measure) ๐Ÿ’ผ

2.5. Scope

the scope is global ๐ŸŒ each Body that enacts sources of law can identify them with this scheme. on top of that, other bodies (even non-enacting ones, like newspapers, magazine publishers, etc.) that want to reference legal documents can identify them unequivocally with this scheme too ๐Ÿฆ‹

3. General Syntax and Features of the LEX Identifier

this section lists the general features that apply to all jurisdictions โœจ

3.1. Allowed and Not Allowed Characters

the characters are defined in accordance with [RFC8141]. for various reasons explained later, only a subset of characters is allowed in the LEX NSS. all other characters are either eliminated or converted ๐Ÿงน for the full syntax of uniform names in the LEX space, check out Section 8.

3.2. Reserved Characters

the following characters are reserved in the specific LEX namespace ๐ŸŽ€

"@"   Separator of the expression that contains information on
      version and language.

"$"   Separator of the manifestation that contains information on
      format, editor, etc.

":"   Separator of the main elements of the name at any entity.

";"   Separator of the level.  It identifies the introduction of an
      element at a hierarchically lower level or the introduction of
      a specification.

"+"   Separator of the repetitions of an entire main element (e.g.,
      multiple authorities).

"|"   Separator between different formats of the same element (e.g.,
      date).

","   Separator of the repetitions of individual components in the
      main elements, each bearing the same level of specificity
      (e.g., multiple numbers).

"~"   Separator of the partition identifier in references (e.g.,
      paragraph of an article).

"*"   Reserved for future expansions.

"!"   Reserved for future expansions.

to keep backward compatibility with existing applications in some jurisdictions, the LEX NID syntax doesn't include the use of the character "/" in this version ๐Ÿ™ˆ that character always gets converted into "-", except in the formal annexes (see Section 6.4.1).

3.3. Case Sensitivity

for all the languages where different cases (uppercase or lowercase) or different spellings of the same word are possible, names in the LEX namespace are case-insensitive ๐ŸŒˆ for the Latin alphabet, it is RECOMMENDED that names be created in lower case, but names that differ only in case or in the spelling of the same word MUST be considered equivalent (e.g., "Ministry" will be recorded as "ministry") ๐Ÿ’…

3.4. Unicode Characters Outside the ASCII Range โœจ

Okay so, to let the DNS work as a routing tool toward the right resolution system ๐Ÿงญ, keep editing and communication simple ๐Ÿ’–, and avoid character percent-encoding ๐Ÿ™ˆ, it is RECOMMENDED that characters outside the ASCII range (national characters, diacritic signs, and so on) get turned into plain basic ASCII. The examples are the Italian term "sanitร " (sanitU+00E0)), which becomes "sanita", and the French term "ministรจre" (ministU+00E8re), which becomes "ministere". If that's not possible, transliteration is the backup, like "Mรผnchen" (MU+00FCnchen) becoming "muenchen". ๐Ÿฆ‹

This mapping has three parts:

  • Transcription from non-Latin alphabets
  • Transliteration of some signs (for example, diaeresis and eszett)
  • Keeping only the basic characters and dropping the signs placed above (accents and tilde), below (cedilla and little tail), or on (oblique cut)

The most suitable, well-known, and widespread mapping system for a given language MUST be chosen by the jurisdiction, or by the jurisdiction-unit in agreement with the jurisdiction when different languages are used in different regions. The choices other jurisdictions made for the same language should also be taken into account. ๐ŸŒ This mapping is simpler for languages that use the Latin alphabet and gets more complex for other alphabets, for writing systems that run right to left, and for ideographic writing systems. ๐ŸŒธ

If this conversion is not acceptable to a specific jurisdiction, or it isn't available for a given language, Unicode MUST be used. For accessing network protocols, any Unicode code points outside the ASCII range MUST be converted to UTF-8 percent-encoding according to [RFC3986] and [RFC3629] . ๐Ÿ”ฅ

Here's the tea โ˜•: in this case, the generated URN (and some of its parts) cannot be used directly for routing through the DNS. So the jurisdiction should adopt one of the following strategies:

  • Convert non-ASCII characters within the DNS into IDN encoding using Punycode translation [RFC5894] (for example, "mรผnchen" (mU+00FCnchen) becomes xn--mnchen-3ya), and develop a software interface that converts the URN before navigating the DNS.
  • Create a routing service, built in software outside of the DNS, that points to a proper resolution service.

Note that the LEX URN ID could contain groups of characters (UTF-8 percent-encoded) from some languages with different orientations. In this case, the BiDi rules apply [RFC5893]. ๐Ÿ”„

The preferred order goes like this ๐Ÿ‘‘:

  • Conversion into basic ASCII is the RECOMMENDED solution, because conversions for network protocols and the DNS are not needed. โœจ
  • Using Unicode and converting to UTF-8 percent-encoding [RFC3629] for accessing network protocols, and to Punycode [RFC5894] only for navigation in the DNS via a software interface.
  • Creating a routing service outside of the DNS that addresses a proper resolution service.

The first solution allows native DNS routing, while the other two need software development for the interface or the routing. Still, it's up to the specific jurisdiction to choose the preferred solution. ๐Ÿ’…

Here are two examples (Latin and Cyrillic alphabets) for the different solutions:

  • A circular adopted by the Municipality of Munich (Rundschreiben der Stadt "Mรผnchen" (MU+00FCnchen)):
    • ASCII: urn:lex:de:stadt.munchen:rundschreiben:...;
    • Unicode: urn:lex:de:stadt.mU+00FCnchen:rundschreiben:...;
    • UTF-8: urn:lex:de:stadt.m%C3%BCnchen:rundschreiben:...;
    • PUNYCODE: urn:lex:de:stadt.xn--mnchen-3ya:rundschreiben:...
  • A state law of the Russian Federation (Latin: gosudarstvo zakon; Cyrillic: "ัะพัั‚ะพัะฝะธะต ะทะฐะบะพะฝ" (U+0441U+043EU+0441U+0442U+043EU+044FU+043DU+0438U+0435U+0437U+0430U+043AU+043EU+043D)). This assumes the Russia jurisdiction-code is written in ASCII as ru, while the Cyrillic version would be "ั€ั„" (U+0440U+0444):
ASCII:    urn:lex:ru:gosudarstvo:zakon:...
Unicode:  urn:lex:ru:U+0441U+043EU+0441U+0442U+043EU+044FU+043D
          U+0438U+0435:U+0437U+0430U+043AU+043EU+043D:...
UTF-8:    urn:lex:ru:%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1
          %8F%D0%BD%D0%B8%D0%B5:%D0%B7%D0%B0%D0%BA
          %D0%BE%D0%BD:...
PUNYCODE: urn:lex:ru:xn--80aebe3cdmfdkg:xn--80ankme:...

3.5. Abbreviations โœจ

Abbreviations pop up all the time in law ๐Ÿ“œ. They show up for institutions (like Min.), structures (like Dept.), or legal measures (like Reg.), but nobody uses them in a uniform way, so it's a mess ๐Ÿ˜ญ. That's why their expansion is highly RECOMMENDED. For example, "Min." is expanded as "ministry". ๐ŸŽ€


3.6. Date Format โœจ

[ISO.8601-1.2019] and [ISO.8601-2.2019] describe the international format for dates ๐Ÿ—“๏ธ. Dates MUST always be represented in this format, with 4 digits for the year, 2 digits for the month, and 2 digits for the day:

date-iso = year "-" month "-" day

For example, "September 2, 99" gets written as "1999-09-02". ๐ŸŒˆ

This format keeps different representation systems interoperable, and there are plenty of programs that map other formats onto it. But to make other formats (like the Jewish calendar) easier to read and understand, the LEX URN scheme lets you add the date in the jurisdiction's own format ๐Ÿงš. The date from the example above (1999-09-02) can be shown like this:

  • in Hebrew characters (21 Elul 5759):
ื›ืดื-ื‘ึถึผืึฑืœื•ึผืœ-ืชืฉื ืดื˜

Note that this example uses right-to-left (RTL) script, which may be displayed differently by different document presentation environments depending on the context of this specification. The descriptive text is usually more reliable to follow than the device- and application-specific rendering. ๐Ÿ™ˆ

  • in U+ notation:
U+05D8U+05F4U+05E0U+05E9U+05EAU+002DU+05DCU+05D5U+05BCU+05DC
U+05D0U+05B1U+05D1U+05B6U+05BCU+002DU+05D0U+05F4U+05DB
  • in UTF-8 code:
%d7%98%d7%b4%d7%a0%d7%a9%d7%aa-%d7%9c%d7%95%d6%bc%d7%9c%d7%
90%d6%b1%d7%91%d6%b6%d6%bc-%d7%90%d7%b4%d7%9b

So for all the dates in the LEX URN identifier (see Sections 6.3 and 7.1.2), you can show the date in the local format too ๐Ÿ’œ:

date = date-iso ["|" date-loc]

For example, 1999-09-02 gets written in ISO plus Hebrew format as 1999-09-02|ื›ืดื-ื‘ึถึผืึฑืœื•ึผืœ-ืชืฉื ืดื˜. That gets converted into UTF-8 for network protocols and for resolution (see Section 3.4). Characters that aren't allowed (like "/") or are reserved (like ",") cannot exist inside the date-loc, so they MUST be turned into ".". To line up with the ISO format, any blank between day, month, and year MUST be converted into "-". ๐Ÿ”ฅ

Now for the Hebrew example, the sequence of characters goes: "ื›" (HEBREW LETTER KAF, U+05DB), "ืด" (HEBREW PUNCTUATION GERSHAYIM, U+05F4), "ื" (HEBREW LETTER ALEF, U+05D0), "-" (HYPHEN-MINUS, U+002D), "ื‘ึถึผ" (HEBREW LETTER BET, HEBREW POINT SEGOL, HEBREW POINT DAGESH OR MAPIQ, U+05D1 U+05B6 U+05BC), "ืึฑ" (HEBREW LETTER ALEF, HEBREW POINT HATAF SEGOL, U+05D0 U+05B1), "ืœ" (HEBREW LETTER LAMED, U+05DC), "ื•ึผ" (HEBREW LETTER VAV, HEBREW POINT DAGESH OR MAPIQ, U+05D5 U+05BC), "ืœ" (HEBREW LETTER LAMED, U+05DC), "-" (HYPHEN-MINUS, U+002D), "ืช" (HEBREW LETTER TAV, U+05EA), "ืฉ" (HEBREW LETTER SHIN, U+05E9), "ื " (HEBREW LETTER NUN, U+05E0), "ืด" (HEBREW PUNCTUATION GERSHAYIM, U+05F4), and "ื˜" (HEBREW LETTER TET, U+05D8). ๐Ÿงฉ


4. Specific Syntax and Features of the LEX Identifier โœจ

This section talks about features tied to specific jurisdictions ๐ŸŒ. Implementing these features is RECOMMENDED. ๐Ÿ’–

4.1. Spaces, Connectives, and Punctuation Marks โœจ

When they're explicitly present, all language connectives (like articles and prepositions), punctuation marks, and special characters (like apostrophes and dashes) get eliminated ๐Ÿงน. (Languages with declensions or agglutinating languages don't get any transformation.) The words that are left are joined together with a dot ("."), which takes the place of the space. For example, "Ministry of Finances, Budget, and Economic Planning" becomes ministry.finances.budget.economic.planning, and "Ministerstvo Finansov" becomes ministerstvo.finansov. ๐Ÿฆ‹

4.2. Acronyms โœจ

Acronyms can be confusing and invite ambiguity in uniform names, since the same acronym can point to two different institutions or structures ๐Ÿ˜ฌ. So their expansion is highly RECOMMENDED. For example, "FAO" is expanded as food.agriculture.organization. ๐Ÿ“

4.3. Ordinal Numbers โœจ

To standardise the representation ๐Ÿ’…, it is highly RECOMMENDED that any ordinal number in a component of a document name (for example, in the description of an institution Body) is written in Western Arabic numerals. That's true no matter how the original was written, whether as Roman numerals, an adjective, Arabic numerals with an apex, and so on (such as IV, third, 1ยฐ (1U+00B0), and 2^). For example, "Department IV" becomes department.4. ๐Ÿ‘‘


5. Creation of the Source of Law LEX Identifier: Baseline Structure โœจ

5.1. Basic Principles โœจ

The uniform name has to identify one and only one document (more precisely, a "bibliographic resource" [ISBD]; see also Section 5.2) ๐Ÿ“š. It gets created so that it is:

  • self-explanatory,
  • identifiable through simple and clear rules,
  • compatible with the practice commonly used for references,
  • able to be created from references in the text, automatically (by parser) or manually, and
  • representative of both the formal and the substantive aspects of the document. ๐ŸŒธ

5.2. Model of Sources of Law Representation ๐Ÿ“šโœจ

Okay bestie, so the Functional Requirements for Bibliographic Records (FRBR) [FRBR] model, made by IFLA (International Federation of Library Associations and Institutions), says a source of law has four fundamental entities (or aspects) ๐Ÿง . Same as any intellectual production, honestly. It's giving librarian meets lawyer ๐Ÿ’….

The first two entities are about its contents ๐Ÿ“–:

  • work: a distinct intellectual creation. Here it's a source of law in both its original form and its amended form over time ๐Ÿฆ‹.
  • expression: a specific intellectual realization of a work. Here it's every different version of the source of law over time (original or up-to-date) and/or language the text is written in ๐ŸŒ.

The other two are about its form ๐ŸŽ€:

  • manifestation: a physical embodiment of an expression of a work. Here it's the different media (printing, digital, etc.), encoding formats (XML, PDF, etc.), or other publishing characteristics ๐Ÿ–จ๏ธ.
  • item: a specific copy of a manifestation. Here it's individual physical copies as they show up in particular physical locations ๐Ÿ“.

Now here's the lowkey important bit ๐Ÿ‘€. In this document, the [FRBR] model has been adjusted for the legal world. Apart from language (which does make a specific expression), the way we tell expression and manifestation apart is by the juridical effects a change can have on the people involved (citizens, parties, and institutions) โš–๏ธ. So the main thing about an expression of an act is how long it stays valid while it keeps the same juridical effects โณ. Those effects can change when other legislative or jurisprudential acts amend or annul things ๐Ÿ”„.

That means notes, summaries, comments, anonymizations, and other editorial stuff on the same text do NOT make a new expression ๐Ÿ™…โ€โ™€๏ธ. They make a new manifestation instead ๐ŸŒธ. Not me being picky, just the rules ๐Ÿ’€.

5.3. Structure of the Local-Name ๐Ÿงฉ

Main vibe: the local-name inside the LEX namespace MUST contain all the info needed to uniquely identify a legal document ๐Ÿ”. If the local-name doesn't do that, the related URN is not a valid one in the LEX namespace ๐Ÿšซ. Iconic, no notes ๐Ÿ’–.

In the legal domain, three components are always there at the "work" level: the enacting authority, the measure type, and the details ๐ŸŽฏ. A fourth one, the annex, gets added if there is one ๐Ÿ“Ž.

Sometimes you need to tell different expressions apart too, like:

  • the original version and all the amended versions of the same document, and
  • the versions of the text written in the different official languages of the state or organization ๐Ÿ—ฃ๏ธ.

Last but not least, the uniform name lets you tell apart the different manifestations that multiple publishers might make using different means and formats ๐Ÿ–ฅ๏ธ.

In every case the basic identifier of the source of law (the work) stays the same ๐Ÿซถ, but extra info gets added about the specific version (the expression) ๐Ÿ”–. Same idea for manifestations: a suffix gets added to the expression to show the publication's characteristics ๐ŸŒˆ.

The uniform name for a source of law at each level (work, expression, and manifestation) is written in the official language of the relevant jurisdiction ๐Ÿ‡ฎ๐Ÿ‡น. Aliases are the more language-dependent names, and they get made when there are multiple official languages (like Switzerland) or more jurisdictions involved (like international treaties) ๐ŸŒโœจ.

So the general structure of the local-name looks like this ๐Ÿ‘‘:

       local-name = work ["@" expression] ["$" manifestation]

Now, consistent with legislative practice, the uniform name of the main original provision (the work) becomes the identifier for a whole class of documents ๐Ÿง. That class includes the original main document, the annexes, and all the versions, languages, and formats generated afterwards ๐ŸŽ€.

5.4. Structure of the Document Identifier at "Work" Level ๐Ÿ›๏ธ

The document identifier is made up of the four fundamental elements we talked about earlier ๐Ÿ’…. They're kept distinct from each other and ordered from broadest domain and competence to narrowest ๐Ÿ”:

      work = authority ":" measure ":" details *(":" annex)

Here's the breakdown ๐Ÿงƒ:

  • authority: the issuing or proposing authority of the measure (e.g., state, ministry, municipality, court, etc.) ๐Ÿข.
  • measure: the type of the measure, both public (e.g., constitution, act, treaty, regulation, decree, decision, etc.) and private (e.g., license, agreement, etc.) ๐Ÿ“œ.
  • details: the terms tied to the measure, usually the date (normally the signature date) and the number in the heading of the act ๐Ÿ“….
  • annex: the identifier of the annex, if there is one (e.g., Annex 1) ๐Ÿ“Ž.

Both the main document and its annexes get their own uniform names so you can reference each one individually ๐Ÿฅฐ. The annex identifier adds a suffix to the main document's identifier. And an annex of an annex adds an ending to the annex it's attached to ๐Ÿช†.

The main parts of the work name are usually split into several elementary components, and each component has its own rules for how it's represented (criteria, modalities, syntax, and order) ๐Ÿงฉ. For the details on each element, check out Section 6 ๐Ÿ“–. Here are some hypothetical examples of work identifiers ๐Ÿ’œ:

urn:lex:it:stato:legge:2006-05-14;22
urn:lex:uk:ministry.justice:decree:1999-10-07;45
urn:lex:ch;glarus:regiere:erlass:2007-10-15;963
urn:lex:es:tribunal.supremo:decision:2001-09-28;68
urn:lex:fr:assemblee.nationale:proposition.loi:13.legislature;1762
urn:lex:br:estado:constituicao:1988-10-05;lex-1
urn:lex:un.org:united.nations;general.assembly:resolution:
    1961-11-28;a-res-1661
urn:lex:nl:hoge.raad:besluit:2008-04-01;bc8581

The type of measure matters a lot for telling apart legislation and case law ๐Ÿ™Œ. This is especially true in legal systems where cases are traditionally identified only by the year of release and a number ๐Ÿ—“๏ธ. Since the whole point of the LEX schema is to pin down specific materials, the type of measure or the full date can tell apart materials that belong to the same case ๐Ÿ”ฅ.

Here's an example where the type of measure or the full date is essential to identify specific materials from one case ๐Ÿ•ต๏ธโ€โ™€๏ธ:

4/59 Judgment of the EEC Court of Justice 04/04/1960, Mannesmann
AG and others / ECSC High Authority

    urn:lex:eec.lex.arpa:court.justice:judgement:1960-04-04;4-59

4/59 Order of the EEC Court of Justice 18/05/1960, Mannesmann AG
and others / ECSC High Authority

    urn:lex:eec.lex.arpa:court.justice:order:1960-05-18;4-59

5.5. Aliases ๐Ÿชž

International treaties involve multiple signatory jurisdictions ๐Ÿค, so they get represented through multiple identifiers, one for each signatory. For example, a bilateral France and Germany treaty gets two URNs (aliases) under either the fr or de jurisdiction (e.g., urn:lex:fr:etat:traite:... and urn:lex:de:staat:vertrag:...), since it belongs to both the French and German jurisdictions ๐Ÿ‡ซ๐Ÿ‡ท๐Ÿ‡ฉ๐Ÿ‡ช.

In states or organizations with multiple official languages, a document has multiple identifiers ๐ŸŒธ. Each identifier is written in a different official language, and it's basically a set of equivalent aliases. This setup lets people (or software) build the uniform name of the source of law in the same language the document itself uses ๐Ÿ—ฃ๏ธ (e.g., urn:lex:eu:council:directive:2004-12-07;31 and urn:lex:eu:consiglio:direttiva:2004-12-07;31) ๐Ÿ’–.

A document can also get more than one uniform name, so other documents can link to it more easily ๐Ÿ”—. This is useful for documents that are unique but get referenced from different angles, like the form of a document's promulgation and its specific content (e.g., a Regulation promulgated through a Decree of the President of the Republic) ๐Ÿ‘‘.

5.6. Structure of the Document Identifier at "Expression" Level ๐Ÿฆ‹

A legal text can have several expressions linked to specific versions or languages ๐ŸŒˆ.

Each version is defined by the period during which that text is considered in force or effective โณ. A version's lifetime ends when the next version is issued ๐Ÿ”š. New versions of a text can come into existence through:

  • amendments, from the issuing of other legal acts and the later production of updated or consolidated texts,
  • correction of publication errors (rectification or errata corrige), and
  • entry into or departure from a particular time span, depending on the specific date when different parts of a text come into force ๐Ÿ“….

Each version can be expressed in more than one language, and every language version gets its own specific identifier ๐ŸŒ. The identifier of a source of law expression adds that info to the work identifier using this main structure ๐Ÿง :

    expression = version [":" language]

Here's what each part means ๐ŸŽ€:

  • version: the identifier of the version of the original or amended source of law. Usually it's the promulgation date of the amending act, though other specific info can be used for particular documents ๐Ÿ“. If needed, the original version is specified by the string original, and it's written in the language of the act or version (check Section 7 for the details on this element) ๐Ÿ”.
  • language: the identification code of the language the document is written in, according to [RFC5646] (it=Italian, fr=French, de=German, etc.) ๐Ÿ—บ๏ธ. How specific the language gets (like Swiss German compared to standard German) is up to each jurisdiction ๐Ÿ‡จ๐Ÿ‡ญ. You don't need this info when the text is only in the sole official language of the country or jurisdiction ๐Ÿ™ƒ.

Here are some hypothetical examples of document identifiers for expressions ๐Ÿ’œ:

urn:lex:ch:etat:loi:2006-05-14;22@originel:fr
    (original version in French)
urn:lex:ch:staat:gesetz:2006-05-14;22@original:de
    (original version in German)
urn:lex:ch:etat:loi:2006-05-14;22@2008-03-12:fr
    (amended version in French)
urn:lex:ch:staat:gesetz:2006-05-14;22@2008-03-12:de
    (amended version in German)
urn:lex:be:conseil.etat:decision:2008-07-09;185.273@originel:fr
    (original version in French of a Belgian decision)

5.7. Structure of the Document Identifier at "Manifestation" Level

okay so to point at one specific manifestation, you take the uniform name of the expression and slap on a suffix with these main pieces ๐Ÿ’…

  • editor: the editorial staff who produced it, written using the publisher's Internet domain name. Publishers' domain names can change over time, so manifestations a publisher already assigned stay exactly as they are, even if the object they identify isn't reachable anymore ๐Ÿ˜ญ If the publisher wants its materials accessible again, it has to create a new manifestation with a new domain name for each object.
  • format: the digital format (XML, HTML, PDF, etc.) written using the MIME Content-Type standard [RFC2045], with the "/" swapped for a "-" sign ๐ŸŽ€
  • component: possible components of the expressions inside the manifestation. These get language-dependent labels for the whole document (in English, "all"), the main part of the document (in English, "body"), or the caption label of the component itself (like Table 1, Figure 2, etc.) ๐Ÿฆ‹
  • feature: other features of the document, like anonymized decision text โœจ

So the manifestation suffix reads like this:

manifestation = editor ":" format
                [":" component [":" feature]]

Each main element of the manifestation MAY be followed by extra specifications (separated by ";") to show features or quirks. Think the archive name and electronic publisher for the editor, or the version for the format ๐Ÿงš That means the main elements take these forms:

editor = publisher *(";" specification)

format = mime *(";" specification)

component = part *(";" specification)

feature = attribute *(";" specification)

The nitty-gritty syntax details of the manifestation element live in Section 8 in the related part ๐Ÿ“š

Now for the hypothetical examples, because they're giving everything ๐Ÿ“

First up, the original version of the Italian act 3 April 2000, n. 56 could have these manifestations and their uniform names:

  • PDF format (vers. 1.7) of the whole act, edited by the Italian Parliament:
urn:lex:it:stato:legge:2000-04-03;56$parlamento.it:
application-pdf;1.7
  • XML format (version 2.2 DTD NIR) of the text of the act, plus PDF format (version 1.7) of the "Figura 1" (figure 1) in the body, edited by the Italian Senate:
urn:lex:it:stato:legge:2000-04-03;56$senato.it:text-xml;
  dtd-nir-2.2:testo
urn:lex:it:stato:legge:2000-04-03;56$senato.it:
  application-pdf;1.7:figura.1

Next, the Spanish URN for the HTML format of the whole Judgment of the European Court of Justice n. 33/08 of 11/06/2009, in Spanish, published in the Jurifast database in anonymized form ๐Ÿซถ

urn:lex:eu:tribunal.justicia:sentencia:2009-06-11;33-08
@original:es$juradmin.eu;jurifast:text-html:todo:anonimo

It's really useful to be able to give a manifestation (or part of one) a uniform name when non-textual objects are involved ๐ŸŒˆ These could be multimedia objects that aren't text in their own right (like geographic maps or photographs), or texts stored in non-textual formats (like image scans of documents).

5.8. Sources of Law References

References to sources of law usually point at specific partitions of the act (an article, a paragraph, etc.), not the whole document ๐Ÿ’œ

From a legal point of view, a partition is always a text block that represents a logical subdivision of an act. Iconic ๐Ÿ‘‘

In the digital version, a partition is an element (a block of text) with its own ID. That ID is there to identify the element and find it, so you can either extract a partition or point to it ๐Ÿ”ฅ

For markup that doesn't match the logical structure of the text (like HTML), usually only the starting point of the partition gets identified, using a label like <a id=partitionID></a> in the HTML markup language [W3C.HTML]. Not the whole block or element, just the spot where it starts. So with this approach you can point to a partition but you can't extract it ๐Ÿ™ˆ

Partitions should get unique labels or IDs within the including document, and their value should be the same no matter what the document format is โœจ

To build partition identifiers that work across different collections of documents, specific construction rules for IDs or labels get defined and shared within each country or jurisdiction for every document type. For example, in legislation, paragraph 2 of article 3 might have the label or ID "art3;par2", and for case law, paragraph 22 of the judgment in Case 46/76 Bauhuis v Netherlands might have the value "par22" ๐Ÿฆ‹

It's also nice to stay compatible with apps that can handle this info (like returning the right element). This is especially handy for really long acts, like codes, constitutions, regulations, etc. For that to work, the partition identifier has to be sent to the servers (for resolution and application). So it can't be split off with the usual "#" character of a URI fragment, because that one never gets sent to the server ๐Ÿ’…

With all that in mind, the syntax of a reference is:

URN-reference = URN-document ["~" partition-id]

For example, to refer to paragraph 3 of article 15 of the French Act of 15 May 2004, n. 106, the reference can be "urn:lex:fr:etat:loi:2004-05-15;106~art15;par3" ๐Ÿ‡ซ๐Ÿ‡ท

If a different separator ("~") comes after the document name, the browser doesn't keep the partition ID. It gets sent along to the resolution process instead. If the partition syntax works with the media type being used, the resolver can grab just the referred partition (say, from a database). Otherwise, the whole act comes back ๐ŸŒธ

When resolving to HTTP, the resolver SHALL transform the partition ID into an appropriate internal reference (#) on the page, or go to the beginning if that point can't be found. The transformation goes into the URI fragment by adding the "#" character followed by the partition ID to the URL. So in the example above, the returned URL will be <URL-document>#art15;par3. Since the resolver knows how granular the act's markup is, it can use the hierarchical structure of the ID and drop any sub-partitions that aren't being addressed. In the previous example, if only the article was identified in the act, it could return just <URL-document>#art15 ๐Ÿงš

You're also allowed to use the general syntax (with "#"). In that case, only the URN document part of the reference gets sent to the resolver, so the whole document will always be retrieved ๐ŸŽ€

6. Specific Syntax of the Identifier at "Work" Level

6.1. The Authority Element

6.1.1. Indication of the Authority

The authority element of a uniform name can indicate any of these, depending on the case ๐Ÿ‘‘

  • The actual authority issuing the legal provision. To be specific, that's the authority adopting it or enacting it.
  • The institution where the provision is registered, known, and referenced, even if someone else produced it (for example, bills identified through a reference to the Chamber where they're presented).
  • The institution regulated by the legal provision (and referred to in citations), even when another authority issued it (for example, the statute of a Body).
  • The entity that proposed the legal material that hasn't entered the institutional process yet (for example, a proposed bill written by a political party).

6.1.2. Multiple Issuers

Some sources of law get enacted by several issuing parties (like inter-ministerial decrees, agreements, etc.). In that case, the authority element contains all the issuing parties, properly separated, like this:

authority = issuer *("+" issuer)

Here's an example: "ministry.justice+ministry.finances" ๐Ÿ’–

6.1.3. Indication of the Issuer

Each issuing authority is basically represented by either an institutional office (like Prime Minister) or an institution (like Ministry). If it's an institution, the authority gets indicated following the institution's hierarchy, going from more general to more specific (Council, Department, etc.), and ending with the relevant office (President, Director, etc.). So the structure of the issuer looks like this:

issuer = (institution *(";" body-function)) / office

Here's an example: "ministry.finances;department.revenues;manager" ๐ŸŒท

6.1.4. Indication of the Body

Depending on the kind of measure, the body inside the issuing authority is unambiguously determined (like the Council for Regional Acts), and it's usually left out of references. Just like in practice, the enacting authority only gets indicated to the minimum needed for the type of measure. So you'd write "region.tuscany:act" and not "region.tuscany;council:act" ๐Ÿ™ˆ

6.1.5. Indication of the Function

Generally, the function gets indicated, sometimes instead of the Body itself ๐Ÿ’…

  • For political, representative, or elective offices. For example, "university.oxford;rector:decree" instead of "university.oxford;rectorship:decree".
  • When referring to a top officer in the institution (like a general manager, general secretary, etc.), where it isn't always possible to tie a specific internal institutional structure to them. For example, "national.council.research;general.manager".

The function does NOT get indicated when it clearly matches the person in charge of an institution (usually a general director). In that case, only the structure gets indicated, not the person in charge. For example, "ministry.justice;department.penitentiary.administration" โœจ

The function MUST be indicated when:

  • It isn't the same as the director or the person in charge of the structure (for example, an undersecretary, a deputy director, etc.).
  • The type of measure can be either monocratic or collegial. Indicating the office clears up the ambiguity ๐Ÿ”ฅ

6.1.6. Conventions for the Authority

Acts and measures with the same relevance as an act, issued or enacted since the foundation of the State, have conventionally used "state" (written in each country's official language) as the authority ๐Ÿ‡ฎ๐Ÿ‡น The same convention applies to constitutions, codes (civil, criminal, civil procedure, criminal procedure, etc.), and international treaties ๐ŸŒˆ

6.2. The Measure Element

6.2.1. Criteria for the Indication of the Type of Measure

In uniform names, the issuing authority of a document is mandatory. That means there's no need to add any further qualification of the measure (like ministerial decree or directorial ordinance), even though those are widely used ๐Ÿฆ‹ When the authority and measure combination already identifies a specific document, the type of measure isn't defined through attributes that refer to the enacting authority. So it's "region.tuscany:act" and not "region.tuscany:regional.act" ๐Ÿ’œ

6.2.2. Further Specification to the Type of Measure ๐ŸŽ€

okay so in the measure element, it's usually enough to just say the type of measure ๐Ÿ’…. but people can't always pin a source of law down with the formal details (date and number), so they reference it by its vibes instead โœจ. that means the subject matter it covers (like accounting regulations), a nickname tied to whoever promoted it (like the Bolkestein directive), or the topic of the act (like Bankruptcy Law), and so on. when that happens, the type of measure MAY be followed by extra specifics that help with referencing, even if the formal details are missing ๐Ÿฆ‹:

measure = measure-type *(";" specification)

examples: "regulations;accounting" or "act;bankruptcy" ๐Ÿ“

6.2.3. Aliases for Sources of Law with Different Normative References ๐ŸŒˆ

some legislative measures are unique, but people cite them in different ways ๐Ÿ™ˆ. one act might get brought into the legal order as a presidential decree, a legislative decree, and so on, or it gets referred to by its legislative category, like regulations or consolidation. so the references still work in every case, an alias (an additional URN LEX identifier) gets added to the legislative form of the same act, and it takes the measure category into account ๐Ÿ”—. examples: "state:decree.legislative:1992-07-24;358" and "state:consolidation;public.contracts:1992-07-24;358" ๐Ÿ’œ

6.2.4. Relations Between Measure and Authority in the Aliases ๐Ÿ‘‘

sources of law with different normative references usually get introduced into legislation when an act is adopted or issued, and they're either included in it or attached to it. so you need an alias that links the two sides of the same document ๐Ÿซถ. the different measures can be:

  • Adopted or issued by an authority that's different from the one the provision regulates (like the statute of a Body). Here the link goes between two uniform names that each have a completely different authority element (e.g., italian.society.authors.publishers:statute and ministry.cultural.activities+ministry.finances.budget.economic.planning:decree). ๐ŸŽญ
  • Issued by the institution itself, either because it has issuing authority or through a proxy (e.g., a provision about how the Body itself functions). Then the two aliases share the first part of the authority (e.g., municipality.firenze:statute and municipality.firenze;council:deliberation). ๐Ÿ›๏ธ
  • Issued by the same Body to regulate a particular sector of its own competence. In this case the authority element is the same (e.g., ministry.justice:regulation;use.information.tools.telematic.process and ministry.justice:decree). โœจ

6.3. The Details Element ๐Ÿ“…

6.3.1. Indication of the Details

the details of a source of law usually include the date it was enacted and its identification number (the inclusion in the body of laws, registry, protocol, etc.) ๐Ÿ“œ

some measures have multiple dates. there are also cases where a measure has no number (unnumbered measures) or has several numbers (e.g., unified cases). for all these reasons, setting up both the date and number elements includes multiple values ๐Ÿซถ.

some institutions (e.g., Parliaments) usually identify documents by their period of reference (e.g., the legislature number) rather than by a date, which would be much less meaningful and never gets used in references (e.g., Senate bill S.2544 of the XIV legislature). in these cases, the period component gets swapped in for the date components ๐Ÿ”„.

usually the details of a measure aren't reported in any specific sequence. but the uniform name goes from general to specific, so the date-number sequence looks like this:

details = (dates / period) ";" numbers

examples: "2000-12-06;126" and "14.legislature;s.2544" ๐Ÿ’…

6.3.2. Multiple Dates ๐Ÿ—“๏ธ

some sources of law are unique, but they're still identified by more than one date. in that case, all the given dates get reported like this:

dates = date *("," date)

for example, the measure of the Data Protection Authority of December 30, 1999-January 13, 2000, No. 1/P/2000 has this uniform name:

personal.data.protection.authority:measure:1999-12-30,2000-01-13;1-p-2000

as Section 3.6 says, all the dates can use the date typical of the jurisdiction in addition to the ISO format ๐ŸŒ.

6.3.3. Unnumbered Measures ๐Ÿ•ต๏ธ

measures that aren't officially numbered in the publications might have a non-unequivocal identifier, because several measures of the same type can exist and can be issued on the same day by the same authority ๐Ÿ˜ฌ. so the uniform name is unambiguous, the numbers field MUST, in any case, contain a discriminating element. this can be any identifier used internally and not published by the authority (e.g., protocol) ๐Ÿ”.

if the authority doesn't have its own identifier, one identifier MUST be created for the name system. to tell it apart easily, that number gets the prefix "lex-":

number-lex = "lex-" 1*DIGIT

example: "ministry.finances:decree:1999-12-20;lex-3" โœจ

it's the responsibility of the authority issuing a document to assign it a discriminating specification. when there are multiple authorities, only one of them is responsible for assigning the number to the document (e.g., the proponent) ๐Ÿค.

unnumbered measures published in an official publication (e.g., the Official Gazette) are recognized by the univocal identifying label printed on the paper, instead of a progressive number ๐Ÿ–จ๏ธ. even if that identifier is unofficial but assigned to a document in an official publication, it's preferred, because it has the clear advantage of being public and therefore easier to find ๐Ÿ”.

6.3.4. Multiple Numbers ๐Ÿ”ข

some legal documents (e.g., bills) are unique, but they're still identified by a set of numbers (e.g., the unification of cases or bills). in this case, all the identifiers go in the numbers field, following this structure:

number = document-id *("," document-id)

example: "2000-06-12;c-10-97,c-11-97,c-12-97" ๐Ÿ’–

the characters that aren't allowed (e.g., "/") or are reserved (e.g., ":"), including the comma, can't exist inside the document-id, so they MUST be turned into "-". no sneaking commas in there, bestie ๐Ÿ™…โ€โ™€๏ธ

when special characters in the number of the act are distinctive of the act itself (e.g., bill n. 123-bis (removal of 123) and n. 123/bis (return of 123)) and would disappear when converted to "-", a further ending must be added to tell the acts apart (e.g., bill n.123-bis-removal and 123-bis-return) ๐ŸŽ€.


6.4. The Annex Element ๐Ÿ“Ž

6.4.1. Formal Annexes

annexes are an integral part of a legal document, but they can get referred to and amended separately from the act they're annexed to ๐Ÿงš. so both the main document as well as each formal individual annex need to be unequivocally identified ๐Ÿชช.

formal annexes can be registered as separate parts or together with a legal provision, and they may or may not be autonomous in nature. either way, they MUST be given a uniform name that includes the uniform name of the source of law they're attached to, plus a suffix that identifies the annex itself ๐Ÿ’œ.

the suffix of a formal annex includes the official heading of the annex and, maybe, further specifications (e.g., the title) that make it easier to retrieve the annex if the identifier goes missing:

annex = annex-id *(";" specification)

example:

region.sicily;council:deliberation:1998-02-12;14:annex.a;borders.park

the characters that aren't allowed (e.g., "/") or that are reserved (e.g., ":") must not be featured in the annex-id, so they MUST be turned into ".". ๐ŸŒธ

6.4.2. Annexes of Annexes ๐Ÿช†

when there are annexes to an annex, their identifiers get created by adding the identifiers of the annexes connected to it (meaning attached to it) onto the identifier of the original annex. for example, Table 1 attached to Annex A of the preceding legal act has this uniform name:

region.sicily;council:deliberation:1998-02-12;14:annex.a;borders.park:table.1;municipality.territories

7. Specific Syntax of the Version Element of the "Expression" ๐Ÿ“š

7.1. The Version Element ๐Ÿฆ‹

7.1.1. Different Versions of a Legislative Document ๐ŸŒŸ

an updated text of a document can take one of the following forms:

  • "multi-version": specific markups identify the modified parts (added, substituted, or deleted parts) and their related periods of effectiveness, all inside a single object (e.g., an XML file). this kind of document can show up in different forms depending on the requested date of effectiveness. a set of metadata usually holds the life cycle of the document (from the original to the last modification), including the validity time interval of each version and of each related text portion. ๐Ÿงฉ
  • "single-version": a new and distinct object is created for each amendment to the text at a given time. each object is characterized by its own period of validity. either way, all the versions SHOULD be linked to one another and immediately navigable. ๐Ÿ”—

in a "multi-version" document, each time interval should have a link to the related in-force document version that can be displayed. in a "single-version" document, the metadata should contain links to all the previous modifications and a link only to the following version, if any. ๐Ÿ’…

[RFC8288] can be used as a reference to establish links between different document versions, either in the "multi-version" or in the "single-version" document. according to [RFC8288], the following relations are useful:

  • current (or last or last-version): in-force version โœจ
  • self: this version ๐Ÿชž
  • next: next version โญ๏ธ
  • previous: previous version โฎ๏ธ
  • first: original version ๐ŸŒฑ

It is RECOMMENDED that these relations be inserted in the header of each version (if "single-version") or associated to each entry containing a single URN (if "multi-version"). main character energy, fr fr ๐ŸŒˆ

7.1.2. Identification of the Version โœจ

okay bestie, so if you want to tell the different time versions of the same act apart, you have to slap a special suffix onto the uniform name of the original document ๐ŸŽ€

That suffix is all about each version of a legal provision, and it starts with (first and foremost) one of these:

  • The issuing date of the last amending measure taken into account. ๐Ÿ“…
  • The date that the communication of the rectification or errata corrige was published. ๐Ÿฉท
  • A specification that must identify the reason concerning the amendment (e.g., the specific phase of the legislative process), for the cases in which the date is not usually used (e.g., bills). ๐ŸŒธ

It's also possible to add extra specifications so each version stays distinct and the identifier is totally unequivocal ๐Ÿ” Examples include changes to the in-force or effectiveness of a formal partition or portion of the text (e.g., when the amendments introduced by an act are applied at different times), or different events happening on the same date. Main character energy for the identifier ๐Ÿ‘‘

      version = (amendment-date / specification)
                *(";" (event-date / event))

where:

  • amendment-date: Contains the issuing date of the last considered amendment or of the last communication of amendment. If the original text introduces differentiated periods in which an act is effective and the information system produces one version for each of them, this element contains the string "original" expressed in the language of the act or version. ๐Ÿฆ‹
  • specification: Contains any information that is useful to identify the version unambiguously and univocally. ๐Ÿ’œ
  • event-date: Contains the date in which a version is put into force, is effective, or is published. ๐Ÿ“†
  • event: A name assigned to the event producing a further version (e.g., amendment, decision, etc.). โœจ

So why use the issuing date of an amending act as the identifier? Because it can be pulled straight from the heading (formal data), and that's iconic ๐Ÿ’… For example, the name state:royal.decree:1941-01-30;12@1998-02-19 identifies the updated text of the "Royal Decree of 30/1/1941, No. 12" with the amendments introduced by the "Law Decree of 19/2/1998, No. 51", without any indication of its actual entry into force. Then the same uniform name with the extra ending ;1999-01-01 points to the in-force or effective version starting on a different date (1/1/99). ๐Ÿ—“๏ธ

Here's the big one ๐Ÿšจ For full compatibility, every update of text, or of the effectiveness, of a "multi-version" document means creating a new uniform name, even if the object is single, containing the identifier of the virtually generated version, the same way a "single-version" document does. Specific metadata will link every uniform name to the period of time during which that name, and its matching text, is considered valid. For instance, the "multi-version" document containing "R.D. of 01/30/1941, no. 12", updated by the amendments introduced by the "D.Lgs. of 02/19/1998, no. 51", holds the name of the original version state:royal.decree:1941-01-30;12 AND the name of the updated version state:royal.decree:1941-01-30;12@1998-02-19. It's giving organized ๐Ÿ—‚๏ธ

Heads up ๐Ÿ™ˆ If there are attachments or annexes, creating a new version (even if only one component changed) means creating a new uniform name for ALL the connected objects, so everything stays aligned: the main document, the attachments, and the annexes.

And as specified in Section 3.6, all the dates can have the date typical of the jurisdiction in addition to the date in ISO format ๐ŸŒโœจ


8. Summary of the Syntax of the Uniform Names of the LEX Namespace ๐Ÿ“œ

Okay, this is the grammar recap, and it's honestly so satisfying to look at ๐Ÿซถ

   ; Structure of a Uniform Resource Name (URN) of the LEX namespace
   ; - NID = LEX namespace identifier
   ; - NSS = LEX Namespace Specific String
   URN = "urn:" NID ":" NSS
   NID = "lex"

   ; Structure of a LEX specific name
   NSS = jurisdiction ":" local-name

   ; Structure of the jurisdiction element
   jurisdiction = jurisdiction-code *(";" jurisdiction-unit)
   jurisdiction-code = 2*alf-dot
   jurisdiction-unit = alf-dot

   ; Structure of the local-name element
   local-name = work ["@" expression] ["$" manifestation]

   ; Structure of the work element
   work = authority ":" measure ":" details *(":" annex)

   ; Structure of the authority element
   authority = issuer *("+" issuer)
   issuer = (institution *(";" body-function)) / office
   institution = alf-dot
   body-function = alf-dot
   office = alf-dot

   ; Structure of the measure element
   measure = measure-type *(";" specification)
   measure-type = alf-dot
   specification = alf-dot

   ; Structure of the details element
   details = (dates / period) ";" numbers
   dates = date *("," date)
   period = alf-dot
   numbers = number / number-lex
   number = (document-id *("," document-id))
   document-id = alf-dot-oth
   number-lex = "lex-" 1*DIGIT

   ; Structure of the annex element
   annex = annex-id *(";" specification)
   annex-id = alf-dot

   ; Structure of the expression element
   expression = version [":" language]

   ; Structure of the version element
   version = (amendment-date / specification)
             *(";" (event-date / event))
   amendment-date = date
   event-date = date
   event = alf-dot

   ; Structure of the language element
   language = 2*3alfa *["-" extlang] / 4*8alfa
   extlang  = 3alfa *2("-" 3alfa)

   ; Structure of the manifestation element
   manifestation = editor ":" format
                   [":" component [":" feature]]
   editor = publisher *(";" specification)
   publisher = alf-dot-hyp
   format = mime *(";" specification)
   mime = alf-dot-hyp
   component = part *(";" specification)
   part = alf-dot-hyp
   feature = attribute *(";" specification)
   attribute = alf-dot-hyp

   ; Structure of the date
   date = date-iso ["|" date-loc]
   date-iso = year "-" month "-" day
   year = 4DIGIT
   month = 2DIGIT
   day = 2DIGIT
   date-loc = *(alfadot / other)

   ; Allowed, reserved and future characters
   ; - allowed = alfadot / other / reserved
   ; - reserved = ":" / "@" / "$" / "+" / "|" / ";" / "," / "~"
   ; - future   = "*" /  "!"
   alf-dot = alfanum *alfadot
   alf-dot-hyp = alfanum *(alfadot / "-")
   alf-dot-oth = alfanum *(alfadot / other)
   alfadot = alfanum / "."
   alfa = lowercase / uppercase
   alfanum = alfa / DIGIT / encoded
   lowercase = %x61-7A        ; lower-case ASCII letters (a-z)
   uppercase = %x41-5A        ; upper-case ASCII letters (A-Z)
   DIGIT     = %x30-39        ; decimal digits (0-9)
   encoded   = "%" 2HEXDIG
   HEXDIG = DIGIT / %x41-46 / %x61-66 ; hex digits (0-9,A-F,a-f)
   other    = "-" / "_" / "'" / "=" / "(" / ")"

9. Procedure of Uniform Names Assignment ๐ŸŽ€

9.1. Specifying the Jurisdiction Element of the LEX Identifier ๐ŸŒ

So under the LEX namespace, every country or international organization gets a jurisdiction-code, which characterizes the URNs of that country's or jurisdiction's sources of law ๐Ÿ’– The code is assigned based on the ccTLD representation (or the TLDN (Top-Level Domain Name) or DN (Domain Name) for organizations), and it's the value of the jurisdiction-code element, which keeps the identifiers unique across countries. Cross-country uniqueness, iykyk ๐Ÿซถ

9.2. Jurisdictional Registrar for Names Assignment ๐Ÿ—‚๏ธ

Any country or jurisdiction that wants to adopt this schema MUST identify a Jurisdictional Registrar. This is the organization that shares and defines the structure of the optional part (jurisdiction-unit) of the name, depending on how the state or institution is organized (for details, see Section 2.2). It must appoint a Jurisdictional Registrar and must apply the Designated Experts to register the new jurisdiction-code ๐Ÿ“

For example, in a federal state, a jurisdiction-unit matching each Member State (e.g., "br;sao.paulo", "br;minas.gerais", etc.) may be defined ๐Ÿ‡ง๐Ÿ‡ท

The process of assigning the local-name is managed by each specific country or jurisdiction under the related jurisdiction element ๐Ÿงš

In any country, the Jurisdictional Registrar shares and defines how the primary elements (issuing authority and type of legal measure) of the local-names get assigned, based on the characteristics of its own state or institution organization ๐Ÿ›๏ธ

The Jurisdictional Registrar MUST establish, following the guidelines in this document, a uniform procedure within the country or organization for defining local-name elements, making decisions about normalizations, solving and avoiding possible name collisions, and maintaining authoritative registries of various kinds (e.g., for authorities, types of measures, etc.). Accurate point-in-time representations of the structure and naming of government entities are important to semantically aware applications in this domain, so this really matters ๐Ÿ‘‘

The Jurisdictional Registrar also shares and defines the rules for constructing partition IDs for each document type, possibly matching those already defined in other jurisdictions ๐ŸŒˆ

Finally, the Jurisdictional Registrar will develop and publish the rules and guidelines for constructing the local-name, plus the predefined values and codes. It should also promote the LEX URN identifier for the sources of law of its jurisdiction ๐Ÿ“ฃ

All institutional bodies that adopt the LEX URN identification system in a country or jurisdiction have to follow these rules, and so do private publishers. Each of them is responsible for assigning names within their own domains ๐Ÿซถ

9.3. Identifier Uniqueness ๐Ÿ”‘

Identifiers in the LEX namespace are defined through a jurisdiction element assigned to the sources of law of a specific country or organization, and a local-name is assigned by the issuing authority in conformance with the syntax defined in Section 5. The main elements (authority and type of measure) of the local-name are defined by the Jurisdictional Registrar, so that the constructed URNs are guaranteed to be unique ๐Ÿ” The Jurisdictional Registrar MUST provide clear documentation of the rules by which names are to be constructed, and MUST update its registries and make them accessible ๐Ÿ“š

Any enacting authority is responsible for defining formal parameters that guarantee local-name uniqueness. If necessary, it attributes a conventional internal number which, combined with the other local-name components (authority, measure, and date), builds a unique identifier ๐Ÿงฉ Uniqueness is achieved by checking against the catalogue of previously assigned names. Name collisions? Not on my watch ๐Ÿ’…

9.4. Identifier Persistence Considerations ๐Ÿฆ‹

okay bestie, so persistence is all about how long the institutions handing out identifiers stick around ๐Ÿ›๏ธ๐Ÿ’– like the names are only as durable as the orgs behind them. The whole goal of the LEX schema is to keep every resource named by an assigned URN unique and persistent โœจ main character energy for sure.

In particular, CNR is responsible for maintaining the uniqueness of the jurisdiction element ๐Ÿ‘‘. The jurisdiction is based on the long-held ccTLD representation of the country (or the TLDN or DN of the organization), and that code is expected to continue indefinitely, so the URN also persists indefinitely ๐ŸŒˆ literally forever vibes.

The naming rules are designed to hand off the job of keeping names unique to a set of authorities identified within each country or organization ๐Ÿซถ.

So each authority is responsible for assigning URNs with a very long life expectancy that can stay unique for the foreseeable future ๐Ÿ”ฎ. Practical and political considerations, plus all the different ways governments organize themselves, will result in different methods of assigning responsibility for different levels of the name ๐ŸŒธ.

When an authoritative hierarchy can't pull this off, it's highly desirable to build consensus around a series of published rules for creating and administering names, run by institutions and bodies that operate through collaboration rather than compulsion ๐Ÿค๐Ÿ’œ.

Issuing authorities that work at more localized scopes, from national all the way down to very local, MUST equally take responsibility for the persistence of identifiers within their scope ๐Ÿšจ.


10. Recommendations for the Resolution Process ๐Ÿงš

10.1. General Architecture of the System ๐ŸŒ

okay so the job of the resolution service is to match a LEX identifier with a specific document address on the Internet ๐Ÿฆ‹. Unlike systems built around rigorous, enforceable engineering premises, like DNS, the LEX namespace resolver is going to be expected to handle a wide variety of inputs that are incomplete or partially incorrect ๐Ÿ’€, especially the ones created by automatically pulling references out of texts. So this document really leans into a flexible, robust resolver design ๐Ÿ’….

The system has a distributed architecture built on two fundamental pieces: a chain of information in the DNS, and a series of resolution services going from URNs to URLs, each one competent within its own specific domain of the namespace ๐Ÿซง.

The client grabs the document linked to this URN using the procedure in [RFC3404], which kicks off with a DNS NAPTR query ๐ŸŽ€.

A resolution service can delegate the resolution and management of hierarchically dependent portions of the name ๐Ÿช„. Delegation of this responsibility will not be unreasonably withheld, provided that the processes for resolving and managing them are robust and actually followed โœจ.

For the LEX namespace, CNR will 1) maintain the root zone of the chain resolution, equivalent to lex.urn.arpa (see [RFC3405]), in the lex-nameserver.nic.it (see Section 12) and 2) update the DNS information with a new record to delegate the relative resolution when a new country (e.g., br) or organization is added (see Section 2.2). This delegation may be obtained by a regular expression that matches the initial part of the URN (e.g., urn:lex:br) and redirects towards the proper zone (e.g., lex.senado.gov.br).

Likewise, the institution responsible for the jurisdiction uniform names (e.g., urn:lex:br) has the task of managing the relative root in the DNS system (e.g., the lex.senado.gov.br zone) and routing the resolution towards its resolvers based on parts of the uniform names. In a similar way, it can delegate the resolution of country/organization sub-levels (e.g., urn:lex:br;sao.paolo) towards the relative zone (e.g., lex.sao-paolo.gov.br).

Such a DNS routing chain does not work for all the URN components containing percent-encoded characters ๐Ÿ™ˆ. Therefore, when converting a LEX URN in UTF-8 code to a DNS query, clients MUST perform any necessary punycode conversion [RFC5891] before sending the query ๐Ÿšจ.

The resolution service is made up of two elements: a knowledge base (consisting in a catalogue or a set of transformation rules) and software to query the knowledge base ๐Ÿง .

10.2. Catalogues for Resolution ๐Ÿ“š

Incompleteness and inaccuracy are pretty frequent in legal citations, so incomplete or inaccurate uniform names of the referred document are likely to be built from textual references (this is even more frequent if they're created automatically through a specific parser ๐Ÿค–). For this reason, implementing a catalogue based on a relational database is suggested, since it leads to higher flexibility in the resolution process ๐Ÿ’–.

In addition, the catalogue must manage the aliases, the various versions and languages of the same source of law, and the related manifestations ๐ŸŽ€.

It is suggested that each enacting authority implement its own catalogue, assigning a corresponding unambiguous uniform name to each resource ๐ŸŒŸ.

10.3. Suggested Resolver Behavior ๐Ÿ”

First, the resolver SHOULD separate the part corresponding to the partition ID from the document name, with the ~ separator โœ‚๏ธ.

The resolution process SHOULD implement a normalization of the uniform name to be resolved ๐Ÿ’…. This may involve transforming some components to the canonical form (e.g., filling out the acronyms, expanding the abbreviations, unifying the institution names, standardizing the type of measures, etc.). For this function, authorities and types of measure registries are useful ๐Ÿ“‹.

The resolver SHOULD then query the catalogue searching for the URN that corresponds exactly to the given one (normalized if necessary). Since the names coming from the references may be inaccurate or incomplete, an iterative and heuristic approach (based on partial matches) is indicated ๐Ÿซง. Incomplete references (not including all the elements to create the canonical uniform name) are normal and natural; for a human reader, the reference would be "completed" by contextual understanding of the reference in the document in which it occurs ๐Ÿซถ.

In this phase, the resolver should use the partition ID information to retrieve, if it is possible, only the referred partition; otherwise, the entire document is returned ๐Ÿ“ฆ.

Lacking more specific indications, the resolver SHOULD select the best (most recent) version of the requested source of law and provide all the manifestations with their related items ๐Ÿ—‚๏ธ. A more specific indication in the uniform name to be resolved will, of course, result in a more selective retrieval, based on any suggested expression and/or manifestations components (e.g., date, language, format, etc.).

Finally, the resolver SHOULD append the # character followed by the partition ID to URLs, to create URI fragments for browser pointing ๐ŸŒˆ.


11. Security Considerations ๐Ÿ”

Security considerations are the ones normally associated with using and resolving URNs in general ๐Ÿ›ก๏ธ. Additional security considerations about the authenticity of a document don't pertain to the LEX specifications, but they do pertain to security and trust issues that can be addressed with other means, like digital signatures, data encryption, etc. ๐Ÿ”‘ So that part is on other tools, not LEX alone, bestie.


12. IANA Considerations ๐Ÿ“

IANA has registered LEX namespace in the "Formal URN Namespaces" registry [RFC8141] ๐Ÿ’œ.

In addition, to activate a distributed resolution system, IANA has registered the following NAPTR record in the URN.ARPA domain ๐Ÿงš:

lex.urn.arpa.
    IN NAPTR  100  10  ""  ""  ""  lex-nameserver.nic.it.

Note that lex-nameserver.nic.it indicates the CNR server (see Section 2.2) that is responsible for the resolution of the LEX namespace at the time of this writing ๐ŸŒธ.


13. References โœจ

13.1. Normative References ๐Ÿ“š

13.2. Informative References ๐Ÿฆ‹

  • [FRAN] Francesconi, E., "Technologies for European Integration. Standards-based Interoperability of Legal Information Systems", ISBN 978-88-8398-050-3, 2007.
  • [FRBR] International Federation of Library Associations and Institutions, "Functional Requirements for Bibliographic Records", February 2009, <https://www.ifla.org/files/assets/cataloguing/frbr/frbr_2008.pdf>.
  • [HCPIL] The European Commission, "Access to Foreign Law in Civil and Commercial Matters", The Hague Conference on Private International Law, February 2012, <https://assets.hcch.net/docs/b093f152-a4b3-4530-949e-65c1bfc9cda1.pdf>.
  • [ISBD] The Standing Committee of the IFLA Cataloguing Section Berlin/Munich: De Gruyter Saur, "ISBD: International Standard Bibliographic Description โ€“ Consolidated Edition", ISBN 978-3-11-026379-4, 2011.
  • [ISO.3166-1] ISO, "Codes for the representation of names of countries and their subdivisions - Part 1: Country codes, ISO 3166-1:2020, 2020.", 2020.
  • [LVI] Peruginelli, G., Ed. and M. Ragona, Ed., "Law via the Internet. Free Access, Quality of Information, Effectiveness of Rights", ISBN 9788883980589, April 2009.
  • [SART] Sartor, G., Palmirani, M., Francesconi, E., and M. Biasiotti, "Legislative XML for the Semantic Web: Principles, Models, Standards for Document Management", ISBN 978-94-007-1887-6, 2011.
  • [SPIN] Spinosa, P., "Identification of Legal Documents through URNs (Uniform Resource Names)", Proceedings of the EuroWeb 2001, The Web in Public Administration , 2001.
  • [W3C.RDF-SCHEMA] Brickley, D., Ed. and R. Guha, Ed., "RDF Schema 1.1", W3C REC rdf-schema, W3C rdf-schema, February 2014, <https://www.w3.org/TR/rdf-schema/>.

Acknowledgements โœจ

The authors wish to thank all those who provided suggestions and comments. ๐Ÿซถ

The authors are grateful to the Legislative XML community [SART] for the interesting discussions on this topic, and to the Working Group "Identification of the legal resources through URNs" of the Italian NormeInRete project for the guidance provided [SPIN]. ๐Ÿ’œ

The authors owe a debt of gratitude to Tom Bruce, former director of the Legal Information Institute of the Cornell University Law School, for his contribution in revising this document and sharing fruitful discussions that greatly improved the document. The authors wish to specially thank Marc van Opijnen (Dutch Ministry of Security and Justice) for his valuable comments on LEX specifications, which contributed to improving this document, as well as for the common work aimed to harmonize the ECLI and LEX specifications. Thanks also to Joao Alberto de Oliveira Lima, Legislative System Analyst of the Brazilian Federal Senate, and to Attila Torcsvari, Information Management Consultant, for their detailed comments on the first draft versions of this document, which provided significant improvements to the final document. Thanks also to Robert Richards of the Legal Information Institute (Cornell University Law School), promoter and maintainer of the Legal Informatics Research social network, as well as to the members of this network, for their valuable comments on this document. ๐ŸŒˆ

Finally, many thanks go to Loriana Serrotti, who significantly contributed to the first draft versions of this document. ๐ŸŽ€

Authors' Addresses ๐ŸŽ€

PierLuigi Spinosa
Via Zanardelli, 15
50136 Firenze
Italy
Phone: +39 339 5614056
Email: pierluigi.spinosa@gmail.com
Enrico Franceseconi
National Research Council of Italy (CNR)
Via de' Barucci, 20
50127 Firenze
Italy
Phone: +39 055 43995
Email: enrico.francesconi@cnr.it
Caterina Lupo
Via San Fabiano, 25
117 Roma
Italy
Phone: +39 3382632348
Email: caterina.lupo@gmail.com
๐Ÿ“ฆ where this page comes from