Re: [core] [art] Artart last call review of draft-ietf-core-problem-details-05

"Martin J. Dürst" <duerst@it.aoyama.ac.jp> Wed, 29 June 2022 08:16 UTC

Return-Path: <duerst@it.aoyama.ac.jp>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 983D5C14CF0E; Wed, 29 Jun 2022 01:16:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.784
X-Spam-Level:
X-Spam-Status: No, score=-3.784 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, NICE_REPLY_A=-1.876, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=itaoyama.onmicrosoft.com
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 5wv4c25h-WYk; Wed, 29 Jun 2022 01:16:35 -0700 (PDT)
Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01on2130.outbound.protection.outlook.com [40.107.114.130]) (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 AAF95C14F72E; Wed, 29 Jun 2022 01:16:32 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NfqXUL4IEEsCEfxng9KeqJv1RYoNHg5nO49a4amypY8IR9y6sH8Qqjmd1o1Y04Tf+6q16aGWlXrwtJeZP+RQaYMht/4Y/qdaIClFFv92sxwY4aqhZA+I5u6+YSQr9Z98UpSNM1uCvufnh9feBt9zSnMo/gbhhgN5w+VmTfCIAnhdatQlgHptL4CEdyNOfjHGNWNpUV0cma5UcxSoRnvXkA89kjSwzu4K8K88sRh5obTDoDHwzqno99NhGffj9aHi7cisp2Ze5px/KZqzpvqMF4mzleZ4PBXRvxnMJSxIRjY/udAzvJIfJHMo4NqihHGrGG9e2NK8deT5dOlRJpOaFA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0jvIr3ykY8Hu7UgpGbkVHfihTb5G6D30V4tmJc6y9UI=; b=RvBqn1txxaVBDMZ/ljUXzEDGhbCaSQNPl9iN96lInUn4tR5ewnaQPjWbw3ZJMPsK8zK+u1vBM0c3jDcNWQ6adC2s8wS5ZZGnC+AiFdVHKsNRGXbIrlyCK/J3Ytu8mHIKQV7ugRym5HbnAIQXfZOELN3NwAo4aTPiNTVXsVOOI0EVeS6cUoAvTppmChM3MzPy09cLhfrLfSYKdOYtQQHQiJvt1HhtmHN2vQmBZu4tXSqvt1V+/V0iAo0i535Lpm/vd0rJ1mmBJJTVaSUOLCwR5lzhZrxTzwx3ncdVlhr/wd9vnpK3FvqhE7JmfJUUpdbPQGkKX9+9uau/t+4lcEhu6w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=it.aoyama.ac.jp; dmarc=pass action=none header.from=it.aoyama.ac.jp; dkim=pass header.d=it.aoyama.ac.jp; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=itaoyama.onmicrosoft.com; s=selector2-itaoyama-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0jvIr3ykY8Hu7UgpGbkVHfihTb5G6D30V4tmJc6y9UI=; b=qo49Dx2+dIEQ+yTHILs9oNK6dbxcPZlfmjw74RYgN+NIj3PdjFTeyD5u3CWsu7rogkM4OMtIVvYQcmw/LUfxHntEKtNzM6v0r5hAxkABgHqOdhc0Gg6suCXzAKGq+lW7KkOs9RjyqhM2l8W0S6XSOBQuTkoXDgDKb1fFAictCFE=
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=it.aoyama.ac.jp;
Received: from TYAPR01MB5689.jpnprd01.prod.outlook.com (2603:1096:404:8053::7) by OS3PR01MB8875.jpnprd01.prod.outlook.com (2603:1096:604:154::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.16; Wed, 29 Jun 2022 08:16:27 +0000
Received: from TYAPR01MB5689.jpnprd01.prod.outlook.com ([fe80::e587:9d9a:d780:ef39]) by TYAPR01MB5689.jpnprd01.prod.outlook.com ([fe80::e587:9d9a:d780:ef39%8]) with mapi id 15.20.5373.022; Wed, 29 Jun 2022 08:16:27 +0000
Message-ID: <e05dd15e-c66a-1a13-80f3-5b46bf9bab08@it.aoyama.ac.jp>
Date: Wed, 29 Jun 2022 17:16:25 +0900
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0
Content-Language: en-US
To: Carsten Bormann <cabo@tzi.org>
Cc: Harald Alvestrand <harald@alvestrand.no>, Applications and Real-Time Area Discussion <art@ietf.org>, Core WG mailing list <core@ietf.org>, draft-ietf-core-problem-details.all@ietf.org, last-call@ietf.org
References: <165511479760.19573.12671700576299137749@ietfa.amsl.com> <63D13796-758D-469B-AFA8-3050C9F87819@tzi.org> <dde9d36c-61e5-afcc-e15a-787c99d5fba9@it.aoyama.ac.jp> <0012F049-354A-4450-B923-857D24AB9459@tzi.org> <90b785ef-934b-da9d-7d89-7018bdebbb75@it.aoyama.ac.jp> <B96E980A-72E3-4678-B214-8464958845BB@tzi.org> <ff5f8ff1-67fc-eead-6b38-62c8d64ebf45@it.aoyama.ac.jp> <4207E390-270A-463B-A38A-063AD2436370@tzi.org>
From: "Martin J. Dürst" <duerst@it.aoyama.ac.jp>
Organization: Aoyama Gakuin University
In-Reply-To: <4207E390-270A-463B-A38A-063AD2436370@tzi.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: TYBP286CA0013.JPNP286.PROD.OUTLOOK.COM (2603:1096:404:ce::25) To TYAPR01MB5689.jpnprd01.prod.outlook.com (2603:1096:404:8053::7)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 3fef2d8a-d969-40d9-5df3-08da59a7a9b9
X-MS-TrafficTypeDiagnostic: OS3PR01MB8875:EE_
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: N5MHfYoKI/3Bdt2he/Z0gbDOE1QoUVu0t7Z8ZuKtaJRruDq86JGsg70QVxzd2RmS1AJ6iGsCU3OytZFiFihKrODhM6rFogV/nhaeJMlQwWKf5Rm4GQ0pEae8kcTK2BQBt7RekE2k9HnxIVYaVkZ7FQcEXYZOVX/xUQMbXJkfmJzJBGNssHkk1VPBKhbagnPz30wnfHNUlBI21MdBf6dWM8v/iQnUpomZuJCzGXmf4cZ+h0MNSqiTlGtu/tnNYRoeVszIAiOdBWx6mt2mdSHtYYkWVq+bhCMe2HaMNefC9QxCAbA7g7N2pY43+okfncEqzICvwgchowzKlFX8DxGk7h4DkpsrqHvFBm7xQ7XX/p2IWdw3hmQ7Dtk5WPahUiybvmbOij7kXP6/yP5qiMv5Sq+GAu2e0sX24UxOk4OfUBF/6k1KedCyeVmpLamNgAPw2re9LifjCCclcKSaYCt2bCP7T7Glka+E2UnrcBVBcD3M4q3sJOGttNNMcVA1pJk0iVJYoLmayfR8oXR/S5L/I/EADBfT1I4TjjLxnsZ3a4vYpXmGFiRDexotYlxYFbgbtRG5L9Dycp/9QHA4t7R+hOjmklXlxErF2xD/5J7ae9CUClsYyD+OBXwq+ZpTjYcam4APvC297VXOLYCkSXvMclMGRnuuBVHI0UX5SjOsikFIgEYennZputgPM19kyyb2omLmn79mkjf/1UIJEp2MCBfxN7I1J9POO8GUWC6++TRwSuKygOEAtZYItO9vigv6EmmM0OKrx7A6jKVouAZYZ+PPMccZMbvaOLzjURtp/z0rcdrW/WrE59qSMKA91s7f6dPL3EN8PV2A4DFock2+B+tGg6YHvp6M7lZ/0O7TVCpHrcP1ZSMW2BFV9D+v9i+tz0Tl4U7OLC8u7mnFKmHCBg==
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYAPR01MB5689.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(39850400004)(396003)(346002)(376002)(136003)(31686004)(38350700002)(26005)(36916002)(966005)(38100700002)(478600001)(4326008)(6486002)(54906003)(2906002)(83380400001)(8936002)(5660300002)(2616005)(8676002)(6916009)(31696002)(316002)(52116002)(53546011)(6506007)(41300700001)(66946007)(41320700001)(186003)(786003)(66476007)(6512007)(66556008)(86362001)(44894002)(43740500002)(45980500001); DIR:OUT; SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: LHwzGwdWg1hx4r+t9ZZuVBCPszXGLzi1tbOIjMMKeNFsFTL3lFqUviQH4CMGboJwdniwnTsSs3WwA8TxMnKa0bsY5gc7AzM+wCb4kJZOD6R8l2cTzocHclFnsIPH3bgAZqOpOd6oaXQusteM7/Giegd0W0jqZw0EkxWFEgpWAk0VpY1lIiu4SQlRHN0WGqQSJ+dl6fDUdhDTwKU1Aw1PkbxVNthAhZMrGZ41i5tfsqWZi1vDxNxUWQtS8UPnxOVzk4YZYu94W+wHaqFe7px96++OCLWpadPNRYeijjY/SnJfuqn3M3jIOtYYXDy68CQCBlm7L3ozUMMyi5LTLnhcmGfSEI7Fr9m21vNgdKKNylK6oESdiJKvfHUIS6uk39yETuDEtVIB9Z8H5cjZJ7Hv/nmN4swnez3s0vTYTQJyvs67V25CtzwY9L8VVxnvaL4ij/7RyMiAeXrDThqbyTn6IQQxT3Kzai/Rr+N/p70GBvsr4JOMcSmPK+9XAc9rGvzweMEzCjTj0x/wRPjSMOQMTDQr8sDqcvZg8AAGwLF8qYlngQiCiQ6hKhkTCB/UwvyFueV2vnK7/53gGDK+3KRoq2V0h5t9b4NJmySIvQyMWb47E/C7hIf2HPG+haC5n6fYKvUzJRZRMiGiW6qIAP0sY1y5dsBaSVHUD0DBOltVVFRfVKfVBIDcR3A1rSEtLBD/s3cikzzJV36Dz/RYMvXOf19eBnyJKSGe9Eyd0GPd6aI0uBYiZ8j5Dx8Z3BX1nG49wzQ0Bjovx79Q/zw/wiW2X+rRs0Ht/sPNcErOfIqgR62J1+tuQetEBXyqWmb7HyxX9ZPlJhFcgDtRweUqfqrtwPbHLvN3VfiC2tVElRKVELhvFmFFXTFYBXz+UqK3JrP2yU45JvlC0EwA/VQNPWoh2MxPZxWZV9geMfNYq98K40zWFQcQmpDJ1IuMwJOYANqGsYnno38NWocEZc9cpKoDkc49CCGhXzFGkUSvn7I4vb0sajlAn0jDnoJ2UzCH4OqhAT4Y1U5hSFIDs1LQq4cKMHCnRQMu75tRPTwRBECU377mnJpBp+PG0hkpc3cG6/LKAnN7ysAA6u14JJtVfVIrsuZfi1Mi+Mi/bVCEG+CsN+4fhKHfLI2HfsvbB0vdu4U/a5yHRAbk8EqOC8l4mTbPv5aN85HbXl4Ql55VgT3BhzZR4+PvfhddbDCfxOl+sDaJMJya0Otxc9sItJf1DwDoza6Oe3ffrenZJ8+bIRNk8A3Zwt8kFi8Hq3k3Q9QW+AY7+1rM5k9rdu202s5GiRsuXzMR35WN96dUY/51gvz9Lwik/oS2sTRfAbp3m7RWSRWd74xMy3Wndc3bLLV/nbXg1MraOxkiw4ROPr2GecMmbQk1ZJw9Oyi9c2mUMEeiqgFas6VS5NPGJT3uFde0s8WNIrUYF0Frmv2NT6qDhYHOEiiGnCPy4whcxxPhXJoicSL5P7Wf0TRD4PIwxDfkzPNXYGX7pwJB7KIp4VDfvGWNts0Y8D9vDbWB6wv0PDUzKHOa9iLkqRAIN/JXdXaYfPmZjcD3bol1PaihXLN+5mS5eMdEpM8wb3A9+VBuy/TEsD7m
X-OriginatorOrg: it.aoyama.ac.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: 3fef2d8a-d969-40d9-5df3-08da59a7a9b9
X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5689.jpnprd01.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2022 08:16:27.2004 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: e02030e7-4d45-463e-a968-0290e738c18e
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: YtXIDZCLInYVNfDfld/LK5V73P1XNcxr3HzxTL0VlFBf5NOSiNszsaZekEKAQ78XNbHfBUXkGy2tCnMQgfvVWQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB8875
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/Q__bmAclus5HWIp00yWPYR4gugE>
Subject: Re: [core] [art] Artart last call review of draft-ietf-core-problem-details-05
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 29 Jun 2022 08:16:39 -0000

Hello Carsten,

Sorry for the delay of my answer.

On 2022-06-28 18:51, Carsten Bormann wrote:
> Hi Martin,

>> This explanation helps in that it confirms that overall, there are three different values and one case of no value, resulting in four different choices. So we are in agreement about the 'facts'. (originally, it wasn't clear to me whether null and absent were two different choices, or one and the same).
>>
>> What we don't yet agree is how this is presented. You want to present it as three values and one separate case/choice of an absent value.
> 
> Yes, because choosing a value is very different from supplying one or not supplying one.

I still think that from an implementer's point, and from a user point, 
and from an information-theoretic point, it's four choices. That three 
of these choices take up one byte each, whereas the fourth choice takes 
up 0 bytes, is in my view a detail. But anyhow, I think the new text in 
-07 makes it much more difficult to be confused about whether there are 
three or four choices; the -06 made that very difficult because absence 
was mentioned before a null value, and both were together in the same 
sentence, separated only by a semicolon.

>> Thinking from the perspective of a user, I'd strongly prefer it if all four choices were listed in one single list (or table, or whatever). That way, it's immediately clear what the choices are, each with its meaning. For a user, the exact way of how a choice gets expressed (by a value, or by the absence of a value) is in my view secondary, and shouldn't be made the top-level branching point for the presentation of these four choices.
> 
> But the choice is only between the three values, as the presence/absense ultimately leads to one of the three values by inheritance.
> 
>>> Base-rtl and base-lang are specified to apply to unadorned (non-tag-38) strings.
>>> It is not defined in the current text whether an implementation would apply base-rtl to tag-38 strings with absent directionality.
>>
>> I think it's bad practice to leave things like this open. The only result it can produce is confusion, and nobody benefits from that. Why not just say that base-rtl and base-lang apply if language or direction are missing on a tag-38?
> 
> Because tag 38 operates independent from the enclosing problem-details document.
> It needs to be possible to implement tag 38 in its own library.
> If that happens to have a way to supply default parameters, these could be taken from base-rtl/-lang in the calling problem-details implementation.

There's really no point in going halfway in specifying bidi for problem 
details. What you want is that senders (e.g. servers sending a problem 
detail; ultimately programmers/translators that prepared the text(s) in 
that problem detail) have the confidence that the text(s) they prepared 
get displayed the way they intended so the reader on the client side 
will understand them without having to guess what was messed up.

An implementation of tag 38 "in its own library" will most probably come 
with a way to supply a default parameter; otherwise, the implementers 
haven't really read the spec.

Of course there will be implementations on constrained devices that 
completely ignore directionality because they are not intended for the 
Middle-Eastern market. They will not contain fonts for Arabic or Hebrew 
either, and that's just fine, but a separate consideration.


> […]
> 
>>>>
>>>> We should make sure that the text of the RFC to be encourages 3), not 1) or 2).
>>> To me, (3) is really “follow the flow”, which is just a short way of saying “the reader is advised to consult ongoing standardization activities”.
>>
>> There are no ongoing standardization activities on the bidi algorithm. If you say that a string of text is in RTL (or LTR) isolation, or in first strong isolation, what that means is defined by Unicode Standard Annex #9, which doesn't "flow" at all.
> 
> Indeed, that’s why we now reference Annex #9 in all three places.
> However, the reference to FSI is weaker, as this is just one “auto” algorithm, and the document leaves handling “auto” more open than “ltr” and “rtl” (which are now quite sharp based on your help).

I still don't understand this. What's the point of a standard if stuff 
is left open? What we want is that somebody who creates/translates the 
text of a problem detail is able to precisely express what their 
understanding/expectations with regards to directionality is. Just 
saying "something automatic may happen, and it may be equivalent to 
first strong isolation, or it may be something else" doesn't guarantee 
that, the only thing it guarantees is a mess.

I agree that there are other "auto" algorithms, but they are really, 
really not popular. The only "auto" algorithm that TR #9 uses is first 
strong (as already explained in detail in an earlier mail, see below). 
It's also the easiest to implement, in particular on constrained devices.


> […]
> 
>> But what's much more important here is that the solution is NOT to go read STRING-META, because STRING-META won't help. STRING-META shows different ways of how one could indicate directionality in different cases. You already made your choice, so STRING-META is no longer relevant. What counts is the Unicode Bidirectional Algorithm.
>>
>>> We left in a weaker reference (Readers interested in further details […] may want to consult […]) to STRING-META as that is still useful background material for further reading.
>>
>> This is still misleading, because readers of your document don't have much of a reason to read that document. The main reason may be to answer questions such as "why do we need such a directionality indicator", but if that's the case, your text should be more specific.
> 
> OK, I took out the “for further reading” paragraph.

Very good, thanks.

> As an implementer, I’d probably have benefitted from some background material that explains enough so it can take me off the knee-jerk “what the heck is this” reaction.
> But for people who already know a bit about this space, too much information may indeed be confusing.

If you want some background for implementers, which I think is a 
reasonable concern, then there are other documents better suited than 
STRING-META (which is mainly for spec writers).

A quick search on https://www.w3.org/International/ brought up e.g. the 
following:
https://www.w3.org/International/articles/strings-and-bidi/
https://www.w3.org/International/articles/lang-bidi-use-cases/
https://www.w3.org/International/articles/inline-bidi-markup/uba-basics
But there might be even better resources.

Regards,   Martin.

>>>> […]
>>>>
>>>>> Hence the informative reference.
>>>>>> […]
>>>>>> I'm not really sure yet about the 'absent' and 'null' entries, neither if they are really distinct nor whether the specification is good enough (we might want to specify FIRST STRONG ISOLATE semantics).
>>>>> We could, but I’m not sure that part of “auto” semantics is as stable as the rest.
>>>>
>>>> In TR #9, the auto semantics is as stable as the others. FSI (first strong isolate) was introduced in Unicode 6.3 together with the other isolates. And the "first strong" rule was already present from the start of the Bidi Algorithm and continues to be there until today for the overall paragraph direction (see https://www.unicode.org/reports/tr9/#P2). That also means that you get exactly these semantics if you just put every Tag 38 text on its own line (paragraph) e.g. in Win notepad. That also means that the average user of an RTL script is familiar with this behavior and what to do if it doesn't do the right thing.
>>> FSI is now explicitly mentioned as a choice that an internationalization library could take.
>>
>> This is progress. But the text currently says (copied directly from github):
>> - `null` indicates that that no indication is made about the direction
>>   ("auto"), enabling an internationalization library to make a
>>   decision such as treating the string as if enclosed in FSI ... PDI
>>   or equivalent, see {{-bidi}}.
>> This is still too vague. What about
>> - `null`: Indicates auto-detection of direction.
>>    The text is expected to be displayed with the base direction
>>    determined by the directionality of the first strong character
>>    if standalone, and isolated with first strong detection
>>    (as if enclosed in FSI ... PDI or equivalent, see {{-bidi}})
>>    in the context of a longer string or text.
> 
> I don’t think we want to make FSI the prescribed meaning of the third branch here, so I wouldn’t want to make this change.  I do like the term “auto-detection” though...
> 
> All the changes from this round in https://github.com/core-wg/core-problem-details/pull/42 — I’m expecting this to be the last round.
> 
> Grüße, Carsten