[urn] Re: Registration request for urn:thread:

worley@ariadne.com Wed, 20 November 2024 16:43 UTC

Return-Path: <worley@alum.mit.edu>
X-Original-To: urn@ietfa.amsl.com
Delivered-To: urn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9F17FC221B9C for <urn@ietfa.amsl.com>; Wed, 20 Nov 2024 08:43:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.987
X-Spam-Level:
X-Spam-Status: No, score=-0.987 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_SOFTFAIL=0.665, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=comcastmailservice.net
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z4JiiXjhapxn for <urn@ietfa.amsl.com>; Wed, 20 Nov 2024 08:43:28 -0800 (PST)
Received: from resdmta-a2p-658199.sys.comcast.net (resdmta-a2p-658199.sys.comcast.net [96.103.146.60]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 15E78C221B8A for <urn@ietf.org>; Wed, 20 Nov 2024 08:43:27 -0800 (PST)
Received: from resomta-a2p-630472.sys.comcast.net ([96.103.145.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 256/256 bits) (Client did not present a certificate) by resdmta-a2p-658199.sys.comcast.net with ESMTPS id DmJOtdAE7jQHCDnlatL5Jq; Wed, 20 Nov 2024 16:41:22 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcastmailservice.net; s=20211018a; t=1732120882; bh=4r0e6s68qu/NvSRaqy2yJlFVsK/S204zcqrX3YUGYZU=; h=Received:Received:Received:Received:From:To:Subject:Date: Message-ID:Xfinity-Spam-Result; b=EaAQ7cYqDSFWIkHMavn9jxiQqG9QZHFtWXDKSHVKjv6dABp7HgCeR/Nsjrd/Pnl24 j0qRsOZrhYxK5/boL2BYqgc3CuqyOmzvGbVTdxr5ZnCC/SAMRK6iPj3Xxkke588F0l yYEiipMErvACC1qf1ebAoCCH/TBGlnU64+X8c5AChXzNnDU3acOBSePKGvatjJbrvM du0DKpJHwHOalckDUrT1gMT2W7sY+5SNiXqnwy0kl2CWR9SHN6NcJ3NKJDcefMAFMj 7Cv2opg39DzQYesQZVojV96nK1EOr+StyakUn1dBulhOAaCuZCeLuKOaq5tSAchp/c 3IrItlL2y1+Yg==
Received: from hobgoblin.ariadne.com ([IPv6:2601:192:4a00:430::e472]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 256/256 bits) (Client did not present a certificate) by resomta-a2p-630472.sys.comcast.net with ESMTPSA id DnlWtryuurN9rDnlXtDmhj; Wed, 20 Nov 2024 16:41:21 +0000
Received: from hobgoblin.ariadne.com (localhost [127.0.0.1]) by hobgoblin.ariadne.com (8.16.1/8.16.1) with ESMTPS id 4AKGfHbi816527 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 20 Nov 2024 11:41:17 -0500
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.16.1/8.16.1/Submit) id 4AKGf7oT816513; Wed, 20 Nov 2024 11:41:07 -0500
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: Esko Dijk <esko.dijk@iotconsultancy.nl>
In-Reply-To: <DU0P190MB19781F35B67C617ADB9AD88BFD212@DU0P190MB1978.EURP190.PROD.OUTLOOK.COM> (esko.dijk@iotconsultancy.nl)
Sender: worley@ariadne.com
Date: Wed, 20 Nov 2024 11:40:33 -0500
Message-ID: <87jzcxeu4e.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4xfGUcC7qFL13/4HPBG2xBmnOc28GBcDoD/vYzO/s/374aeb14KanuMsjs5OYHLwuK3p5Ugsz8NI7ydIjESC80WCTpik1R12tEZZLtRs98jWkzTDc4uYHT OIUvfj7Iqz7nA9QQq4nznBkob4zqAdczR88DcxBSLRdc9OXgt0FDK0pWFfXmi4teEF40s7q+yN8oGKawpZIPDsmbPgYFeeJOHdADSuvBU1oIFwrgMW385SiA 9bKmeWx0MoUUADa97eM+D84Z6kzUCzzb9MjzMCwmKqXhcjQd/6LOXDE2O1Io9LmV
Message-ID-Hash: XHFADYSPRDNJZ3FZE4NSF7LLU6RY4IVW
X-Message-ID-Hash: XHFADYSPRDNJZ3FZE4NSF7LLU6RY4IVW
X-MailFrom: worley@alum.mit.edu
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-urn.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: urn@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [urn] Re: Registration request for urn:thread:
List-Id: "Discussion about Uniform Resource Names (URNs)." <urn.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/urn/DjwaOntGPat_3TSzZ2w3wMpP0wM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/urn>
List-Help: <mailto:urn-request@ietf.org?subject=help>
List-Owner: <mailto:urn-owner@ietf.org>
List-Post: <mailto:urn@ietf.org>
List-Subscribe: <mailto:urn-join@ietf.org>
List-Unsubscribe: <mailto:urn-leave@ietf.org>

Esko Dijk <esko.dijk@iotconsultancy.nl> writes:
> On the syntax specification: the ABNF was introduced here just as a
> guideline to people designing a new entry for the registry, and the
> maintainers to check proposed new entries against. It wasn't intended
> for implementing a generic parser that could decompose any urn:thread
> item. 

The requirement for registration is that there be a syntax
specification, so that one can say a URN does or does not conform to the
specification.  There's no rule that the syntax specification has to be
unambiguous as a grammar.

OTOH, syntax specifications are usually expected to be tools for
understanding the conceptual structure of the namespace.  So if the
grammar is ambiguous, it would be informative to the reader to add a
note explaining how parsing is expected to be done in practice.

Relative to that desideratum,

> Still, some form of parsing is of course needed and maybe future use
> cases will need more generic parsers. Normally (today) a parser would
> be looking for a specific URN only or a subset of URNs. E.g. all the
> urn:thread:dataset:* ones for an app that configures Thread datasets,
> or all the urn:thread:pc:* ones for an app that allows passcode entry
> by QR code.  If we would write/need a generic parser for all items, it
> would have the list of sub-namespaces (i.e. registry items)
> implemented inside it, so it could still distinguish between 
>
> 1) valid-syntax URN (using known sub-namespace), 
> 2) valid-syntax URN (but unknown sub-namespace), or 
> 3) invalid-syntax URN. 
>
> I don't see any need or use case for parsing the sub-namespace
> unambiguously from a given 'thread' URN for cases where the
> sub-namespace is *not* in the registry -- as the code doing this
> parsing would anyway not know how to handle these, it would all fall
> into bucket 2)! It doesn't matter for this case if the parser would
> parse part of the sn-content as an sn-label, or vice versa parse a
> part of the sn-content as an sn-label.

I will note that in practice, maintaining a generic parser that needs to
know the current registrations is difficult in practice.  OTOH as you
say, you don't expect any uses where one needs to parse an arbitrary
thread URN, and it's easy to have a parser that handles only a defined
and unchanging subset of the URNs based on specific knowledge of that
subset.

Here is one point you should consider:  if "a:b:c" is registered as a
sub-namespace, is there a rule that "a:b:c:d" must not be registered as
a sub-namespace?  That is, even if the parser knows the namespaces in
question, the registration as written does not ensure that the parser
can determine unambiguously where the namespace ends.  In particular,
"urn:thread:a:b:c:d" is ambiguous whether (1) the sub-namespace is
"a:b:c:d" and there is no sn-content, or (2) the sub-namespace is
"a:b:c" and the sn-content is "d".

That can be resolved by either constraining that no registered
sub-namespace can be an extension of another registered sub-namespace,
or by constraining that, for any registered sub-namespace, any further
registered sub-namespaces must be distinguishable from possible
sn-content in some way.

As I said earlier in this message, resolving this is not required for
namespace registration, but I strongly suggest that you settle on a
resolution and document it in the registration.  That will be for the
readers' benefit and also will help you avoid getting tangled in syntax
difficulties later.

Dale