<?xml version='1.0' encoding='utf-8'?> version="1.0" encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
  <!ENTITY RFC952 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.0952.xml"> nbsp    "&#160;">
  <!ENTITY RFC1034 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml"> zwsp   "&#8203;">
  <!ENTITY RFC1035 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"> nbhy   "&#8209;">
  <!ENTITY RFC1123 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1123.xml">
<!ENTITY RFC2026 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2026.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2181 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2181.xml">
<!ENTITY RFC3986 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml">
<!ENTITY RFC4343 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4343.xml">
<!ENTITY RFC5234 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY RFC5378 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5378.xml">
<!ENTITY RFC8141 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8141.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8179 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8179.xml">
<!ENTITY RFC2782 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2782.xml">
<!ENTITY RFC2483 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2483.xml">
<!ENTITY RFC2843 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2843.xml">
<!ENTITY RFC3401 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3401.xml">
<!ENTITY RFC3402 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3402.xml">
<!ENTITY RFC3403 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3403.xml">
<!ENTITY RFC3833 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3833.xml">
<!ENTITY RFC3958 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3958.xml">
<!ENTITY RFC4848 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4848.xml">
<!ENTITY RFC5385 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5385.xml">
<!ENTITY RFC8484 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8484.xml"> wj     "&#8288;">
]>

<rfc submissionType="IETF" docName="draft-urn-ddi-06" xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="independent" category="info" ipr="trust200902">
	<!-- Generated by id2xml 1.5.0 on 2023-08-15T00:38:32Z -->
	<?rfc strict="yes"?>
	<?rfc compact="yes"?>
	<?rfc subcompact="no"?>
	<?rfc symrefs="yes"?>
	<?rfc sortrefs="no"?>
	<?rfc text-list-symbols="oo*+-"?>
	<?rfc toc="yes"?> docName="draft-urn-ddi-06" number="9517" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" version="3">

	<front>
    <title abbrev="A Uniform Resource Name (URN) Namespace ">A Uniform Resource Name (URN) URN Namespace">A URN Namespace for the Data Documentation Initiative (DDI)</title>

<!-- [rfced] Please review - two email addresses were included in original draft
joachim.wackerow@posteo.de and secretariat@ddialliance.org -->
    <seriesInfo name="RFC" value="9517"/>
	<author initials="J." surname="Wackerow" fullname="Joachim Wackerow">
      <organization abbrev="DDI Alliance">c/o The Data Documentation Initiative Alliance (DDI Alliance)</organization>
	<address><postal>
	  <street>ICPSR,
      <address>
        <postal>
          <extaddr>ICPSR, University of Michigan</street> Michigan</extaddr>
          <street>PO Box 1248</street>
          <city>Ann Arbor</city>
          <region>MI</region>
          <code>48106-1248</code>
	  <country>USA</country>
          <country>United States of America</country>
        </postal>
        <email>joachim.wackerow@posteo.de</email>
        <email>secretariat@ddialliance.org</email>
        <uri>ddialliance.org</uri>
      </address>
    </author>
    <date year="2023" month="August"/>

<!-- [rfced] Please insert any keywords (beyond those that appear in the title) for use on https://www.rfc-editor.org/search. -->

<keyword>example</keyword>

	<abstract><t>
   This year="2024" month="January"/>

    <keyword>URN resolution</keyword>

    <abstract>
      <t>This document describes the Namespace Identifier (NID) "ddi" for
      Uniform Resource Names (URNs) used to identify resources that conform to
      the standards published by the Data Documentation Initiative (DDI) Alliance (<eref target="https://ddialliance.org/"/>).</t>

	<t>
   The
      Alliance.</t>
      <t>The DDI Alliance is not affiliated with the Internet Engineering Task
      Force (IETF) or Internet Society (ISOC); and as an
   independent submission, it does (ISOC).  This Independent Submission is
      not a standard nor does it have IETF community consensus.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" anchor="sect-1"><t>
   This anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>

      <t>This document registers a formal namespace identifier Namespace Identifier (NID) for
   Uniform Resource Names <xref target="RFC8141"/> URNs
      associated with DDI resources in accordance with the
      process defined in <xref target="RFC8141"/>.</t>

	<t>
   The target="RFC8141" format="default"/>.</t>
      <t>The DDI Alliance is an international collaboration dedicated to
      establishing metadata standards and semantic products for describing
      social science data, data covering human activity, and other data based
      on observational methods. DDI specifications are free standards that can
      document and manage different stages in the research data lifecycle,
      such as conceptualization, collection, processing, distribution,
      discovery, and archiving.  Documenting data with DDI facilitates
      understanding, interpretation, and use -- by people, software systems,
      and computer networks.</t>

	<t>
   The
      <t>The specifications DDI Codebook <xref target="DDIC"/> target="DDI-C"
      format="default"/> and DDI Lifecycle <xref target="DDIL"/> target="DDI-L"
      format="default"/> are expressed in XML Schema, Schema; DDI XKOS - Extended Knowledge
      Organization System (XKOS) <xref target="DDIXKOS"/> target="DDI-XKOS" format="default"/>
      in OWL/RDF, SDTL - OWL/RDF; Structured Data Transformation Language (SDTL) <xref target="SDTL"/>
      target="DDI-SDTL" format="default"/> in JSON
   Schema, Schema; and the upcoming
      DDI - Cross Domain Integration (DDI-CDI) in UML. DDI is aligned with
      other metadata standards like Dublin Core Metadata Initiative <xref target="DUBLINC"/>,
      target="DUBLINC" format="default"/>; Statistical Data and Metadata
      Exchange <xref target="SDMX"/> target="SDMX" format="default"/> for exchanging aggregate data,
      data; ISO/IEC 11179 <xref
   target="IS11179"/> target="IS11179" format="default"/> for
      building metadata registries registries, such as question, variable, and concept banks,
      banks; and ISO 19115 <xref target="IS19115"/> target="ISO.19115.2003" format="default"/>
      for supporting geographic information systems.</t>

	<t>
   DDI
      <t>DDI URNs support reusability of DDI resources inside a single DDI
      instance and in a distributed network of DDI instances.</t>

	<t>
   The
      <t>The DDI specification is developed and maintained by the DDI
      Alliance <xref target="DDIALL"/>. target="DDI-ALL" format="default"/>. The DDI Alliance is
      a self-sustaining membership organization whose over 40 member 40-member
      institutions have a voice in the development of the DDI
      specifications. This memo describing the ddi URN is an informational
      specification. It is not a standard and is not the product of the
      IETF.</t>
    </section>
    <section title="Conventions used anchor="sect-2" numbered="true" toc="default">
      <name>Conventions Used in this document" anchor="sect-2"><t> This Document</name>
        <t>
    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
   "MAY", "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
    NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document are
    to be interpreted as described in BCP 14 BCP&nbsp;14 <xref target="RFC2119"/>
    <xref target="RFC8174"/> when, and only when, they appear in all capitals,
    as shown here.</t> here.
        </t>
      <t>
   In this document, these words will appear with that interpretation
   only when in ALL CAPS. Lower case Lowercase uses of these words are not to
   be interpreted as carrying RFC 2119 <xref target="RFC2119" format="default"/> significance.</t>

	<t>
   "DDI": Data
      <dl newline="false" spacing="normal">
	<dt>DDI:</dt>
	<dd>Data Documentation Initiative. The single term is often used as a
	synonym for the DDI specification.</t>

	<t>
   "DDI agency": An specification.</dd>
	<dt>DDI agency:</dt>
	<dd>An organization which that maintains DDI resources.</t>

	<t>
   "DDI Alliance": Alliance for the Data Documentation Initiative
   (DDI).</t> resources.</dd>
      </dl>
    </section>
    <section title="Specification" anchor="sect-3"><t>
   This anchor="sect-3" numbered="true" toc="default">
      <name>Specification</name>
      <t>This section provides the information required to register a formal
      namespace according to the registration procedure defined in <xref target="RFC8141"/>.
      target="RFC8141" format="default"/>. The URNs conform to the syntax
      defined in <xref target="RFC8141"/>.</t> target="RFC8141" format="default"/>.</t>
      <section title="Declaration anchor="sect-3.1" numbered="true" toc="default">
        <name>Declaration of Syntactic Structure"
   anchor="sect-3.1"><section title="Description" anchor="sect-3.1.1"><t> Structure</name>
        <section anchor="sect-3.1.1" numbered="true" toc="default">
          <name>Description</name>
          <t> The
   Namespace Specific String (NSS) of all URNs using the "ddi" NID is a
   globally unique identifier consisting of the DDI agency identifier agency-identifier
   (registration authority identifier), the identifier of the DDI resource
   (data identifier), and the version of the resource (version identifier) (version-identifier)
   <xref target="DDIID"/>. target="DDI-ID" format="default"/>. This structure is according to the International
   Registration Data Identifier (IRDI) defined in ISO/IEC 11179 Information "Information
   technology - Metadata registries (MDR) - Part 6: Registration, Registration", Annex A
   <xref target="IS11179"/>.</t> target="IS11179" format="default"/>.</t>

          <t>
   A description of the DDI resource identification is available in
   the DDI Identification section of the "DDI Lifecycle (3.3) 3.3 Technical Guide, section Identification Guide"
   <xref target="DDIID"/>.</t> target="DDI-ID" format="default"/>.</t>
          <t>The DDI NSS has the following structure:</t>

	<figure>
	  <artwork><![CDATA[

          <artwork name="" type="" align="left" alt=""><![CDATA[
   <agency-identifier>:<resource-identifier>:<version-identifier>
]]></artwork>
  </figure>

	<t>
   agency-identifier

          <t>agency-identifier is the identifier of a DDI agency that
          maintains DDI resources. This identifier basically follows the rules
          of reversed domain names and is case-insensitive. case insensitive. This way, the DNS
          resolution of DDI agency
   identifiers agency-identifiers is supported. The hierarchy of
          domains descends from the left to the right label in the name; each
          label to the right specifies a subdivision, or subdomain subdomain, of the
          domain to the left. The left-most label of agency-identifier conveys
          the top-level domain. It SHALL <bcp14>SHALL</bcp14> be a country code
          corresponding to ISO 3166 alpa-2 codes <xref target="ISO3166"/> target="ISO3166"
          format="default"/> or another
   top- level top-level domain maintained by IANA
          <xref target="TLD"/>. target="TLD" format="default"/>. All two-letter top-level
          domains are reserved for current and future ISO 3166 codes.
          Assignment of identifiers for DDI agencies in the requested
          namespace is managed by the DDI Alliance (see section 3.8. <xref
          target="sect-3.5" format="default"/> on "Process of Identifier
   Assignment"). "<xref target="sect-3.5"
          format="title"/>"). The next subdomain identifies the agency within
          that top-level domain. Further optional subdomains can follow. The
          top-level domain and possible subdomains are separated by the full
          stop character. The full stop character is not allowed within
          top-level domain names or subdomain names. The top-level domain and
          subdomains are composed from the limited set of characters for the
          preferred form of a DNS label (<xref target="RFC1035"/> section 2.3.1). target="RFC1035"
          sectionFormat="comma" section="2.3.1"/>). The length of the label
          and the full name are restricted by DNS rules (<xref target="RFC2181"/> section
   11).
          target="RFC2181" sectionFormat="comma" section="11"/>). The agency
          identifier is case insensitive (<xref target="RFC4343"/>
   section 2).</t>

	<t>
   resource-identifier target="RFC4343"
          sectionFormat="comma" section="2"/>).</t>
          <t>resource-identifier is the identifier of a DDI resource of a DDI
          agency. The value MUST <bcp14>MUST</bcp14> be unique in the scope of this
          DDI agency.  The resource identifier resource-identifier is case sensitive.</t>

	<t>
   version-identifier
          <t>version-identifier is the version of a DDI resource of a DDI
          agency. The value MUST <bcp14>MUST</bcp14> be unique in the scope of this
          resource.  The resource version is case sensitive.</t>
        </section>
        <section title="ABNF Grammar" anchor="sect-3.1.2"><t>
   The anchor="sect-3.1.2" numbered="true" toc="default">
          <name>ABNF Grammar</name>
          <t>The following syntax specification for the complete URN uses the
   augmented
          Augmented Backus-Naur Form form (ABNF) as described in <xref target="RFC5234"/>.</t>

	<t>
   ABNF Grammar</t>

	<figure><artwork><![CDATA[
          target="RFC5234" format="default"/>.</t>

<figure>
<name>ABNF Grammar</name>
          <sourcecode name="" type="abnf"><![CDATA[
; Rules are case-sensitive, case sensitive, if not stated otherwise.
ddi-urn              = urn separator ddi separator ddi-irdi
; urn is case-insensitive, case insensitive, see [RFC8141].
urn                  = "urn"
; ddi is the URN namespace identifier.
; ddi is case-insensitive, case insensitive, see [RFC8141] section [RFC8141], Section 2.1.
ddi                  = "ddi"
; ddi-irdi is the namespace specific string (NSS).
; ddi-irdi - international registration data identifier,
; see [IS11179] Annex A.2.
ddi-irdi             = agency-identifier separator
                       resource-identifier separator
                       version-identifier
; agency-identifier is case-insensitive. See [RFC4343] section case insensitive, see [RFC4343], Section 2.
; For allowed characters characters, see [RFC1035] section [RFC1035], Section 2.3.1.
; For length restrictions restrictions, see [RFC2181] section [RFC2181], Section 11.
agency-identifier    = top-level-domain
                         sub-separator ddi-authority-id
                         *(sub-separator ddi-sub-authority-id)
                       ; length limit is 255 characters
                       ; see section Section 11 of [RFC2181]
top-level-domain     = dns-label
ddi-authority-id     = dns-label
ddi-sub-authority-id = dns-label
dns-label            = (ALPHA / DIGIT)
                         [ *(ALPHA / DIGIT / "-")
                           (ALPHA / DIGIT) ]
                       ; length limit is 63 characters
                       ; see section Section 11 of [RFC2181]
resource-identifier  = restricted-string
                       *("/" restricted-string)
version-identifier   = restricted-string
                       *("/" restricted-string)
restricted-string    = 1*(unreserved / sub-delims / "@")
; Definitions for unreserved and sub-delims from [RFC3986]
; [RFC3986], Section 2.2.
unreserved           = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims           = "!" / "$" / "&" / "'" / "(" / ")" /
                       "*" / "+" / "," / ";" / "="
separator            = ":"
sub-separator        = "."
; ALPHA and DIGIT are actually defined in the ABNF
specification.
; specification. They are declared here for convenience
; purposes.
ALPHA                = %x41-5A /  ; uppercase letters
                       %x61-7A    ; lowercase letters
DIGIT                = %x30-39    ; digits
]]></artwork>
]]></sourcecode>
</figure>

        </section>
        <section title="Regular Expression" anchor="sect-3.1.3"><t> anchor="sect-3.1.3" numbered="true" toc="default">
          <name>Regular Expression</name>
          <t>
   The used syntax is the XML Schema flavor flavor, which can be easily used
   in other flavors. These regular expressions implicitly anchor at
   the head and tail. The following regular expression syntax uses
   components (component names indicated by angle brackets, i.e.
   &lt;component&gt;) and is written in free-spacing mode for easier
   reading (the XML Schema flavor does not support that). Please note
   that use of multiple quantifiers in regular expressions can result
   in false outcomes due to so-called greediness. Therefore, there
   are separate regular expressions for the length restriction and
   other purposes for the components agency-identifier and dns-label.</t>

	<figure><artwork><![CDATA[

          <sourcecode name="" type=""><![CDATA[
ddi-urn              := [Uu][Rr][Nn] : [Dd][Dd][Ii] :
                          <agency-identifier> :
                          <resource-identifier> :
                          <version-identifier>
agency-identifier    := <top-level-domain> \.
                          <ddi-authority-id>
                          (\. <ddi-sub-authority-id>)*
agency-identifier    := .{1,255}

top-level-domain     := <dns-label>
ddi-authority-id     := <dns-label>

ddi-sub-authority-id := <dns-label>
dns-label            := [A-Za-z0-9]([-A-Za-z0-9]*[A-Za-z0-9])?

dns-label            := .{1,63}

resource-identifier  := <restricted-string>
                        (/ <restricted-string>)*

version-identifier   := <restricted-string>
                        (/ <restricted-string>)*

restricted-string    := [A-Za-z0-9-._~!$&'()*+,;=@]+

]]></artwork>
	</figure>
]]></sourcecode>
        </section>
        <section title="Examples anchor="sect-3.1.4" numbered="true" toc="default">
          <name>Examples of DDI URNs" anchor="sect-3.1.4"><t> URNs</name>
          <t>
   The examples are taken from the DDI Lifecycle 3.3. documentation. 3.3 documentation <xref target="DDI-ID"/>.
   Please note that the resource identifiers resource-identifiers are simplified. In real
   applications, they are much longer for unique identification
   purposes. They don't relate to DDI types like the examples might
   suggest.</t>

	<t>URN

<figure>
  <name>URN of a Represented Variable</t>
<figure><artwork><![CDATA[ Variable</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
   urn:ddi:us.ddia1:R-V1:1
]]></artwork>
</figure>

          <t>
   The DDI represented variable identified by "R-V1" with the version
   "1" of the DDI agency "ddia1" located in the domain "us"
   <xref target="DDIEXRV"/>.</t>

	<t>URN target="DDI-EXRV" format="default"/>.</t>

<figure>
  <name>URN of a Question Item</t>
<figure><artwork><![CDATA[ Item</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
   urn:ddi:us.ddia1:PISA-QS.QI-2:1
]]></artwork>
</figure>

          <t>
   The DDI question item identified by "PISA-QS.QI-2" with the
   version "1" of the DDI agency "ddia1" located in the domain "us"
   <xref target="DDIEXQU"/>.</t>

	<t>URN target="DDI-EXQU" format="default"/>.</t>

<figure>
  <name>URN as Reference to a Controlled Vocabulary</t>
<figure><artwork><![CDATA[ Vocabulary</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
   urn:ddi:int.ddi.cv:AggregationMethod:1.0
]]></artwork>
</figure>

          <t>
   The DDI controlled vocabulary identified by "AggregationMethod"
   with the version "1.0" in the scope of the DDI agency "ddi" and
   sub-agency "cv" in the domain "int" <xref target="DDICVAG"/>.</t> target="DDI-CVAG" format="default"/>.</t>
        </section>
      </section>
      <section title="Relevant anchor="sect-3.2" numbered="true" toc="default">
        <name>Relevant Ancillary Documentation"
	anchor="sect-3.2"><t> Documentation</name>
        <t> An introductory article on DDI can be found at
	<xref target="DDIINTR"/>.</t> target="DDI-INTR" format="default"/>.</t>
        <t>
   Information on the DDI specifications (DDI-C, DDI-L, XKOS,
   Controlled Vocabularies, and SDTL) can be found in the standards
   section of the DDI Alliance website <xref target="DDIALL"/>.</t> target="DDI-ALL" format="default"/>.</t>
        <t>
   Information on domain names can be found in the relevant RFCs.

   <list style="symbols">
     <t>For

        </t>
        <ul spacing="normal">
          <li>For an overview, see <xref target="RFC1034"/>.</t>

     <t>Regarding target="RFC1034" format="default"/>.</li>
          <li>Regarding case insensitivity, see <xref target="RFC1035"/> section 2.3.3.</t>

     <t>Regarding target="RFC1035"
          sectionFormat="of" section="2.3.3"/>.</li>
          <li>Regarding syntax, see <xref target="RFC0952"/> section the "Lexical grammar" in the "Grammatical Host Table
          Specification" B. section of <xref target="RFC0952"
          format="default"/> and <xref target="RFC1123"/> section
	2.1.</t>

     <t>Regarding target="RFC1123" sectionFormat="of"
          section="2.1"/>.</li>
          <li>Regarding size limits, see <xref target="RFC1123"/> section 2.1 target="RFC1123"
          sectionFormat="of" section="2.1"/> and <xref target="RFC1035"/> section 2.3.4.</t>

	</list>
	</t> target="RFC1035"
          sectionFormat="of" section="2.3.4"/>.</li>
        </ul>
      </section>
      <section title="Identifier anchor="sect-3.3" numbered="true" toc="default">
        <name>Identifier Uniqueness Considerations" anchor="sect-3.3"><t> Considerations</name>
        <t>
   Assignment of identifiers for DDI agencies in the requested
   namespace will be managed by the DDI Alliance, which will ensure
   that the assigned DDI agency identifiers agency-identifiers are consistent with the
   directives for unique identification of DDI agencies.</t>
        <t>
   Assignment of URNs for resources of a DDI agency in the requested
   namespace will be managed by the respective DDI agency, which
   ensures that the assigned URNs are unique for the scope of the
   agency.</t>
      </section>
      <section title="Identifier anchor="sect-3.4" numbered="true" toc="default">
        <name>Identifier Persistence Considerations" anchor="sect-3.4"><t> Considerations</name>
        <t>
   Persistence of identifiers is dependent upon the suitable delegation
   of resolution at the level of the DDI agencies, agencies and the persistence of
   DDI agency assignment. The persistence of the referenced resource
   is also the responsibility of the DDI agency.</t>
      </section>
      <section title="Process anchor="sect-3.5" numbered="true" toc="default">
        <name>Process of Identifier Assignment" anchor="sect-3.5"><t> Assignment</name>
        <t>
   Assignment of identifiers for DDI agencies in the requested
   namespaceis
   namespace is managed by the DDI Alliance. A registry for DDI agency
   identifiers ensures through an approval process that the syntax of
   agency identifiers
   agency-identifiers complies with the associated rules <xref target="DDIREGI"/>.</t> target="DDI-REGI" format="default"/>.</t>
        <t>
   Assignment of URNs for resources of a DDI agency and sub-agencies
   of a DDI agency in the requested namespace will be managed by the
   respective DDI agency.</t>
      </section>
      <section title="Process anchor="sect-3.6" numbered="true" toc="default">
        <name>Process for Identifier Resolution" anchor="sect-3.6"><t> Resolution</name>
        <t>
   The DDI Alliance will promote promotes a service discovery system for
   identifying available services connected to DDI agencies using the
   Domain Name System (DNS). A DNS request for a DDI agency within
   the domain ddi.urn.arpa is delegated by the DNS servers of the DDI
   Alliance to the DNS servers of the relevant DDI agency. The
   response is a list of available DDI services for the agency
   identifier under which the agency has assigned URNs. The approach
   is based on the Dynamic Delegation Discovery System (DDDS)
   <xref target="RFC3401"/> target="RFC3401" format="default"/> and especially the straightforward URI-enabled NAPTR
   (U-NAPTR) <xref target="RFC4848"/>.</t> target="RFC4848" format="default"/>.</t>
        <t>
   The DDI Alliance is responsible for operating or delegating
   resolution requests to the resolution servers of the relevant DDI
   agencies. DDI agencies are responsible for operating or delegating
   resolution servers for the agency identifier agency-identifier under which they have
   assigned URNs.</t>

	<t>
   Sample

<figure>
  <name>Sample Sequence Diagram for receiving Receiving a list List of DDI services Services from the example
  Example DDI agency "ddia1".</t>

	<figure><artwork><![CDATA[ "ddia1"</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
Client  NS for    NS for           NS for        DDI services
        urn.arpa  ddialliance.org  example1.edu  for us.ddia1
  |       |            |               |              |
1 |------>|            |               |              |
2 |<------| |       |----------->|               |              |
3 |---------------------->| |                    |-------------->|              |
4 |<----------------------|               | |<-----------------------------------|              |
5 |-------------------------------------->|               | |-------------------------------------------------->|
6 |<--------------------------------------|               |
7 |------------------------------------------------------>|
8 |<------------------------------------------------------| |<--------------------------------------------------|
]]></artwork>
</figure>
	<t><list style="numbers">

	  <t>The

        <ol spacing="normal" type="1">
	  <li>The name server (NS) of IANA for the domain "urn.arpa." is
	  reached with the request "ddia1.us.ddi.urn.arpa." for the DDI agency
	  "us.ddia1".</t>

          <t>The request is delegated to the name server for "ddialliance.org".</t>

          <t>The
	  "us.ddia1".</li>
	  <li>The request is delegated to the name server for "ddialliance.org".</t>

	  <t>The request is delegated to the name server for "example1.edu"
	  (domain of the DDI agency "us.ddia1"). </t>

  	  <t>The
	  "ddialliance.org".</li>
	  <li>The request is delegated to the name server for "example1.edu"
	  (domain of the DDI agency "us.ddia1"). </t>

	  <t>The "us.ddia1").</li>
	  <li>The server responds with a list of NAPTR records <xref
	  target="RFC3403"/>
	  target="RFC3403" format="default"/> pointing to available DDI
	  services for the DDI agency "us.ddia1".</t>

	  <t>The "us.ddia1".</li>
	  <li>The client selects an appropriate DDI service and sends a
	  request for a DDI URN to this service.</t>

	  <t>The service.</li>
	  <li>The DDI service responds responds, for example example, with a DDI object
	  identified by the requested DDI URN.</t>

	</list>
	</t>

	<t>
   See Appendix A URN.</li>
        </ol>

        <t>See <xref target="sect-a" format="default"/> for examples of name
        server records.</t>
      </section>
      <section title="Rules anchor="sect-3.7" numbered="true" toc="default">
        <name>Rules for Lexical Equivalence" anchor="sect-3.7"><t>
   The Equivalence</name>
        <t>The DDI agency identifier agency-identifier basically follows the rules of domain
        names. Domain names are case-insensitive. case insensitive. Thus, the following portion of the
   URN</t>

<figure><artwork><![CDATA[
        URN is case insensitive for matches:</t>

        <artwork name="" type="" align="left" alt=""><![CDATA[
   urn:ddi:<agency-id>:
]]></artwork>
        </figure>

        <t>
   is case-insensitive for matches.
The remainder of the identifier
   MUST
   <bcp14>MUST</bcp14> be considered case-sensitive.</t> case sensitive.</t>
      </section>
      <section title="Conformance anchor="sect-3.8" numbered="true" toc="default">
        <name>Conformance with URN Syntax" anchor="sect-3.8"><t>
   The Namespace Specific String Syntax</name>
        <t>The NSS conforms to the related section in <xref target="RFC8141"/>. target="RFC8141"
        format="default"/>. It is composed from the limited set of characters
        for
   an a URN NSS <xref target="RFC8141"/>. Percent encoding target="RFC8141"
        format="default"/>. Percent-encoding is not used.</t>
      </section>
      <section title="Validation Mechanism" anchor="sect-3.9"><t> anchor="sect-3.9" numbered="true" toc="default">
        <name>Validation Mechanism</name>
        <t>
   The DDI Alliance will promote development of software for
   validation purposes.</t>
      </section>
      <section title="Scope" anchor="sect-3.10"><t> anchor="sect-3.10" numbered="true" toc="default">
        <name>Scope</name>
        <t>
   The scope is global.</t>
      </section>
    </section>
    <section title="Namespace Considerations" anchor="sect-4"><t> anchor="sect-4" numbered="true" toc="default">
      <name>Namespace Considerations</name>
      <t>
   There is no available namespace that will allow one to uniquely
   identify and access DDI resources.</t>
      <section title="URN anchor="sect-4.1" numbered="true" toc="default">
        <name>URN Assignment Procedures" anchor="sect-4.1"><t>
   See section 3.5, 'Process of Identifier Assignment'.</t> Procedures</name>
        <t>See <xref target="sect-3.5" format="default"/>, "<xref target="sect-3.5" format="title"/>".</t>
      </section>
      <section title="URN Resolution/Delegation" anchor="sect-4.2"><t>
   See section 3.6, 'Process for Identifier Resolution'.</t>

	<t>
   It anchor="sect-4.2" numbered="true" toc="default">
        <name>URN Resolution/Delegation</name>
        <t>See <xref target="sect-3.6" format="default"/>,
        "<xref target="sect-3.6" format="title"/>".</t>
        <t>It is RECOMMENDED to use <bcp14>RECOMMENDED</bcp14> that sub-agencies for flexible administration.
        administration be used.  For example, delegation of URNs of a sub-agency to
        different servers would be easily possible.</t>
      </section>
      <section title="Type anchor="sect-4.3" numbered="true" toc="default">
        <name>Type of Resources to be Identified" anchor="sect-4.3"><t> To Be Identified</name>
        <t>
   The DDI specifications define resources at a granular level, many
   of which can be identified by a DDI URN.</t>
      </section>
      <section title="Type anchor="sect-4.4" numbered="true" toc="default">
        <name>Type of Services" anchor="sect-4.4"><t>
   Examples Services</name>
        <t>Examples of potential services are listed below. The services and
        appropriate service tags need to be defined in the future. The mentioned
        service tags are from [RFC2483].

   <list style="symbols"> <xref target="RFC2483"/>.</t>

        <ul spacing="normal">
          <li>
            <t>DDI repository

     <list style="symbols">
       <t>I2R repository</t>
            <dl spacing="normal" newline="false">
              <dt>I2R (URI to Resource): given Resource):</dt>
	      <dd>given a DDI URN return return, one instance
              of the resource identified by that URN.</t>
	</list>
	</t> URN.</dd>
            </dl>
          </li>
          <li>
            <t>DDI registry

	<list style="symbols">
	  <t>I2C registry</t>
            <dl spacing="normal" newline="false">
              <dt>I2C (URI to URC, Uniform Resource Characteristics are
              descriptions of resources): given resources):</dt>
	      <dd>given a DDI URN return return, a description
              or a summary of that resource.</t>
	</list>
	</t> resource.</dd>
            </dl>
          </li>
          <li>
            <t>DDI URN resolution
	<list style="symbols">
	  <t>I2L resolution</t>
            <dl spacing="normal">
              <dt>I2L (URI to URL): given URL):</dt>
	      <dd>given a DDI URN return return, one URL that
              identifies a location where the identified DDI resource can be found.</t>

	  <t>I2Ls
              found.</dd>
              <dt>I2Ls (URI to URLs): given URLs):</dt>
	      <dd>given a DDI URN return return, one or more URLs
              that identify multiple locations of the identified DDI resource.</t>
	</list>
	</t>

	</list>
	</t>
              resource.</dd>
            </dl>
          </li>
        </ul>

      </section>
    </section>
    <section title="Community Considerations" anchor="sect-5"><section title="Open anchor="sect-5" numbered="true" toc="default">
      <name>Community Considerations</name>
      <section anchor="sect-5.1" numbered="true" toc="default">
        <name>Open Assignment and Use of Identifiers" anchor="sect-5.1"><t> Identifiers</name>
        <t>
   DDI agency identifiers agency-identifiers can be registered at the DDI Alliance. The
   DDI Alliance will maintain maintains a registry of the assigned values for
   the DDI agency identifier agency-identifier used in the NSS. Information may be
   obtained from the following address: secretariat@ddialliance.org.</t>
        <t>
   DDI agencies assign URNs and potential sub-agencies within the
   scope of the assigned DDI agency identifiers.</t> agency-identifiers.</t>
        <t>
   See also above section <xref target="sect-3.3"/> on Identifier Uniqueness Considerations.</t> "<xref target="sect-3.3" format="title"/>".</t>
      </section>
      <section title="Open anchor="sect-5.2" numbered="true" toc="default">
        <name>Open Operation of Resolution Servers" anchor="sect-5.2"><t> Servers</name>
        <t>
   The DDI Alliance operates publicly accessible name servers for the
   delegation of DNS requests within the domain ddi.urn.arpa to DNS
   servers of DDI agencies.</t>
      </section>
      <section title="Creation anchor="sect-5.3" numbered="true" toc="default">
        <name>Creation of Software for Service Discovery" anchor="sect-5.3"><t>
   The Discovery</name>
        <t>The DDI Alliance will promote promotes software for the resolution of DDI
   agency identifiers and service discovery. See also Appendix B discovery for
        identifying available services connected to DDI agencies using the resolution algorithm.
        Domain Name System (DNS). See also <xref target="sect-3.6"
        format="default"/> on "<xref target="sect-3.6" format="title"/>". A
        basic resolver library is available <xref target="DDIRESO"/>.</t> target="DDI-RESO"
        format="default"/>.</t>
      </section>
    </section>
    <section title="IANA Considerations" anchor="sect-6"><t> anchor="sect-6" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
   IANA is requested to update has updated the "ddi" entry in the Universal
   Resource Names "Formal URN Namespaces"
   registry to reference this specification.</t>

	<t>
   The registration

      <t>The following NAPTR record for the key "ddi" has been registered in
      the "URN.ARPA" zone is approved.
   Requests urn.arpa zone:</t>

<artwork name="" type="" align="left" alt=""><![CDATA[
   ddi IN NAPTR 100 10 "" "" "" registry.ddialliance.org.
]]></artwork>

      <t>Requests for the domain ddi.urn.arpa will be are delegated to the name
      servers of the DDI Alliance.</t>
    </section>
    <section title="Security Considerations" anchor="sect-7"><t> anchor="sect-7" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
   URN:DDI identifiers are assigned to resources that are public
   information, and therefore
   information; therefore, resolving these identifiers has low
   security profile.</t>
      <t>
   Registration of DDI agencies is approved by the DDI Alliance.
   Assignment and resolution of URN:DDI identifiers are controlled by
   the DDI Alliance and approved DDI agencies. The DDI Alliance SHALL <bcp14>SHALL</bcp14>
   have in place control mechanisms in order to make sure that DDI
   Agency applications from malicious 3rd third parties will not be
   accepted. URN:DDI resolvers will be protected against
   eavesdropping and attacks with appropriate tools.</t>
      <t>
   This document introduces no additional technical security
   considerations beyond those associated with the use and resolution
   of URNs in general.</t>
      <t>
   The security of the DNS-based resolution of DDI agency identifiers agency-identifiers is only
   as good as the security of DNS queries in general. A full discussion of the
   security threats pertaining to DNS and possible solutions can be found in
   <xref target="RFC3833"/>. target="RFC3833" format="default"/>. Further information on security
   considerations regarding U-NAPTR can be found in <xref target="RFC4848"/> section 6. DNS target="RFC4848"
   sectionFormat="comma" section="6"/>. "DNS Queries over HTTPS (DoH) (DoH)" <xref target="RFC8484"/>
   target="RFC8484" format="default"/> could be used to increase security by
   preventing eavesdropping and manipulation of DNS data by man-in-the-middle machine-in-the-middle
   attacks. The HTTPS protocol encrypts the data between the DoH client and
   the DoH-based DNS resolver.</t>
    </section>
  </middle>
  <back>
	<references title="Normative References">
    <references>

      <name>References</name>
      <references>
        <name>Normative References</name>

        <reference anchor="DDIC" target="https://ddialliance.org/Specification/DDI-Codebook"> anchor="DDI-C" target="https://ddialliance.org/Specification/DDI-Codebook/2.5/">
          <front>
            <title>DDI Codebook</title>
            <author><organization>DDI Alliance</organization></author>
            <title>DDI-Codebook 2.5</title>
            <author>
              <organization>DDI Alliance</organization>
            </author>
	    <date year="2014"/>
          </front>
        </reference>

        <reference anchor="DDIL" anchor="DDI-L" target="https://ddialliance.org/Specification/DDI-Lifecycle/">
          <front>
            <title>DDI Lifecycle</title>
            <author><organization>DDI Alliance</organization></author>
          <date year="2020"/>
            <title>DDI-Lifecycle</title>
            <author>
              <organization>DDI Alliance</organization>
            </author>
          </front>
        </reference>

        <reference
	    anchor="DDIXKOS" anchor="DDI-XKOS" target="https://ddialliance.org/Specification/RDF/XKOS">
          <front>
            <title>DDI XKOS
            <title>XKOS - Extended Knowledge Organization System</title>
            <author><organization>DDI Alliance</organization></author>
          <date year="2020"/>
            <author>
              <organization>DDI Alliance</organization>
            </author>
          </front>
        </reference>

        <reference
	    anchor="DDIID" anchor="DDI-ID" target="https://ddi-lifecycle-technical-guide.readthedocs.io/en/latest/General%20Structures/Identification.html">
          <front>
            <title>DDI
            <title>Identification</title>
            <author><organization>DDI Alliance</organization></author>
            <date/>
          </front>
	  <refcontent>DDI Lifecycle (3.3) Technical Guide, Identification</title>
            <author></author>
          <date year="2020"/>
          </front> Guide: General Structures</refcontent>
        </reference>

	&RFC952;
	&RFC1034;
	&RFC1035;
	&RFC1123;
	&RFC2026;
	&RFC2119;
	&RFC2181;
	&RFC3986;
	&RFC4343;
	&RFC5234;
	&RFC5378;
	&RFC8141;
	&RFC8174;
	&RFC8179;

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0952.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1123.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2181.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3986.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4343.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8141.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>

        <reference
	    anchor="SDTL" anchor="DDI-SDTL" target="https://ddialliance.org/products/sdtl/1.0/">
          <front>
            <title>SDTL - Structured Data Transformation Language - Version 1.0</title>
            <author></author>
	    <date></date>
            <author>
              <organization>DDI Alliance</organization>
	    </author>
            <date month="December" year="2020"/>
          </front>
        </reference>

        <reference anchor="TLD" target="https://www.iana.org/domains/root/db">
          <front>
            <title>IANA Database of Top Level Domains</title>
            <author></author>
	    <date></date>
            <title>Root Zone Database</title>
            <author>
	      <organization>IANA</organization>
	      </author>
            <date/>
          </front>
        </reference>
      </references>

	<references title="Informative References">

      <references>
        <name>Informative References</name>

        <reference anchor="ABNF2RS" target="https://www.msweet.org/abnf/">
          <front>
            <title>ABNF to REGEX REGEX: Regular Expression Generator</title>
	    <author initials="M." surname="Sweet" fullname="Michael R. Sweet"></author>
            <date></date>
            <author/>
            <date month="October" year="2019"/>
          </front>
        </reference>

        <reference anchor="ABNFGEN" target="http://www.quut.com/abnfgen/">
          <front>
            <title>abnfgen</title>
            <author initials="J." surname="Degener" fullname=" Jutta Degener"></author>
            <date></date> fullname="Jutta Degener"/>
            <date/>
          </front>
        </reference>

        <reference anchor="ABNFPFE" target="http://tools.ietf.org/tools/bap/abnf.cgi"> target="https://author-tools.ietf.org/abnf">
          <front>
            <title>ABNF Parser</title>
            <author initials="B." surname="Fenner" fullname="Bill Fenner"></author>
            <date></date>
            <title>IETF Author Tools - ABNF Tools</title>
            <author><organization>IETF</organization></author>
            <date/>
          </front>
        </reference>

        <reference
	    anchor="DDIALL" anchor="DDI-ALL" target="https://ddialliance.org/">
          <front>
            <title>DDI Alliance</title>
            <author></author>
            <date></date>
            <title>Document, Discover and Interoperate</title>
            <author>
	      <organization>DDI Alliance</organization>
	    </author>
            <date/>
          </front>
        </reference>

        <reference
	    anchor="DDICVAG" anchor="DDI-CVAG" target="https://ddialliance.org/Specification/DDI-CV/AggregationMethod_1.0.html">
          <front>
            <title>DDI Controlled Vocabulary for Aggregation Method</title>
            <author></author>
            <date></date>
            <author><organization>DDI Alliance</organization></author>
            <date/>
          </front>
        </reference>

        <reference
	    anchor="DDIEXQU" anchor="DDI-EXQU" target="https://ddi-lifecycle-technical-guide.readthedocs.io/en/latest/Examples/Questions.html">
          <front>
            <title>DDI
            <title>Questions</title>
            <author><organization>DDI Alliance</organization></author>
            <date/>
          </front>
	  <refcontent>DDI Lifecycle 3.3 Technical Guide, Examples, Questions</title>
            <author></author>
            <date></date>
          </front> Guide: Examples</refcontent>
        </reference>

        <reference
	    anchor="DDIEXRV" anchor="DDI-EXRV" target="https://ddi-lifecycle-technical-guide.readthedocs.io/en/latest/Examples/RepresentedVariable.html">
          <front>
            <title>DDI
            <title>Represented Variable</title>
            <author><organization>DDI Alliance</organization></author>
            <date/>
          </front>
	  <refcontent>DDI Lifecycle 3.3 Technical Guide, Examples, Represented Variable</title>
            <author></author>
            <date></date>
          </front> Guide: Examples</refcontent>
        </reference>

        <reference
	    anchor="DDIINTR" anchor="DDI-INTR" target="http://www.ijdc.net/article/view/66">
          <front>
            <title>Data Documentation Initiative: Toward a Standard for the Social Sciences</title>
            <author initials="M." surname="Vardigan" fullname=""></author> fullname="Mary Vardigan"/>
            <author initials="P." surname="Heus" fullname=""></author> fullname="Pascal Heus"/>
            <author initials="W." surname="Thomas" fullname=""></author> fullname="Wendy Thomas"/>
            <date year="2008" /> month="December" year="2008"/>
          </front>
	  <seriesInfo name="The name="DOI" value="10.2218/ijdc.v3i1.45"/>
          <refcontent>The International Journal of Digital Curation 3, 1" value=""/> Curation, Issue 1, Volume 3</refcontent>
        </reference>

        <reference
	    anchor="DDIREGI" anchor="DDI-REGI" target="https://registry.ddialliance.org/">
          <front>
            <title>DDI Agency
            <title>Welcome to the DDI Registry</title>
            <author></author>
            <date></date>
            <author>
	      <organization>DDI Alliance</organization>
	    </author>
            <date/>
          </front>
        </reference>

        <reference
	    anchor="DDIRESO" anchor="DDI-RESO" target="https://registry.ddialliance.org/Home/Tools">
          <front>
            <title>DDI Agency Registry Tools</title>
            <author></author>
            <date></date>
            <title>Tools</title>
            <author>
	      <organization>DDI Alliance</organization>
	    </author>
            <date/>
          </front>
        </reference>

        <reference anchor="DUBLINC" target="https://www.dublincore.org/">
          <front>
            <title>Dublin Core</title>
            <author><organization>Dublin Core Metadata Initiative</title>
            <author></author>
            <date></date> Initiative</organization></author>
            <date/>
          </front>
        </reference>

        <reference anchor="ISO3166" target="https://www.iso.org/iso-3166-country-codes.html">
          <front>
            <title>ISO 3166 Country Codes</title>
            <author></author>
            <date></date>
            <author>
	      <organization>ISO</organization>
	    </author>
            <date/>
          </front>
        </reference>

        <reference anchor="IS11179" target="http://metadata-standards.org/11179/"> target="https://www.iso.org/standard/78916.html">
          <front>
            <title>Information technology - Metadata registries (MDR) - Part
            6: Registration</title>
            <author></author>
            <date></date>
            <author>
	      <organization>ISO</organization>
	    </author>
            <date month="January" year="2023"/>
          </front>
          <seriesInfo name="ISO/IEC" value="11179"/> value="11179-6:2023"/>
        </reference>

        <reference
	    anchor="IS19115" anchor="ISO.19115.2003" target="https://www.iso.org/standard/26020.html">
          <front>
            <title>Geographic information - Metadata</title>
            <author></author>
            <date></date>
            <author>
	      <organization>ISO</organization>
	    </author>
            <date/>
          </front>
          <seriesInfo name="ISO" value="19115"/> value="19115:2003"/>
        </reference>

	&RFC2782;
	&RFC2843;
	&RFC3401;
	&RFC3402;
	&RFC3403;
	&RFC3833;
	&RFC3958;
	&RFC4848;
	&RFC5385;
	&RFC8484;

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2782.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2483.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3401.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3402.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3403.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3833.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3958.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4848.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8484.xml"/>

        <reference anchor="SDMX" target="https://sdmx.org/">
          <front>
            <title>SDMX -  Statistical
            <title>SDMX</title>
            <author>
	      <organization>Statistical Data and Metadata Exchange</title>
            <author></author>
            <date></date> eXchange</organization>
	    </author>
            <date/>
          </front>
          <seriesInfo name="ISO" value="19115"/>
        </reference>

      </references>
    </references>

    <section title="Acknowledgments" anchor="sect-9"><t>
   Many thanks to Arofan Gregory, Dan Smith, and Wendy Thomas from
   the DDI Alliance Technical Committee, and Peter Koch from DENIC
   (German Network Information Center) for discussion and input that
   led to this document.</t>

	<t>
   The following software tools have been helpful in evaluating the ABNF
   grammar and the regular expressions: an ABNF parser <xref
   target="ABNFPFE"/>, a tool that creates regular expressions from an ABNF
   grammar <xref target="ABNF2RS"/>, and a tool that generates random strings
   that match an ABNF grammar <xref target="ABNFGEN"/>.</t>

	<t>
   This document was prepared using the Word template
   2-Word-v2.0.template.dot <xref target="RFC5385"/>.</t>

	</section>

	<section title="Example anchor="sect-a" numbered="true" toc="default">
      <name>Example DNS Records" anchor="sect-a"><t>
   The Records</name>
      <t>The examples use NAPTR <xref target="RFC3403"/> target="RFC3403" format="default"/> and
      SRV <xref target="RFC2782"/><xref target="RFC3958"/> target="RFC2782" format="default"/> <xref target="RFC3958"
      format="default"/> records. The values for the services and flags fields
      of the NAPTR records will be determined by the DDI application (<xref target="RFC3403"/>
   section 9.).</t>

	<t>
   For
      target="RFC3403" sectionFormat="comma" section="9"/>).</t>
      <t>For a description of the packet format of NAPTR, see <xref target="RFC3403"/>
   section 4.1.</t>

	</section>
      target="RFC3403" sectionFormat="comma" section="4.1"/>.</t>

    <section title="Delegation anchor="sect-a.1" numbered="true" toc="default">
      <name>Delegation of the URN Namespace &quot;ddi&quot;" anchor="sect-a.1"><t> "ddi"</name>
      <t>
   Example records below are defined at a.iana-servers.net and other
   authoritative name servers for the domain urn.arpa.</t>
      <t>
   The empty flag indicates that the lookup is not terminal and the
   next probe to DNS is for more NAPTR records where the new domain
   is "dns.ddialliance.org".</t>

	<figure><artwork><![CDATA[

      <sourcecode name="" type="dns-rr"><![CDATA[
; Delegation to name servers of ddialliance.org
;           order pref  flag  service  regexp replacement
ddi.urn.arpa.
   IN NAPTR 100   10    ""    ""       ""     dns.ddialliance.org.
]]></artwork>
	</figure>
]]></sourcecode>

    </section>
    <section title="Delegation anchor="sect-a.2" numbered="true" toc="default">
      <name>Delegation of DDI Agencies" anchor="sect-a.2"><t> Agencies</name>
      <t>
   Example records below are defined at dns.ddialliance.org for
   ddi.urn.arpa.</t>
      <t>
   The empty flag indicates that the lookup is not terminal and the
   next probe to DNS is for more NAPTR records where the new domain
   is the DNS server of the relevant DDI agency.</t>

	<figure><artwork><![CDATA[

      <sourcecode name="" type="dns-rr"><![CDATA[
; Delegation to name servers of subdomains in ddi.urn.arpa, i.e.
; DDI agencies.
;           order pref  flag  service  regexp replacement
ddia1.us.ddi.urn.arpa.
   IN NAPTR 100   10    ""    ""       ""     dns.example1.edu.
ddia2.de.ddi.urn.arpa.
   IN NAPTR 100   10    ""    ""       ""     dns.example2.org.
ddia3.gb.ddi.urn.arpa.
   IN NAPTR 100   10    ""    ""       ""     dns.example3.ac.uk.
]]></artwork>
	</figure>
]]></sourcecode>

    </section>
    <section title="DDI Services" anchor="sect-a.3"><t>
   Example anchor="sect-a.3" numbered="true" toc="default">
      <name>DDI Services</name>
      <t>Example records below are defined at dns.example2.org for
      ddi.urn.arpa.</t>

	<t>
   The
      <t>The "u" flag states that the rule is terminal and that the output is
      a URI which that contains the information needed to contact that DDI
      service. The "s" flag states that the rule is terminal and that the
      output of the rewrite will be a domain-name domain name for which an SRV record SHOULD
      <bcp14>SHOULD</bcp14> be queried. See also <xref target="RFC4848"/> section 4.4.</t>

	<t>
   The target="RFC4848"
      sectionFormat="comma" section="4.4"/>.</t>
      <t>The service N2R I2R returns one instance of the resource identified by
      the given URN. That service is a repository of DDI resources available
      at <eref target="http://repos.example2.org/N2R/"/>; target="http://repos.example2.org/I2R/"/>; possibly a
      REST-based service. The service N2C I2C returns a description of the
      resource identified by the given URN. That service is a registry of DDI
      resources available at registry-udp.example2.org port 10060.</t>

	<t>
   U-NAPTR
      <t>U-NAPTR permits regular expressions of a form that does a complete
      replacement of the matched string with a URI, expressed as a constant
      string. With this limited form of regular expression (<xref target="RFC4848"/> section 2.2.),
      target="RFC4848" sectionFormat="comma" section="2.2"/>), applications
      using NAPTR need not implement full regular expression parsers.</t>

	<figure><artwork><![CDATA[

      <sourcecode name="" type="dns-rr"><![CDATA[
ddia2.de.ddi.urn.arpa.
;         order pref flag
  IN NAPTR 100  10  "u"  "N2R+http"  "I2R+http"                   ( ; service
                      "!.*!http://repos.example2.org/N2R/!";
                      "!.*!http://repos.example2.org/I2R/!"; regex
                         .                           ; replacement
                                                      )
  IN NAPTR 100  10  "s"  "N2C+udp"  "I2C+udp"                    ( ; service
                         ""                             ; regex
                         registry._udp.example2.org. ; replacement
                                                      )
; all subdomains in ddia2.de.ddi.urn.arpa.
*.ddia2.de.ddi.urn.arpa.
ddia2.de.ddi.urn.arpa.
;         order pref flag
  IN NAPTR 100  10  "u"  "N2R+http"  "I2R+http"                   ( ; service
                      "!.*!http://repos.example2.org/N2R/!";
                      "!.*!http://repos.example2.org/I2R/!"; regex
                         .                           ; replacement
                                                      )
  IN NAPTR 100  10  "s"  "N2C+udp"  "I2C+udp"                    ( ; service
                         ""                             ; regex
                         registry._udp.example2.org.; replacement
                                                      )
;_service._protocol.name
; TTL    class  SRV  priority weight port  targetreplac
_registry._udp.example2.org
  14400  IN     SRV  0        0   10060 registry-udp.example2.org.
]]></artwork>
	</figure>
]]></sourcecode>

    </section>
  </section>
    <section title="Algorithm anchor="sect-b" numbered="true" toc="default">
      <name>Algorithm for DDI Service Discovery" anchor="sect-b"><t> Discovery</name>
      <t>
   The description is based on the Dynamic Delegation Discovery
   System (DDDS) algorithm <xref target="RFC3402"/>.</t> target="RFC3402" format="default"/>.</t>
      <t>
   The application selects the appropriate service from the output
   described below and contacts the service for the given URN.</t>
      <t>
   The process can be optimized by an application cache for the NAPTR
   records of already requested DDI agencies.</t>

	</section>

    <section title="Application anchor="sect-b.1" numbered="true" toc="default">
      <name>Application Unique String" anchor="sect-b.1"><t> String</name>
      <t>
   The Application Unique String is a DDI URN.</t>
    </section>
    <section title="First anchor="sect-b.2" numbered="true" toc="default">
      <name>First Well Known Rule" anchor="sect-b.2"><t><list style="numbers"><t>Extracting Rule</name>
      <ol spacing="normal" type="1"><li>Extracting the characters between the second and third colon
      (the agency identifier).</t>

	<t>Normalizing agency-identifier).</li>
        <li>Normalizing case of that string.</t>

	<t>Reversing string.</li>
        <li>Reversing the order of the substrings separated by dots.</t>

	<t>Appending dots.</li>
        <li>Appending the string ".ddi.urn.arpa" to the end to get a domain
      name.</t>

	</list>
	</t>
      name.</li>
      </ol>
    </section>
    <section title="Valid Databases" anchor="sect-b.3"><t> anchor="sect-b.3" numbered="true" toc="default">
      <name>Valid Databases</name>
      <t>
   The DNS is specified as a DDDS Database for this application application, which
   uses the NAPTR DNS resource records to contain the rewrite rules
   for service discovery.</t>
      <t>
   The DNS is queried for NAPTR records for the domain name name, which is
   the output of the First Well Known Rule.</t>
    </section>
    <section title="Expected Output" anchor="sect-b.4"><t> anchor="sect-b.4" numbered="true" toc="default">
      <name>Expected Output</name>
      <t>
   The expected output is the information necessary to connect to
   one or more authoritative server(s) servers (host, port, protocol, or URL) for an
   application service within a given DDI agency. The result is a
   list of terminal NAPTR records pointing to services available for
   the relevant DDI agency.</t>
    </section>
    </section>
    <section anchor="sect-9" numbered="false" toc="default">
      <name>Acknowledgments</name>

      <t>Many thanks to <contact fullname="Arofan Gregory"/>, <contact
      fullname="Dan Smith"/>, and <contact fullname="Wendy Thomas"/> from the
      DDI Alliance Technical Committee and <contact fullname="Peter Koch"/>
      from DENIC (German Network Information Center) for the discussion and input
      that led to this document.</t>
      <t>The following software tools have been helpful in evaluating the ABNF
      grammar and the regular expressions: an ABNF parser <xref
      target="ABNFPFE" format="default"/>, a tool that creates regular
      expressions from an ABNF grammar <xref target="ABNF2RS"
      format="default"/>, and a tool that generates random strings that match
      an ABNF grammar <xref target="ABNFGEN" format="default"/>.</t>

    </section>

  </back>

</rfc>