RFC 9517: A URN Namespace for the Data Documentation Initiative (DDI)
- J. Wackerow
Abstract
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.¶
The DDI Alliance is not affiliated with the Internet Engineering Task Force (IETF) or Internet Society (ISOC). This Independent Submission is not a standard nor does it have IETF community consensus.¶
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.¶
This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
This document registers a formal Namespace Identifier (NID) for URNs associated with DDI resources in accordance with the process defined in [RFC8141].¶
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 conceptualizati
The specifications DDI Codebook [DDI-C] and DDI Lifecycle [DDI-L] are expressed in XML Schema; DDI Extended Knowledge Organization System (XKOS) [DDI-XKOS] in OWL/RDF; Structured Data Transformation Language (SDTL) [DDI-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 [DUBLINC]; Statistical Data and Metadata Exchange [SDMX] for exchanging aggregate data; ISO/IEC 11179 [IS11179] for building metadata registries, such as question, variable, and concept banks; and ISO 19115 [ISO.19115.2003] for supporting geographic information systems.¶
DDI URNs support reusability of DDI resources inside a single DDI instance and in a distributed network of DDI instances.¶
The DDI specification is developed and maintained by the DDI Alliance [DDI-ALL]. 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.¶
2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
In this document, these words will appear with that interpretation only when in ALL CAPS. Lowercase uses of these words are not to be interpreted as carrying [RFC2119] significance.¶
3. Specification
This section provides the information required to register a formal namespace according to the registration procedure defined in [RFC8141]. The URNs conform to the syntax defined in [RFC8141].¶
3.1. Declaration of Syntactic Structure
3.1.1. Description
The
Namespace Specific String (NSS) of all URNs using the "ddi" NID is a
globally unique identifier consisting of the DDI agency
A description of the DDI resource identification is available in the Identification section of the "DDI Lifecycle 3.3 Technical Guide" [DDI-ID].¶
The DDI NSS has the following structure:¶
agency
resource
version
3.1.2. ABNF Grammar
The following syntax specification for the complete URN uses the Augmented Backus-Naur form (ABNF) as described in [RFC5234].¶
3.1.3. Regular Expression
The used syntax is the XML Schema flavor, which can be easily used
in other flavors. These regular expressions implicitly anchor at
the head and tail. The following regular expression syntax uses
components (component names indicated by angle brackets, i.e.
<component>) and is written in free-spacing mode for easier
reading (the XML Schema flavor does not support that). Please note
that use of multiple quantifiers in regular expressions can result
in false outcomes due to so-called greediness. Therefore, there
are separate regular expressions for the length restriction and
other purposes for the components agency
3.1.4. Examples of DDI URNs
The examples are taken from the DDI Lifecycle 3.3 documentation [DDI-ID].
Please note that the resource
The DDI represented variable identified by "R-V1" with the version "1" of the DDI agency "ddia1" located in the domain "us" [DDI-EXRV].¶
The DDI question item identified by "PISA-QS.QI-2" with the version "1" of the DDI agency "ddia1" located in the domain "us" [DDI-EXQU].¶
The DDI controlled vocabulary identified by "Aggregation
3.2. Relevant Ancillary Documentation
An introductory article on DDI can be found at [DDI-INTR].¶
Information on the DDI specifications (DDI-C, DDI-L, XKOS, Controlled Vocabularies, and SDTL) can be found in the standards section of the DDI Alliance website [DDI-ALL].¶
Information on domain names can be found in the relevant RFCs.¶
3.3. Identifier Uniqueness Considerations
Assignment of identifiers for DDI agencies in the requested
namespace will be managed by the DDI Alliance, which will ensure
that the assigned DDI agency
Assignment of URNs for resources of a DDI agency in the requested namespace will be managed by the respective DDI agency, which ensures that the assigned URNs are unique for the scope of the agency.¶
3.4. Identifier Persistence Considerations
Persistence of identifiers is dependent upon the suitable delegation of resolution at the level of the DDI agencies and the persistence of DDI agency assignment. The persistence of the referenced resource is also the responsibility of the DDI agency.¶
3.5. Process of Identifier Assignment
Assignment of identifiers for DDI agencies in the requested
namespace is managed by the DDI Alliance. A registry for DDI agency
identifiers ensures through an approval process that the syntax of
agency
Assignment of URNs for resources of a DDI agency and sub-agencies of a DDI agency in the requested namespace will be managed by the respective DDI agency.¶
3.6. Process for Identifier Resolution
The DDI Alliance promotes a service discovery system for identifying available services connected to DDI agencies using the Domain Name System (DNS). A DNS request for a DDI agency within the domain ddi.urn.arpa is delegated by the DNS servers of the DDI Alliance to the DNS servers of the relevant DDI agency. The response is a list of available DDI services for the agency identifier under which the agency has assigned URNs. The approach is based on the Dynamic Delegation Discovery System (DDDS) [RFC3401] and especially the straightforward URI-enabled NAPTR (U-NAPTR) [RFC4848].¶
The DDI Alliance is responsible for operating or delegating
resolution requests to the resolution servers of the relevant DDI
agencies. DDI agencies are responsible for operating or delegating
resolution servers for the agency
See Appendix A for examples of name server records.¶
3.7. Rules for Lexical Equivalence
The DDI agency
The remainder of the identifier MUST be considered case sensitive.¶
3.8. Conformance with URN Syntax
The NSS conforms to the related section in [RFC8141]. It is composed from the limited set of characters
for a URN NSS [RFC8141]. Percent
3.9. Validation Mechanism
The DDI Alliance will promote development of software for validation purposes.¶
4. Namespace Considerations
There is no available namespace that will allow one to uniquely identify and access DDI resources.¶
4.2. URN Resolution/Delegation
See Section 3.6, "Process for Identifier Resolution".¶
It is RECOMMENDED that sub-agencies for flexible administration be used. For example, delegation of URNs of a sub-agency to different servers would be easily possible.¶
4.3. Type of Resources To Be Identified
The DDI specifications define resources at a granular level, many of which can be identified by a DDI URN.¶
4.4. Type of Services
Examples of potential services are listed below. The services and appropriate service tags need to be defined in the future. The mentioned service tags are from [RFC2483].¶
5. Community Considerations
5.1. Open Assignment and Use of Identifiers
DDI agency
DDI agencies assign URNs and potential sub-agencies within the
scope of the assigned DDI agency
See also Section 3.3 on "Identifier Uniqueness Considerations".¶
5.2. Open Operation of Resolution Servers
The DDI Alliance operates publicly accessible name servers for the delegation of DNS requests within the domain ddi.urn.arpa to DNS servers of DDI agencies.¶
5.3. Creation of Software for Service Discovery
The DDI Alliance promotes software for service discovery for identifying available services connected to DDI agencies using the Domain Name System (DNS). See also Section 3.6 on "Process for Identifier Resolution". A basic resolver library is available [DDI-RESO].¶
6. IANA Considerations
IANA has updated the "ddi" entry in the "Formal URN Namespaces" registry to reference this specification.¶
The following NAPTR record for the key "ddi" has been registered in the urn.arpa zone:¶
Requests for the domain ddi.urn.arpa are delegated to the name servers of the DDI Alliance.¶
7. Security Considerations
URN:DDI identifiers are assigned to resources that are public information; therefore, resolving these identifiers has low security profile.¶
Registration of DDI agencies is approved by the DDI Alliance. Assignment and resolution of URN:DDI identifiers are controlled by the DDI Alliance and approved DDI agencies. The DDI Alliance SHALL have in place control mechanisms in order to make sure that DDI Agency applications from malicious third parties will not be accepted. URN:DDI resolvers will be protected against eavesdropping and attacks with appropriate tools.¶
This document introduces no additional technical security considerations beyond those associated with the use and resolution of URNs in general.¶
The security of the DNS-based resolution of DDI agency
8. References
8.1. Normative References
- [DDI-C]
-
DDI Alliance, "DDI-Codebook 2.5", , <https://
ddialliance >..org /Specification /DDI -Codebook /2 .5 / - [DDI-ID]
-
DDI Alliance, "Identification", DDI Lifecycle (3.3) Technical Guide: General Structures, <https://
ddi >.-lifecycle -technical -guide .readthedocs .io /en /latest /General %20Structures /Identification .html - [DDI-L]
-
DDI Alliance, "DDI-Lifecycle", <https://
ddialliance >..org /Specification /DDI -Lifecycle / - [DDI-SDTL]
-
DDI Alliance, "SDTL - Structured Data Transformation Language - Version 1.0", , <https://
ddialliance >..org /products /sdtl /1 .0 / - [DDI-XKOS]
-
DDI Alliance, "XKOS - Extended Knowledge Organization System", <https://
ddialliance >..org /Specification /RDF /XKOS - [RFC0952]
-
Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet host table specification", RFC 952, DOI 10
.17487 , , <https:///RFC0952 www >..rfc -editor .org /info /rfc952 - [RFC1034]
-
Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, DOI 10
.17487 , , <https:///RFC1034 www >..rfc -editor .org /info /rfc1034 - [RFC1035]
-
Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10
.17487 , , <https:///RFC1035 www >..rfc -editor .org /info /rfc1035 - [RFC1123]
-
Braden, R., Ed., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, DOI 10
.17487 , , <https:///RFC1123 www >..rfc -editor .org /info /rfc1123 - [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC2181]
-
Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, DOI 10
.17487 , , <https:///RFC2181 www >..rfc -editor .org /info /rfc2181 - [RFC3986]
-
Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10
.17487 , , <https:///RFC3986 www >..rfc -editor .org /info /rfc3986 - [RFC4343]
-
Eastlake 3rd, D., "Domain Name System (DNS) Case Insensitivity Clarification", RFC 4343, DOI 10
.17487 , , <https:///RFC4343 www >..rfc -editor .org /info /rfc4343 - [RFC5234]
-
Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10
.17487 , , <https:///RFC5234 www >..rfc -editor .org /info /rfc5234 - [RFC8141]
-
Saint-Andre, P. and J. Klensin, "Uniform Resource Names (URNs)", RFC 8141, DOI 10
.17487 , , <https:///RFC8141 www >..rfc -editor .org /info /rfc8141 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [TLD]
-
IANA, "Root Zone Database", <https://
www >..iana .org /domains /root /db
8.2. Informative References
- [ABNF2RS]
-
"ABNF to REGEX: Regular Expression Generator", , <https://
www >..msweet .org /abnf / - [ABNFGEN]
-
Degener, J., "abnfgen", <http://
www >..quut .com /abnfgen / - [ABNFPFE]
-
IETF, "IETF Author Tools - ABNF Tools", <https://
author >.-tools .ietf .org /abnf - [DDI-ALL]
-
DDI Alliance, "Document, Discover and Interoperate", <https://
ddialliance >..org / - [DDI-CVAG]
-
DDI Alliance, "DDI Controlled Vocabulary for Aggregation Method", <https://
ddialliance >..org /Specification /DDI -CV /Aggregation Method _1 .0 .html - [DDI-EXQU]
-
DDI Alliance, "Questions", DDI Lifecycle 3.3 Technical Guide: Examples, <https://
ddi >.-lifecycle -technical -guide .readthedocs .io /en /latest /Examples /Questions .html - [DDI-EXRV]
-
DDI Alliance, "Represented Variable", DDI Lifecycle 3.3 Technical Guide: Examples, <https://
ddi >.-lifecycle -technical -guide .readthedocs .io /en /latest /Examples /Represented Variable .html - [DDI-INTR]
-
Vardigan, M., Heus, P., and W. Thomas, "Data Documentation Initiative: Toward a Standard for the Social Sciences", The International Journal of Digital Curation, Issue 1, Volume 3, DOI 10
.2218 , , <http:///ijdc .v3i1 .45 www >..ijdc .net /article /view /66 - [DDI-REGI]
-
DDI Alliance, "Welcome to the DDI Registry", <https://
registry >..ddialliance .org / - [DDI-RESO]
-
DDI Alliance, "Tools", <https://
registry >..ddialliance .org /Home /Tools - [DUBLINC]
-
Dublin Core Metadata Initiative, "Dublin Core", <https://
www >..dublincore .org / - [IS11179]
-
ISO, "Information technology - Metadata registries (MDR) - Part 6: Registration", ISO/IEC 11179-6:2023, , <https://
www >..iso .org /standard /78916 .html - [ISO.19115.2003]
-
ISO, "Geographic information - Metadata", ISO 19115:2003, <https://
www >..iso .org /standard /26020 .html - [ISO3166]
-
ISO, "ISO 3166 Country Codes", <https://
www >..iso .org /iso -3166 -country -codes .html - [RFC2483]
-
Mealling, M. and R. Daniel, "URI Resolution Services Necessary for URN Resolution", RFC 2483, DOI 10
.17487 , , <https:///RFC2483 www >..rfc -editor .org /info /rfc2483 - [RFC2782]
-
Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, DOI 10
.17487 , , <https:///RFC2782 www >..rfc -editor .org /info /rfc2782 - [RFC3401]
-
Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part One: The Comprehensive DDDS", RFC 3401, DOI 10
.17487 , , <https:///RFC3401 www >..rfc -editor .org /info /rfc3401 - [RFC3402]
-
Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part Two: The Algorithm", RFC 3402, DOI 10
.17487 , , <https:///RFC3402 www >..rfc -editor .org /info /rfc3402 - [RFC3403]
-
Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database", RFC 3403, DOI 10
.17487 , , <https:///RFC3403 www >..rfc -editor .org /info /rfc3403 - [RFC3833]
-
Atkins, D. and R. Austein, "Threat Analysis of the Domain Name System (DNS)", RFC 3833, DOI 10
.17487 , , <https:///RFC3833 www >..rfc -editor .org /info /rfc3833 - [RFC3958]
-
Daigle, L. and A. Newton, "Domain-Based Application Service Location Using SRV RRs and the Dynamic Delegation Discovery Service (DDDS)", RFC 3958, DOI 10
.17487 , , <https:///RFC3958 www >..rfc -editor .org /info /rfc3958 - [RFC4848]
-
Daigle, L., "Domain-Based Application Service Location Using URIs and the Dynamic Delegation Discovery Service (DDDS)", RFC 4848, DOI 10
.17487 , , <https:///RFC4848 www >..rfc -editor .org /info /rfc4848 - [RFC8484]
-
Hoffman, P. and P. McManus, "DNS Queries over HTTPS (DoH)", RFC 8484, DOI 10
.17487 , , <https:///RFC8484 www >..rfc -editor .org /info /rfc8484 - [SDMX]
-
Statistical Data and Metadata eXchange, "SDMX", <https://
sdmx >..org /
Appendix A. Example DNS Records
The examples use NAPTR [RFC3403] and SRV [RFC2782] [RFC3958] records. The values for the services and flags fields of the NAPTR records will be determined by the DDI application ([RFC3403], Section 9).¶
For a description of the packet format of NAPTR, see [RFC3403], Section 4.1.¶
A.1. Delegation of the URN Namespace "ddi"
Example records below are defined at a
The empty flag indicates that the lookup is not terminal and the
next probe to DNS is for more NAPTR records where the new domain
is "dns
A.2. Delegation of DDI Agencies
Example records below are defined at dns
The empty flag indicates that the lookup is not terminal and the next probe to DNS is for more NAPTR records where the new domain is the DNS server of the relevant DDI agency.¶
A.3. DDI Services
Example records below are defined at dns
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 SHOULD be queried. See also [RFC4848], Section 4.4.¶
The service I2R returns one instance of the resource identified by
the given URN. That service is a repository of DDI resources available
at http://
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 ([RFC4848], Section 2.2), applications using NAPTR need not implement full regular expression parsers.¶
Appendix B. Algorithm for DDI Service Discovery
The description is based on the Dynamic Delegation Discovery System (DDDS) algorithm [RFC3402].¶
The application selects the appropriate service from the output described below and contacts the service for the given URN.¶
The process can be optimized by an application cache for the NAPTR records of already requested DDI agencies.¶
B.1. Application Unique String
The Application Unique String is a DDI URN.¶
B.3. Valid Databases
The DNS is specified as a DDDS Database for this application, which uses the NAPTR DNS resource records to contain the rewrite rules for service discovery.¶
The DNS is queried for NAPTR records for the domain name, which is the output of the First Well Known Rule.¶
B.4. Expected Output
The expected output is the information necessary to connect to one or more authoritative servers (host, port, protocol, or URL) for an application service within a given DDI agency. The result is a list of terminal NAPTR records pointing to services available for the relevant DDI agency.¶
Acknowledgments
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 the discussion and input that led to this document.¶
The following software tools have been helpful in evaluating the ABNF grammar and the regular expressions: an ABNF parser [ABNFPFE], a tool that creates regular expressions from an ABNF grammar [ABNF2RS], and a tool that generates random strings that match an ABNF grammar [ABNFGEN].¶