Re: [urn] URI Scheme with Complex Equality Rules

worley@ariadne.com Sat, 27 August 2022 02:46 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 BD9BEC14CF00 for <urn@ietfa.amsl.com>; Fri, 26 Aug 2022 19:46:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.692
X-Spam-Level:
X-Spam-Status: No, score=-1.692 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=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 g016uF8Wv9l5 for <urn@ietfa.amsl.com>; Fri, 26 Aug 2022 19:46:21 -0700 (PDT)
Received: from resqmta-a1p-077721.sys.comcast.net (resqmta-a1p-077721.sys.comcast.net [96.103.146.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA1B2C14F720 for <urn@ietf.org>; Fri, 26 Aug 2022 19:46:20 -0700 (PDT)
Received: from resomta-a1p-077059.sys.comcast.net ([96.103.145.240]) by resqmta-a1p-077721.sys.comcast.net with ESMTP id RljPoCo6Vjfy9Rlo2oqP1W; Sat, 27 Aug 2022 02:44:18 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcastmailservice.net; s=20211018a; t=1661568258; bh=ViMLst3yB0BqZqUKlXJySqzRfpR0y5wsU83XmT4k7bs=; h=Received:Received:Received:Received:From:To:Subject:Date: Message-ID; b=mMTETl43rAZpo+bkbbbBpm3x4WweeRRTKolizIesqSU+d6fMLTvz7kcGZvBF0FqVc v7dRSx1oifZnOg5CHZI1Fl+dXfveccdqlg0gq7By9gPlH/rabWs9yW60EGupvrBNhh /L8eAGkPLvzOySWUTRgPf2zXhGCTi2NdSXLEH2bCmNrzw46il20LlaBzeLZJ54eY5r SXeJbv+tUZD++3FaWpEQA5jmzKIvyW/Td6AlOU/wIc9VsQE8u+ynHV0QYy+ragg+Dy ZQPcMogTZX71Rda1qVTwYDtacUayHxEfz68owfbNfL1EQJwGihQMAkcWdxB0qys5r0 l8bmUYLLPgdrA==
Received: from hobgoblin.ariadne.com ([IPv6:2601:192:4a00:430::a643]) by resomta-a1p-077059.sys.comcast.net with ESMTPA id RlnzomGJvXL7URlo1oBNa5; Sat, 27 Aug 2022 02:44:18 +0000
X-Xfinity-VMeta: sc=-100.00;st=legit
Received: from hobgoblin.ariadne.com (localhost [127.0.0.1]) by hobgoblin.ariadne.com (8.16.1/8.16.1) with ESMTPS id 27R2iFvF2820532 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 26 Aug 2022 22:44:15 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.16.1/8.16.1/Submit) id 27R2iFnU2820528; Fri, 26 Aug 2022 22:44:15 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: "Randy Armstrong (OPC)" <randy.armstrong@opcfoundation.org>
Cc: urn@ietf.org
In-Reply-To: <SJ0PR08MB8288507205BE2CD811F5D19BFA759@SJ0PR08MB8288.namprd08.prod.outlook.com> (randy.armstrong@opcfoundation.org)
Sender: worley@ariadne.com
Date: Fri, 26 Aug 2022 22:44:15 -0400
Message-ID: <87a67qtngg.fsf@hobgoblin.ariadne.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/urn/eW_uFrtL4DwvsnXzzh8jPQoh62Q>
Subject: Re: [urn] URI Scheme with Complex Equality Rules
X-BeenThere: urn@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Revisions to URN RFCs <urn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/urn>, <mailto:urn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/urn/>
List-Post: <mailto:urn@ietf.org>
List-Help: <mailto:urn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/urn>, <mailto:urn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Aug 2022 02:46:24 -0000

"Randy Armstrong (OPC)" <randy.armstrong@opcfoundation.org> writes:
> Specifically we need:

>   1.  Equality checks with case-insensitive string comparisons;
>   2.  Human readable strings with uniqueness provided by a DNS name or IP address (always lower case).
>   3.  A valid URI.
>   4.  R/Q/F components not allowed.
>
> We have been using urns of the form: urn:<dnsname>:<additional
> context>, however, this is not technically allowed by the URN RFC.
> We do not want a syntax that needs to be parsed before any comparison
> can be done.

One simple approach would be to adjust the URN form you are using to

   urn:example:<dnsname>:<additional context>

You could pick what you choose in place of "example"; I notice that the
namespace "opc" is available.

Given that it's a URN, the "urn" and "example" parts are required to be
case-insensitive, but your specification can define the equality rule
for the rest of it to be case-insensitive as well, but allow no other
variation.  Having done that, comparing two URNs of this scheme becomes
exact equality of the URNs as strings, except for being case-insensitive.

That seems to satisfy all your requirements with about the minimum
change to your current practice.  Indeed, you can implement
upward-compatibility between the previous and new usage by, whenever you
see it, changing "urn:<something-that-is-not-example>:<stuff>" into
"urn:example:<something-that-is-not-example>:<stuff>".

Dale