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 " "> | |||
<!ENTITY RFC1034 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY zwsp "​"> | |||
C.1034.xml"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY RFC1035 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!ENTITY wj "⁠"> | |||
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 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. | |||
<component>) and is written in free-spacing mode for easier | <component>) 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 "ddi"" 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. |