Internet-Draft URN Namespace for DDI January 2021 3.4.4. Examples of DDI URNs URN of a Represented Variable urn:ddi:us.ddia1:R-V1:1 The DDI represented variable identified by "R-V1" with the version "1" of the DDI agency "ddia1" located in the domain "us" [DDIEXRV]. URN of a Question Item urn:ddi:us.ddia1:PISA-QS.QI-2:1 The DDI question item identified by "PISA-QS.QI-2" with the version "1" of the DDI agency "ddia1" in the domain "us" [DDIEXQU]. URN as Reference to a Controlled Vocabulary urn:ddi:int.ddi.cv:AggregationMethod:1.1 The DDI controlled vocabulary identified by "AggregationMethod" with the version "1.1" in the scope of the DDI agency "ddi" and sub-agency "cv" in the domain "int" [DDICVAG]. 3.5. Relevant Ancillary Documentation An introductory article on DDI can be found at [DDIINTR]. 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 [DDIALL]. Information on domain names can be found in the relevant RFCs. o For an overview, see [RFC1034]. o Regarding case insensitivity, see [RFC1035] section 2.3.3. o Regarding syntax, see [RFC952] section "Grammatical Host Table Specification" B. and [RFC1123] section 2.1. o Regarding size limits, see [RFC1123] section 2.1 and [RFC1035] section 2.3.4. Wackerow Expires July 21, 2021 [Page 9] Internet-Draft URN Namespace for DDI January 2021 Sample Sequence Diagram for receiving a list of DDI services from the example DDI agency "ddia1". Client NS for NS for NS for DDI services urn.arpa ddialliance.org example1.edu for us.ddia1 | | | | | 1 |------>| | | | 2 |<------| | | | 3 |---------------------->| | | 4 |<----------------------| | | 5 |-------------------------------------->| | 6 |<--------------------------------------| | 7 |------------------------------------------------------>| 8 |<------------------------------------------------------| 1. The name server (NS) of IANA for the domain "urn.arpa." is reached with the request "ddia1.us.ddi.urn.arpa." for the DDI agency "us.ddia1". 2./3. The request is delegated to the name server for "ddialliance.org". 4./5. The request is delegated to the name server for "example1.edu" (domain of the DDI agency "us.ddia1"). 6. The server responds with a list of NAPTR records [RFC3403] pointing to available DDI services for the DDI agency "us.ddia1". 7. The client selects an appropriate DDI service and sends a request for a DDI URN to this service. 8. The DDI service responds for example with a DDI object identified by the requested DDI URN. See Appendix A for examples of name server records. 3.10. Rules for Lexical Equivalence The DDI agency identifier basically follows the rules of domain names. Domain names are case-insensitive. Thus, the portion of the URN urn:ddi:: is case-insensitive for matches. The remainder of the identifier MUST be considered case-sensitive. Wackerow Expires July 21, 2021 [Page 11] Internet-Draft URN Namespace for DDI January 2021 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.). A.1. Delegation of the URN Namespace "ddi" Example records defined at a.iana-servers.net and other authoritative name servers for the domain urn.arpa. The empty flag indicates that the lookup is not terminal and the next probe to DNS is for more NAPTR records where the new domain is "dns.ddialliance.org". ; Delegation to name servers of ddialliance.org ; order pref flag service regexp replacement ddi.urn.arpa. IN NAPTR 100 10 "" "" "" dns.ddialliance.org. A.2. Delegation of DDI Agencies Example records defined at dns.ddialliance.org for ddi.urn.arpa. 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. ; Delegation to name servers of subdomains in ddi.urn.arpa, i.e. ; DDI agencies. ; order pref flag service regexp replacement ddia1.us.ddi.urn.arpa. IN NAPTR 100 10 "" "" "" dns.example1.edu. ddia2.de.ddi.urn.arpa. IN NAPTR 100 10 "" "" "" dns.example2.org. ddia3.gb.ddi.urn.arpa. IN NAPTR 100 10 "" "" "" dns.example3.ac.uk. A.3. DDI Services Example records defined at dns.example2.org for ddi.urn.arpa. The "u" flag states that the rule is terminal and that the output is a URI which contains the information needed to contact that DDI service. The "s" flag states that the rule is terminal and that the output of the rewrite will be a domain-name for which an SRV record should be queried. See also [RFC4848] section 4.4. Wackerow Expires July 21, 2021 [Page 19] Internet-Draft URN Namespace for DDI January 2021 The service N2R returns one instance of the resource identified by the given URN. That service is a repository of DDI resources available at http://repos.example2.org/N2R/; possibly a REST-based service. The service N2C returns a description of the resource identified by the given URN. That service is a registry of DDI resources available at registry-udp.example2.org port 10060. 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. ddia2.de.ddi.urn.arpa. ; order pref flag IN NAPTR 100 10 "u" "N2R+http" ( ; service "!.*!http://repos.example2.org/N2R/!" ;regex . ; replacement ) IN NAPTR 100 10 "s" "N2C+udp" ( ; service "" ; regex _registry._udp.example2.org. ; replacement ) ; all subdomains in ddia2.de.ddi.urn.arpa. *.ddia2.de.ddi.urn.arpa. ddia2.de.ddi.urn.arpa. ; order pref flag IN NAPTR 100 10 "u" "N2R+http" ( ; service "!.*!http://repos.example2.org/N2R/!" ;regex . ; replacement ) IN NAPTR 100 10 "s" "N2C+udp" ( ; service "" ; regex _registry._udp.example2.org. ; replacement ) ;_service._protocol.name ; TTL class SRV priority weight port target _registry._udp.example2.org 14400 IN SRV 0 0 10060 registry-udp.example2.org. Wackerow Expires July 21, 2021 [Page 20]