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

Carsten Bormann <cabo@tzi.org> Tue, 28 June 2022 09:52 UTC

Return-Path: <cabo@tzi.org>
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 A216AC15C7E6; Tue, 28 Jun 2022 02:52:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level:
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 GmT3KRvGYlfR; Tue, 28 Jun 2022 02:51:57 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [IPv6:2001:638:708:32::15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7F4BDC15C7E4; Tue, 28 Jun 2022 02:51:51 -0700 (PDT)
Received: from [192.168.217.118] (p5089ad4f.dip0.t-ipconnect.de [80.137.173.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4LXKcg38T4zDCjt; Tue, 28 Jun 2022 11:51:47 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <ff5f8ff1-67fc-eead-6b38-62c8d64ebf45@it.aoyama.ac.jp>
Date: Tue, 28 Jun 2022 11:51:47 +0200
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
X-Mao-Original-Outgoing-Id: 678102707.003819-bf8ac006689b0e0740d0d81bfba080a7
Content-Transfer-Encoding: quoted-printable
Message-Id: <4207E390-270A-463B-A38A-063AD2436370@tzi.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>
To: "\"Martin J. Dürst\"" <duerst@it.aoyama.ac.jp>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/T-FwcslbwfVvlvuBdOWXJrnOq24>
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: Tue, 28 Jun 2022 09:52:01 -0000

Hi Martin,

>> https://github.com/core-wg/core-problem-details/pull/41
> 
> This also looks mostly okay.

Thank you.

> By chance, I just noticed that you have
> keyword: CoAP, API, Problem Details
> Would it be possible to add any keywords related to language tagging and/or bidi?

Good point!
The RFC editor would have stubbed our noses on this, but good to do that now.
Added “CBOR Tag”, “Language Tag”, and “Bidi”.

> 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.

> 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.

[…]

>>> 
>>> 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).

[…]

> 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.
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.

> 
>>> […]
>>> 
>>>> 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