| rfc9517.original | rfc9517.txt | |||
|---|---|---|---|---|
| Network Working Group Joachim Wackerow | ||||
| Internet Draft DDI Alliance | ||||
| Intended status: Informational August 13, 2023 | ||||
| Expires: February 2024 | ||||
| A Uniform Resource Name (URN) Namespace for the | Independent Submission J. Wackerow | |||
| Data Documentation Initiative (DDI) | Request for Comments: 9517 DDI Alliance | |||
| draft-urn-ddi-06.txt | Category: Informational January 2024 | |||
| ISSN: 2070-1721 | ||||
| A URN Namespace for the Data Documentation Initiative (DDI) | ||||
| Abstract | Abstract | |||
| This document describes the Namespace Identifier (NID) "ddi" for | This document describes the Namespace Identifier (NID) "ddi" for | |||
| Uniform Resource Names (URNs) used to identify resources that | Uniform Resource Names (URNs) used to identify resources that conform | |||
| conform to the standards published by the Data Documentation | to the standards published by the Data Documentation Initiative (DDI) | |||
| Initiative (DDI) Alliance (https://ddialliance.org/). | Alliance. | |||
| 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. | ||||
| Status of this Memo | 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. | ||||
| This Internet-Draft is submitted in full conformance with the | Status of This Memo | |||
| provisions of BCP 78 and BCP 79. Internet-Drafts are working | ||||
| documents of the Internet Engineering Task Force (IETF). Note that | ||||
| other groups may also distribute working documents as Internet- | ||||
| Drafts. The list of current Internet-Drafts is at | ||||
| http://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six | This document is not an Internet Standards Track specification; it is | |||
| months and may be updated, replaced, or obsoleted by other | published for informational purposes. | |||
| documents at any time. It is inappropriate to use Internet-Drafts | ||||
| as reference material or to cite them other than as "work in | ||||
| progress." | ||||
| This document is published for informational purposes. It is an | This is a contribution to the RFC Series, independently of any other | |||
| independent submission. It is not an Internet Standard and does | RFC stream. The RFC Editor has chosen to publish this document at | |||
| not have rough consensus of the IETF community. | 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. | ||||
| This Internet-Draft will expire in February 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9517. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2024 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with | carefully, as they describe your rights and restrictions with respect | |||
| respect to this document. | to this document. | |||
| Code Components extracted from this document must include | ||||
| Simplified BSD License text as described in Section 4.e of the | ||||
| Trust Legal Provisions and are provided without warranty as | ||||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction...................................................3 | 1. Introduction | |||
| 2. Conventions used in this document..............................4 | 2. Conventions Used in This Document | |||
| 3. Specification..................................................5 | 3. Specification | |||
| 3.1. Declaration of Syntactic Structure...........................5 | 3.1. Declaration of Syntactic Structure | |||
| 3.1.1. Description................................................5 | 3.1.1. Description | |||
| 3.1.2. ABNF Grammar...............................................6 | 3.1.2. ABNF Grammar | |||
| 3.1.3. Regular Expression.........................................8 | 3.1.3. Regular Expression | |||
| 3.1.4. Examples of DDI URNs.......................................9 | 3.1.4. Examples of DDI URNs | |||
| 3.2. Relevant Ancillary Documentation.............................9 | 3.2. Relevant Ancillary Documentation | |||
| 3.3. Identifier Uniqueness Considerations........................10 | 3.3. Identifier Uniqueness Considerations | |||
| 3.4. Identifier Persistence Considerations.......................10 | 3.4. Identifier Persistence Considerations | |||
| 3.5. Process of Identifier Assignment............................10 | 3.5. Process of Identifier Assignment | |||
| 3.6. Process for Identifier Resolution...........................10 | 3.6. Process for Identifier Resolution | |||
| 3.7. Rules for Lexical Equivalence...............................11 | 3.7. Rules for Lexical Equivalence | |||
| 3.8. Conformance with URN Syntax.................................12 | 3.8. Conformance with URN Syntax | |||
| 3.9. Validation Mechanism........................................12 | 3.9. Validation Mechanism | |||
| 3.10. Scope......................................................12 | 3.10. Scope | |||
| 4. Namespace Considerations......................................12 | 4. Namespace Considerations | |||
| 4.1. URN Assignment Procedures...................................12 | 4.1. URN Assignment Procedures | |||
| 4.2. URN Resolution/Delegation...................................12 | 4.2. URN Resolution/Delegation | |||
| 4.3. Type of Resources to be Identified..........................12 | 4.3. Type of Resources To Be Identified | |||
| 4.4. Type of Services............................................12 | 4.4. Type of Services | |||
| 5. Community Considerations......................................13 | 5. Community Considerations | |||
| 5.1. Open Assignment and Use of Identifiers......................13 | 5.1. Open Assignment and Use of Identifiers | |||
| 5.2. Open Operation of Resolution Servers........................13 | 5.2. Open Operation of Resolution Servers | |||
| 5.3. Creation of Software for Service Discovery..................13 | 5.3. Creation of Software for Service Discovery | |||
| 6. IANA Considerations...........................................14 | 6. IANA Considerations | |||
| 7. Security Considerations.......................................14 | 7. Security Considerations | |||
| 8. References....................................................14 | 8. References | |||
| 8.1. Normative References........................................14 | 8.1. Normative References | |||
| 8.2. Informative References......................................16 | 8.2. Informative References | |||
| 9. Acknowledgments...............................................19 | Appendix A. Example DNS Records | |||
| Appendix A. Example DNS Records..................................20 | A.1. Delegation of the URN Namespace "ddi" | |||
| A.1. Delegation of the URN Namespace "ddi".......................20 | A.2. Delegation of DDI Agencies | |||
| A.2. Delegation of DDI Agencies..................................20 | A.3. DDI Services | |||
| A.3. DDI Services................................................20 | Appendix B. Algorithm for DDI Service Discovery | |||
| Appendix B. Algorithm for DDI Service Discovery..................22 | B.1. Application Unique String | |||
| B.1. Application Unique String...................................22 | B.2. First Well Known Rule | |||
| B.2. First Well Known Rule.......................................22 | B.3. Valid Databases | |||
| B.3. Valid Databases.............................................22 | B.4. Expected Output | |||
| B.4. Expected Output.............................................22 | Acknowledgments | |||
| Author's Address | ||||
| 1. Introduction | 1. Introduction | |||
| This document registers a formal namespace identifier (NID) for | This document registers a formal Namespace Identifier (NID) for URNs | |||
| Uniform Resource Names [RFC8141] associated with DDI resources in | associated with DDI resources in accordance with the process defined | |||
| accordance with the process defined in [RFC8141]. | in [RFC8141]. | |||
| The DDI Alliance is an international collaboration dedicated to | The DDI Alliance is an international collaboration dedicated to | |||
| establishing metadata standards and semantic products for | establishing metadata standards and semantic products for describing | |||
| describing social science data, data covering human activity, and | social science data, data covering human activity, and other data | |||
| other data based on observational methods. DDI specifications are | based on observational methods. DDI specifications are free | |||
| free standards that can document and manage different stages in | standards that document and manage different stages in the research | |||
| the research data lifecycle, such as conceptualization, | data lifecycle, such as conceptualization, collection, processing, | |||
| collection, processing, distribution, discovery, and archiving. | distribution, discovery, and archiving. Documenting data with DDI | |||
| Documenting data with DDI facilitates understanding, | facilitates understanding, interpretation, and use -- by people, | |||
| interpretation, and use -- by people, software systems, and | software systems, and computer networks. | |||
| computer networks. | ||||
| The specifications DDI Codebook [DDIC] and DDI Lifecycle [DDIL] | The specifications DDI Codebook [DDI-C] and DDI Lifecycle [DDI-L] are | |||
| are expressed in XML Schema, DDI XKOS - Extended Knowledge | expressed in XML Schema; DDI Extended Knowledge Organization System | |||
| Organization System [DDIXKOS] in OWL/RDF, SDTL - Structured Data | (XKOS) [DDI-XKOS] in OWL/RDF; Structured Data Transformation Language | |||
| Transformation Language [SDTL] in JSON Schema, and the upcoming | (SDTL) [DDI-SDTL] in JSON Schema; and the upcoming DDI Cross Domain | |||
| DDI - Cross Domain Integration (DDI-CDI) in UML. DDI is aligned | Integration (DDI-CDI) in UML. DDI is aligned with other metadata | |||
| with other metadata standards like Dublin Core Metadata Initiative | standards like Dublin Core Metadata Initiative [DUBLINC]; Statistical | |||
| [DUBLINC], Statistical Data and Metadata Exchange [SDMX] for | Data and Metadata Exchange [SDMX] for exchanging aggregate data; ISO/ | |||
| exchanging aggregate data, ISO/IEC 11179 [IS11179] for building | IEC 11179 [IS11179] for building metadata registries, such as | |||
| metadata registries such as question, variable, and concept banks, | question, variable, and concept banks; and ISO 19115 [ISO.19115.2003] | |||
| and ISO 19115 [IS19115] for supporting geographic information | for supporting geographic information systems. | |||
| systems. | ||||
| DDI URNs support reusability of DDI resources inside a single DDI | DDI URNs support reusability of DDI resources inside a single DDI | |||
| instance and in a distributed network of DDI instances. | instance and in a distributed network of DDI instances. | |||
| The DDI specification is developed and maintained by the DDI | The DDI specification is developed and maintained by the DDI Alliance | |||
| Alliance [DDIALL]. The DDI Alliance is a self-sustaining | [DDI-ALL]. The DDI Alliance is a self-sustaining membership | |||
| membership organization whose over 40 member institutions have a | organization whose over 40-member institutions have a voice in the | |||
| voice in the development of the DDI specifications. This memo | development of the DDI specifications. This memo describing the ddi | |||
| describing the ddi URN is an informational specification. It is | URN is an informational specification. It is not a standard and is | |||
| not a standard and is not the product of the IETF. | not the product of the IETF. | |||
| 2. Conventions used in this document | 2. Conventions Used in This Document | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "OPTIONAL" in this document are to be interpreted as described in | |||
| described in BCP 14 [RFC2119] [RFC8174] when, and only when, they | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| appear in all capitals, as shown here. | capitals, as shown here. | |||
| 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 | |||
| be interpreted as carrying RFC 2119 significance. | interpreted as carrying [RFC2119] significance. | |||
| "DDI": Data Documentation Initiative. The single term is often | ||||
| used as a synonym for the DDI specification. | ||||
| "DDI agency": An organization which maintains DDI resources. | DDI: Data Documentation Initiative. The single term is often used | |||
| as a synonym for the DDI specification. | ||||
| "DDI Alliance": Alliance for the Data Documentation Initiative | DDI agency: An organization that maintains DDI resources. | |||
| (DDI). | ||||
| 3. Specification | 3. Specification | |||
| This section provides the information required to register a | This section provides the information required to register a formal | |||
| formal namespace according to the registration procedure defined | namespace according to the registration procedure defined in | |||
| in [RFC8141]. The URNs conform to the syntax defined in [RFC8141]. | [RFC8141]. The URNs conform to the syntax defined in [RFC8141]. | |||
| 3.1. Declaration of Syntactic Structure | 3.1. Declaration of Syntactic Structure | |||
| 3.1.1. Description | 3.1.1. Description | |||
| The Namespace Specific String (NSS) of all URNs using the "ddi" | The Namespace Specific String (NSS) of all URNs using the "ddi" NID | |||
| NID is a globally unique identifier consisting of the DDI agency | is a globally unique identifier consisting of the DDI agency- | |||
| identifier (registration authority identifier), the identifier of | identifier (registration authority identifier), the identifier of the | |||
| the DDI resource (data identifier), and the version of the | DDI resource (data identifier), and the version of the resource | |||
| resource (version identifier) [DDIID]. This structure is according | (version-identifier) [DDI-ID]. This structure is according to the | |||
| to the International Registration Data Identifier (IRDI) defined | International Registration Data Identifier (IRDI) defined in | |||
| in ISO/IEC 11179 Information technology - Metadata registries | "Information technology - Metadata registries (MDR) - Part 6: | |||
| (MDR) - Part 6: Registration, Annex A [IS11179]. | Registration", Annex A [IS11179]. | |||
| A description of the DDI resource identification is available in | A description of the DDI resource identification is available in the | |||
| the DDI Lifecycle (3.3) Technical Guide, section Identification | Identification section of the "DDI Lifecycle 3.3 Technical Guide" | |||
| [DDIID]. | [DDI-ID]. | |||
| The DDI NSS has the following structure: | The DDI NSS has the following structure: | |||
| <agency-identifier>:<resource-identifier>:<version-identifier> | <agency-identifier>:<resource-identifier>:<version-identifier> | |||
| agency-identifier is the identifier of a DDI agency that maintains | agency-identifier is the identifier of a DDI agency that maintains | |||
| DDI resources. This identifier basically follows the rules of | DDI resources. This identifier basically follows the rules of | |||
| reversed domain names and is case-insensitive. This way, the DNS | reversed domain names and is case insensitive. This way, the DNS | |||
| resolution of DDI agency identifiers is supported. The hierarchy | resolution of DDI agency-identifiers is supported. The hierarchy of | |||
| of domains descends from the left to the right label in the name; | domains descends from the left to the right label in the name; each | |||
| each label to the right specifies a subdivision, or subdomain of | label to the right specifies a subdivision, or subdomain, of the | |||
| the domain to the left. The left-most label of agency-identifier | domain to the left. The left-most label of agency-identifier conveys | |||
| conveys the top-level domain. It SHALL be a country code | the top-level domain. It SHALL be a country code corresponding to | |||
| corresponding to ISO 3166 alpa-2 codes [ISO3166] or another top- | ISO 3166 alpa-2 codes [ISO3166] or another top-level domain | |||
| level domain maintained by IANA [TLD]. All two-letter top-level | maintained by IANA [TLD]. All two-letter top-level domains are | |||
| domains are reserved for current and future ISO 3166 codes. | reserved for current and future ISO 3166 codes. Assignment of | |||
| Assignment of identifiers for DDI agencies in the requested | identifiers for DDI agencies in the requested namespace is managed by | |||
| namespace is managed by the DDI Alliance (see section 3.8. on | the DDI Alliance (see Section 3.5 on "Process of Identifier | |||
| "Process of Identifier Assignment"). The next subdomain identifies | Assignment"). The next subdomain identifies the agency within that | |||
| the agency within that top-level domain. Further optional | top-level domain. Further optional subdomains can follow. The top- | |||
| subdomains can follow. The top-level domain and possible | level domain and possible subdomains are separated by the full stop | |||
| subdomains are separated by the full stop character. The full stop | character. The full stop character is not allowed within top-level | |||
| character is not allowed within top-level domain names or | domain names or subdomain names. The top-level domain and subdomains | |||
| subdomain names. The top-level domain and subdomains are composed | are composed from the limited set of characters for the preferred | |||
| from the limited set of characters for the preferred form of a DNS | form of a DNS label ([RFC1035], Section 2.3.1). The length of the | |||
| label ([RFC1035] section 2.3.1). The length of the label and the | label and the full name are restricted by DNS rules ([RFC2181], | |||
| full name are restricted by DNS rules ([RFC2181] section 11). The | Section 11). The agency identifier is case insensitive ([RFC4343], | |||
| agency identifier is case insensitive ([RFC4343] section 2). | Section 2). | |||
| resource-identifier is the identifier of a DDI resource of a DDI | 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. | agency. The value MUST be unique in the scope of this DDI agency. | |||
| The resource identifier is case sensitive. | The resource-identifier is case sensitive. | |||
| version-identifier is the version of a DDI resource of a DDI | version-identifier is the version of a DDI resource of a DDI agency. | |||
| agency. The value MUST be unique in the scope of this resource. | The value MUST be unique in the scope of this resource. The resource | |||
| The resource version is case sensitive. | version is case sensitive. | |||
| 3.1.2. ABNF Grammar | 3.1.2. ABNF Grammar | |||
| The following syntax specification for the complete URN uses the | The following syntax specification for the complete URN uses the | |||
| augmented Backus-Naur Form (ABNF) as described in [RFC5234]. | Augmented Backus-Naur form (ABNF) as described in [RFC5234]. | |||
| ABNF Grammar | ; Rules are case sensitive, if not stated otherwise. | |||
| ddi-urn = urn separator ddi separator ddi-irdi | ||||
| ; urn is case insensitive, see [RFC8141]. | ||||
| urn = "urn" | ||||
| ; ddi is the URN namespace identifier. | ||||
| ; ddi is case insensitive, see [RFC8141], Section 2.1. | ||||
| ddi = "ddi" | ||||
| ; ddi-irdi is the namespace specific string (NSS). | ||||
| ; ddi-irdi - international registration data identifier, | ||||
| ; see [IS11179] Annex A.2. | ||||
| ddi-irdi = agency-identifier separator | ||||
| resource-identifier separator | ||||
| version-identifier | ||||
| ; agency-identifier is case insensitive, see [RFC4343], Section 2. | ||||
| ; For allowed characters, see [RFC1035], Section 2.3.1. | ||||
| ; For length restrictions, see [RFC2181], Section 11. | ||||
| agency-identifier = top-level-domain | ||||
| sub-separator ddi-authority-id | ||||
| *(sub-separator ddi-sub-authority-id) | ||||
| ; length limit is 255 characters | ||||
| ; see Section 11 of [RFC2181] | ||||
| top-level-domain = dns-label | ||||
| ddi-authority-id = dns-label | ||||
| ddi-sub-authority-id = dns-label | ||||
| dns-label = (ALPHA / DIGIT) | ||||
| [ *(ALPHA / DIGIT / "-") | ||||
| (ALPHA / DIGIT) ] | ||||
| ; length limit is 63 characters | ||||
| ; see Section 11 of [RFC2181] | ||||
| resource-identifier = restricted-string | ||||
| *("/" restricted-string) | ||||
| version-identifier = restricted-string | ||||
| *("/" restricted-string) | ||||
| restricted-string = 1*(unreserved / sub-delims / "@") | ||||
| ; Definitions for unreserved and sub-delims from | ||||
| ; [RFC3986], Section 2.2. | ||||
| unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" | ||||
| sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / | ||||
| "*" / "+" / "," / ";" / "=" | ||||
| separator = ":" | ||||
| sub-separator = "." | ||||
| ; ALPHA and DIGIT are actually defined in the ABNF | ||||
| ; specification. They are declared here for convenience | ||||
| ; purposes. | ||||
| ALPHA = %x41-5A / ; uppercase letters | ||||
| %x61-7A ; lowercase letters | ||||
| DIGIT = %x30-39 ; digits | ||||
| ; Rules are case-sensitive, if not stated otherwise. | Figure 1: ABNF Grammar | |||
| ddi-urn = urn separator ddi separator ddi-irdi | ||||
| ; urn is case-insensitive, see [RFC8141]. | ||||
| urn = "urn" | ||||
| ; ddi is the URN namespace identifier. | ||||
| ; ddi is case-insensitive, see [RFC8141] section 2.1. | ||||
| ddi = "ddi" | ||||
| ; ddi-irdi is the namespace specific string (NSS). | ||||
| ; ddi-irdi - international registration data identifier, | ||||
| ; see [IS11179] Annex A.2. | ||||
| ddi-irdi = agency-identifier separator | ||||
| resource-identifier separator | ||||
| version-identifier | ||||
| ; agency-identifier is case-insensitive. See [RFC4343] section | ||||
| 2. | ||||
| ; For allowed characters see [RFC1035] section 2.3.1. | ||||
| ; For length restrictions see [RFC2181] section 11. | ||||
| agency-identifier = top-level-domain | ||||
| sub-separator ddi-authority-id | ||||
| *(sub-separator ddi-sub-authority-id) | ||||
| ; length limit is 255 characters | ||||
| ; see section 11 of [RFC2181] | ||||
| top-level-domain = dns-label | ||||
| ddi-authority-id = dns-label | ||||
| ddi-sub-authority-id = dns-label | ||||
| dns-label = (ALPHA / DIGIT) | ||||
| [ *(ALPHA / DIGIT / "-") | ||||
| (ALPHA / DIGIT) ] | ||||
| ; length limit is 63 characters | ||||
| ; see section 11 of [RFC2181] | ||||
| resource-identifier = restricted-string | ||||
| *("/" restricted-string) | ||||
| version-identifier = restricted-string | ||||
| *("/" restricted-string) | ||||
| restricted-string = 1*(unreserved / sub-delims / "@") | ||||
| ; Definitions for unreserved and sub-delims from [RFC3986] 2.2. | ||||
| unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" | ||||
| sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / | ||||
| "*" / "+" / "," / ";" / "=" | ||||
| separator = ":" | ||||
| sub-separator = "." | ||||
| ; ALPHA and DIGIT are actually defined in the ABNF | ||||
| specification. | ||||
| ; They are declared here for convenience purposes. | ||||
| ALPHA = %x41-5A / ; uppercase letters | ||||
| %x61-7A ; lowercase letters | ||||
| DIGIT = %x30-39 ; digits | ||||
| 3.1.3. Regular Expression | 3.1.3. Regular Expression | |||
| The used syntax is the XML Schema flavor which can be easily used | The used syntax is the XML Schema flavor, which can be easily used in | |||
| in other flavors. These regular expressions implicitly anchor at | other flavors. These regular expressions implicitly anchor at the | |||
| the head and tail. The following regular expression syntax uses | 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 | |||
| reading (the XML Schema flavor does not support that). Please note | (the XML Schema flavor does not support that). Please note that use | |||
| that use of multiple quantifiers in regular expressions can result | of multiple quantifiers in regular expressions can result in false | |||
| in false outcomes due to so-called greediness. Therefore, there | outcomes due to so-called greediness. Therefore, there are separate | |||
| are separate regular expressions for the length restriction and | regular expressions for the length restriction and other purposes for | |||
| other purposes for the components agency-identifier and dns-label. | the components agency-identifier and dns-label. | |||
| ddi-urn := [Uu][Rr][Nn] : [Dd][Dd][Ii] : | ||||
| <agency-identifier> : | ||||
| <resource-identifier> : | ||||
| <version-identifier> | ||||
| agency-identifier := <top-level-domain> \. | ||||
| <ddi-authority-id> | ||||
| (\. <ddi-sub-authority-id>)* | ||||
| agency-identifier := .{1,255} | ||||
| top-level-domain := <dns-label> | ||||
| ddi-authority-id := <dns-label> | ddi-urn := [Uu][Rr][Nn] : [Dd][Dd][Ii] : | |||
| <agency-identifier> : | ||||
| <resource-identifier> : | ||||
| <version-identifier> | ||||
| agency-identifier := <top-level-domain> \. | ||||
| <ddi-authority-id> | ||||
| (\. <ddi-sub-authority-id>)* | ||||
| agency-identifier := .{1,255} | ||||
| ddi-sub-authority-id := <dns-label> | top-level-domain := <dns-label> | |||
| ddi-authority-id := <dns-label> | ||||
| dns-label := [A-Za-z0-9]([-A-Za-z0-9]*[A-Za-z0-9])? | ddi-sub-authority-id := <dns-label> | |||
| dns-label := [A-Za-z0-9]([-A-Za-z0-9]*[A-Za-z0-9])? | ||||
| 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-._~!$&'()*+,;=@]+ | |||
| 3.1.4. Examples of DDI URNs | 3.1.4. Examples of DDI URNs | |||
| The examples are taken from the DDI Lifecycle 3.3. documentation. | The examples are taken from the DDI Lifecycle 3.3 documentation | |||
| Please note that the resource identifiers are simplified. In real | [DDI-ID]. Please note that the resource-identifiers are simplified. | |||
| applications, they are much longer for unique identification | In real 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. | suggest. | |||
| URN of a Represented Variable | ||||
| urn:ddi:us.ddia1:R-V1:1 | urn:ddi:us.ddia1:R-V1:1 | |||
| The DDI represented variable identified by "R-V1" with the version | Figure 2: URN of a Represented Variable | |||
| "1" of the DDI agency "ddia1" located in the domain "us" | ||||
| [DDIEXRV]. | ||||
| URN of a Question Item | The DDI represented variable identified by "R-V1" with the version | |||
| "1" of the DDI agency "ddia1" located in the domain "us" [DDI-EXRV]. | ||||
| urn:ddi:us.ddia1:PISA-QS.QI-2:1 | urn:ddi:us.ddia1:PISA-QS.QI-2:1 | |||
| The DDI question item identified by "PISA-QS.QI-2" with the | Figure 3: URN of a Question Item | |||
| version "1" of the DDI agency "ddia1" in the domain "us" | ||||
| [DDIEXQU]. | ||||
| URN as Reference to a Controlled Vocabulary | 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]. | ||||
| urn:ddi:int.ddi.cv:AggregationMethod:1.0 | urn:ddi:int.ddi.cv:AggregationMethod:1.0 | |||
| The DDI controlled vocabulary identified by "AggregationMethod" | Figure 4: URN as Reference to a Controlled Vocabulary | |||
| with the version "1.0" in the scope of the DDI agency "ddi" and | ||||
| sub-agency "cv" in the domain "int" [DDICVAG]. | ||||
| 3.2. Relevant Ancillary Documentation | The DDI controlled vocabulary identified by "AggregationMethod" with | |||
| the version "1.0" in the scope of the DDI agency "ddi" and sub-agency | ||||
| "cv" in the domain "int" [DDI-CVAG]. | ||||
| An introductory article on DDI can be found at [DDIINTR]. | 3.2. Relevant Ancillary Documentation | |||
| Information on the DDI specifications (DDI-C, DDI-L, XKOS, | An introductory article on DDI can be found at [DDI-INTR]. | |||
| Controlled Vocabularies, and SDTL) can be found in the standards | ||||
| section of the DDI Alliance website [DDIALL]. | 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. | Information on domain names can be found in the relevant RFCs. | |||
| o For an overview, see [RFC1034]. | * For an overview, see [RFC1034]. | |||
| o Regarding case insensitivity, see [RFC1035] section 2.3.3. | * Regarding case insensitivity, see Section 2.3.3 of [RFC1035]. | |||
| o Regarding syntax, see [RFC952] section "Grammatical Host Table | * Regarding syntax, see the "Lexical grammar" in the "Grammatical | |||
| Specification" B. and [RFC1123] section 2.1. | Host Table Specification" section of [RFC0952] and Section 2.1 of | |||
| [RFC1123]. | ||||
| o Regarding size limits, see [RFC1123] section 2.1 and [RFC1035] | * Regarding size limits, see Section 2.1 of [RFC1123] and | |||
| section 2.3.4. | Section 2.3.4 of [RFC1035]. | |||
| 3.3. Identifier Uniqueness Considerations | 3.3. Identifier Uniqueness Considerations | |||
| Assignment of identifiers for DDI agencies in the requested | Assignment of identifiers for DDI agencies in the requested namespace | |||
| namespace will be managed by the DDI Alliance, which will ensure | will be managed by the DDI Alliance, which will ensure that the | |||
| that the assigned DDI agency identifiers are consistent with the | assigned DDI agency-identifiers are consistent with the directives | |||
| directives for unique identification of DDI agencies. | for unique identification of DDI agencies. | |||
| 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 | |||
| ensures that the assigned URNs are unique for the scope of the | that the assigned URNs are unique for the scope of the agency. | |||
| agency. | ||||
| 3.4. Identifier Persistence Considerations | 3.4. Identifier Persistence Considerations | |||
| Persistence of identifiers is dependent upon suitable delegation | Persistence of identifiers is dependent upon the suitable delegation | |||
| of resolution at the level of the DDI agencies, and persistence of | of resolution at the level of the DDI agencies and the persistence of | |||
| DDI agency assignment. The persistence of the referenced resource | DDI agency assignment. The persistence of the referenced resource is | |||
| is also the responsibility of the DDI agency. | also the responsibility of the DDI agency. | |||
| 3.5. Process of Identifier Assignment | 3.5. Process of Identifier Assignment | |||
| Assignment of identifiers for DDI agencies in the requested | Assignment of identifiers for DDI agencies in the requested namespace | |||
| namespaceis managed by the DDI Alliance. A registry for DDI agency | 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 [DDIREGI]. | agency-identifiers complies with the associated rules [DDI-REGI]. | |||
| 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 | |||
| of a DDI agency in the requested namespace will be managed by the | a DDI agency in the requested namespace will be managed by the | |||
| respective DDI agency. | respective DDI agency. | |||
| 3.6. Process for Identifier Resolution | 3.6. Process for Identifier Resolution | |||
| The DDI Alliance will promote a service discovery system for | The DDI Alliance promotes a service discovery system for identifying | |||
| identifying available services connected to DDI agencies using the | available services connected to DDI agencies using the Domain Name | |||
| Domain Name System (DNS). A DNS request for a DDI agency within | System (DNS). A DNS request for a DDI agency within the domain | |||
| the domain ddi.urn.arpa is delegated by the DNS servers of the DDI | ddi.urn.arpa is delegated by the DNS servers of the DDI Alliance to | |||
| Alliance to the DNS servers of the relevant DDI agency. The | the DNS servers of the relevant DDI agency. The response is a list | |||
| response is a list of available DDI services for the agency | of available DDI services for the agency identifier under which the | |||
| identifier under which the agency has assigned URNs. The approach | agency has assigned URNs. The approach is based on the Dynamic | |||
| is based on the Dynamic Delegation Discovery System (DDDS) | Delegation Discovery System (DDDS) [RFC3401] and especially the | |||
| [RFC3401] and especially the straightforward URI-enabled NAPTR (U- | straightforward URI-enabled NAPTR (U-NAPTR) [RFC4848]. | |||
| NAPTR) [RFC4848]. | ||||
| 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. | assigned URNs. | |||
| Sample Sequence Diagram for receiving a list of DDI services from | Client NS for NS for NS for DDI services | |||
| the example DDI agency "ddia1". | urn.arpa ddialliance.org example1.edu for us.ddia1 | |||
| | | | | | | ||||
| 1 |------>| | | | | ||||
| 2 | |----------->| | | | ||||
| 3 | |-------------->| | | ||||
| 4 |<-----------------------------------| | | ||||
| 5 |-------------------------------------------------->| | ||||
| 6 |<--------------------------------------------------| | ||||
| Client NS for NS for NS for DDI | Figure 5: Sample Sequence Diagram for Receiving a List of DDI | |||
| services | Services from the Example DDI agency "ddia1" | |||
| urn.arpa ddialliance.org example1.edu for | ||||
| us.ddia1 | ||||
| | | | | | | ||||
| 1 |------>| | | | | ||||
| 2 |<------| | | | | ||||
| 3 |---------------------->| | | | ||||
| 4 |<----------------------| | | | ||||
| 5 |-------------------------------------->| | | ||||
| 6 |<--------------------------------------| | | ||||
| 7 |------------------------------------------------------>| | ||||
| 8 |<------------------------------------------------------| | ||||
| 1. The name server (NS) of IANA for the domain "urn.arpa." | 1. The name server (NS) of IANA for the domain "urn.arpa." is | |||
| is reached with the request "ddia1.us.ddi.urn.arpa." for | reached with the request "ddia1.us.ddi.urn.arpa." for the DDI | |||
| the DDI agency "us.ddia1". | agency "us.ddia1". | |||
| 2./3. The request is delegated to the name server for | 2. The request is delegated to the name server for | |||
| "ddialliance.org". | "ddialliance.org". | |||
| 4./5. The request is delegated to the name server for | 3. The request is delegated to the name server for "example1.edu" | |||
| "example1.edu" (domain of the DDI agency "us.ddia1"). | (domain of the DDI agency "us.ddia1"). | |||
| 6. The server responds with a list of NAPTR records | 4. The server responds with a list of NAPTR records [RFC3403] | |||
| [RFC3403] pointing to available DDI services for the DDI | pointing to available DDI services for the DDI agency "us.ddia1". | |||
| agency "us.ddia1". | ||||
| 7. The client selects an appropriate DDI service and sends a | 5. The client selects an appropriate DDI service and sends a request | |||
| request for a DDI URN to this service. | for a DDI URN to this service. | |||
| 8. The DDI service responds for example with a DDI object | 6. The DDI service responds, for example, with a DDI object | |||
| identified by the requested DDI URN. | identified by the requested DDI URN. | |||
| See Appendix A for examples of name server records. | See Appendix A for examples of name server records. | |||
| 3.7. Rules for Lexical Equivalence | 3.7. Rules for Lexical Equivalence | |||
| The DDI agency identifier basically follows the rules of domain | The DDI agency-identifier basically follows the rules of domain | |||
| names. Domain names are case-insensitive. Thus, the portion of the | names. Domain names are case insensitive. Thus, the following | |||
| URN | portion of the URN is case insensitive for matches: | |||
| urn:ddi:<agency-id>: | urn:ddi:<agency-id>: | |||
| is case-insensitive for matches. The remainder of the identifier | The remainder of the identifier MUST be considered case sensitive. | |||
| MUST be considered case-sensitive. | ||||
| 3.8. Conformance with URN Syntax | 3.8. Conformance with URN Syntax | |||
| The Namespace Specific String conforms to the related section in | The NSS conforms to the related section in [RFC8141]. It is composed | |||
| [RFC8141]. It is composed from the limited set of characters for | from the limited set of characters for a URN NSS [RFC8141]. Percent- | |||
| an URN NSS [RFC8141]. Percent encoding is not used. | encoding is not used. | |||
| 3.9. Validation Mechanism | 3.9. Validation Mechanism | |||
| The DDI Alliance will promote development of software for | The DDI Alliance will promote development of software for validation | |||
| validation purposes. | purposes. | |||
| 3.10. Scope | 3.10. Scope | |||
| The scope is global. | The scope is global. | |||
| 4. Namespace Considerations | 4. Namespace Considerations | |||
| 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. | identify and access DDI resources. | |||
| 4.1. URN Assignment Procedures | 4.1. URN Assignment Procedures | |||
| See section 3.5, 'Process of Identifier Assignment'. | See Section 3.5, "Process of Identifier Assignment". | |||
| 4.2. URN Resolution/Delegation | 4.2. URN Resolution/Delegation | |||
| See section 3.6, 'Process for Identifier Resolution'. | See Section 3.6, "Process for Identifier Resolution". | |||
| It is RECOMMENDED to use sub-agencies for flexible administration. | It is RECOMMENDED that sub-agencies for flexible administration be | |||
| For example, delegation of URNs of a sub-agency to different | used. For example, delegation of URNs of a sub-agency to different | |||
| servers would be easily possible. | servers would be easily possible. | |||
| 4.3. Type of Resources to be Identified | 4.3. Type of Resources To Be Identified | |||
| The DDI specifications define resources at a granular level, many | The DDI specifications define resources at a granular level, many of | |||
| of which can be identified by a DDI URN. | which can be identified by a DDI URN. | |||
| 4.4. Type of Services | 4.4. Type of Services | |||
| Examples of potential services are listed below. The services and | Examples of potential services are listed below. The services and | |||
| appropriate service tags need to be defined in future. The | appropriate service tags need to be defined in the future. The | |||
| mentioned service tags are from [RFC2483]. | mentioned service tags are from [RFC2483]. | |||
| o DDI repository | * DDI repository | |||
| o I2R (URI to Resource): given a DDI URN return one instance | I2R (URI to Resource): given a DDI URN return, one instance of | |||
| of the resource identified by that URN. | the resource identified by that URN. | |||
| o DDI registry | * DDI registry | |||
| o I2C (URI to URC, Uniform Resource Characteristics are | I2C (URI to URC, Uniform Resource Characteristics are | |||
| descriptions of resources): given a DDI URN return a | descriptions of resources): given a DDI URN return, a description | |||
| description or a summary of that resource. | or a summary of that resource. | |||
| o DDI URN resolution | * DDI URN resolution | |||
| o I2L (URI to URL): given a DDI URN return one URL that | I2L (URI to URL): given a DDI URN return, one URL that identifies | |||
| identifies a location where the identified DDI resource can | a location where the identified DDI resource can be found. | |||
| be found. | ||||
| o I2Ls (URI to URLs): given a DDI URN return one or more URLs | I2Ls (URI to URLs): given a DDI URN return, one or more URLs that | |||
| that identify multiple locations of the identified DDI | identify multiple locations of the identified DDI resource. | |||
| resource. | ||||
| 5. Community Considerations | 5. Community Considerations | |||
| 5.1. Open Assignment and Use of Identifiers | 5.1. Open Assignment and Use of Identifiers | |||
| DDI agency identifiers can be registered at the DDI Alliance. The | DDI agency-identifiers can be registered at the DDI Alliance. The | |||
| DDI Alliance will maintain a registry of the assigned values for | DDI Alliance maintains a registry of the assigned values for the DDI | |||
| the DDI agency identifier used in the NSS. Information may be | agency-identifier used in the NSS. Information may be obtained from | |||
| obtained from the following address: secretariat@ddialliance.org. | the following address: secretariat@ddialliance.org. | |||
| DDI agencies assign URNs and potential sub-agencies within the | DDI agencies assign URNs and potential sub-agencies within the scope | |||
| scope of the assigned DDI agency identifiers. | of the assigned DDI agency-identifiers. | |||
| See also above section on Identifier Uniqueness Considerations. | See also Section 3.3 on "Identifier Uniqueness Considerations". | |||
| 5.2. Open Operation of Resolution Servers | 5.2. Open Operation of Resolution Servers | |||
| 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. | servers of DDI agencies. | |||
| 5.3. Creation of Software for Service Discovery | 5.3. Creation of Software for Service Discovery | |||
| The DDI Alliance will promote software for the resolution of DDI | The DDI Alliance promotes software for service discovery for | |||
| agency identifiers and service discovery. See also Appendix B for | identifying available services connected to DDI agencies using the | |||
| the resolution algorithm. A basic resolver library is available | Domain Name System (DNS). See also Section 3.6 on "Process for | |||
| [DDIRESO]. | Identifier Resolution". A basic resolver library is available | |||
| [DDI-RESO]. | ||||
| 6. IANA Considerations | 6. IANA Considerations | |||
| IANA is requested to update the "ddi" entry in the Universal | IANA has updated the "ddi" entry in the "Formal URN Namespaces" | |||
| Resource Names registry to reference this specification. | registry to reference this specification. | |||
| The registration for "ddi" in the "URN.ARPA" zone is approved. | The following NAPTR record for the key "ddi" has been registered in | |||
| Requests for the domain ddi.urn.arpa will be delegated to the name | the urn.arpa zone: | |||
| ddi IN NAPTR 100 10 "" "" "" registry.ddialliance.org. | ||||
| Requests for the domain ddi.urn.arpa are delegated to the name | ||||
| servers of the DDI Alliance. | servers of the DDI Alliance. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| 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 | |||
| security profile. | profile. | |||
| 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 SHALL | |||
| 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 | |||
| eavesdropping and attacks with appropriate tools. | and attacks with appropriate tools. | |||
| 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 | |||
| of URNs in general. | URNs in general. | |||
| The security of the DNS-based resolution of DDI agency identifiers | The security of the DNS-based resolution of DDI agency-identifiers is | |||
| is only as good as the security of DNS queries in general. A full | only as good as the security of DNS queries in general. A full | |||
| discussion of the security threats pertaining to DNS and possible | discussion of the security threats pertaining to DNS and possible | |||
| solutions can be found in [RFC3833]. Further information on | solutions can be found in [RFC3833]. Further information on security | |||
| security considerations regarding U-NAPTR can be found in | considerations regarding U-NAPTR can be found in [RFC4848], | |||
| [RFC4848] section 6. DNS over HTTPS (DoH) [RFC8484] could be used | Section 6. "DNS Queries over HTTPS (DoH)" [RFC8484] could be used to | |||
| to increase security by preventing eavesdropping and manipulation | increase security by preventing eavesdropping and manipulation of DNS | |||
| of DNS data by man-in-the-middle attacks. The HTTPS protocol | data by machine-in-the-middle attacks. The HTTPS protocol encrypts | |||
| encrypts the data between the DoH client and the DoH-based DNS | the data between the DoH client and the DoH-based DNS resolver. | |||
| resolver. | ||||
| 8. References | ||||
| 8.1. Normative References | ||||
| [DDIC] DDI Codebook, DDI Alliance 2000-2014, | ||||
| <https://ddialliance.org/Specification/DDI-Codebook/>. | ||||
| [DDIL] DDI Lifecycle, DDI Alliance 2009-2020, | ||||
| <https://ddialliance.org/Specification/DDI-Lifecycle/>. | ||||
| [DDIXKOS] DDI XKOS - Extended Knowledge Organization System, DDI | ||||
| Alliance 2020, | ||||
| <https://ddialliance.org/Specification/RDF/XKOS>. | ||||
| [DDIID] DDI Lifecycle (3.3) Technical Guide, Identification, | ||||
| <https://ddi-lifecycle-technical- | ||||
| guide.readthedocs.io/en/latest/General%20Structures/Iden | ||||
| tification.html>. | ||||
| [RFC952] Harrenstien, K., Stahl, M., and E. Feinler "DoD Internet | ||||
| Host Table Specification", RFC 952, October 1985, | ||||
| <https://www.rfc-editor.org/info/rfc952>. | ||||
| [RFC1034] Mockapetris, P., "Domain Names - Concepts and | ||||
| Facilities", RFC 1034, November 1987, | ||||
| <https://www.rfc-editor.org/info/rfc1034>. | ||||
| [RFC1035] Mockapetris, P., "Domain Names - Implementation and | 8. References | |||
| Specification", RFC 1035, November 1987, | ||||
| <https://www.rfc-editor.org/info/rfc1035>. | ||||
| [RFC1123] Braden, R., Ed. "Requirements for Internet Hosts -- | 8.1. Normative References | |||
| Application and Support", RFC 1123, October 1989, | ||||
| <https://www.rfc-editor.org/info/rfc1123>. | ||||
| [RFC2026] Bradner, S., "The Internet Standards Process -- Revision | [DDI-C] DDI Alliance, "DDI-Codebook 2.5", 2014, | |||
| 3", BCP 9, RFC 2026, October 1996, | <https://ddialliance.org/Specification/DDI-Codebook/2.5/>. | |||
| <https://www.rfc-editor.org/info/rfc2026>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [DDI-ID] DDI Alliance, "Identification", DDI Lifecycle (3.3) | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997, | Technical Guide: General Structures, <https://ddi- | |||
| <https://www.rfc-editor.org/info/rfc2119>. | lifecycle-technical- | |||
| guide.readthedocs.io/en/latest/General%20Structures/ | ||||
| Identification.html>. | ||||
| [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS | [DDI-L] DDI Alliance, "DDI-Lifecycle", | |||
| Specification", RFC 2181, July 1997, | <https://ddialliance.org/Specification/DDI-Lifecycle/>. | |||
| <https://www.rfc-editor.org/info/rfc2181>. | ||||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [DDI-SDTL] DDI Alliance, "SDTL - Structured Data Transformation | |||
| Resource Identifier (URI): Generic Syntax", RFC 3986, | Language - Version 1.0", December 2020, | |||
| <https://www.rfc-editor.org/info/rfc3986>. | <https://ddialliance.org/products/sdtl/1.0/>. | |||
| [RFC4343] Eastlake, D. 3rd, "Domain Name System (DNS) Case | [DDI-XKOS] DDI Alliance, "XKOS - Extended Knowledge Organization | |||
| Insensitivity Clarification", RFC 4343, January 2006, | System", <https://ddialliance.org/Specification/RDF/XKOS>. | |||
| <https://www.rfc-editor.org/info/rfc4343>. | ||||
| [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for | [RFC0952] Harrenstien, K., Stahl, M., and E. Feinler, "DoD Internet | |||
| Syntax Specifications: ABNF", STD 68, RFC 5234, January | host table specification", RFC 952, DOI 10.17487/RFC0952, | |||
| 2008, <https://www.rfc-editor.org/info/rfc5234>. | October 1985, <https://www.rfc-editor.org/info/rfc952>. | |||
| [RFC5378] Bradner, S. and J. Contreras, "Rights Contributors | [RFC1034] Mockapetris, P., "Domain names - concepts and facilities", | |||
| Provide to the IETF Trust", BCP 78, RFC 5378, November | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
| 2008, <https://www.rfc-editor.org/info/rfc5378>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
| [RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
| (URNs)", RFC 8141, April 2017, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
| <https://www.rfc-editor.org/info/rfc8141>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC1123] Braden, R., Ed., "Requirements for Internet Hosts - | |||
| 2119 Key Words", RFC 8174, May 2017, <https://www.rfc- | Application and Support", STD 3, RFC 1123, | |||
| editor.org/info/rfc8174>. | DOI 10.17487/RFC1123, October 1989, | |||
| <https://www.rfc-editor.org/info/rfc1123>. | ||||
| [RFC8179] Bradner, S. and J. Contreras, "Intellectual Property | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Rights in IETF Technology", BCP 79, RFC 8179, May 2017, | Requirement Levels", BCP 14, RFC 2119, | |||
| <https://www.rfc-editor.org/info/rfc8179>. | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [SDTL] SDTL - Structured Data Transformation Language - Version | [RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS | |||
| 1.0, <https://ddialliance.org/products/sdtl/1.0/>. | Specification", RFC 2181, DOI 10.17487/RFC2181, July 1997, | |||
| <https://www.rfc-editor.org/info/rfc2181>. | ||||
| [TLD] IANA Database of Top Level Domains, | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| <https://www.iana.org/domains/root/db>. | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | ||||
| <https://www.rfc-editor.org/info/rfc3986>. | ||||
| 8.2. Informative References | [RFC4343] Eastlake 3rd, D., "Domain Name System (DNS) Case | |||
| Insensitivity Clarification", RFC 4343, | ||||
| DOI 10.17487/RFC4343, January 2006, | ||||
| <https://www.rfc-editor.org/info/rfc4343>. | ||||
| [ABNF2RS] ABNF to REGEX Regular Expression Generator, Michael R. | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
| Sweet, <https://www.msweet.org/abnf/>. | Specifications: ABNF", STD 68, RFC 5234, | |||
| DOI 10.17487/RFC5234, January 2008, | ||||
| <https://www.rfc-editor.org/info/rfc5234>. | ||||
| [ABNFGEN] abnfgen, Jutta Degener, <http://www.quut.com/abnfgen/>. | [RFC8141] Saint-Andre, P. and J. Klensin, "Uniform Resource Names | |||
| (URNs)", RFC 8141, DOI 10.17487/RFC8141, April 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8141>. | ||||
| [ABNFPFE] ABNF Parser, Bill Fenner, | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| <http://tools.ietf.org/tools/bap/abnf.cgi>. | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [DDIALL] DDI Alliance, <https://ddialliance.org/>. | [TLD] IANA, "Root Zone Database", | |||
| <https://www.iana.org/domains/root/db>. | ||||
| [DDICVAG] DDI Controlled Vocabulary for Aggregation Method, | 8.2. Informative References | |||
| <https://ddialliance.org/Specification/DDI- | ||||
| CV/AggregationMethod_1.0.html>. | ||||
| [DDIEXQU] DDI Lifecycle 3.3 Technical Guide, Examples, Questions, | [ABNF2RS] "ABNF to REGEX: Regular Expression Generator", October | |||
| <https://ddi-lifecycle-technical- | 2019, <https://www.msweet.org/abnf/>. | |||
| guide.readthedocs.io/en/latest/Examples/Questions.html>. | ||||
| [DDIEXRV] DDI Lifecycle 3.3 Technical Guide, Examples, Represented | [ABNFGEN] Degener, J., "abnfgen", <http://www.quut.com/abnfgen/>. | |||
| Variable, <https://ddi-lifecycle-technical- | ||||
| guide.readthedocs.io/en/latest/Examples/RepresentedVaria | ||||
| ble.html>. | ||||
| [DDIINTR] Vardigan, M., Heus, P., and W. Thomas. "Data | [ABNFPFE] IETF, "IETF Author Tools - ABNF Tools", | |||
| Documentation Initiative: Toward a Standard for the | <https://author-tools.ietf.org/abnf>. | |||
| Social Sciences." The International Journal of Digital | ||||
| Curation 3, 1 (2008), | ||||
| <http://www.ijdc.net/article/view/66>. | ||||
| [DDIREGI] DDI Agency Registry, | [DDI-ALL] DDI Alliance, "Document, Discover and Interoperate", | |||
| <https://registry.ddialliance.org/>. | <https://ddialliance.org/>. | |||
| [DDIRESO] DDI Agency Registry Tools, | [DDI-CVAG] DDI Alliance, "DDI Controlled Vocabulary for Aggregation | |||
| <https://registry.ddialliance.org/Home/Tools>. | Method", <https://ddialliance.org/Specification/DDI-CV/ | |||
| AggregationMethod_1.0.html>. | ||||
| [DUBLINC] Dublin Core Metadata Initiative, | [DDI-EXQU] DDI Alliance, "Questions", DDI Lifecycle 3.3 Technical | |||
| <https://www.dublincore.org/>. | Guide: Examples, <https://ddi-lifecycle-technical- | |||
| guide.readthedocs.io/en/latest/Examples/Questions.html>. | ||||
| [ISO3166] ISO 3166 Country Codes, | [DDI-EXRV] DDI Alliance, "Represented Variable", DDI Lifecycle 3.3 | |||
| <https://www.iso.org/iso-3166-country-codes.html>. | Technical Guide: Examples, <https://ddi-lifecycle- | |||
| technical-guide.readthedocs.io/en/latest/Examples/ | ||||
| RepresentedVariable.html>. | ||||
| [IS11179] ISO/IEC 11179 Information technology - Metadata | [DDI-INTR] Vardigan, M., Heus, P., and W. Thomas, "Data Documentation | |||
| registries (MDR) - Part 6: Registration, | Initiative: Toward a Standard for the Social Sciences", | |||
| <http://metadata-standards.org/11179/>. | The International Journal of Digital Curation, Issue 1, | |||
| Volume 3, DOI 10.2218/ijdc.v3i1.45, December 2008, | ||||
| <http://www.ijdc.net/article/view/66>. | ||||
| [IS19115] ISO 19115, Geographic information -- Metadata, | [DDI-REGI] DDI Alliance, "Welcome to the DDI Registry", | |||
| <https://www.iso.org/standard/26020.html>. | <https://registry.ddialliance.org/>. | |||
| [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | [DDI-RESO] DDI Alliance, "Tools", | |||
| specifying the location of services (DNS SRV)", RFC | <https://registry.ddialliance.org/Home/Tools>. | |||
| 2782, February 2000, <https://www.rfc- | ||||
| editor.org/info/rfc2782>. | ||||
| [RFC2843] Mealling, M., Daniel, R., "URI Resolution Services | [DUBLINC] Dublin Core Metadata Initiative, "Dublin Core", | |||
| Necessary for URN Resolution", RFC 2483, January 1999, | <https://www.dublincore.org/>. | |||
| <https://www.rfc-editor.org/info/rfc2483>. | ||||
| [RFC3401] Mealling, M., "Dynamic Delegation Discovery System | [IS11179] ISO, "Information technology - Metadata registries (MDR) - | |||
| (DDDS) - Part Two: The Algorithm", RFC 3401, October | Part 6: Registration", ISO/IEC 11179-6:2023, January 2023, | |||
| 2002, <https://www.rfc-editor.org/info/rfc3401>. | <https://www.iso.org/standard/78916.html>. | |||
| [RFC3402] Mealling, M., "Dynamic Delegation Discovery System | [ISO.19115.2003] | |||
| (DDDS) - Part Two: The Algorithm", RFC 3402, October | ISO, "Geographic information - Metadata", ISO 19115:2003, | |||
| 2002, <https://www.rfc-editor.org/info/rfc3402>. | <https://www.iso.org/standard/26020.html>. | |||
| [RFC3403] Mealling, M., "Dynamic Delegation Discovery System | [ISO3166] ISO, "ISO 3166 Country Codes", | |||
| (DDDS) - Part Three: The Domain Name System (DNS) | <https://www.iso.org/iso-3166-country-codes.html>. | |||
| Database", RFC 3403, October 2002, | ||||
| <https://www.rfc-editor.org/info/rfc3403>. | ||||
| [RFC3833] Atkins, D. and R. Austein, "Threat Analysis Of The | [RFC2483] Mealling, M. and R. Daniel, "URI Resolution Services | |||
| Domain Name System", RFC 3833, August 2004, | Necessary for URN Resolution", RFC 2483, | |||
| <https://www.rfc-editor.org/info/rfc3833>. | DOI 10.17487/RFC2483, January 1999, | |||
| <https://www.rfc-editor.org/info/rfc2483>. | ||||
| [RFC3958] Daigle, L., Newton, A., "Domain-Based Application | [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | |||
| Service Location Using SRV RRs and the Dynamic | specifying the location of services (DNS SRV)", RFC 2782, | |||
| Delegation Discovery Service (DDDS)", RFC 3958, January | DOI 10.17487/RFC2782, February 2000, | |||
| 2005, | <https://www.rfc-editor.org/info/rfc2782>. | |||
| <https://www.rfc-editor.org/info/rfc3958>. | ||||
| [RFC4848] Daigle, L., "Domain-Based Application Service Location | [RFC3401] Mealling, M., "Dynamic Delegation Discovery System (DDDS) | |||
| Using URIs and the Dynamic Delegation Discovery Service | Part One: The Comprehensive DDDS", RFC 3401, | |||
| (DDDS)", RFC 4848, April 2007, | DOI 10.17487/RFC3401, October 2002, | |||
| <https://www.rfc-editor.org/info/rfc4848>. | <https://www.rfc-editor.org/info/rfc3401>. | |||
| [RFC5385] Touch, J, "Version 2.0 Microsoft Word Template for | [RFC3402] Mealling, M., "Dynamic Delegation Discovery System (DDDS) | |||
| Creating Internet Drafts and RFCs", RFC 5385, February | Part Two: The Algorithm", RFC 3402, DOI 10.17487/RFC3402, | |||
| 2010, <https://www.rfc-editor.org/info/rfc5385>. | October 2002, <https://www.rfc-editor.org/info/rfc3402>. | |||
| [RFC8484] Hoffman, P., McManus, P., "DNS Queries over HTTPS | [RFC3403] Mealling, M., "Dynamic Delegation Discovery System (DDDS) | |||
| (DoH)", RFC 8484, October 2018, <https://www.rfc- | Part Three: The Domain Name System (DNS) Database", | |||
| editor.org/rfc/rfc8484>. | RFC 3403, DOI 10.17487/RFC3403, October 2002, | |||
| <https://www.rfc-editor.org/info/rfc3403>. | ||||
| [SDMX] SDMX -- Statistical Data and Metadata Exchange, | [RFC3833] Atkins, D. and R. Austein, "Threat Analysis of the Domain | |||
| <https://sdmx.org/>. | Name System (DNS)", RFC 3833, DOI 10.17487/RFC3833, August | |||
| 2004, <https://www.rfc-editor.org/info/rfc3833>. | ||||
| 9. Acknowledgments | [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/RFC3958, | ||||
| January 2005, <https://www.rfc-editor.org/info/rfc3958>. | ||||
| Many thanks to Arofan Gregory, Dan Smith, and Wendy Thomas from | [RFC4848] Daigle, L., "Domain-Based Application Service Location | |||
| the DDI Alliance Technical Committee, and Peter Koch from DENIC | Using URIs and the Dynamic Delegation Discovery Service | |||
| (German Network Information Center) for discussion and input that | (DDDS)", RFC 4848, DOI 10.17487/RFC4848, April 2007, | |||
| led to this document. | <https://www.rfc-editor.org/info/rfc4848>. | |||
| The following software tools have been helpful in evaluating the | [RFC8484] Hoffman, P. and P. McManus, "DNS Queries over HTTPS | |||
| ABNF grammar and the regular expressions: an ABNF parser | (DoH)", RFC 8484, DOI 10.17487/RFC8484, October 2018, | |||
| [ABNFPFE], a tool that creates regular expressions from an ABNF | <https://www.rfc-editor.org/info/rfc8484>. | |||
| grammar [ABNF2RS], and a tool that generates random strings that | ||||
| match an ABNF grammar [ABNFGEN]. | ||||
| This document was prepared using the Word template | [SDMX] Statistical Data and Metadata eXchange, "SDMX", | |||
| 2-Word-v2.0.template.dot [RFC5385]. | <https://sdmx.org/>. | |||
| Appendix A. Example DNS Records | Appendix A. Example DNS Records | |||
| The examples use NAPTR [RFC3403] and SRV [RFC2782][RFC3958] | The examples use NAPTR [RFC3403] and SRV [RFC2782] [RFC3958] records. | |||
| records. The values for the services and flags fields of the NAPTR | The values for the services and flags fields of the NAPTR records | |||
| records will be determined by the DDI application ([RFC3403] | will be determined by the DDI application ([RFC3403], Section 9). | |||
| section 9.). | ||||
| For a description of the packet format of NAPTR, see [RFC3403] | For a description of the packet format of NAPTR, see [RFC3403], | |||
| section 4.1. | Section 4.1. | |||
| A.1. Delegation of the URN Namespace "ddi" | A.1. Delegation of the URN Namespace "ddi" | |||
| 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. | authoritative name servers for the domain urn.arpa. | |||
| 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 | |||
| next probe to DNS is for more NAPTR records where the new domain | probe to DNS is for more NAPTR records where the new domain is | |||
| is "dns.ddialliance.org". | "dns.ddialliance.org". | |||
| ; 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. | |||
| A.2. Delegation of DDI Agencies | A.2. Delegation of DDI Agencies | |||
| Example records below are defined at dns.ddialliance.org for | Example records below are defined at dns.ddialliance.org for | |||
| ddi.urn.arpa. | ddi.urn.arpa. | |||
| 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 | |||
| next probe to DNS is for more NAPTR records where the new domain | probe to DNS is for more NAPTR records where the new domain is the | |||
| is the DNS server of the relevant DDI agency. | DNS server of the relevant DDI agency. | |||
| ; 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. | |||
| A.3. DDI Services | A.3. DDI Services | |||
| Example records below are defined at dns.example2.org for | Example records below are defined at dns.example2.org for | |||
| ddi.urn.arpa. | ddi.urn.arpa. | |||
| The "u" flag states that the rule is terminal and that the output | The "u" flag states that the rule is terminal and that the output is | |||
| is a URI which contains the information needed to contact that DDI | a URI that contains the information needed to contact that DDI | |||
| service. The "s" flag states that the rule is terminal and that | service. The "s" flag states that the rule is terminal and that the | |||
| the output of the rewrite will be a domain-name for which an SRV | output of the rewrite will be a domain name for which an SRV record | |||
| record SHOULD be queried. See also [RFC4848] section 4.4. | SHOULD be queried. See also [RFC4848], Section 4.4. | |||
| The service N2R returns one instance of the resource identified by | The service I2R returns one instance of the resource identified by | |||
| the given URN. That service is a repository of DDI resources | the given URN. That service is a repository of DDI resources | |||
| available at http://repos.example2.org/N2R/; possibly a REST-based | available at http://repos.example2.org/I2R/; possibly a REST-based | |||
| service. The service N2C returns a description of the resource | service. The service I2C returns a description of the resource | |||
| identified by the given URN. That service is a registry of DDI | identified by the given URN. That service is a registry of DDI | |||
| resources available at registry-udp.example2.org port 10060. | resources available at registry-udp.example2.org port 10060. | |||
| U-NAPTR permits regular expressions of a form that does a complete | U-NAPTR permits regular expressions of a form that does a complete | |||
| replacement of the matched string with a URI, expressed as a | replacement of the matched string with a URI, expressed as a constant | |||
| constant string. With this limited form of regular expression | string. With this limited form of regular expression ([RFC4848], | |||
| ([RFC4848] section 2.2.), applications using NAPTR need not | Section 2.2), applications using NAPTR need not implement full | |||
| implement full regular expression parsers. | regular expression parsers. | |||
| 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. | |||
| Appendix B. Algorithm for DDI Service Discovery | Appendix B. Algorithm for DDI Service Discovery | |||
| The description is based on the Dynamic Delegation Discovery | The description is based on the Dynamic Delegation Discovery System | |||
| System (DDDS) algorithm [RFC3402]. | (DDDS) algorithm [RFC3402]. | |||
| 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. | described below and contacts the service for the given URN. | |||
| 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. | records of already requested DDI agencies. | |||
| B.1. Application Unique String | B.1. Application Unique String | |||
| The Application Unique String is a DDI URN. | The Application Unique String is a DDI URN. | |||
| B.2. First Well Known Rule | B.2. First Well Known Rule | |||
| 1. Extracting the characters between the second and third colon | 1. Extracting the characters between the second and third colon (the | |||
| (the agency identifier). | agency-identifier). | |||
| 2. Normalizing case of that string. | 2. Normalizing case of that string. | |||
| 3. Reversing the order of the substrings separated by dots. | 3. Reversing the order of the substrings separated by dots. | |||
| 4. Appending the string ".ddi.urn.arpa" to the end to get a domain | 4. Appending the string ".ddi.urn.arpa" to the end to get a domain | |||
| name. | name. | |||
| B.3. Valid Databases | B.3. Valid Databases | |||
| The DNS is specified as a DDDS Database for this application which | 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 | |||
| for service discovery. | service discovery. | |||
| 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. | the output of the First Well Known Rule. | |||
| B.4. Expected Output | B.4. Expected Output | |||
| The expected output is the information necessary to connect to | The expected output is the information necessary to connect to one or | |||
| authoritative server(s) (host, port, protocol, or URL) for an | 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 | |||
| list of terminal NAPTR records pointing to services available for | of terminal NAPTR records pointing to services available for the | |||
| the relevant DDI agency. | 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]. | ||||
| Author's Address | Author's Address | |||
| Joachim Wackerow | Joachim Wackerow | |||
| c/o The Data Documentation Initiative Alliance (DDI Alliance) | c/o The Data Documentation Initiative Alliance (DDI Alliance) | |||
| ICPSR, University of Michigan | ICPSR, University of Michigan | |||
| PO Box 1248 | PO Box 1248 | |||
| Ann Arbor, MI 48106-1248 | Ann Arbor, MI 48106-1248 | |||
| USA | United States of America | |||
| Email: joachim.wackerow@posteo.de, secretariat@ddialliance.org | Email: joachim.wackerow@posteo.de, secretariat@ddialliance.org | |||
| Website: ddialliance.org | URI: ddialliance.org | |||
| End of changes. 195 change blocks. | ||||
| 630 lines changed or deleted | 593 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||