Subject: [urn] Request for the NID 'ddi'

From: "Joachim Wackerow" <[email-masked]>
Date: Thu, 21 Jan 2021 14:44:01 +0100

Hello expert reviewers,

Please find attached an URN namespace registration request for DDI, Data
Documentation Initiative (NID 'ddi').

The registration for 'ddi' in the DNS zone 'URN.ARPA' is planned as well.

Please advise me on possibly required changes in the document and about the
next steps. 

Thank you very much for your support

Joachim Wackerow

---

From: [email-masked] (Dale R. Worley)
Date: Thu, 21 Jan 2021 22:51:11 -0500

> Documentation Initiative (NID 'ddi').

The document draft-urn-ddi-01.txt was attached to your message, but that
document contains only sections 3.4.4 and following.

Based on the draft-urn-ddi-01.pdf:

Generally, the document is quite well done.  Some specific issues are:

    ; 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 = 1*255( top-level-domain
                               sub-separator ddi-authority-id
                               *(sub-separator ddi-sub-authority-id)
                             )
    top-level-domain = dns-label
    ddi-authority-id = dns-label
    ddi-sub-authority-id = dns-label

I think you want to remove the "1*255( ... )" -- that means "repeat the
stuff inside the parentheses from 1 to 255 times".  I think you're
trying to use it to mean "the total length of this string must be from 1
to 255 characters", but that's not what it means.  You would need to
state a length limit in a comment, or leave it to be implied by the
reference to RFC 2181.

    dns-label = 1*63( (ALPHA / DIGIT) [
                      *(ALPHA / DIGIT / "-")
                      (ALPHA / DIGIT)
                      ] )

I think this is another example of the same issue.

    resource-identifier = restricted-string
                          *(restricted-string / "/")
    version-identifier = restricted-string
                         *(restricted-string / "/")
    restricted-string = 1*( unreserved / sub-delims / "@")

I don't think the first two definitions are what you mean.  What they
mean is "a restricted-string, followed by zero or more things which are
either restricted-strings or slashes".  When you sort it all out, it is
equivalent to

    resource-identifier = ( unreserved / sub-delims / "@" )
                          *( unreserved / sub-delims / "@" / "/")

In particular, that allows two slashes to be adjacent in
resource-identifier (as long as they aren't the first two characters).

It's more likely you want:

    resource-identifier = restricted-string
                          *("/" restricted-string)

That is, a resource-identifier is a sequence of one or more
restricted-strings, separated by slashes.

Parallel changes would be needed in section 3.4.3.

In section 3.4.4 "Examples", it might be useful to note that the DDI
URNs of Represented Variables etc. are not syntactically distinct.
Although if the distinction between these categories of resources is
important in the DDI universe, you might mention how, if one possesses a
DDI URN, one would determine what category it belongs to.

Dale

---

From: "Hakala, Juha E" <[email-masked]>
Date: Fri, 22 Jan 2021 09:00:47 +0000

Hello, 

I agree with Dale that the document is well done overall, but contains some glitches. IMO this registration will be very useful, since urn:ddi URNs will make easier to understand DDI metadata and resources. I hope that other metadata initiatives will follow DDI's example and register their own namespaces in the future, or use urn:meta, if and when it is approved. 

The Word version of the request is complete, unlike the txt version.

I have comments about agency-identifier part of the DDI NSS. The request says: 

"The left-most label of agency-identifier conveys the top-level domain. It SHOULD be a country code corresponding to ISO 3166 alpa-2 codes [ISO3166] or another top-level domain."

There are no other options than ISO 3166-1 country code or something else, so SHALL is more appropriate than SHOULD. 

The request does not describe how uniqueness of top-level domains is ensured. There are at least two simple solutions for this. Either the request provides a list of non-country code top-level domains, or says that the DDI Alliance or some other organization maintains a registry of such domains. 

I suppose non-county code top-level domains include "int" for international organizations, or acronyms of such organizations, like FAO or UNESCO, or other acronyms relevant in the research data context. In order to avoid problems in the future, you may want to say that all two-letter top-level domains are reserved for current and future ISO 3166 codes.  

Description in 3.4.1 does not say that within agency-identifier the top-level domain and subdomains are separated by full stop. This is shown in the syntax in 3.4.3, but could be mentioned in 3.4.1 too. You might also want to say in the description that full stop is not allowed within top-level domain names or subdomain names. 

Registration of DDI namespace and usage of URN:DDI identifiers are separate but interlinked issues. I took a look at your examples, and found it interesting that US translation of PISA questionnaire is identified with URN 

urn:ddi:us.mpc:PISA_QS:1

Finnish translation of the PISA questionnaire will certainly get a different URN. But these translations could also share a URN like urn:ddi:int.PISA_QS:1 to indicate the common semantics between Finnish and U.S. PISA questionnaires. 

All examples of version identifiers in the registration and linked documents are numbers. Do you want to / need to allow other options?  

I suppose the actual usage of URNs in the DDI Alliance specifications is still work in progress, since some documents have URNs which are not compliant with this request. For instance, DDI Controlled Vocabulary for Aggregation Method version 1.0 (https://ddialliance.org/Specification/DDI-CV/AggregationMethod_1.0.html) has URN urn:ddi-cv:AggregationMethod:1.0. According to the registration, version 1.1 will have correct URN, urn:ddi:int.ddi.cv:AggregationMethod:1.1. As an aside, the link (which is not functioning)  is for version 1.0.   

Best regards, 

Juha 

-----Alkuperäinen viesti-----
Lähettäjä: urn <[email-masked]> Puolesta Dale R. Worley
Lähetetty: perjantai 22. tammikuuta 2021 5.51
Vastaanottaja: Joachim Wackerow <[email-masked]>
Kopio: [email-masked]
Aihe: Re: [urn] Request for the NID 'ddi'

"Joachim Wackerow" <[email-masked]> writes:
> Please find attached an URN namespace registration request for DDI, 
> Data Documentation Initiative (NID 'ddi').

The document draft-urn-ddi-01.txt was attached to your message, but that document contains only sections 3.4.4 and following.

I think you want to remove the "1*255( ... )" -- that means "repeat the stuff inside the parentheses from 1 to 255 times".  I think you're trying to use it to mean "the total length of this string must be from 1 to 255 characters", but that's not what it means.  You would need to state a length limit in a comment, or leave it to be implied by the reference to RFC 2181.

I don't think the first two definitions are what you mean.  What they mean is "a restricted-string, followed by zero or more things which are either restricted-strings or slashes".  When you sort it all out, it is equivalent to

In particular, that allows two slashes to be adjacent in resource-identifier (as long as they aren't the first two characters).

That is, a resource-identifier is a sequence of one or more restricted-strings, separated by slashes.

In section 3.4.4 "Examples", it might be useful to note that the DDI URNs of Represented Variables etc. are not syntactically distinct.
Although if the distinction between these categories of resources is important in the DDI universe, you might mention how, if one possesses a DDI URN, one would determine what category it belongs to.

Dale

_______________________________________________
urn mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/urn

---

From: "Joachim Wackerow" <[email-masked]>
Date: Tue, 26 Jan 2021 22:06:58 +0100

Hello Dale and Juha,

Thank you very much for your quick response and detailed advice. I'll look
into this and make changes accordingly.

Cheers
Joachim

-----Original Message-----
From: urn <[email-masked]> On Behalf Of Hakala, Juha E
Sent: Freitag, 22. Januar 2021 10:01
To: Dale R. Worley <[email-masked]>; Joachim Wackerow
<[email-masked]>
Cc: [email-masked]
Subject: Re: [urn] Request for the NID 'ddi'

Hello, 

I agree with Dale that the document is well done overall, but contains some
glitches. IMO this registration will be very useful, since urn:ddi URNs will
make easier to understand DDI metadata and resources. I hope that other
metadata initiatives will follow DDI's example and register their own
namespaces in the future, or use urn:meta, if and when it is approved. 

I have comments about agency-identifier part of the DDI NSS. The request
says: 

"The left-most label of agency-identifier conveys the top-level domain. It
SHOULD be a country code corresponding to ISO 3166 alpa-2 codes [ISO3166] or
another top-level domain."

There are no other options than ISO 3166-1 country code or something else,
so SHALL is more appropriate than SHOULD. 

The request does not describe how uniqueness of top-level domains is
ensured. There are at least two simple solutions for this. Either the
request provides a list of non-country code top-level domains, or says that
the DDI Alliance or some other organization maintains a registry of such
domains. 

I suppose non-county code top-level domains include "int" for international
organizations, or acronyms of such organizations, like FAO or UNESCO, or
other acronyms relevant in the research data context. In order to avoid
problems in the future, you may want to say that all two-letter top-level
domains are reserved for current and future ISO 3166 codes.  

Description in 3.4.1 does not say that within agency-identifier the
top-level domain and subdomains are separated by full stop. This is shown in
the syntax in 3.4.3, but could be mentioned in 3.4.1 too. You might also
want to say in the description that full stop is not allowed within
top-level domain names or subdomain names. 

Registration of DDI namespace and usage of URN:DDI identifiers are separate
but interlinked issues. I took a look at your examples, and found it
interesting that US translation of PISA questionnaire is identified with URN

urn:ddi:us.mpc:PISA_QS:1

Finnish translation of the PISA questionnaire will certainly get a different
URN. But these translations could also share a URN like
urn:ddi:int.PISA_QS:1 to indicate the common semantics between Finnish and
U.S. PISA questionnaires. 

All examples of version identifiers in the registration and linked documents
are numbers. Do you want to / need to allow other options?  

I suppose the actual usage of URNs in the DDI Alliance specifications is
still work in progress, since some documents have URNs which are not
compliant with this request. For instance, DDI Controlled Vocabulary for
Aggregation Method version 1.0
(https://ddialliance.org/Specification/DDI-CV/AggregationMethod_1.0.html)
has URN urn:ddi-cv:AggregationMethod:1.0. According to the registration,
version 1.1 will have correct URN, urn:ddi:int.ddi.cv:AggregationMethod:1.1.
As an aside, the link (which is not functioning)  is for version 1.0.   

Best regards, 

Juha 

-----Alkuperäinen viesti-----
Lähettäjä: urn <[email-masked]> Puolesta Dale R. Worley
Lähetetty: perjantai 22. tammikuuta 2021 5.51
Vastaanottaja: Joachim Wackerow <[email-masked]>
Kopio: [email-masked]
Aihe: Re: [urn] Request for the NID 'ddi'

I think you want to remove the "1*255( ... )" -- that means "repeat the
stuff inside the parentheses from 1 to 255 times".  I think you're trying to
use it to mean "the total length of this string must be from 1 to 255
characters", but that's not what it means.  You would need to state a length
limit in a comment, or leave it to be implied by the reference to RFC 2181.

I don't think the first two definitions are what you mean.  What they mean
is "a restricted-string, followed by zero or more things which are either
restricted-strings or slashes".  When you sort it all out, it is equivalent
to

In particular, that allows two slashes to be adjacent in resource-identifier
(as long as they aren't the first two characters).

In section 3.4.4 "Examples", it might be useful to note that the DDI URNs of
Represented Variables etc. are not syntactically distinct.
Although if the distinction between these categories of resources is
important in the DDI universe, you might mention how, if one possesses a DDI
URN, one would determine what category it belongs to.

Dale