Re: [I18ndir] Writing direction

John C Klensin <john-ietf@jck.com> Mon, 16 May 2022 23:40 UTC

Return-Path: <john-ietf@jck.com>
X-Original-To: i18ndir@ietfa.amsl.com
Delivered-To: i18ndir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46951C079B3F for <i18ndir@ietfa.amsl.com>; Mon, 16 May 2022 16:40:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 uAKgmwoyYsbG for <i18ndir@ietfa.amsl.com>; Mon, 16 May 2022 16:40:46 -0700 (PDT)
Received: from bsa2.jck.com (ns.jck.com [70.88.254.51]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D5D4BC079B3C for <i18ndir@ietf.org>; Mon, 16 May 2022 16:40:45 -0700 (PDT)
Received: from [198.252.137.10] (helo=PSB) by bsa2.jck.com with esmtp (Exim 4.82 (FreeBSD)) (envelope-from <john-ietf@jck.com>) id 1nqkKS-000OI7-6k; Mon, 16 May 2022 19:40:44 -0400
Date: Mon, 16 May 2022 19:40:38 -0400
From: John C Klensin <john-ietf@jck.com>
To: Asmus Freytag <asmusf@ix.netcom.com>, i18ndir@ietf.org
Message-ID: <432996D42894CF2EA0A1B17C@PSB>
In-Reply-To: <d49001bf-057d-8eb5-a92c-fc37d96ab864@ix.netcom.com>
References: <4C4A249559BA1E86B17E53FE@PSB> <26ca6aba-eb4a-6bc6-af96-8c7db9b3631d@ix.netcom.com> <EDBC11DA94E825A663D89119@PSB> <d49001bf-057d-8eb5-a92c-fc37d96ab864@ix.netcom.com>
X-Mailer: Mulberry/4.0.8 (Win32)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
X-SA-Exim-Connect-IP: 198.252.137.10
X-SA-Exim-Mail-From: john-ietf@jck.com
X-SA-Exim-Scanned: No (on bsa2.jck.com); SAEximRunCond expanded to false
Archived-At: <https://mailarchive.ietf.org/arch/msg/i18ndir/_NXmf7CmFL4XYTJAnDzdmscP1G4>
Subject: Re: [I18ndir] Writing direction
X-BeenThere: i18ndir@ietf.org
X-Mailman-Version: 2.1.34
Precedence: list
List-Id: Internationalization Directorate <i18ndir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i18ndir>, <mailto:i18ndir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i18ndir/>
List-Post: <mailto:i18ndir@ietf.org>
List-Help: <mailto:i18ndir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i18ndir>, <mailto:i18ndir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 May 2022 23:40:48 -0000


--On Monday, May 16, 2022 14:17 -0700 Asmus Freytag
<asmusf@ix.netcom.com> wrote:

> On 5/16/2022 12:25 PM, John C Klensin wrote:
>> 
>> --On Monday, May 16, 2022 11:33 -0700 Asmus Freytag
>> <asmusf@ix.netcom.com>  wrote:
>> 
>>> John,
>>> 
>>> you are correct that any operation that's limited to the
>>> backing store does not need to know the directionality.
>>> 
>>> Anything you want to display, on the other hand, benefits
>>> from knowing the display direction.
>>> 
>>> A directionality tag on BCP47 would have the advantage that
>>> you don't need an extra field that's needed only some times.
>>> However, it opens the issue of what happens when a protocol
>>> uses the existing BCP47 *and* has a separate field for
>>> specifying directionality.
>> I actually think that is fairly straightforward although I
>> agree it should be spelled out.  Cases:
>> 
>> (i) Protocol exists, specifies directionality via some
>> separate field or markup.
>>      --> keeps doing what it has been doing since it will not
>> recognize the extension.

> OK
 
>> (ii) New protocol comes along and specifies directionality by
>> use of the extension.
>>      -->  Obviously (I hope) uses the extension field.

> OK -- that is: SHOULD use the extension field if data is
> displayed as part of the protocol or by some process that uses
> the protocol fields to figure out parameters for display.

If one were designing a new protocol and decided to use
directionality as an extension part of the language tag, why
would one want to encourage poking around through [other]
protocol fields or parameters to try to guess?  Or are you
saying that there might be circumstances in which a new protocol
might want to use other information just like the "existing"
protocols in (i)?  I'm not sure whether or why that should be
encouraged but don't see a good reason to try to ban it?

>> (iii) Older protocol, with directionality specified as in (i),
>> is revised.   Now it seems to me that those doing the revision
>> have three choices:
> Unless data is never displayed,...
>> (a) Stick with the status quo/old way to do
>> things,
> OK
>>   (b) deprecate the old method and specify use of the
>> tag extension, or
> OK (with your caveat)
>> (c) allow either and specify what happens if
>> both are provided and not consistent.  Absent plans about a
>> flag day or sufficient changes to really create two separate
>> protocols (the "old" and "new" ones) in the same general
>> space, I don't know of a practical way to do (b), but it is
>> logically possible.
> 
> OK: specifically, may designate one as "default" and the other
> as "override".

>From the standpoint of good protocol design, it seems to me a
bad idea to tell something to look in both sets of places and
then compare.  So this should be "look for X.  If a value is
found/ can be determined that way, believe it without even
figuring out whether other information might be available.  Iff
X is not present, look for Y."  Are we saying the same thing in
different words or do I not understand your suggestion?

> Consider HTML. An obvious choice would be to allow such an
> extension to set a default direction, so that directional
> markup becomes redundant (only required to override the
> default).

Ok.  I think that is what I said above (with "X" as the
extension) but I, personally and so far, believe the argument in
the last part of
https://www.w3.org/International/questions/qa-direction-from-language
against use of an extension with HTML (and CSS, SVG, XML,
etc.)... more or less because it would introduce confusion and
cause a _very_ long transition.  I see the extension model as
being far more interesting for new protocols that do not have
separate direction metadata.  

> That would seem to increase the chances that display is
> correct.

It actually doesn't.   If the two ways to specify things are
consistent with each other in a given document, then it doesn't
increase anything, merely wastes space and/or time.    If they
are not consistent, either one is almost always better than the
other (little or no improvement either), or the application has
to make an arbitrary choice between two specifications, one of
which is wrong.

That would turn into even more bad news if the markup metadata
allowed only "LTR" or "RTL" but the extension also allowed some
coding for "top to bottom" or "serpentine", perhaps in
combination with one of the first two and some fallback rules.

> Would have to address http vs. html specification of language
> ID, does a language ID w/o extension override a later ID that
> lacks an extension? Only if it's the same language would be my
> guess. Otherwise you'd end up defaulting to RTL when English
> is embedded in Arabic, but the English language tag doesn't
> carry direction.

Yes, I think so.  But, if anyone asked me for advice about HTTP
or HTML, it would be to pick (iii)(a), ignore the extension if
it appeared and the application noticed, and go merrily on one's
way.  The existing mechanisms work well and, at least as
important, are well understood and the size of the installed
base is such that trying to retrofit handling of a language tag
extension --especially if one needed to consider cases like the
above-- would almost certainly not be worth it.

best,
    john