rfc9517xml2.original.xml   rfc9517.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC952 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <!DOCTYPE rfc [
.0952.xml"> <!ENTITY nbsp "&#160;">
<!ENTITY RFC1034 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF <!ENTITY zwsp "&#8203;">
C.1034.xml"> <!ENTITY nbhy "&#8209;">
<!ENTITY RFC1035 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF <!ENTITY wj "&#8288;">
C.1035.xml">
<!ENTITY RFC1123 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.1123.xml">
<!ENTITY RFC2026 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2026.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2119.xml">
<!ENTITY RFC2181 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2181.xml">
<!ENTITY RFC3986 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3986.xml">
<!ENTITY RFC4343 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4343.xml">
<!ENTITY RFC5234 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5234.xml">
<!ENTITY RFC5378 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5378.xml">
<!ENTITY RFC8141 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8141.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8174.xml">
<!ENTITY RFC8179 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8179.xml">
<!ENTITY RFC2782 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2782.xml">
<!ENTITY RFC2483 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2483.xml">
<!ENTITY RFC2843 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.2843.xml">
<!ENTITY RFC3401 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3401.xml">
<!ENTITY RFC3402 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3402.xml">
<!ENTITY RFC3403 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3403.xml">
<!ENTITY RFC3833 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3833.xml">
<!ENTITY RFC3958 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.3958.xml">
<!ENTITY RFC4848 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.4848.xml">
<!ENTITY RFC5385 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.5385.xml">
<!ENTITY RFC8484 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF
C.8484.xml">
]> ]>
<rfc submissionType="IETF" docName="draft-urn-ddi-06" category="info" ipr="trust
200902">
<!-- 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"?>
<front>
<title abbrev="A Uniform Resource Name (URN) Namespace ">A Uniform Resour
ce Name (URN) Namespace for the Data Documentation Initiative (DDI)</title>
<!-- [rfced] Please review - two email addresses were included in original draft <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="independent" cat
joachim.wackerow@posteo.de and secretariat@ddialliance.org --> egory="info" docName="draft-urn-ddi-06" number="9517" ipr="trust200902" obsolete
s="" updates="" xml:lang="en" symRefs="true" sortRefs="true" tocInclude="true" v
ersion="3">
<front>
<title abbrev="A URN Namespace">A URN Namespace for the Data Documentation I
nitiative (DDI)</title>
<seriesInfo name="RFC" value="9517"/>
<author initials="J." surname="Wackerow" fullname="Joachim Wackerow"> <author initials="J." surname="Wackerow" fullname="Joachim Wackerow">
<organization abbrev="DDI Alliance">c/o The Data Documentation Initiative <organization abbrev="DDI Alliance">c/o The Data Documentation Initiative
Alliance (DDI Alliance)</organization> Alliance (DDI Alliance)</organization>
<address><postal> <address>
<street>ICPSR, University of Michigan</street> <postal>
<street>PO Box 1248</street> <extaddr>ICPSR, University of Michigan</extaddr>
<city>Ann Arbor</city> <street>PO Box 1248</street>
<region>MI</region> <city>Ann Arbor</city>
<code>48106-1248</code> <region>MI</region>
<country>USA</country> <code>48106-1248</code>
</postal> <country>United States of America</country>
<email>joachim.wackerow@posteo.de</email> </postal>
<uri>ddialliance.org</uri> <email>joachim.wackerow@posteo.de</email>
</address> <email>secretariat@ddialliance.org</email>
</author> <uri>ddialliance.org</uri>
</address>
<date year="2023" month="August"/> </author>
<date year="2024" month="January"/>
<!-- [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 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 DDI Alliance is not affiliated with the Internet Engineering
Task Force (IETF) or Internet Society (ISOC); and as an
independent submission, it does not have IETF community consensus.</t>
</abstract>
</front>
<middle>
<section title="Introduction" anchor="sect-1"><t>
This document registers a formal namespace identifier (NID) for
Uniform Resource Names <xref target="RFC8141"/> associated with DDI resources
in
accordance with the process defined in <xref target="RFC8141"/>.</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 specifications DDI Codebook <xref target="DDIC"/> and DDI Lifecycle
<xref target="DDIL"/> are expressed in XML Schema, DDI XKOS - Extended
Knowledge Organization System <xref target="DDIXKOS"/> in OWL/RDF, SDTL -
Structured Data Transformation Language <xref target="SDTL"/> in JSON
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"/>, Statistical Data and Metadata Exchange
<xref target="SDMX"/> for exchanging aggregate data, ISO/IEC 11179 <xref
target="IS11179"/> for building metadata registries such as question,
variable, and concept banks, and ISO 19115 <xref target="IS19115"/> for
supporting geographic information systems.</t>
<t>
DDI URNs support reusability of DDI resources inside a single DDI
instance and in a distributed network of DDI instances.</t>
<t>
The DDI specification is developed and maintained by the DDI
Alliance <xref target="DDIALL"/>. The DDI Alliance is a self-sustaining
membership organization whose over 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> <keyword>URN resolution</keyword>
<section title="Conventions used in this document" anchor="sect-2"><t> <abstract>
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", <t>This document describes the Namespace Identifier (NID) "ddi" for
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", Uniform Resource Names (URNs) used to identify resources that conform to
"MAY", and "OPTIONAL" in this document are to be interpreted as the standards published by the Data Documentation Initiative (DDI)
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, a Alliance.</t>
nd only when, they <t>The DDI Alliance is not affiliated with the Internet Engineering Task
appear in all capitals, as shown here.</t> Force (IETF) or Internet Society (ISOC). This Independent Submission is
not a standard nor does it have IETF community consensus.</t>
</abstract>
</front>
<middle>
<section anchor="sect-1" numbered="true" toc="default">
<name>Introduction</name>
<t> <t>This document registers a formal Namespace Identifier (NID) for URNs
associated with DDI resources in accordance with the
process defined in <xref 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
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 specifications DDI Codebook <xref target="DDI-C"
format="default"/> and DDI Lifecycle <xref target="DDI-L"
format="default"/> are expressed in XML Schema; DDI Extended Knowledge
Organization System (XKOS) <xref target="DDI-XKOS" format="default"/>
in OWL/RDF; Structured Data Transformation Language (SDTL) <xref
target="DDI-SDTL" format="default"/> in JSON 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" format="default"/>; Statistical Data and Metadata
Exchange <xref target="SDMX" format="default"/> for exchanging aggregate
data; ISO/IEC 11179 <xref target="IS11179" format="default"/> for
building metadata registries, such as question, variable, and concept
banks; and ISO 19115 <xref target="ISO.19115.2003" format="default"/>
for supporting geographic information systems.</t>
<t>DDI URNs support reusability of DDI resources inside a single DDI
instance and in a distributed network of DDI instances.</t>
<t>The DDI specification is developed and maintained by the DDI
Alliance <xref target="DDI-ALL" format="default"/>. The DDI Alliance is
a self-sustaining membership organization whose over 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 anchor="sect-2" numbered="true" toc="default">
<name>Conventions Used in This Document</name>
<t>
The key words "<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 "<bcp14>OPTIONAL</bcp14>" in this document are
to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/>
<xref target="RFC8174"/> when, and only when, they appear in all capitals,
as shown here.
</t>
<t>
In this document, these words will appear with that interpretation In this document, these words will appear with that interpretation
only when in ALL CAPS. Lower case uses of these words are not to only when in ALL CAPS. Lowercase uses of these words are not to
be interpreted as carrying RFC 2119 significance.</t> be interpreted as carrying <xref target="RFC2119" format="default"/> signific
ance.</t>
<t> <dl newline="false" spacing="normal">
"DDI": Data Documentation Initiative. The single term is often <dt>DDI:</dt>
used as a synonym for the DDI specification.</t> <dd>Data Documentation Initiative. The single term is often used as a
synonym for the DDI specification.</dd>
<t> <dt>DDI agency:</dt>
"DDI agency": An organization which maintains DDI resources.</t> <dd>An organization that maintains DDI resources.</dd>
</dl>
<t> </section>
"DDI Alliance": Alliance for the Data Documentation Initiative <section anchor="sect-3" numbered="true" toc="default">
(DDI).</t> <name>Specification</name>
<t>This section provides the information required to register a formal
</section> namespace according to the registration procedure defined in <xref
target="RFC8141" format="default"/>. The URNs conform to the syntax
<section title="Specification" anchor="sect-3"><t> defined in <xref target="RFC8141" format="default"/>.</t>
This section provides the information required to register a <section anchor="sect-3.1" numbered="true" toc="default">
formal namespace according to the registration procedure defined <name>Declaration of Syntactic Structure</name>
in <xref target="RFC8141"/>. The URNs conform to the syntax defined in <xref <section anchor="sect-3.1.1" numbered="true" toc="default">
target="RFC8141"/>.</t> <name>Description</name>
<t> The
<section title="Declaration of Syntactic Structure"
anchor="sect-3.1"><section title="Description" anchor="sect-3.1.1"><t> The
Namespace Specific String (NSS) of all URNs using the "ddi" NID is a Namespace Specific String (NSS) of all URNs using the "ddi" NID is a
globally unique identifier consisting of the DDI agency identifier globally unique identifier consisting of the DDI agency-identifier
(registration authority identifier), the identifier of the DDI resource (registration authority identifier), the identifier of the DDI resource
(data identifier), and the version of the resource (version identifier) (data identifier), and the version of the resource (version-identifier)
<xref target="DDIID"/>. This structure is according to the International <xref target="DDI-ID" format="default"/>. This structure is according to the
Registration Data Identifier (IRDI) defined in ISO/IEC 11179 Information International
technology - Metadata registries (MDR) - Part 6: Registration, Annex A Registration Data Identifier (IRDI) defined in "Information
<xref target="IS11179"/>.</t> technology - Metadata registries (MDR) - Part 6: Registration", Annex A
<xref target="IS11179" format="default"/>.</t>
<t> <t>
A description of the DDI resource identification is available in A description of the DDI resource identification is available in
the DDI Lifecycle (3.3) Technical Guide, section Identification the Identification section of the "DDI Lifecycle 3.3 Technical Guide"
<xref target="DDIID"/>.</t> <xref target="DDI-ID" format="default"/>.</t>
<t>The DDI NSS has the following structure:</t>
<t>The DDI NSS has the following structure:</t>
<figure> <artwork name="" type="" align="left" alt=""><![CDATA[
<artwork><![CDATA[
<agency-identifier>:<resource-identifier>:<version-identifier> <agency-identifier>:<resource-identifier>:<version-identifier>
]]></artwork> ]]></artwork>
</figure>
<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. This way, the DNS resolution of DDI 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 of the domain to the left. The left-most label of
agency-identifier conveys the top-level domain. It SHALL be a country code
corresponding to ISO 3166 alpa-2 codes <xref target="ISO3166"/> or another
top- level domain maintained by IANA <xref target="TLD"/>. 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. on "Process of Identifier
Assignment"). 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). The length of the label and the
full name are restricted by DNS rules (<xref target="RFC2181"/> section
11). The agency identifier is case insensitive (<xref target="RFC4343"/>
section 2).</t>
<t>
resource-identifier is the identifier of a DDI resource of a DDI
agency. The value MUST be unique in the scope of this DDI agency.
The resource identifier is case sensitive.</t>
<t>
version-identifier is the version of a DDI resource of a DDI
agency. The value MUST 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 following syntax specification for the complete URN uses the
augmented Backus-Naur Form (ABNF) as described in <xref target="RFC5234"/>.</
t>
<t> <t>agency-identifier is the identifier of a DDI agency that
ABNF Grammar</t> maintains DDI resources. This identifier basically follows the rules
of reversed domain names and is case insensitive. This way, the DNS
resolution of DDI 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, of the
domain to the left. The left-most label of agency-identifier conveys
the top-level domain. It <bcp14>SHALL</bcp14> be a country code
corresponding to ISO 3166 alpa-2 codes <xref target="ISO3166"
format="default"/> or another top-level domain maintained by IANA
<xref 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 <xref
target="sect-3.5" format="default"/> on "<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"
sectionFormat="comma" section="2.3.1"/>). The length of the label
and the full name are restricted by DNS rules (<xref
target="RFC2181" sectionFormat="comma" section="11"/>). The agency
identifier is case insensitive (<xref target="RFC4343"
sectionFormat="comma" section="2"/>).</t>
<t>resource-identifier is the identifier of a DDI resource of a DDI
agency. The value <bcp14>MUST</bcp14> be unique in the scope of this
DDI agency. The resource-identifier is case sensitive.</t>
<t>version-identifier is the version of a DDI resource of a DDI
agency. The value <bcp14>MUST</bcp14> be unique in the scope of this
resource. The resource version is case sensitive.</t>
</section>
<section 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 Backus-Naur form (ABNF) as described in <xref
target="RFC5234" format="default"/>.</t>
<figure><artwork><![CDATA[ <figure>
; Rules are case-sensitive, if not stated otherwise. <name>ABNF Grammar</name>
<sourcecode name="" type="abnf"><![CDATA[
; Rules are case sensitive, if not stated otherwise.
ddi-urn = urn separator ddi separator ddi-irdi ddi-urn = urn separator ddi separator ddi-irdi
; urn is case-insensitive, see [RFC8141]. ; urn is case insensitive, see [RFC8141].
urn = "urn" urn = "urn"
; ddi is the URN namespace identifier. ; ddi is the URN namespace identifier.
; ddi is case-insensitive, see [RFC8141] section 2.1. ; ddi is case insensitive, see [RFC8141], Section 2.1.
ddi = "ddi" ddi = "ddi"
; ddi-irdi is the namespace specific string (NSS). ; ddi-irdi is the namespace specific string (NSS).
; ddi-irdi - international registration data identifier, ; ddi-irdi - international registration data identifier,
; see [IS11179] Annex A.2. ; see [IS11179] Annex A.2.
ddi-irdi = agency-identifier separator ddi-irdi = agency-identifier separator
resource-identifier separator resource-identifier separator
version-identifier version-identifier
; agency-identifier is case-insensitive. See [RFC4343] section 2. ; agency-identifier is case insensitive, see [RFC4343], Section 2.
; For allowed characters see [RFC1035] section 2.3.1. ; For allowed characters, see [RFC1035], Section 2.3.1.
; For length restrictions see [RFC2181] section 11. ; For length restrictions, see [RFC2181], Section 11.
agency-identifier = top-level-domain agency-identifier = top-level-domain
sub-separator ddi-authority-id sub-separator ddi-authority-id
*(sub-separator ddi-sub-authority-id) *(sub-separator ddi-sub-authority-id)
; length limit is 255 characters ; length limit is 255 characters
; see section 11 of [RFC2181] ; see Section 11 of [RFC2181]
top-level-domain = dns-label top-level-domain = dns-label
ddi-authority-id = dns-label ddi-authority-id = dns-label
ddi-sub-authority-id = dns-label ddi-sub-authority-id = dns-label
dns-label = (ALPHA / DIGIT) dns-label = (ALPHA / DIGIT)
[ *(ALPHA / DIGIT / "-") [ *(ALPHA / DIGIT / "-")
(ALPHA / DIGIT) ] (ALPHA / DIGIT) ]
; length limit is 63 characters ; length limit is 63 characters
; see section 11 of [RFC2181] ; see Section 11 of [RFC2181]
resource-identifier = restricted-string resource-identifier = restricted-string
*("/" restricted-string) *("/" restricted-string)
version-identifier = restricted-string version-identifier = restricted-string
*("/" restricted-string) *("/" restricted-string)
restricted-string = 1*(unreserved / sub-delims / "@") restricted-string = 1*(unreserved / sub-delims / "@")
; Definitions for unreserved and sub-delims from [RFC3986] 2.2. ; Definitions for unreserved and sub-delims from
; [RFC3986], Section 2.2.
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / sub-delims = "!" / "$" / "&" / "'" / "(" / ")" /
"*" / "+" / "," / ";" / "=" "*" / "+" / "," / ";" / "="
separator = ":" separator = ":"
sub-separator = "." sub-separator = "."
; ALPHA and DIGIT are actually defined in the ABNF ; ALPHA and DIGIT are actually defined in the ABNF
specification. ; specification. They are declared here for convenience
; They are declared here for convenience purposes. ; purposes.
ALPHA = %x41-5A / ; uppercase letters ALPHA = %x41-5A / ; uppercase letters
%x61-7A ; lowercase letters %x61-7A ; lowercase letters
DIGIT = %x30-39 ; digits DIGIT = %x30-39 ; digits
]]></artwork> ]]></sourcecode>
</figure> </figure>
</section>
<section title="Regular Expression" anchor="sect-3.1.3"><t> </section>
The used syntax is the XML Schema flavor which can be easily used <section anchor="sect-3.1.3" numbered="true" toc="default">
<name>Regular Expression</name>
<t>
The used syntax is the XML Schema flavor, which can be easily used
in other flavors. These regular expressions implicitly anchor at in other flavors. These regular expressions implicitly anchor at
the head and tail. The following regular expression syntax uses the head and tail. The following regular expression syntax uses
components (component names indicated by angle brackets, i.e. components (component names indicated by angle brackets, i.e.
&lt;component&gt;) and is written in free-spacing mode for easier &lt;component&gt;) and is written in free-spacing mode for easier
reading (the XML Schema flavor does not support that). Please note reading (the XML Schema flavor does not support that). Please note
that use of multiple quantifiers in regular expressions can result that use of multiple quantifiers in regular expressions can result
in false outcomes due to so-called greediness. Therefore, there in false outcomes due to so-called greediness. Therefore, there
are separate regular expressions for the length restriction and are separate regular expressions for the length restriction and
other purposes for the components agency-identifier and dns-label.</t> 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] : ddi-urn := [Uu][Rr][Nn] : [Dd][Dd][Ii] :
<agency-identifier> : <agency-identifier> :
<resource-identifier> : <resource-identifier> :
<version-identifier> <version-identifier>
agency-identifier := <top-level-domain> \. agency-identifier := <top-level-domain> \.
<ddi-authority-id> <ddi-authority-id>
(\. <ddi-sub-authority-id>)* (\. <ddi-sub-authority-id>)*
agency-identifier := .{1,255} agency-identifier := .{1,255}
top-level-domain := <dns-label> top-level-domain := <dns-label>
skipping to change at line 308 skipping to change at line 272
dns-label := .{1,63} dns-label := .{1,63}
resource-identifier := <restricted-string> resource-identifier := <restricted-string>
(/ <restricted-string>)* (/ <restricted-string>)*
version-identifier := <restricted-string> version-identifier := <restricted-string>
(/ <restricted-string>)* (/ <restricted-string>)*
restricted-string := [A-Za-z0-9-._~!$&'()*+,;=@]+ restricted-string := [A-Za-z0-9-._~!$&'()*+,;=@]+
]]></sourcecode>
]]></artwork> </section>
</figure> <section anchor="sect-3.1.4" numbered="true" toc="default">
<name>Examples of DDI URNs</name>
</section> <t>
The examples are taken from the DDI Lifecycle 3.3 documentation <xref target=
<section title="Examples of DDI URNs" anchor="sect-3.1.4"><t> "DDI-ID"/>.
The examples are taken from the DDI Lifecycle 3.3. documentation. Please note that the resource-identifiers are simplified. In real
Please note that the resource identifiers are simplified. In real
applications, they are much longer for unique identification applications, they are much longer for unique identification
purposes. They don't relate to DDI types like the examples might purposes. They don't relate to DDI types like the examples might
suggest.</t> suggest.</t>
<t>URN of a Represented Variable</t> <figure>
<figure><artwork><![CDATA[ <name>URN of a Represented Variable</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
urn:ddi:us.ddia1:R-V1:1 urn:ddi:us.ddia1:R-V1:1
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
The DDI represented variable identified by "R-V1" with the version The DDI represented variable identified by "R-V1" with the version
"1" of the DDI agency "ddia1" located in the domain "us" "1" of the DDI agency "ddia1" located in the domain "us"
<xref target="DDIEXRV"/>.</t> <xref target="DDI-EXRV" format="default"/>.</t>
<t>URN of a Question Item</t> <figure>
<figure><artwork><![CDATA[ <name>URN of a Question Item</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
urn:ddi:us.ddia1:PISA-QS.QI-2:1 urn:ddi:us.ddia1:PISA-QS.QI-2:1
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
The DDI question item identified by "PISA-QS.QI-2" with the The DDI question item identified by "PISA-QS.QI-2" with the
version "1" of the DDI agency "ddia1" in the domain "us" version "1" of the DDI agency "ddia1" located in the domain "us"
<xref target="DDIEXQU"/>.</t> <xref target="DDI-EXQU" format="default"/>.</t>
<t>URN as Reference to a Controlled Vocabulary</t> <figure>
<figure><artwork><![CDATA[ <name>URN as Reference to a Controlled Vocabulary</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
urn:ddi:int.ddi.cv:AggregationMethod:1.0 urn:ddi:int.ddi.cv:AggregationMethod:1.0
]]></artwork> ]]></artwork>
</figure> </figure>
<t> <t>
The DDI controlled vocabulary identified by "AggregationMethod" The DDI controlled vocabulary identified by "AggregationMethod"
with the version "1.0" in the scope of the DDI agency "ddi" and 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> sub-agency "cv" in the domain "int" <xref target="DDI-CVAG" format="default"/
>.</t>
</section> </section>
</section>
</section> <section anchor="sect-3.2" numbered="true" toc="default">
<name>Relevant Ancillary Documentation</name>
<section title="Relevant Ancillary Documentation" <t> An introductory article on DDI can be found at
anchor="sect-3.2"><t> An introductory article on DDI can be found at <xref target="DDI-INTR" format="default"/>.</t>
<xref target="DDIINTR"/>.</t> <t>
<t>
Information on the DDI specifications (DDI-C, DDI-L, XKOS, Information on the DDI specifications (DDI-C, DDI-L, XKOS,
Controlled Vocabularies, and SDTL) can be found in the standards Controlled Vocabularies, and SDTL) can be found in the standards
section of the DDI Alliance website <xref target="DDIALL"/>.</t> section of the DDI Alliance website <xref target="DDI-ALL" format="default"/>
.</t>
<t> <t>
Information on domain names can be found in the relevant RFCs. Information on domain names can be found in the relevant RFCs.
<list style="symbols"> </t>
<t>For an overview, see <xref target="RFC1034"/>.</t> <ul spacing="normal">
<li>For an overview, see <xref target="RFC1034" format="default"/>.</l
<t>Regarding case insensitivity, see <xref target="RFC1035"/> section 2.3.3 i>
.</t> <li>Regarding case insensitivity, see <xref target="RFC1035"
sectionFormat="of" section="2.3.3"/>.</li>
<t>Regarding syntax, see <xref target="RFC0952"/> section "Grammatical <li>Regarding syntax, see the "Lexical grammar" in the "Grammatical Ho
Host Table Specification" B. and <xref target="RFC1123"/> section st Table
2.1.</t> Specification" section of <xref target="RFC0952"
format="default"/> and <xref target="RFC1123" sectionFormat="of"
<t>Regarding size limits, see <xref target="RFC1123"/> section 2.1 and <xre section="2.1"/>.</li>
f target="RFC1035"/> section 2.3.4.</t> <li>Regarding size limits, see <xref target="RFC1123"
sectionFormat="of" section="2.1"/> and <xref target="RFC1035"
</list> sectionFormat="of" section="2.3.4"/>.</li>
</t> </ul>
</section>
</section> <section anchor="sect-3.3" numbered="true" toc="default">
<name>Identifier Uniqueness Considerations</name>
<section title="Identifier Uniqueness Considerations" anchor="sect-3.3">< <t>
t>
Assignment of identifiers for DDI agencies in the requested Assignment of identifiers for DDI agencies in the requested
namespace will be managed by the DDI Alliance, which will ensure namespace will be managed by the DDI Alliance, which will ensure
that the assigned DDI agency identifiers are consistent with the that the assigned DDI agency-identifiers are consistent with the
directives for unique identification of DDI agencies.</t> directives for unique identification of DDI agencies.</t>
<t>
<t>
Assignment of URNs for resources of a DDI agency in the requested Assignment of URNs for resources of a DDI agency in the requested
namespace will be managed by the respective DDI agency, which namespace will be managed by the respective DDI agency, which
ensures that the assigned URNs are unique for the scope of the ensures that the assigned URNs are unique for the scope of the
agency.</t> agency.</t>
</section>
</section> <section anchor="sect-3.4" numbered="true" toc="default">
<name>Identifier Persistence Considerations</name>
<section title="Identifier Persistence Considerations" anchor="sect-3.4"> <t>
<t> Persistence of identifiers is dependent upon the suitable delegation
Persistence of identifiers is dependent upon suitable delegation of resolution at the level of the DDI agencies and the persistence of
of resolution at the level of the DDI agencies, and persistence of
DDI agency assignment. The persistence of the referenced resource DDI agency assignment. The persistence of the referenced resource
is also the responsibility of the DDI agency.</t> is also the responsibility of the DDI agency.</t>
</section>
</section> <section anchor="sect-3.5" numbered="true" toc="default">
<name>Process of Identifier Assignment</name>
<section title="Process of Identifier Assignment" anchor="sect-3.5"><t> <t>
Assignment of identifiers for DDI agencies in the requested Assignment of identifiers for DDI agencies in the requested
namespaceis managed by the DDI Alliance. A registry for DDI agency namespace is managed by the DDI Alliance. A registry for DDI agency
identifiers ensures through an approval process that the syntax of identifiers ensures through an approval process that the syntax of
agency identifiers complies with the associated rules <xref target="DDIREGI"/ agency-identifiers complies with the associated rules <xref target="DDI-REGI"
>.</t> format="default"/>.</t>
<t>
<t>
Assignment of URNs for resources of a DDI agency and sub-agencies 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 of a DDI agency in the requested namespace will be managed by the
respective DDI agency.</t> respective DDI agency.</t>
</section>
</section> <section anchor="sect-3.6" numbered="true" toc="default">
<name>Process for Identifier Resolution</name>
<section title="Process for Identifier Resolution" anchor="sect-3.6"><t> <t>
The DDI Alliance will promote a service discovery system for The DDI Alliance promotes a service discovery system for
identifying available services connected to DDI agencies using the identifying available services connected to DDI agencies using the
Domain Name System (DNS). A DNS request for a DDI agency within 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 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 Alliance to the DNS servers of the relevant DDI agency. The
response is a list of available DDI services for the agency response is a list of available DDI services for the agency
identifier under which the agency has assigned URNs. The approach identifier under which the agency has assigned URNs. The approach
is based on the Dynamic Delegation Discovery System (DDDS) is based on the Dynamic Delegation Discovery System (DDDS)
<xref target="RFC3401"/> and especially the straightforward URI-enabled NAPTR <xref target="RFC3401" format="default"/> and especially the straightforward
(U-NAPTR) <xref target="RFC4848"/>.</t> URI-enabled NAPTR
(U-NAPTR) <xref target="RFC4848" format="default"/>.</t>
<t> <t>
The DDI Alliance is responsible for operating or delegating The DDI Alliance is responsible for operating or delegating
resolution requests to the resolution servers of the relevant DDI resolution requests to the resolution servers of the relevant DDI
agencies. DDI agencies are responsible for operating or delegating agencies. DDI agencies are responsible for operating or delegating
resolution servers for the agency identifier under which they have resolution servers for the agency-identifier under which they have
assigned URNs.</t> assigned URNs.</t>
<t> <figure>
Sample Sequence Diagram for receiving a list of DDI services from <name>Sample Sequence Diagram for Receiving a List of DDI Services from the
the example DDI agency "ddia1".</t> Example DDI agency "ddia1"</name>
<artwork name="" type="" align="left" alt=""><![CDATA[
<figure><artwork><![CDATA[ Client NS for NS for NS for DDI services
Client NS for NS for NS for DDI urn.arpa ddialliance.org example1.edu for us.ddia1
services | | | | |
urn.arpa ddialliance.org example1.edu for 1 |------>| | | |
us.ddia1 2 | |----------->| | |
| | | | | 3 | |-------------->| |
1 |------>| | | | 4 |<-----------------------------------| |
2 |<------| | | | 5 |-------------------------------------------------->|
3 |---------------------->| | | 6 |<--------------------------------------------------|
4 |<----------------------| | |
5 |-------------------------------------->| |
6 |<--------------------------------------| |
7 |------------------------------------------------------>|
8 |<------------------------------------------------------|
]]></artwork> ]]></artwork>
</figure> </figure>
<t><list style="numbers">
<t>The name server (NS) of IANA for the domain "urn.arpa." is <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 reached with the request "ddia1.us.ddi.urn.arpa." for the DDI agency
"us.ddia1".</t> "us.ddia1".</li>
<li>The request is delegated to the name server for
<t>The request is delegated to the name server for "ddialliance.org".< "ddialliance.org".</li>
/t> <li>The request is delegated to the name server for "example1.edu"
(domain of the DDI agency "us.ddia1").</li>
<t>The request is delegated to the name server for "ddialliance.org".< <li>The server responds with a list of NAPTR records <xref
/t> target="RFC3403" format="default"/> pointing to available DDI
services for the DDI agency "us.ddia1".</li>
<t>The request is delegated to the name server for "example1.edu" <li>The client selects an appropriate DDI service and sends a
(domain of the DDI agency "us.ddia1"). </t> request for a DDI URN to this service.</li>
<li>The DDI service responds, for example, with a DDI object
<t>The request is delegated to the name server for "example1.edu" identified by the requested DDI URN.</li>
(domain of the DDI agency "us.ddia1"). </t> </ol>
<t>The server responds with a list of NAPTR records <xref
target="RFC3403"/> pointing to available DDI services for the DDI
agency "us.ddia1".</t>
<t>The client selects an appropriate DDI service and sends a request
for a DDI URN to this service.</t>
<t>The DDI service responds for example with a DDI object identified
by the requested DDI URN.</t>
</list>
</t>
<t>
See Appendix A for examples of name server records.</t>
</section>
<section title="Rules for Lexical Equivalence" anchor="sect-3.7"><t> <t>See <xref target="sect-a" format="default"/> for examples of name
The DDI agency identifier basically follows the rules of domain server records.</t>
names. Domain names are case-insensitive. Thus, the portion of the </section>
URN</t> <section anchor="sect-3.7" numbered="true" toc="default">
<name>Rules for Lexical Equivalence</name>
<t>The DDI agency-identifier basically follows the rules of domain
names. Domain names are case insensitive. Thus, the following portion of
the
URN is case insensitive for matches:</t>
<figure><artwork><![CDATA[ <artwork name="" type="" align="left" alt=""><![CDATA[
urn:ddi:<agency-id>: urn:ddi:<agency-id>:
]]></artwork> ]]></artwork>
</figure>
<t>
is case-insensitive for matches. The remainder of the identifier
MUST be considered case-sensitive.</t>
</section>
<section title="Conformance with URN Syntax" anchor="sect-3.8"><t>
The Namespace Specific String conforms to the related section in
<xref target="RFC8141"/>. It is composed from the limited set of characters f
or
an URN NSS <xref target="RFC8141"/>. Percent encoding is not used.</t>
</section> <t>
The remainder of the identifier
<section title="Validation Mechanism" anchor="sect-3.9"><t> <bcp14>MUST</bcp14> be considered case sensitive.</t>
</section>
<section anchor="sect-3.8" numbered="true" toc="default">
<name>Conformance with URN Syntax</name>
<t>The NSS conforms to the related section in <xref target="RFC8141"
format="default"/>. It is composed from the limited set of characters
for a URN NSS <xref target="RFC8141"
format="default"/>. Percent-encoding is not used.</t>
</section>
<section anchor="sect-3.9" numbered="true" toc="default">
<name>Validation Mechanism</name>
<t>
The DDI Alliance will promote development of software for The DDI Alliance will promote development of software for
validation purposes.</t> validation purposes.</t>
</section>
</section> <section anchor="sect-3.10" numbered="true" toc="default">
<name>Scope</name>
<section title="Scope" anchor="sect-3.10"><t> <t>
The scope is global.</t> The scope is global.</t>
</section>
</section> </section>
<section anchor="sect-4" numbered="true" toc="default">
</section> <name>Namespace Considerations</name>
<t>
<section title="Namespace Considerations" anchor="sect-4"><t>
There is no available namespace that will allow one to uniquely There is no available namespace that will allow one to uniquely
identify and access DDI resources.</t> identify and access DDI resources.</t>
<section anchor="sect-4.1" numbered="true" toc="default">
<section title="URN Assignment Procedures" anchor="sect-4.1"><t> <name>URN Assignment Procedures</name>
See section 3.5, 'Process of Identifier Assignment'.</t> <t>See <xref target="sect-3.5" format="default"/>, "<xref target="sect-3
.5" format="title"/>".</t>
</section> </section>
<section anchor="sect-4.2" numbered="true" toc="default">
<section title="URN Resolution/Delegation" anchor="sect-4.2"><t> <name>URN Resolution/Delegation</name>
See section 3.6, 'Process for Identifier Resolution'.</t> <t>See <xref target="sect-3.6" format="default"/>,
"<xref target="sect-3.6" format="title"/>".</t>
<t> <t>It is <bcp14>RECOMMENDED</bcp14> that sub-agencies for flexible
It is RECOMMENDED to use sub-agencies for flexible administration. administration be used. For example, delegation of URNs of a sub-agency
For example, delegation of URNs of a sub-agency to different to
servers would be easily possible.</t> different servers would be easily possible.</t>
</section>
</section> <section anchor="sect-4.3" numbered="true" toc="default">
<name>Type of Resources To Be Identified</name>
<section title="Type of Resources to be Identified" anchor="sect-4.3"><t> <t>
The DDI specifications define resources at a granular level, many The DDI specifications define resources at a granular level, many
of which can be identified by a DDI URN.</t> of which can be identified by a DDI URN.</t>
</section>
<section anchor="sect-4.4" numbered="true" toc="default">
<name>Type of 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 <xref target="RFC2483"/>.</t>
</section> <ul spacing="normal">
<li>
<section title="Type of Services" anchor="sect-4.4"><t> <t>DDI repository</t>
Examples of potential services are listed below. The services and <dl spacing="normal" newline="false">
appropriate service tags need to be defined in future. The <dt>I2R (URI to Resource):</dt>
mentioned service tags are from [RFC2483]. <dd>given a DDI URN return, one instance
of the resource identified by that URN.</dd>
<list style="symbols"> </dl>
<t>DDI repository </li>
<li>
<list style="symbols"> <t>DDI registry</t>
<t>I2R (URI to Resource): given a DDI URN return one instance <dl spacing="normal" newline="false">
of the resource identified by that URN.</t> <dt>I2C (URI to URC, Uniform Resource Characteristics are
</list> descriptions of resources):</dt>
</t> <dd>given a DDI URN return, a description
or a summary of that resource.</dd>
<t>DDI registry </dl>
</li>
<list style="symbols"> <li>
<t>I2C (URI to URC, Uniform Resource Characteristics are <t>DDI URN resolution</t>
descriptions of resources): given a DDI URN return a description or <dl spacing="normal">
a summary of that resource.</t> <dt>I2L (URI to URL):</dt>
</list> <dd>given a DDI URN return, one URL that
</t> identifies a location where the identified DDI resource can be
found.</dd>
<t>DDI URN resolution <dt>I2Ls (URI to URLs):</dt>
<list style="symbols"> <dd>given a DDI URN return, one or more URLs
<t>I2L (URI to URL): given a DDI URN return one URL that identifies that identify multiple locations of the identified DDI
a location where the identified DDI resource can be found.</t> resource.</dd>
</dl>
<t>I2Ls (URI to URLs): given a DDI URN return one or more URLs that </li>
identify multiple locations of the identified DDI resource.</t> </ul>
</list>
</t>
</list>
</t>
</section>
</section>
<section title="Community Considerations" anchor="sect-5"><section title= </section>
"Open Assignment and Use of Identifiers" anchor="sect-5.1"><t> </section>
DDI agency identifiers can be registered at the DDI Alliance. The <section anchor="sect-5" numbered="true" toc="default">
DDI Alliance will maintain a registry of the assigned values for <name>Community Considerations</name>
the DDI agency identifier used in the NSS. Information may be <section anchor="sect-5.1" numbered="true" toc="default">
<name>Open Assignment and Use of Identifiers</name>
<t>
DDI agency-identifiers can be registered at the DDI Alliance. The
DDI Alliance maintains a registry of the assigned values for
the DDI agency-identifier used in the NSS. Information may be
obtained from the following address: secretariat@ddialliance.org.</t> obtained from the following address: secretariat@ddialliance.org.</t>
<t>
<t>
DDI agencies assign URNs and potential sub-agencies within the DDI agencies assign URNs and potential sub-agencies within the
scope of the assigned DDI agency identifiers.</t> scope of the assigned DDI agency-identifiers.</t>
<t>
<t> See also <xref target="sect-3.3"/> on "<xref target="sect-3.3" format="title"
See also above section on Identifier Uniqueness Considerations.</t> />".</t>
</section>
</section> <section anchor="sect-5.2" numbered="true" toc="default">
<name>Open Operation of Resolution Servers</name>
<section title="Open Operation of Resolution Servers" anchor="sect-5.2">< <t>
t>
The DDI Alliance operates publicly accessible name servers for the The DDI Alliance operates publicly accessible name servers for the
delegation of DNS requests within the domain ddi.urn.arpa to DNS delegation of DNS requests within the domain ddi.urn.arpa to DNS
servers of DDI agencies.</t> servers of DDI agencies.</t>
</section>
<section anchor="sect-5.3" numbered="true" toc="default">
<name>Creation of Software for Service Discovery</name>
<t>The DDI Alliance promotes software for service discovery for
identifying available services connected to DDI agencies using the
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="DDI-RESO"
format="default"/>.</t>
</section>
</section>
<section anchor="sect-6" numbered="true" toc="default">
<name>IANA Considerations</name>
<t>
IANA has updated the "ddi" entry in the "Formal URN Namespaces"
registry to reference this specification.</t>
</section> <t>The following NAPTR record for the key "ddi" has been registered in
the urn.arpa zone:</t>
<section title="Creation of Software for Service Discovery" anchor="sect-
5.3"><t>
The DDI Alliance will promote software for the resolution of DDI
agency identifiers and service discovery. See also Appendix B for
the resolution algorithm. A basic resolver library is available
<xref target="DDIRESO"/>.</t>
</section>
</section>
<section title="IANA Considerations" anchor="sect-6"><t>
IANA is requested to update the "ddi" entry in the Universal
Resource Names registry to reference this specification.</t>
<t>
The registration for "ddi" in the "URN.ARPA" zone is approved.
Requests for the domain ddi.urn.arpa will be delegated to the name
servers of the DDI Alliance.</t>
</section> <artwork name="" type="" align="left" alt=""><![CDATA[
ddi IN NAPTR 100 10 "" "" "" registry.ddialliance.org.
]]></artwork>
<section title="Security Considerations" anchor="sect-7"><t> <t>Requests for the domain ddi.urn.arpa are delegated to the name
servers of the DDI Alliance.</t>
</section>
<section anchor="sect-7" numbered="true" toc="default">
<name>Security Considerations</name>
<t>
URN:DDI identifiers are assigned to resources that are public URN:DDI identifiers are assigned to resources that are public
information, and therefore resolving these identifiers has low information; therefore, resolving these identifiers has low
security profile.</t> security profile.</t>
<t>
<t>
Registration of DDI agencies is approved by the DDI Alliance. Registration of DDI agencies is approved by the DDI Alliance.
Assignment and resolution of URN:DDI identifiers are controlled by Assignment and resolution of URN:DDI identifiers are controlled by
the DDI Alliance and approved DDI agencies. The DDI Alliance SHALL the DDI Alliance and approved DDI agencies. The DDI Alliance <bcp14>SHALL</bc p14>
have in place control mechanisms in order to make sure that DDI have in place control mechanisms in order to make sure that DDI
Agency applications from malicious 3rd parties will not be Agency applications from malicious third parties will not be
accepted. URN:DDI resolvers will be protected against accepted. URN:DDI resolvers will be protected against
eavesdropping and attacks with appropriate tools.</t> eavesdropping and attacks with appropriate tools.</t>
<t>
<t>
This document introduces no additional technical security This document introduces no additional technical security
considerations beyond those associated with the use and resolution considerations beyond those associated with the use and resolution
of URNs in general.</t> of URNs in general.</t>
<t>
The security of the DNS-based resolution of DDI 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" format="default"/>. Further information on security
considerations regarding U-NAPTR can be found in <xref target="RFC4848"
sectionFormat="comma" section="6"/>. "DNS Queries over HTTPS (DoH)" <xref
target="RFC8484" format="default"/> could be used to increase security by
preventing eavesdropping and manipulation of DNS data by machine-in-the-middl
e
attacks. The HTTPS protocol encrypts the data between the DoH client and
the DoH-based DNS resolver.</t>
</section>
</middle>
<back>
<references>
<t> <name>References</name>
The security of the DNS-based resolution of DDI agency identifiers <references>
is only as good as the security of DNS queries in general. A full <name>Normative References</name>
discussion of the security threats pertaining to DNS and possible
solutions can be found in <xref target="RFC3833"/>. Further information on
security considerations regarding U-NAPTR can be found in
<xref target="RFC4848"/> section 6. DNS over HTTPS (DoH) <xref target="RFC848
4"/> could be used
to increase security by preventing eavesdropping and manipulation
of DNS data by man-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">
<reference anchor="DDIC" target="https://ddialliance.org/Specification/DDI- Codebook"> <reference anchor="DDI-C" target="https://ddialliance.org/Specification/ DDI-Codebook/2.5/">
<front> <front>
<title>DDI Codebook</title> <title>DDI-Codebook 2.5</title>
<author><organization>DDI Alliance</organization></author> <author>
<date year="2014"/> <organization>DDI Alliance</organization>
</author>
<date year="2014"/>
</front> </front>
</reference> </reference>
<reference anchor="DDIL" target="https://ddialliance.org/Specification/DDI- Lifecycle/"> <reference anchor="DDI-L" target="https://ddialliance.org/Specification/ DDI-Lifecycle/">
<front> <front>
<title>DDI Lifecycle</title> <title>DDI-Lifecycle</title>
<author><organization>DDI Alliance</organization></author> <author>
<date year="2020"/> <organization>DDI Alliance</organization>
</author>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-XKOS" target="https://ddialliance.org/Specificati
anchor="DDIXKOS" target="https://ddialliance.org/Specification/RDF/XK on/RDF/XKOS">
OS">
<front> <front>
<title>DDI XKOS - Extended Knowledge Organization System</title> <title>XKOS - Extended Knowledge Organization System</title>
<author><organization>DDI Alliance</organization></author> <author>
<date year="2020"/> <organization>DDI Alliance</organization>
</author>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-ID" target="https://ddi-lifecycle-technical-guide
anchor="DDIID" target="https://ddi-lifecycle-technical-guide.readthed .readthedocs.io/en/latest/General%20Structures/Identification.html">
ocs.io/en/latest/General%20Structures/Identification.html">
<front> <front>
<title>DDI Lifecycle (3.3) Technical Guide, Identification</title> <title>Identification</title>
<author></author> <author><organization>DDI Alliance</organization></author>
<date year="2020"/> <date/>
</front> </front>
<refcontent>DDI Lifecycle (3.3) Technical Guide: General Structures</re fcontent>
</reference> </reference>
&RFC952; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0
&RFC1034; 952.xml"/>
&RFC1035; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1
&RFC1123; 034.xml"/>
&RFC2026; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1
&RFC2119; 035.xml"/>
&RFC2181; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1
&RFC3986; 123.xml"/>
&RFC4343; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
&RFC5234; 119.xml"/>
&RFC5378; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
&RFC8141; 181.xml"/>
&RFC8174; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
&RFC8179; 986.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
343.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
234.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
141.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<reference <reference anchor="DDI-SDTL" target="https://ddialliance.org/products/sd
anchor="SDTL" target="https://ddialliance.org/products/sdtl/1.0/"> tl/1.0/">
<front> <front>
<title>SDTL - Structured Data Transformation Language - Version 1.0< /title> <title>SDTL - Structured Data Transformation Language - Version 1.0< /title>
<author></author> <author>
<date></date> <organization>DDI Alliance</organization>
</author>
<date month="December" year="2020"/>
</front> </front>
</reference> </reference>
<reference <reference anchor="TLD" target="https://www.iana.org/domains/root/db">
anchor="TLD" target="https://www.iana.org/domains/root/db">
<front> <front>
<title>IANA Database of Top Level Domains</title> <title>Root Zone Database</title>
<author></author> <author>
<date></date> <organization>IANA</organization>
</author>
<date/>
</front> </front>
</reference> </reference>
</references> </references>
<references title="Informative References"> <references>
<name>Informative References</name>
<reference <reference anchor="ABNF2RS" target="https://www.msweet.org/abnf/">
anchor="ABNF2RS" target="https://www.msweet.org/abnf/">
<front> <front>
<title>ABNF to REGEX Regular Expression Generator</title> <title>ABNF to REGEX: Regular Expression Generator</title>
<author initials="M." surname="Sweet" fullname="Michael R. Sweet"></a <author/>
uthor> <date month="October" year="2019"/>
<date></date>
</front> </front>
</reference> </reference>
<reference <reference anchor="ABNFGEN" target="http://www.quut.com/abnfgen/">
anchor="ABNFGEN" target="http://www.quut.com/abnfgen/">
<front> <front>
<title>abnfgen</title> <title>abnfgen</title>
<author initials="J." surname="Degener" fullname=" Jutta Degener"></ <author initials="J." surname="Degener" fullname="Jutta Degener"/>
author> <date/>
<date></date>
</front> </front>
</reference> </reference>
<reference <reference anchor="ABNFPFE" target="https://author-tools.ietf.org/abnf">
anchor="ABNFPFE" target="http://tools.ietf.org/tools/bap/abnf.cgi">
<front> <front>
<title>ABNF Parser</title> <title>IETF Author Tools - ABNF Tools</title>
<author initials="B." surname="Fenner" fullname="Bill Fenner"></auth <author><organization>IETF</organization></author>
or> <date/>
<date></date>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-ALL" target="https://ddialliance.org/">
anchor="DDIALL" target="https://ddialliance.org/">
<front> <front>
<title>DDI Alliance</title> <title>Document, Discover and Interoperate</title>
<author></author> <author>
<date></date> <organization>DDI Alliance</organization>
</author>
<date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-CVAG" target="https://ddialliance.org/Specificati
anchor="DDICVAG" on/DDI-CV/AggregationMethod_1.0.html">
target="https://ddialliance.org/Specification/DDI-CV/AggregationMethod
_1.0.html">
<front> <front>
<title>DDI Controlled Vocabulary for Aggregation Method</title> <title>DDI Controlled Vocabulary for Aggregation Method</title>
<author></author> <author><organization>DDI Alliance</organization></author>
<date></date> <date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-EXQU" target="https://ddi-lifecycle-technical-gui
anchor="DDIEXQU" target="https://ddi-lifecycle-technical-guide.readth de.readthedocs.io/en/latest/Examples/Questions.html">
edocs.io/en/latest/Examples/Questions.html">
<front> <front>
<title>DDI Lifecycle 3.3 Technical Guide, Examples, Questions</title <title>Questions</title>
> <author><organization>DDI Alliance</organization></author>
<author></author> <date/>
<date></date>
</front> </front>
<refcontent>DDI Lifecycle 3.3 Technical Guide: Examples</refcontent>
</reference> </reference>
<reference <reference anchor="DDI-EXRV" target="https://ddi-lifecycle-technical-gui
anchor="DDIEXRV" target="https://ddi-lifecycle-technical-guide.r de.readthedocs.io/en/latest/Examples/RepresentedVariable.html">
eadthedocs.io/en/latest/Examples/RepresentedVariable.html">
<front> <front>
<title>DDI Lifecycle 3.3 Technical Guide, Examples, Represented Vari <title>Represented Variable</title>
able</title> <author><organization>DDI Alliance</organization></author>
<author></author> <date/>
<date></date>
</front> </front>
<refcontent>DDI Lifecycle 3.3 Technical Guide: Examples</refcontent>
</reference> </reference>
<reference <reference anchor="DDI-INTR" target="http://www.ijdc.net/article/view/66
anchor="DDIINTR" target="http://www.ijdc.net/article/view/66"> ">
<front> <front>
<title>Data Documentation Initiative: Toward a Standard for the Soci al Sciences</title> <title>Data Documentation Initiative: Toward a Standard for the Soci al Sciences</title>
<author initials="M." surname="Vardigan" fullname=""></author> <author initials="M." surname="Vardigan" fullname="Mary Vardigan"/>
<author initials="P." surname="Heus" fullname=""></author> <author initials="P." surname="Heus" fullname="Pascal Heus"/>
<author initials="W." surname="Thomas" fullname=""></author> <author initials="W." surname="Thomas" fullname="Wendy Thomas"/>
<date year="2008" /> <date month="December" year="2008"/>
</front> </front>
<seriesInfo name="The International Journal of Digital Curation 3, 1" <seriesInfo name="DOI" value="10.2218/ijdc.v3i1.45"/>
value=""/> <refcontent>The International Journal of Digital Curation, Issue 1, Vo
lume 3</refcontent>
</reference> </reference>
<reference <reference anchor="DDI-REGI" target="https://registry.ddialliance.org/">
anchor="DDIREGI" target="https://registry.ddialliance.org/">
<front> <front>
<title>DDI Agency Registry</title> <title>Welcome to the DDI Registry</title>
<author></author> <author>
<date></date> <organization>DDI Alliance</organization>
</author>
<date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="DDI-RESO" target="https://registry.ddialliance.org/Ho
anchor="DDIRESO" target="https://registry.ddialliance.org/Home/Tools" me/Tools">
>
<front> <front>
<title>DDI Agency Registry Tools</title> <title>Tools</title>
<author></author> <author>
<date></date> <organization>DDI Alliance</organization>
</author>
<date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="DUBLINC" target="https://www.dublincore.org/">
anchor="DUBLINC" target="https://www.dublincore.org/">
<front> <front>
<title>Dublin Core Metadata Initiative</title> <title>Dublin Core</title>
<author></author> <author><organization>Dublin Core Metadata Initiative</organization>
<date></date> </author>
<date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="ISO3166" target="https://www.iso.org/iso-3166-country
anchor="ISO3166" target="https://www.iso.org/iso-3166-country-codes.h -codes.html">
tml">
<front> <front>
<title>ISO 3166 Country Codes</title> <title>ISO 3166 Country Codes</title>
<author></author> <author>
<date></date> <organization>ISO</organization>
</author>
<date/>
</front> </front>
</reference> </reference>
<reference <reference anchor="IS11179" target="https://www.iso.org/standard/78916.h
anchor="IS11179" target="http://metadata-standards.org/11179/"> tml">
<front> <front>
<title>Information technology - Metadata registries (MDR) - Part 6: <title>Information technology - Metadata registries (MDR) - Part
Registration</title> 6: Registration</title>
<author></author> <author>
<date></date> <organization>ISO</organization>
</author>
<date month="January" year="2023"/>
</front> </front>
<seriesInfo name="ISO/IEC" value="11179"/> <seriesInfo name="ISO/IEC" value="11179-6:2023"/>
</reference> </reference>
<reference <reference anchor="ISO.19115.2003" target="https://www.iso.org/standard/
anchor="IS19115" target="https://www.iso.org/standard/26020.html"> 26020.html">
<front> <front>
<title>Geographic information - Metadata</title> <title>Geographic information - Metadata</title>
<author></author> <author>
<date></date> <organization>ISO</organization>
</author>
<date/>
</front> </front>
<seriesInfo name="ISO" value="19115"/> <seriesInfo name="ISO" value="19115:2003"/>
</reference> </reference>
&RFC2782; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
&RFC2843; 782.xml"/>
&RFC3401; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
&RFC3402; 483.xml"/>
&RFC3403; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
&RFC3833; 401.xml"/>
&RFC3958; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
&RFC4848; 402.xml"/>
&RFC5385; <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
&RFC8484; 403.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
833.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3
958.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
848.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
484.xml"/>
<reference <reference anchor="SDMX" target="https://sdmx.org/">
anchor="SDMX" target="https://sdmx.org/">
<front> <front>
<title>SDMX - Statistical Data and Metadata Exchange</title> <title>SDMX</title>
<author></author> <author>
<date></date> <organization>Statistical Data and Metadata eXchange</organization>
</author>
<date/>
</front> </front>
<seriesInfo name="ISO" value="19115"/>
</reference> </reference>
</references> </references>
<section title="Acknowledgments" anchor="sect-9"><t> </references>
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 DNS Records" anchor="sect-a"><t>
The examples use NAPTR <xref target="RFC3403"/> and SRV <xref target="RFC2782
"/><xref target="RFC3958"/>
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 a description of the packet format of NAPTR, see <xref target="RFC3403"/>
section 4.1.</t>
</section> <section anchor="sect-a" numbered="true" toc="default">
<name>Example DNS Records</name>
<t>The examples use NAPTR <xref target="RFC3403" format="default"/> and
SRV <xref 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" sectionFormat="comma" section="9"/>).</t>
<t>For a description of the packet format of NAPTR, see <xref
target="RFC3403" sectionFormat="comma" section="4.1"/>.</t>
<section title="Delegation of the URN Namespace &quot;ddi&quot;" anchor=" <section anchor="sect-a.1" numbered="true" toc="default">
sect-a.1"><t> <name>Delegation of the URN Namespace "ddi"</name>
<t>
Example records below are defined at a.iana-servers.net and other Example records below are defined at a.iana-servers.net and other
authoritative name servers for the domain urn.arpa.</t> authoritative name servers for the domain urn.arpa.</t>
<t>
<t>
The empty flag indicates that the lookup is not terminal and the 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 next probe to DNS is for more NAPTR records where the new domain
is "dns.ddialliance.org".</t> is "dns.ddialliance.org".</t>
<figure><artwork><![CDATA[ <sourcecode name="" type="dns-rr"><![CDATA[
; Delegation to name servers of ddialliance.org ; Delegation to name servers of ddialliance.org
; order pref flag service regexp replacement ; order pref flag service regexp replacement
ddi.urn.arpa. ddi.urn.arpa.
IN NAPTR 100 10 "" "" "" dns.ddialliance.org. IN NAPTR 100 10 "" "" "" dns.ddialliance.org.
]]></artwork> ]]></sourcecode>
</figure>
</section>
<section title="Delegation of DDI Agencies" anchor="sect-a.2"><t> </section>
<section anchor="sect-a.2" numbered="true" toc="default">
<name>Delegation of DDI Agencies</name>
<t>
Example records below are defined at dns.ddialliance.org for Example records below are defined at dns.ddialliance.org for
ddi.urn.arpa.</t> ddi.urn.arpa.</t>
<t>
<t>
The empty flag indicates that the lookup is not terminal and the 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 next probe to DNS is for more NAPTR records where the new domain
is the DNS server of the relevant DDI agency.</t> 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. ; Delegation to name servers of subdomains in ddi.urn.arpa, i.e.
; DDI agencies. ; DDI agencies.
; order pref flag service regexp replacement ; order pref flag service regexp replacement
ddia1.us.ddi.urn.arpa. ddia1.us.ddi.urn.arpa.
IN NAPTR 100 10 "" "" "" dns.example1.edu. IN NAPTR 100 10 "" "" "" dns.example1.edu.
ddia2.de.ddi.urn.arpa. ddia2.de.ddi.urn.arpa.
IN NAPTR 100 10 "" "" "" dns.example2.org. IN NAPTR 100 10 "" "" "" dns.example2.org.
ddia3.gb.ddi.urn.arpa. ddia3.gb.ddi.urn.arpa.
IN NAPTR 100 10 "" "" "" dns.example3.ac.uk. IN NAPTR 100 10 "" "" "" dns.example3.ac.uk.
]]></artwork> ]]></sourcecode>
</figure>
</section>
<section title="DDI Services" anchor="sect-a.3"><t>
Example records below are defined at dns.example2.org for
ddi.urn.arpa.</t>
<t>
The "u" flag states that the rule is terminal and that the output
is a URI which 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 for which an SRV
record SHOULD be queried. See also <xref target="RFC4848"/> section 4.4.</t>
<t>
The service N2R 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/"/>; possibly a REST
-based
service. The service N2C 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> </section>
U-NAPTR permits regular expressions of a form that does a complete <section anchor="sect-a.3" numbered="true" toc="default">
replacement of the matched string with a URI, expressed as a <name>DDI Services</name>
constant string. With this limited form of regular expression <t>Example records below are defined at dns.example2.org for
(<xref target="RFC4848"/> section 2.2.), applications using NAPTR need not ddi.urn.arpa.</t>
implement full regular expression parsers.</t> <t>The "u" flag states that the rule is terminal and that the output is
a URI 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 for which an SRV record
<bcp14>SHOULD</bcp14> be queried. See also <xref target="RFC4848"
sectionFormat="comma" section="4.4"/>.</t>
<t>The service 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/I2R/"/>; possibly a
REST-based service. The service 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 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" 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. ddia2.de.ddi.urn.arpa.
; order pref flag ; order pref flag
IN NAPTR 100 10 "u" "N2R+http" ( ; service IN NAPTR 100 10 "u" "I2R+http" ( ; service
"!.*!http://repos.example2.org/N2R/!"; regex "!.*!http://repos.example2.org/I2R/!"; regex
. ; replacement . ; replacement
) )
IN NAPTR 100 10 "s" "N2C+udp" ( ; service IN NAPTR 100 10 "s" "I2C+udp" ( ; service
"" ; regex "" ; regex
registry._udp.example2.org. ; replacement registry._udp.example2.org. ; replacement
) )
; all subdomains in ddia2.de.ddi.urn.arpa. ; all subdomains in ddia2.de.ddi.urn.arpa.
*.ddia2.de.ddi.urn.arpa. *.ddia2.de.ddi.urn.arpa.
ddia2.de.ddi.urn.arpa. ddia2.de.ddi.urn.arpa.
; order pref flag ; order pref flag
IN NAPTR 100 10 "u" "N2R+http" ( ; service IN NAPTR 100 10 "u" "I2R+http" ( ; service
"!.*!http://repos.example2.org/N2R/!"; regex "!.*!http://repos.example2.org/I2R/!"; regex
. ; replacement . ; replacement
) )
IN NAPTR 100 10 "s" "N2C+udp" ( ; service IN NAPTR 100 10 "s" "I2C+udp" ( ; service
"" ; regex "" ; regex
registry._udp.example2.org.; replacement registry._udp.example2.org.; replacement
) )
;_service._protocol.name ;_service._protocol.name
; TTL class SRV priority weight port targetreplac ; TTL class SRV priority weight port targetreplac
_registry._udp.example2.org _registry._udp.example2.org
14400 IN SRV 0 0 10060 registry-udp.example2.org. 14400 IN SRV 0 0 10060 registry-udp.example2.org.
]]></artwork> ]]></sourcecode>
</figure>
</section>
<section title="Algorithm for DDI Service Discovery" anchor="sect-b"><t> </section>
</section>
<section anchor="sect-b" numbered="true" toc="default">
<name>Algorithm for DDI Service Discovery</name>
<t>
The description is based on the Dynamic Delegation Discovery The description is based on the Dynamic Delegation Discovery
System (DDDS) algorithm <xref target="RFC3402"/>.</t> System (DDDS) algorithm <xref target="RFC3402" format="default"/>.</t>
<t>
<t>
The application selects the appropriate service from the output The application selects the appropriate service from the output
described below and contacts the service for the given URN.</t> described below and contacts the service for the given URN.</t>
<t>
<t>
The process can be optimized by an application cache for the NAPTR The process can be optimized by an application cache for the NAPTR
records of already requested DDI agencies.</t> records of already requested DDI agencies.</t>
</section> <section anchor="sect-b.1" numbered="true" toc="default">
<name>Application Unique String</name>
<section title="Application Unique String" anchor="sect-b.1"><t> <t>
The Application Unique String is a DDI URN.</t> The Application Unique String is a DDI URN.</t>
</section>
</section> <section anchor="sect-b.2" numbered="true" toc="default">
<name>First Well Known Rule</name>
<section title="First Well Known Rule" anchor="sect-b.2"><t><list style=" <ol spacing="normal" type="1"><li>Extracting the characters between the se
numbers"><t>Extracting the characters between the second and third colon cond and third colon
(the agency identifier).</t> (the agency-identifier).</li>
<li>Normalizing case of that string.</li>
<t>Normalizing case of that string.</t> <li>Reversing the order of the substrings separated by dots.</li>
<li>Appending the string ".ddi.urn.arpa" to the end to get a domain
<t>Reversing the order of the substrings separated by dots.</t> name.</li>
</ol>
<t>Appending the string ".ddi.urn.arpa" to the end to get a domain </section>
name.</t> <section anchor="sect-b.3" numbered="true" toc="default">
<name>Valid Databases</name>
</list> <t>
</t> The DNS is specified as a DDDS Database for this application, which
</section>
<section title="Valid Databases" anchor="sect-b.3"><t>
The DNS is specified as a DDDS Database for this application which
uses the NAPTR DNS resource records to contain the rewrite rules uses the NAPTR DNS resource records to contain the rewrite rules
for service discovery.</t> for service discovery.</t>
<t>
<t> The DNS is queried for NAPTR records for the domain name, which is
The DNS is queried for NAPTR records for the domain name which is
the output of the First Well Known Rule.</t> the output of the First Well Known Rule.</t>
</section>
</section> <section anchor="sect-b.4" numbered="true" toc="default">
<name>Expected Output</name>
<section title="Expected Output" anchor="sect-b.4"><t> <t>
The expected output is the information necessary to connect to The expected output is the information necessary to connect to
authoritative server(s) (host, port, protocol, or URL) for an one or more authoritative servers (host, port, protocol, or URL) for an
application service within a given DDI agency. The result is a application service within a given DDI agency. The result is a
list of terminal NAPTR records pointing to services available for list of terminal NAPTR records pointing to services available for
the relevant DDI agency.</t> the relevant DDI agency.</t>
</section>
</section>
<section anchor="sect-9" numbered="false" toc="default">
<name>Acknowledgments</name>
</section> <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 inpu
t
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>
</back> </section>
</rfc> </back>
</rfc>
 End of changes. 160 change blocks. 
815 lines changed or deleted 734 lines changed or added

This html diff was produced by rfcdiff 1.48.