
From nobody Wed Sep  8 04:13:08 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D29433A24B3 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 04:12:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6ql4XHZs3Nmu for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 04:12:54 -0700 (PDT)
Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3205F3A24AE for <jsonpath@ietf.org>; Wed,  8 Sep 2021 04:12:54 -0700 (PDT)
Received: by mail-pf1-x42c.google.com with SMTP id f65so1735622pfb.10 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 04:12:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:from:date:message-id:subject:to; bh=cQrvXuPh2MlHGJTRnTRipMn+omEh0XoRoji0qgiqwSc=; b=PlpEgnpzf+yuxJAI0tX4i/1bi84MC/DPUjCUkJZ72PrNC/adpEj27/iL6rwBxkZky+ jwAx0TUdThtIJNkFb5ilW+4mQdtgF1s8/PO7ym5nfJ6ibEbMYR00sDyhNyEHFqypGJ7T So370yNH7IAb3hwqdz3i6Yms+hYPaOhdDO6Jxn9PPXz0Zis0DYb0DHNLzy6VQzccV9li R6wRQ8yDnIF7Aigg4yF8m+rll+5AEyCeAsZ8+qK2inZS8A8J0TnrLfXIBUT9f58gLJLV RLuonwSVzrynuGYFQLB7Sdn8UTiMY6jVNbzMn8sM9MUiQLrYTmOS6FuaPkx5uxUrftYz 6X1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=cQrvXuPh2MlHGJTRnTRipMn+omEh0XoRoji0qgiqwSc=; b=kb42ALEQ+lTCTRuxE5h73HwUJ7oXNUjHXvMS72dCfhNeH2ZNGVT/GBqOsB1AZJWjO5 3wxB+KmZaZaPR6qZ2sOj56AH5x8KaP/on6SdzPjmiGjTQHJcqp4BLJDgZbPfVb9pc2mO obb27IKBpiXD9p1KNV8yconIV7uLsqToA58K7eZOk5u3u91ewT79ojVQw8FWYo+Gx+ZT EtA69tcR1JxTkUM30sa/lhK5EOlzvyagoZDhMZ0ffgNy6TbViUEmCrNot6pl/bjWYAZi UZNAdAjhjRBB9B4ffSgtImHWwlAda2kcHD8loB/B25Xc3wDvJWDsZ3HSJNVPIcJgnxSs XNJQ==
X-Gm-Message-State: AOAM530hiAp5GOevvSpSjcw7ugZ9FNWalzvbllVcobbnh57RL48CsY6z VkQ4x9xEsYr5xuhp9+p9K0QtmpbSiN7ZZzpEU1rqBAHB
X-Google-Smtp-Source: ABdhPJwvosQl/Y3o5ApNjDBX5pteWM5i4ZXv6+D8ctMfazZWA2syZ+dyVH+0zmYIbnP4R/Imgl/UV96l86XStJ5xuPw=
X-Received: by 2002:a63:c10b:: with SMTP id w11mr3241162pgf.228.1631099572570;  Wed, 08 Sep 2021 04:12:52 -0700 (PDT)
MIME-Version: 1.0
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Wed, 8 Sep 2021 12:12:41 +0100
Message-ID: <CANH0GbKs6KV+C94y_u7EK7TQj7Vzq3QfMJdNvidYKp2h45Rpuw@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="0000000000009dcef605cb79f6b1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/VvDQ5TcxIGhTwDURgVCDx6VCGhE>
Subject: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 11:13:07 -0000

--0000000000009dcef605cb79f6b1
Content-Type: text/plain; charset="UTF-8"

The terms "truthy" and "falsy" are used in the current draft, but are not
defined. Please could someone provide a (pointer to a) good definition?

Regards,
Glyn

--0000000000009dcef605cb79f6b1
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">The terms &quot;truthy&quot; and &quot;falsy&quot; are us=
ed in the current draft, but are not defined. Please could someone provide =
a (pointer to a) good definition?<div dir=3D"auto"><br></div><div dir=3D"au=
to">Regards,</div><div dir=3D"auto">Glyn</div></div>

--0000000000009dcef605cb79f6b1--


From nobody Wed Sep  8 10:54:28 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 115003A15EB for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 10:54:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XgKox_ykNyqk for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 10:54:21 -0700 (PDT)
Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 770C43A2EFC for <jsonpath@ietf.org>; Wed,  8 Sep 2021 10:54:21 -0700 (PDT)
Received: by mail-pj1-x102e.google.com with SMTP id ot2-20020a17090b3b4200b0019127f8ed87so1686148pjb.1 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 10:54:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:from:date:message-id:subject:to; bh=mFyeM08zKC5hCaIBTQNT3cYfK2ZnqfkbJG9SoSMHfUk=; b=kX4GVrLVU1ZnlC9bTukXEksqMWUzyWd4nziPGnUVHTznYUfo8KEWoufazBKvKK2nWO oyGzufiUVZZy50PVwZG+g2ELaT2Dl89lU2qlDmUxi41xT4cJYpehvPT8kCBKcN1h0UoK GYBji7Z6gQajSN9u9YTCJ3z3NIKH+3dv1gas4IRod1TNeHEaj6Kr82JGoarlyYi9MLPq JJjRPxjSXuwSOdOZANMIBKc8Jz+hGMpGTtLwgmRJbhX+Z9nvQTTThGAsRO8LVg6HBVKf v1Sr0XWCoz99dM7gJ2iW/QtQXfHxFtrKzHsO6ptak472Ky9pMP1zmKgeGtZCfVE7vIwu zmdA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=mFyeM08zKC5hCaIBTQNT3cYfK2ZnqfkbJG9SoSMHfUk=; b=GD+CtYwYL6/4T6SOX57jlpIdjhurnIF84krXeFCJHVA+K5L+bZ+3oCGzGPCLEzcqBr P0Sr2NmzlyFVmD4ScTMNTbKAuVos1VCGzEIf0q8OKDD7Yd8fM3f1nXubUxUiPI5V4URo u0CQ1IQG7yAm3UOChpbn8PgrKGBClP8maAT051jFb4zY2BIfHXZ+S3THaPb7IwSTTlWR WdG1lJt1nuqiWHxNaD4fgproGLliNXx+I+drwnzzl8P8a0pl2f920vl0/YGPo947GT2O NHi3GD4wUT3lgGRGTQbqL7JRk7k1QK5/ewdTFmchtcJmZgG/k47H3uk+gNxVHURrbuAt 5VRw==
X-Gm-Message-State: AOAM532BbWQpOh1sSdaK3Ljgjr6okb+LpRoYZKBXdwK0TcK5qS1xBlPR 9+dzDNMt6a/x4g9ftYIrZDsnCRtgMm4slcRpb3y85okMj8k=
X-Google-Smtp-Source: ABdhPJxn/7JkoThp5+2npkyz9sHMjbraxTRFX9HCNYi33CxzPyq+SPQJGbm3DBNjn75aqQex3RPoh2r/VcWxDUTtdz4=
X-Received: by 2002:a17:902:c643:b0:138:b603:f940 with SMTP id s3-20020a170902c64300b00138b603f940mr4051789pls.71.1631123659972; Wed, 08 Sep 2021 10:54:19 -0700 (PDT)
MIME-Version: 1.0
From: Daniel P <danielaparker@gmail.com>
Date: Wed, 8 Sep 2021 13:54:07 -0400
Message-ID: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/8Qj8oUurtNn0YQcQizvWZgULRB8>
Subject: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 17:54:27 -0000

Glyn Normington wrote

> The terms "truthy" and "falsy" are used in the current draft, but are not
> defined. Please could someone provide a (pointer to a) good definition?

Perhaps this may be helpful?

https://craftinginterpreters.com/evaluating-expressions.html#truthiness-and-falsiness

Given that the conditions for being "falsey" are somewhat arbitrary,
and that most of them are represented in one implementation or
another, it may be useful to have an appendix that provides an
analysis of some of the differences between the main implementations,
and the rationale for the one settled on.

Daniel


From nobody Wed Sep  8 11:00:12 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B86263A310E for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:00:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jcAdLzF_OoSV for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:00:04 -0700 (PDT)
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4AAEC3A310C for <jsonpath@ietf.org>; Wed,  8 Sep 2021 11:00:04 -0700 (PDT)
Received: by mail-pl1-x62f.google.com with SMTP id j2so1819923pll.1 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 11:00:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LIw9opDjHfVaEII87LJJCFJy+93D1sLIoXqFGxx7nEY=; b=gX/ObR28Fx5cFZBFJW6k7HcbKZRNmpT41i2OP/AAq727GvBJjKwUuVzgyte5SXe/KD ghhY6RWtJwzQ+Cu42w9lCq9RLZPTLBlsOzUNNKZtP6gV+j5r8Nj7FjUy/Oz5VLuXQu3J CkemTnLxesQHLtZouhR+BEvMNfsTVcmxHrXleivmNG8M5NlIsk4BxHyYXFFhyN7/RP7k Fes6w6/v7nEWEItQBV7mGxul4jpS69566VE34ih4YoxVAxNGJqUV/RrQBkQpkJU+FXaa foWBiMUPXfeSpZFpuh8Y7QD1s/xKv4XoSVnPIN4jiQiLFSqne/QROKGQYBlmVIiIyGFX iUxw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LIw9opDjHfVaEII87LJJCFJy+93D1sLIoXqFGxx7nEY=; b=7uPLdbnWHJ7hPKlR4uA1S8uShCZupxbjYq8gFger4Zc4Kqct79ebiZtIbTRX341kgK Ix+cPvTfx7+KsphirMMIWFlM+jzI6ecd32POhisFBQ15gn308e/PopL+I/9/D1V80n3r rpmpn84n6WTCtPf/8I/6Rf6rfrSfkrdt+KnbJ7Dj0U+B6rXufK2xCra6vSrcF+VW4+jY iGG7kCbERJ8fivIn5OoZrGbEJ8zJ7GPyPdzSJGjsWyCM/a0tDvkw4UvQ3rTkRHJmhOzY TKaNKmvzVTJTyqHN2CPXT3KYeazOCre+VWV9Zu25s0xb5cJyobZYfDK19mycyJgJHQ1Q HZBQ==
X-Gm-Message-State: AOAM5321XJnDaO5EX+DU/ZcZjbzH1VMw9+KUNZK5oJQZLZcYWXfZ++DN 1GpedTAqYOqYx3b9q+SZlGAuTVuXgP4WkVrvuYG0IrVa
X-Google-Smtp-Source: ABdhPJwh2O2HkpWOpfnJqnjAzCmovqW19ZszU5bXrByRbnvcZiyo5lV/dWPeAv9w5clEaqWpeuVaYox/Ep1qa2f79ew=
X-Received: by 2002:a17:90b:11cc:: with SMTP id gv12mr5483092pjb.144.1631124002814;  Wed, 08 Sep 2021 11:00:02 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com>
In-Reply-To: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com>
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Wed, 8 Sep 2021 18:59:51 +0100
Message-ID: <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com>
To: Daniel P <danielaparker@gmail.com>
Cc: jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="000000000000c5be6f05cb7fa67d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/9sD24Aka0v50EvN8lH_8SCxKA_M>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 18:00:10 -0000

--000000000000c5be6f05cb7fa67d
Content-Type: text/plain; charset="UTF-8"

Thanks Daniel. That link explained the idea nicely. We also need to settle
on the specifics for JSONPath and document them.

On Wed, 8 Sep 2021, 18:54 Daniel P, <danielaparker@gmail.com> wrote:

> Glyn Normington wrote
>
> > The terms "truthy" and "falsy" are used in the current draft, but are not
> > defined. Please could someone provide a (pointer to a) good definition?
>
> Perhaps this may be helpful?
>
>
> https://craftinginterpreters.com/evaluating-expressions.html#truthiness-and-falsiness
>
> Given that the conditions for being "falsey" are somewhat arbitrary,
> and that most of them are represented in one implementation or
> another, it may be useful to have an appendix that provides an
> analysis of some of the differences between the main implementations,
> and the rationale for the one settled on.
>
> Daniel
>
> --
> Jsonpath mailing list
> Jsonpath@ietf.org
> https://www.ietf.org/mailman/listinfo/jsonpath
>

--000000000000c5be6f05cb7fa67d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"auto">Thanks Daniel. That link explained the idea nicely. We al=
so need to settle on the specifics for JSONPath and document them.</div><br=
><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, 8=
 Sep 2021, 18:54 Daniel P, &lt;<a href=3D"mailto:danielaparker@gmail.com">d=
anielaparker@gmail.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e=
x">Glyn Normington wrote<br>
<br>
&gt; The terms &quot;truthy&quot; and &quot;falsy&quot; are used in the cur=
rent draft, but are not<br>
&gt; defined. Please could someone provide a (pointer to a) good definition=
?<br>
<br>
Perhaps this may be helpful?<br>
<br>
<a href=3D"https://craftinginterpreters.com/evaluating-expressions.html#tru=
thiness-and-falsiness" rel=3D"noreferrer noreferrer" target=3D"_blank">http=
s://craftinginterpreters.com/evaluating-expressions.html#truthiness-and-fal=
siness</a><br>
<br>
Given that the conditions for being &quot;falsey&quot; are somewhat arbitra=
ry,<br>
and that most of them are represented in one implementation or<br>
another, it may be useful to have an appendix that provides an<br>
analysis of some of the differences between the main implementations,<br>
and the rationale for the one settled on.<br>
<br>
Daniel<br>
<br>
-- <br>
Jsonpath mailing list<br>
<a href=3D"mailto:Jsonpath@ietf.org" target=3D"_blank" rel=3D"noreferrer">J=
sonpath@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" rel=3D"noreferre=
r noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/jsonp=
ath</a><br>
</blockquote></div>

--000000000000c5be6f05cb7fa67d--


From nobody Wed Sep  8 11:16:31 2021
Return-Path: <cabo@tzi.org>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B2883A3181 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:16:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level: 
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lNNU_2qtp-io for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:16:26 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [134.102.50.15]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1CA593A3180 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 11:16:26 -0700 (PDT)
Received: from [192.168.217.118] (p548dcf6e.dip0.t-ipconnect.de [84.141.207.110]) (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 4H4Vh70jZ8z33Zv; Wed,  8 Sep 2021 20:16:23 +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: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com>
Date: Wed, 8 Sep 2021 20:16:22 +0200
Cc: jsonpath@ietf.org
X-Mao-Original-Outgoing-Id: 652817782.393067-1b7b73decc2130ee6a2bb0a2d8310718
Content-Transfer-Encoding: quoted-printable
Message-Id: <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com>
To: Daniel P <danielaparker@gmail.com>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/eksC1BgEpap6O9dxraBXyLG-Tw0>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 18:16:30 -0000

On 2021-09-08, at 19:54, Daniel P <danielaparker@gmail.com> wrote:
>=20
> Perhaps this may be helpful?
>=20
> =
https://craftinginterpreters.com/evaluating-expressions.html#truthiness-an=
d-falsiness

As this text states, the concept of falsy is of interest only if there =
are implicit conversions to Boolean.

What are the places where we want to have those implicit conversions?

Gr=C3=BC=C3=9Fe, Carsten


From nobody Wed Sep  8 11:19:38 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B05D83A317F for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:19:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wHNqUsd8Eoc3 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 11:19:32 -0700 (PDT)
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DFC473A3176 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 11:19:31 -0700 (PDT)
Received: by mail-wr1-x42c.google.com with SMTP id v10so4631313wrd.4 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 11:19:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WHRdpiiiTLeyUsHdEgZifUQ6l+5UgE9w+/UXzpcwpzE=; b=Sdsp3muDdnslN4ay287g/r2U4AycLX6vQazYzFbrPEFvALRVz9kzcGXbVULUHZ1nDP w1i2d8rWCQs4yGIIdBOjudKSTDfyYwhANEggWjGXN1aaohgOZN2AjlT7ZqKVmJeMKMmo TqcBcqDJzQPHULEKTlkB6gUXK61OGwUi8ljTm+OMDgq2CWEJBQAzBYL6v4r0FThl1HSE 4+TasyS2DTQLKWLziYGeYJBZ5aQuNrOpLCN8f4lCBIgXkIuNHqFw7v7y8ZzahQsR8gy6 s3J9REfOHosfZIA2I2Mfa0OLuiMSjqxD+ktIzHjO1m7D8Qw0EhW+6BNttqqTn74TzEP6 5h/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WHRdpiiiTLeyUsHdEgZifUQ6l+5UgE9w+/UXzpcwpzE=; b=L39eVeFpLk8hhS8foKYmfKfvhfcOfOJfr7hhYgH+pXCro8HpaV/L5q3uJ9Sdvq4MeE j7OvIClfE4dTvS0R7t8rG7Kbyx1V0vpaA3ssCkxH8ghE+4bgrIwDfr2Qu9gtUBip7Hl7 i1ZnemWSXShPS3inVtk10gZAuRyD59lXrhg+hRp0rTkEZfaLRQiJsKuFmkXqph34iLH6 IZ/sMEfh6g9mrKTFb4Sjlzf32inXQxFELrqKp0TTp6gzmb48dLDRrV5hEX5xKvf7N+EN eHqiLqHT5kvKh0jR6sH6WMmYGDzAfXe1ASt6FBRv+wrSsitxlKPilFdTW4i8FEIS/A0h Dc8g==
X-Gm-Message-State: AOAM531H7FVuA74qX09vN6i2n9Fe/mXf6iWZ9xMy2sN2Dr8jRjUfxR9f pnwBjxvIywRPT8+vcf0zhHbzxZV22X3tl6DdnFOxSICN23s=
X-Google-Smtp-Source: ABdhPJxXRe73mF5lCZHPhoC0wQ2jWCQyZHMTfm/OELjEOZ3kQLwYsIaAhcC7aNO9obwNngvLT+izh4R294y/KRvLe0c=
X-Received: by 2002:adf:dc8a:: with SMTP id r10mr5649985wrj.371.1631125169276;  Wed, 08 Sep 2021 11:19:29 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com>
In-Reply-To: <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com>
From: Daniel P <danielaparker@gmail.com>
Date: Wed, 8 Sep 2021 14:19:16 -0400
Message-ID: <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com>
To: Glyn Normington <glyn.normington.work@gmail.com>
Cc: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/JhDAFafjpvzhEpiVe7RNdvhhrnc>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 18:19:37 -0000

Glyn,

In the jsoncons implementations, I followed the JMESPath rule,
described in https://jmespath.org/specification.html#or-expressions.
Although I have to confess to being drawn to the simpler rule in Ruby
and Lua: where only false and null (nil) are considered false.

Daniel

On Wed, Sep 8, 2021 at 2:00 PM Glyn Normington
<glyn.normington.work@gmail.com> wrote:
>
> Thanks Daniel. That link explained the idea nicely. We also need to settle on the specifics for JSONPath and document them.
>
> On Wed, 8 Sep 2021, 18:54 Daniel P, <danielaparker@gmail.com> wrote:
>>
>> Glyn Normington wrote
>>
>> > The terms "truthy" and "falsy" are used in the current draft, but are not
>> > defined. Please could someone provide a (pointer to a) good definition?
>>
>> Perhaps this may be helpful?
>>
>> https://craftinginterpreters.com/evaluating-expressions.html#truthiness-and-falsiness
>>
>> Given that the conditions for being "falsey" are somewhat arbitrary,
>> and that most of them are represented in one implementation or
>> another, it may be useful to have an appendix that provides an
>> analysis of some of the differences between the main implementations,
>> and the rationale for the one settled on.
>>
>> Daniel
>>
>> --
>> Jsonpath mailing list
>> Jsonpath@ietf.org
>> https://www.ietf.org/mailman/listinfo/jsonpath


From nobody Wed Sep  8 12:42:05 2021
Return-Path: <gregsdennis@yahoo.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BBA13A34C1 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 12:41:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id je1TALy-eetw for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 12:41:50 -0700 (PDT)
Received: from sonic305-2.consmr.mail.bf2.yahoo.com (sonic305-2.consmr.mail.bf2.yahoo.com [74.6.133.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7DF9B3A34B5 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 12:41:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1631130109; bh=YGwYjY5gu3oEWGpdqgKHI/un2ki3ajtoonDNh2ScnHI=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=SguwIeQViP/7e+vNv5cwDxC1tPPEZt4wR1f04SY86aPqMribvPh8eumlT9HjLyZEL4vWEjvgdkrFAlRfTpeYuoHXEIFzFgKoi9UuX72ZV3fOvWKw7J6oWuy3hycnNk1Yj+jKVPiPp7TSVMjEHqisemyzRypgzaSUue7CsP+9OB+yymMEAd0hWPMaXVhWoot8z/5jrK7qdPmVPkq8Oh5jT57yLgiyZKFdkZ1SjKId8k9Pz+rJp/rJjGQ2hwjFf3p/1c6sKjP7fTWhhpGsEERYzLLtJvBeoIK28uIN7S2Tyd9NDfMdduYp5BMD3b71hI7e5sePfWMqGi0jTmaZIxutUg==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;  t=1631130109; bh=5UYEZLR7i8QCI4KKE0848L79rdHpWRmB+5sRSkTpAMt=;  h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=gdFl72dR9PYosSxqhxmCartqlhv/6PRqgnAEjJNWboOHWIOkngz+LdkDXQexJEfRk5P/zIDth9Mu02qhJ7Pfk9GHAl4hLNiwXqLV/nARgkoH1Mw4c7huV2bIzAeyQUJxWy7CN3JXIqitvmo0ETmXJ/5O9iB6Belyd/WcAJmXYdJeXTduThLUJLNw8XstSY2qz0zAysFNqcq0jpXQDjNKBtpIDKa3NlPV4sQrbAPHTdUoYbxdvuuVyKkjxuQABM86Nh9Kvq8AwH7M51f52bamvEkqvRRTxdIShaIE2Lz3eQjHdQNvmmeR04jFH552Ge5heJv4wXNRQxNgv8s8cCwnJw==
X-YMail-OSG: etKpyoQVM1kfl_GVVdzSZK5JIh.ngsNgqIcFnu8.RgEG1G5ghvK8LzPJUoX1IfN wIboWy4SGoCztQyd.Z_XCJxlNfVnBKj.fmtcc1EQXRR0EYcndMMNGVTq_6YaNe84eJDCsitpoLhJ 6YHdpcUZT2UKFAzj4yTbUxnwX86Ql_yoG82rBZPZME2yPE2knKT9JVwOV.VamGM6.BcN97FGMzK5 b0NKa_.l2Dv6zwCe_2vhq7dIwATaKgj0uRbd9stz6E.1r3LIX8_kOEUZVLhXLnMlc6CC978a3T7K .zeWTDR_FC0ObmmGSm9t_upFmhi37qWQzgXWxZ7vT1t7ZZngtwEEHQ5vzW5urZDUkhzQS5fTA46p xGqlkHWOeTJ.bDddDcE8ho3My8zfLzys1RLJe1m2Y3pAX15ujv8l629mRSJ9cQbUmnPBzXnzSP4z C_2C6BQpG6AUGLSEmKndE8h4nEHf6X1yeNHT2sUOjSQTxqxhnLI2b087xev5rCxuvuGej6LlEk_. XRJx4G4wJAgiZ5Vv7bMma4t3QChuJ5n4ee6_fV8_oGoLAmOx5FuGVTGFrW8Y8KNTm5KGKnrAFCCb g58TLwgOo8GjBtWrfPnZwxLASgdlvRZiXaHZSKHm14gpCkek6q1eWD_OCHEPaeEA01E6cdYc0.p_ z_0LATf3qIBPnXy.IXwskBEztVBuoGqD1yCuU51T8yVfNvUonRpeo5DWuT6sKYpGmPrCD5BriuLw 8np38r6Zdszlyztu.gPofsq6aaJXeUpE3YhuZE3jiNWzNlGzbNNGTm5pFEZRKhyRgcjf.B8fp5J9 ErfxMeVFxVDi120m4Jz5EBDRCCXHF3GBuHZBVazkbFiS.nUV7EbLlPCO0t.x2xpQ0ayKHmCHBZqW Xu_DXFXh6FCJbXW2PO.R63XlEgdYa1_7JkJ7PsWTP9QXwSbQBsj0UTuP4Pw9mnd9FBoqFgvY.YHi xNSUstjpulwgDZn98.YgrN3V1vXhGGLUT46kbRPyPIjj8M5c2L7X7FIC1KqZW1qRGNStE33PpFCC dGmVS5.Ny5ClmbT1xlKSKssH8uBy4PGyFLEcZyHAkCVswQVvviMPtesRqZJ.nuILmO_qsgEoOesJ qGJ8_IpzDX9y5W9q8KXY5w_9doAstsdLDbM6ZZPvx5hqxba9__tjc.Qt0W76UF_7D6vWnigp1kjU AQFxzPxlP1RqQGxdu5W2Xm2Hr664bW.xkJk8ys7BTsE7TwocCUEJfurJrf9vpWz80kiDxRgB5VIz rRKZJG.ofOulMbDCHBQ453..t11wb3xHBcYmsKi9jLLSVHyd4S6vjMu.uiL7C5rLJXbba2qTtxaV UhCDU7ByyQNTgizd_eFj0fUoTJvTKYmpWL4ptPiKw7ZXeNYJja4tL0_CQtaImoiCwVtf4KdAkbBB 2T01zw2YiYxLrNAyiOXEBxrZs41mlx.ykzbCU346fIqdrkB_0lEvmUPqsQ5mEf6_Ti.zKnd9xWX2 kshTCB9KSOTFNyWzIk1liPVwAsG1P_To8IB7H8ItOalDjuSs.XpB07Zv2bJLV.XGzWBdrn_VAn19 jPYLS.mMtYuyqUXAaE63q84rjv3WjEFS0ohlzUgzVzbRjKqru7.u_yBKql3ioUOevg6IDXtDJkeW ZJJZzvaXyaLUkSPNQ81PLH.qO4q4cfIZQvFxqRl8oD9qZZ2FsOLUNWpSOmWhH.En99wsIc7tJdJV Ea6bN4Ux0Y.SDcAi46JBNwopZCdn0wB1NzzRpaFehW6A_QxhxezOAOn56OJIZRxhwTDl5mCgFwOW gudA3D.CU8o96c8898UInX3KgKm53v9rwp0afS7ZL_Hmt9H59fxubwcuJzR5eWXesm70VZRR0tWm zwN30g3HUKX7MTweZkomI0zEN4OI053BOgWmgTzbYHyl4Bshp04t_slgRWAFU4kw7hrtgtZyMiVD tbki3fOGloLCzEYqiF_obk40IpG2SVvemRDMovsMy5rfdfn0o8zPeVrlCUFqt1g.8g08Bp5AvDPM Omh8pUg98Q.jorsYWLbRbVxUPskJWMCpLQuiOanmMySI_FrNe0mq.tyRZjM.Sn.MtgteL2_adCYg UC8SKfmsezQevNPvuJ2vzEEt_HpUscP2Jm26gGhfDMzddc_zDhIHpYewRRjwwVK8hKSCH5qNUfIj 0bbDA2zRhdpmQ4n3hQq_7EP4npf9LBHryHcKZaQW4.MpnrN0OPgH7Hk7BUcw8iAwH3xAnsSUplqc Ko7AOSCtp1Uer7JmzRRxTBpCHjd6tH.u1knPxpRkREr09DVMGznBFlJ5BJ4VgV6fF0LsjxTjVoXI XAqNja48lVLvzx2Lx4viF3cZqDRaSZarWq.JwKoL6irItJn4pRdrtRUuFvnZbY1J6jR9etpqC2wA 2xDfNBi7b0h6ImBWD97hBfx2am5aSneFoHLw4Tfof8Gh5YhdATk1y4Q55wOl_tYMOh0aw4m8-
X-Sonic-MF: <gregsdennis@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.bf2.yahoo.com with HTTP; Wed, 8 Sep 2021 19:41:49 +0000
Date: Wed, 8 Sep 2021 19:41:42 +0000 (UTC)
From: Greg Dennis <gregsdennis@yahoo.com>
Reply-To: Greg Dennis <gregsdennis@yahoo.com>
To: danielaparker@gmail.com, Glyn Normington <glyn.normington.work@gmail.com>
Cc: jsonpath@ietf.org
Message-ID: <2105266982.2221034.1631130103186@mail.yahoo.com>
In-Reply-To: <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;  boundary="----=_Part_2221033_1499318596.1631130103184"
X-Mailer: WebService/1.1.18924 YahooMailAndroidMobile
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/TjXHx_OWKcjRfP1Zkf1C1Wm6VWI>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 19:42:04 -0000

------=_Part_2221033_1499318596.1631130103184
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I want us to be careful about supporting truthiness.=C2=A0 I've already com=
mented on this several times (e.g. https://github.com/ietf-wg-jsonpath/draf=
t-ietf-jsonpath-base/issues/64#issuecomment-831755108) that it's difficult =
to support in strongly-typed languages.

Greg
=20
  On Thu, 9 Sep 2021 at 6:19 am, Daniel P<danielaparker@gmail.com> wrote:  =
 Glyn,

In the jsoncons implementations, I followed the JMESPath rule,
described in https://jmespath.org/specification.html#or-expressions.
Although I have to confess to being drawn to the simpler rule in Ruby
and Lua: where only false and null (nil) are considered false.

Daniel

On Wed, Sep 8, 2021 at 2:00 PM Glyn Normington
<glyn.normington.work@gmail.com> wrote:
>
> Thanks Daniel. That link explained the idea nicely. We also need to settl=
e on the specifics for JSONPath and document them.
>
> On Wed, 8 Sep 2021, 18:54 Daniel P, <danielaparker@gmail.com> wrote:
>>
>> Glyn Normington wrote
>>
>> > The terms "truthy" and "falsy" are used in the current draft, but are =
not
>> > defined. Please could someone provide a (pointer to a) good definition=
?
>>
>> Perhaps this may be helpful?
>>
>> https://craftinginterpreters.com/evaluating-expressions.html#truthiness-=
and-falsiness
>>
>> Given that the conditions for being "falsey" are somewhat arbitrary,
>> and that most of them are represented in one implementation or
>> another, it may be useful to have an appendix that provides an
>> analysis of some of the differences between the main implementations,
>> and the rationale for the one settled on.
>>
>> Daniel
>>
>> --
>> Jsonpath mailing list
>> Jsonpath@ietf.org
>> https://www.ietf.org/mailman/listinfo/jsonpath

--=20
Jsonpath mailing list
Jsonpath@ietf.org
https://www.ietf.org/mailman/listinfo/jsonpath
 =20

------=_Part_2221033_1499318596.1631130103184
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I want us to be careful about supporting truthiness.&nbsp; I've already com=
mented on this several times (e.g. https://github.com/ietf-wg-jsonpath/draf=
t-ietf-jsonpath-base/issues/64#issuecomment-831755108) that it's difficult =
to support in strongly-typed languages.<br id=3D"yMail_cursorElementTracker=
_1631129926061"><br>Greg<div id=3D"yMail_cursorElementTracker_1631130081578=
"><br> <blockquote style=3D"margin: 0 0 20px 0;"> <div style=3D"font-family=
:Roboto, sans-serif; color:#6D00F6;"> <div>On Thu, 9 Sep 2021 at 6:19 am, D=
aniel P</div><div>&lt;danielaparker@gmail.com&gt; wrote:</div> </div> <div =
style=3D"padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: 1px solid=
 #6D00F6;"> Glyn,<br clear=3D"none"><br clear=3D"none">In the jsoncons impl=
ementations, I followed the JMESPath rule,<br clear=3D"none">described in h=
ttps://jmespath.org/specification.html#or-expressions.<br clear=3D"none">Al=
though I have to confess to being drawn to the simpler rule in Ruby<br clea=
r=3D"none">and Lua: where only false and null (nil) are considered false.<b=
r clear=3D"none"><br clear=3D"none">Daniel<br clear=3D"none"><div class=3D"=
yqt7401423474" id=3D"yqtfd21948"><br clear=3D"none">On Wed, Sep 8, 2021 at =
2:00 PM Glyn Normington<br clear=3D"none">&lt;<a shape=3D"rect" ymailto=3D"=
mailto:glyn.normington.work@gmail.com" href=3D"mailto:glyn.normington.work@=
gmail.com">glyn.normington.work@gmail.com</a>&gt; wrote:<br clear=3D"none">=
&gt;<br clear=3D"none">&gt; Thanks Daniel. That link explained the idea nic=
ely. We also need to settle on the specifics for JSONPath and document them=
.<br clear=3D"none">&gt;<br clear=3D"none">&gt; On Wed, 8 Sep 2021, 18:54 D=
aniel P, &lt;<a shape=3D"rect" ymailto=3D"mailto:danielaparker@gmail.com" h=
ref=3D"mailto:danielaparker@gmail.com">danielaparker@gmail.com</a>&gt; wrot=
e:<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; Glyn Normington wr=
ote<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; &gt; The terms "t=
ruthy" and "falsy" are used in the current draft, but are not<br clear=3D"n=
one">&gt;&gt; &gt; defined. Please could someone provide a (pointer to a) g=
ood definition?<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; Perha=
ps this may be helpful?<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&g=
t; <a shape=3D"rect" href=3D"https://craftinginterpreters.com/evaluating-ex=
pressions.html#truthiness-and-falsiness" target=3D"_blank">https://crafting=
interpreters.com/evaluating-expressions.html#truthiness-and-falsiness</a><b=
r clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; Given that the conditi=
ons for being "falsey" are somewhat arbitrary,<br clear=3D"none">&gt;&gt; a=
nd that most of them are represented in one implementation or<br clear=3D"n=
one">&gt;&gt; another, it may be useful to have an appendix that provides a=
n<br clear=3D"none">&gt;&gt; analysis of some of the differences between th=
e main implementations,<br clear=3D"none">&gt;&gt; and the rationale for th=
e one settled on.<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; Dan=
iel<br clear=3D"none">&gt;&gt;<br clear=3D"none">&gt;&gt; --<br clear=3D"no=
ne">&gt;&gt; Jsonpath mailing list<br clear=3D"none">&gt;&gt; <a shape=3D"r=
ect" ymailto=3D"mailto:Jsonpath@ietf.org" href=3D"mailto:Jsonpath@ietf.org"=
>Jsonpath@ietf.org</a><br clear=3D"none">&gt;&gt; <a shape=3D"rect" href=3D=
"https://www.ietf.org/mailman/listinfo/jsonpath" target=3D"_blank">https://=
www.ietf.org/mailman/listinfo/jsonpath</a><br clear=3D"none"><br clear=3D"n=
one">-- <br clear=3D"none">Jsonpath mailing list<br clear=3D"none"><a shape=
=3D"rect" ymailto=3D"mailto:Jsonpath@ietf.org" href=3D"mailto:Jsonpath@ietf=
.org">Jsonpath@ietf.org</a><br clear=3D"none"><a shape=3D"rect" href=3D"htt=
ps://www.ietf.org/mailman/listinfo/jsonpath" target=3D"_blank">https://www.=
ietf.org/mailman/listinfo/jsonpath</a><br clear=3D"none"></div> </div> </bl=
ockquote></div>
------=_Part_2221033_1499318596.1631130103184--


From nobody Wed Sep  8 14:04:21 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34E373A3846 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 14:01:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id msHrSC7W4pEq for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 14:01:39 -0700 (PDT)
Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CBBA83A383F for <jsonpath@ietf.org>; Wed,  8 Sep 2021 14:01:38 -0700 (PDT)
Received: by mail-wr1-x434.google.com with SMTP id q11so5201682wrr.9 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 14:01:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=m3VffLsKnehEXv9pfAty84EwFfdvmn/Vew+NNqKAvnI=; b=iU9tWTCwk4iiqc65dSMGAzctvmUgx8kVd9hH2/1GoMZ6HsqGbxkad6IMwdpz7F+hj0 FGyHKDe0iSOvI8aJKWeeiziJquuRGdEH9BKMJ0fB3pj/muYsF60R7JN6kXLXigM0xTDL qexzn0rhZFz66JJH7bBt2/m6xrZVGQicMFbqaMB7BE06cFeGEFLPCfGponi15U+Bl/h9 tFwC4glnNF8rkEsRGcKOogliMucvNVnVVuss4oS+N6JnxYUSLLBgjqa4wU/l+V1raPH3 7qnfzoTRTTe+1p+d12SMuVd0P5EPhVa4VC0EYaMZaMOQ3ZmkikFpp2EL9gTkaxfjhqag +OUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=m3VffLsKnehEXv9pfAty84EwFfdvmn/Vew+NNqKAvnI=; b=TkSbb7gC2tGdxe+3s/KY007CIqbBU7wtTLtUgcwd5nv7WLwlEp5LnnUV/dtIORMJT5 RUt/E5FFLFrD7zmRwZdXDUxCiD66CE+eggd9B6pPUlbohTl0R2s2rOUdSXfvVAwkUBcJ jmpNFnaoKBYnDMqJOiPTNjCzjaJRRSwpDynfvb6TbwnaMAq8NXaQKDwE7OGvcBE6X0uu w3OPzBVvMBRiGD7mvHvRivI2rtfcCnCfqOH0ZIXEZ0Y3JibeIkpR/3hZb7FP9OA17p8R FvVVtp3BT/62bZsu6bFl/kbL8a+ooqTxVgqtSmkIKLpBp73MmmN3imVc9mKKheaTFLOB jQVQ==
X-Gm-Message-State: AOAM5321DM/X2J5vyiXXqFzdeHlEWMahoAhC38/8NTUiywa9EdrMfKz1 NA06urQevoivc3NqE4S842sR/CcrVbmPUfOjlaUshCp2
X-Google-Smtp-Source: ABdhPJzhWfh2BBdq7rdfTHh4pjuVlnesjNoNoJkQg4n+ZZ+gIAshVX0HTVRBpOVud97AZZ3DYvi1JGQStEqf/uRWZH8=
X-Received: by 2002:adf:e645:: with SMTP id b5mr297140wrn.34.1631134895091; Wed, 08 Sep 2021 14:01:35 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com> <2105266982.2221034.1631130103186@mail.yahoo.com>
In-Reply-To: <2105266982.2221034.1631130103186@mail.yahoo.com>
From: Daniel P <danielaparker@gmail.com>
Date: Wed, 8 Sep 2021 17:01:22 -0400
Message-ID: <CA+mwktJHBK2tTWYU6dibWGm06WPqKP_o-3NK2Y2WN5r8qTS8Mw@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/pXNFINfsfsWKOo2caQe210B_RuU>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 21:01:43 -0000

Dennis,

I don't understand your comment. In your cited comment, you comment on
the binary operators '=3D=3D' vs '=3D=3D=3D' in JS, and express a preferenc=
e for
the latter. But that's a separate issue from "supporting truthiness",
which is about evaluating a _single_ value as a boolean.

Daniel



On Wed, Sep 8, 2021 at 3:41 PM Greg Dennis <gregsdennis@yahoo.com> wrote:
>
> I want us to be careful about supporting truthiness.  I've already commen=
ted on this several times (e.g. https://github.com/ietf-wg-jsonpath/draft-i=
etf-jsonpath-base/issues/64#issuecomment-831755108) that it's difficult to =
support in strongly-typed languages.
>


From nobody Wed Sep  8 14:30:20 2021
Return-Path: <gregsdennis@yahoo.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D8E753A07B3 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 14:30:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QIxlgMUsZ2nS for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 14:30:13 -0700 (PDT)
Received: from sonic309-14.consmr.mail.bf2.yahoo.com (sonic309-14.consmr.mail.bf2.yahoo.com [74.6.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 424023A07B0 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 14:30:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1631136611; bh=mWBYF0jxGG3smMbbFvCQNrUFqDnmHlo+rg1MGqRvbiQ=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject:Reply-To;  b=Bi7hqBWAUFxipOeNUOsxZH95eV8e7NDcOBswMkUocV0VcbrKMk4wkv6gb6w8bp3DEK3VaNdAev3p5tH12KGl2KgYBEJJ3kILBAGBiXPgD2z2noeewwxIrUSzTAp4YCobgvX18wOM76e5bNqkmEqN6jhg1ERCIRGEWDQ0ye+4nTs+GgkVENtQU2UnKtCqnhlGtOhj941Y7yLTKV8/vkt0RDhqutmy58E3BL8KTzlZtTrIFMuXpZBURyoWsBYdOgz5InjZc4OBgUTng86gH8dBWwQZfO0GDrTl7dSRG4hybQE9Y+p0SDo5w1tkK917PXy7u0yJ91QBq7g1NDnCI/Fz8Q==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;  t=1631136611; bh=CzIlN/SG9479GxgdvlYZ7WxwFX+rJJcyL1YeJqxd7ok=;  h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=IEys26H4+q3AWOgEmLLP5dSTUdYFBB/Nz5/d3vnha0R7ojxuBB2uK/7RLxlzUwlscVOyh/1dlsApj857KNNFQWqdgDPrL/ijkK2RTjUcOcY/+2eQpHCYd7+H4f6zHUxx/B3qUmLm8z6lWWyb6loo/QgDacPNJwnnMTt3DcetTD4UWcu0cxHze1Zuo2IOq37mk5MI+I5vtPzpkDgXHUvE7fiH0Hq1Qrqboil4LUsAr2Q1ceBcbfGSr1EKfyZrCjKfz6z548p8fdHs/cUIsIXLLq5LX6UDMWCbaNKfO5ddRVDlr+fOI6/gspLuYAWuBHgIrZnXsVh37dvxt36FD8Vtfg==
X-YMail-OSG: fIj.NKIVM1k1P3tqw_i7nCMfyU4.UWAQLMR02ATopwqU7jmUYaXPFTVfiU8HPWi 8MY5yvfesB.vf3r.YsLqVYULnN_HiABThO8EBvrxO9uPBhU3WNK7Bgkxvxid5nODxxvgo507gI2D QffN.WDkUhlo7jKutw7ZgMIxFFq_E0EDzNV7AoJWGVhRedTOCQlabdRn6yd7mH4UE05T1y16N76j ._6WJcKLwDZqKuN_NA40C8AwYQmtthutyS1DDzWvklnhaY_OwnOfJO7a7oBLCJCeAYcErzFqxms0 siCZZ67.RnsdVm5MbwKXcDC8HBRt13RLhk1CE73cRpvT_5W4m3ziLvl5AaAPjwvyqsUr44ljlC21 H99Gi1sA4ZXb5pf7D6_96upb0RaL0WlYe9S30mkGGwCuApbUvLsa8vxvqfWgZICaNbWDVttH44Qz uKZGEKou67jwI5.J7d7DxoF5yUyxVe7MBs3d86X1pwy6FmcGdx2WpXEYmUpeiyz3fzzY6dYjLYp2 cpABdGIQnf8xnFf2vgMeLEEeGSCBWAtD0a.DhABc_SZT7_sk6BxBZIMhEkOth202MrLQnaISE41n vUu95Z4Fl_PO4RmZpzEXXDwvYDlnDftO8p0rEmoNJb8wR.ahbm7qCZ7C_qf8jiZSq0UTlE1__vcm 9qeLlnDCGVlsGKW0RCxOj.MuYC5pHdffzTmzK72IOxV6rjcaqTjx.Xny3BA0E7wKs3m5zeIy9oqa RlPvNWUwAEARx6xy7BH3bfLRthsKzPAxyIiZIyBghcP8Jz8aFTaHJtKWJm0ZcAuFfg4fEpQaAv50 GnDBYnrm6u41WF27Ph3b55rJIjG2f_xjW.rPwAmRBINjCxDomnYSddC5ctGcdVRQggcEf..0Zmq8 xyq6ySOWuBTtjJLdpeiL1LjPA_C4C.3ZrpZgL2T88lsDZtGgOvb_mjOJDcOm0rnsae2qzWxtDk48 K61Yc8K1ZotGScxdL2NSFwVrb.iqpLFCxnReTHWnlY6OlXEUseMI60DmVgqTImcGpbiZi.mCrodE 0BjjXrxoXk0RE7iJqQ04uoC.Zdkx8s1m6zy4cSM7Y2_V1Jbsk4g.Tmr2zGyIY9feHhT4uVKXi9oh 0r7H.2gSAJcEYhNRfoTmFuoPgLe0bzLw8DEyXARiBIFsjXg5ItJ.4zgMHyXXj2gzKTkuDf_VIyMg mv68WwG9usF1Awl64Sc.KE.eYlSwwd8pBSEmt3gWCgSr6MWmAUBcplwleikiQtRNXsWc0gY1xeHi kLivJdqF_zil_wMPAdIj0TQYSpx09XIf1nyXtvQJnldJSOtQztT7ri1jPSFHZEXEQ1e_f9vTXF2h _3ddPDu5ywE5FGly6pwLXwncuQniwKkyqREJRy7fYezp0.l1qK2beNkaZ.fmKItpLSLE.aKgiJOv in..hH7NTSYT9EW023Q2b01tv7vnrx5H0mU.n9_GcwyP0nEhHzb9.bgp4TQZpbK2cFa_rhooTGW4 T1wznzZpMn_48M_Uw42.D9uYyEz0i2geVDnbzvKkcngQWgqcFEl64Po_CEaCBTyI3L89Pvj6ve_n 6o2Ra71I164xWnfAcuR8SspgQwB0uSbu7yP57B4PEZCZlIJRqwHNA5qZ.J6s0j.u6L5RqMl3ql0m 3wRzu6vub.SwLSUoSR_M8bqp_FPxk9v25K8XWQBoWctRvmQWX25qjGDH3KaxlPmTVskBp82QzLkO 6hJ2t3p9y_J7rl028RmQUjyTuY0sq7Qkb3gYmStITCekPEuxd2GWcp22oxQnzx_8AJ9kWSvlrzQ. _46x_cUliq8sWTpfr7KlTz4zQ4rtmpGjwh0XL0prYglf25f5JCvgZPqeoG.ByBMr6gIL8o9P5lTU RWpLNFk5ff3S7l3lNnTGsZtAn0_0uuTK7DBUbP8Hnng2OnhDamCwBVRmC66r5Tknfu2OJztsawU_ S1xGwR4DGzK1_sgh41SaGdfi5k_gzgY8ccH4VXdiDfvZHA4p_rzt9gwUSPqwiQ21pc3GDC1nHXIP KGnutXbu5NZ9HjSeWu_QwGKYOvTSNgBvT0.MlCJ_mdgvfsrAQiukvYlSvFJUTycrN_qEHDLYEF7t nsVqYGcH4j1jQVWvVWXYKWwA10zf628RVMnzSgHL2wDZWY2vGs_JYuqBl_SduKvlITPerTNGrSo8 vS3PNN1yde._d3bovwkspO2o30lFr.K0lxVemdpHisakvzYrU3y2yo1MXCFYApbEfFRg4J6oGT2u KpgiQIpjuALCRPfEf02GPrr5vZ_TKzBnkzLw3hQvKMOChg_HT3K4yDHqSHyT.FYN4NQc0nF16s4a .9z3lSK2jI4m4FeCB5Yzr45FW4n12R4dT_0ybtrjc8BkcspitjsfD0wFDnqQd2XAwnhH.BtjaRmd y1sM0sb1OE5t8cLQqQkJXqTbP1iJ6fRBIZNLlNmyd0y9CBTpGWRTbX2aelA--
X-Sonic-MF: <gregsdennis@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.bf2.yahoo.com with HTTP; Wed, 8 Sep 2021 21:30:11 +0000
Date: Wed, 8 Sep 2021 21:29:27 +0000 (UTC)
From: Greg Dennis <gregsdennis@yahoo.com>
Reply-To: Greg Dennis <gregsdennis@yahoo.com>
To: jsonpath@ietf.org
Message-ID: <1031627769.2245629.1631136567046@mail.yahoo.com>
In-Reply-To: <CA+mwktJHBK2tTWYU6dibWGm06WPqKP_o-3NK2Y2WN5r8qTS8Mw@mail.gmail.com>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com> <2105266982.2221034.1631130103186@mail.yahoo.com> <CA+mwktJHBK2tTWYU6dibWGm06WPqKP_o-3NK2Y2WN5r8qTS8Mw@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;  boundary="----=_Part_2245628_1647422163.1631136567045"
X-Mailer: WebService/1.1.18924 YahooMailAndroidMobile
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/MPxHn0aMHA-Xo5bCvm-2BR_g1fQ>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 21:30:18 -0000

------=_Part_2245628_1647422163.1631136567045
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

It's all the same in strong languages.=C2=A0 Casting of any kind is difficu=
lt.
Greg
=20
=20
  On Thu, 9 Sep 2021 at 9:01 am, Daniel P<danielaparker@gmail.com> wrote:  =
 Dennis,

I don't understand your comment. In your cited comment, you comment on
the binary operators '=3D=3D' vs '=3D=3D=3D' in JS, and express a preferenc=
e for
the latter. But that's a separate issue from "supporting truthiness",
which is about evaluating a _single_ value as a boolean.

Daniel



On Wed, Sep 8, 2021 at 3:41 PM Greg Dennis <gregsdennis@yahoo.com> wrote:
>
> I want us to be careful about supporting truthiness.=C2=A0 I've already c=
ommented on this several times (e.g. https://github.com/ietf-wg-jsonpath/dr=
aft-ietf-jsonpath-base/issues/64#issuecomment-831755108) that it's difficul=
t to support in strongly-typed languages.
>

--=20
Jsonpath mailing list
Jsonpath@ietf.org
https://www.ietf.org/mailman/listinfo/jsonpath
 =20

------=_Part_2245628_1647422163.1631136567045
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

It's all the same in strong languages.&nbsp; Casting of any kind is difficu=
lt.<div id=3D"yMail_cursorElementTracker_1631136558759"><br></div><div id=
=3D"yMail_cursorElementTracker_1631136558905">Greg<br id=3D"yMail_cursorEle=
mentTracker_1631136490016"> <br> <blockquote style=3D"margin: 0 0 20px 0;">=
 <div style=3D"font-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Thu=
, 9 Sep 2021 at 9:01 am, Daniel P</div><div>&lt;danielaparker@gmail.com&gt;=
 wrote:</div> </div> <div style=3D"padding: 10px 0 0 20px; margin: 10px 0 0=
 0; border-left: 1px solid #6D00F6;"> Dennis,<br clear=3D"none"><br clear=
=3D"none">I don't understand your comment. In your cited comment, you comme=
nt on<br clear=3D"none">the binary operators '=3D=3D' vs '=3D=3D=3D' in JS,=
 and express a preference for<br clear=3D"none">the latter. But that's a se=
parate issue from "supporting truthiness",<br clear=3D"none">which is about=
 evaluating a _single_ value as a boolean.<br clear=3D"none"><br clear=3D"n=
one">Daniel<br clear=3D"none"><br clear=3D"none"><br clear=3D"none"><div cl=
ass=3D"yqt3478574522" id=3D"yqtfd58369"><br clear=3D"none">On Wed, Sep 8, 2=
021 at 3:41 PM Greg Dennis &lt;<a shape=3D"rect" ymailto=3D"mailto:gregsden=
nis@yahoo.com" href=3D"mailto:gregsdennis@yahoo.com">gregsdennis@yahoo.com<=
/a>&gt; wrote:<br clear=3D"none">&gt;<br clear=3D"none">&gt; I want us to b=
e careful about supporting truthiness.&nbsp; I've already commented on this=
 several times (e.g. <a shape=3D"rect" href=3D"https://github.com/ietf-wg-j=
sonpath/draft-ietf-jsonpath-base/issues/64#issuecomment-831755108" target=
=3D"_blank">https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base/is=
sues/64#issuecomment-831755108</a>) that it's difficult to support in stron=
gly-typed languages.<br clear=3D"none">&gt;<br clear=3D"none"><br clear=3D"=
none">-- <br clear=3D"none">Jsonpath mailing list<br clear=3D"none"><a shap=
e=3D"rect" ymailto=3D"mailto:Jsonpath@ietf.org" href=3D"mailto:Jsonpath@iet=
f.org">Jsonpath@ietf.org</a><br clear=3D"none"><a shape=3D"rect" href=3D"ht=
tps://www.ietf.org/mailman/listinfo/jsonpath" target=3D"_blank">https://www=
.ietf.org/mailman/listinfo/jsonpath</a><br clear=3D"none"></div> </div> </b=
lockquote></div>
------=_Part_2245628_1647422163.1631136567045--


From nobody Wed Sep  8 16:14:04 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B6A03A1187 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 16:14:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RyCgyX9uJP_V for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 16:13:59 -0700 (PDT)
Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 630FD3A118C for <jsonpath@ietf.org>; Wed,  8 Sep 2021 16:13:59 -0700 (PDT)
Received: by mail-wm1-x32a.google.com with SMTP id l7-20020a1c2507000000b002e6be5d86b3so38505wml.3 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 16:13:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ry4Etow0GjmyyyjoiIdsNGFpqlw/F15+cZMzLEVuJAc=; b=IILkkZtQEzpg410F5uWN0XCOaepEJ2BhjYGpLVxQKzN6e3x7nwB9CACXTqXvMfouUd aG6AW6xeMJcQNqfUJmKW/TE2t7hcTO2ilfnZwqcErrHcNjUucJcxoQ7pLDog0LbVn7M9 +ufMx0/+rZ75cztLbViQllxX83S0XQiiA2+lZzLQI1yL1GMUZmgrn4Smw0ZgSxUDmHF7 3yqNUvWA2Mr1ews4SiOfrXR0GKLfWovKOV15xmRoVqDvZPTMP7wsqto1pMROZfhc7hYN 64LODE6i6YrYdUOUFJbS9IafP3uJHXusjk52uW8T8918rdKKVSp2W798jbXIxXNQvMUS s6dg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ry4Etow0GjmyyyjoiIdsNGFpqlw/F15+cZMzLEVuJAc=; b=R/g4AZ9qe0RAnLCgbbF/4ABLdu5hkWohsmRjg8+/+OUmqWKG+FMMKtjm67JOMhOmxw eprCXivl7wEzIsNeGquchL4kJ0RGYStQJcoNQfDaLR0UdzXgFglK6ast7YZHzfU8T2DS 1y0bH3x58e11gYdted9dtJ3LHPZr9mg51VKQLphu/+tAmwhyqZfFQBs1F/Hvg/A9Edfo edYwGI0/SXxwmR8bnGPwXtsF5RzSeUfVumY+rcuJmiZW8xYJN0A8GV8mIGh+OMGItpAY Cl1nTXVkrzR15VViS8nME4pYoCodmR5gx9UP+/JmOJECCZdzTSZeaXAEIyYvArYwZ+zL NfnA==
X-Gm-Message-State: AOAM532pxLYTFhbImrvxzE5ZsqcmFN9KYmSIQqBylfmQMsYBiaT5Ocud Liim12GtpCLISFQiRNzO+aCkyy+uHPKgbKjP68xY924W
X-Google-Smtp-Source: ABdhPJwCsuNynGpvBRcr/SgDofY9obEVU9KyzGihROEwltoWRExOAN3AYRbc95QT66AmA0hRZxrFmrtRXeE3vwWq4dw=
X-Received: by 2002:a05:600c:a08:: with SMTP id z8mr5849086wmp.165.1631142835944;  Wed, 08 Sep 2021 16:13:55 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com> <2105266982.2221034.1631130103186@mail.yahoo.com>
In-Reply-To: <2105266982.2221034.1631130103186@mail.yahoo.com>
From: Daniel P <danielaparker@gmail.com>
Date: Wed, 8 Sep 2021 19:13:43 -0400
Message-ID: <CA+mwktKViVMyMNO9xok8=+M2SFOo=a5ijLCxEzg50dHQjo9hqA@mail.gmail.com>
To: Greg Dennis <gregsdennis@yahoo.com>
Cc: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/5KF4AmYaSul0av3q6GTVJGUpAWQ>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Sep 2021 23:14:02 -0000

Greg Dennis <gregsdennis@yahoo.com> wrote:
>

>It's all the same in strong languages.  Casting of any kind is difficult.

Casting? What casting? And what is all "the same"?

Determining whether a single value is truthy or falsey doesn't entail casting or
conversion of any kind. It simply involves noting the value's type,
and comparing
that against a checklist.

Daniel

 >  On Thu, 9 Sep 2021 at 9:01 am, Daniel P<danielaparker@gmail.com>
wrote:   Dennis,

>>I don't understand your comment. In your cited comment, you comment on
>>the binary operators '==' vs '===' in JS, and express a preference for
>>the latter. But that's a separate issue from "supporting truthiness",
>>which is about evaluating a _single_ value as a boolean.


From nobody Wed Sep  8 17:21:39 2021
Return-Path: <gregsdennis@yahoo.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1CD943A0A00 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 17:21:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0Es3jMCgY9gM for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 17:21:36 -0700 (PDT)
Received: from sonic305-3.consmr.mail.bf2.yahoo.com (sonic305-3.consmr.mail.bf2.yahoo.com [74.6.133.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B62C3A09FF for <jsonpath@ietf.org>; Wed,  8 Sep 2021 17:21:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1631146894; bh=eXfmVzKREqYTC+ycamCuD/8APW8XVIlg7KGsAqL50y8=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=Zt8H/FiJTBrWhYfhQKhRPhwoc0YpOxLNMHKSm7U71P3v24Z6RMJxg2+9bTQtClfmpn5CZZRwbxVWwS4g7BGSA6iXNo6KYlzVPMf01xKgOihELayiln9JvKoO2F6N7WL72+bIJ0KGejwNSHeiurqkEybt0YLwuto14VrsJq+MKcG/bNSUTdVkappKIDLkZcktC+HFSRvXi3+MGuPnpGcYZDy8SmXHjl7yVmAmBSWSwzZZtBxbVDGlnQtYAB6SOWCo/nssFww27UIJamSy8YVFEeZU80YKY3Ezk3zQ2+YS5IBDbY6M3OF6GmQbHZtUGjM6zywApA0Ky+1yL19mpmX3GQ==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;  t=1631146894; bh=PmLbtva/zhcODsL0DxQEMa9RESIYZqdQzYu50ILxsqj=;  h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=Wf00U6DSBFGQn/KtD8eFqyDINdW0BwXxve6Z/QTtzsVVtfPvSfO5oefg0V19ufDzL5E7JlcMRqFuLFlF6jf22S9ehfHXImV4103FHDK2100Q9mI4c1LScBFfLrT3DIeIKBMRLj7uf3R528ua5okYEphIH9W9tF294/C5xYS1YyziZ0sW2Lu0mOxl3VkIx55AxJae0yUu6wQmFoiWS5jK11FKk259sNicmuQBuCJPW4CAdLgLKs9ZeW2PC/bLfLhUdupnR2OQ+idOmJJVEWTkeWIbaEL62CH1bhfbW0VB/g4jY9japf+YfBWNNIjGDIR+wiWGZdf+Y7ZmT9EvNv/K3Q==
X-YMail-OSG: 6Z.RvCsVM1lY0CADOzNG3fbqhFXt271diU5oOx_Lw2HWTZ3FGw5HjPyBkztPPH. Cmn2tTYuPZ5Oe64vsM6VFKKVT0cMw4zFAggIu2gbEl4FHUObqvbRjGt2p4x1DBvyqTY8GX_fwzik n8O4NwwJt_IMHiQosI6rp1wYEEyXBmHFAu4cCBVYh1lO648jpb0KxZYk7eD7atm.58__hMuoozsf MMGWfi7RZVMKz0tc75MqGlTMM4T37SwV0wiJjZUL.Xmx9rtkEzhQh3w1mEXN6FHaRrmHyHl96BBo n7kEIy7UrGHlwHdok6WlAg23kfeeY1e3kylIf1kOUf4_Q.kKwxxrtolSx9KCrQ.cqm3Gs6w_ne3c U5MdlpUNRbFyQXwDY3ysRW9OQvgQ12dZWa0iw5xDsGkr8q9Onk8YKulgoF1IF5C2a1iUkqQxnRdP LTtM11ntl9i_eiDmmbiE3f86w1_lGdxuBg4p_Y73dTPtITI8wpLm.6oOBKx2ApqfGb21Nd.eBRAK FfSvDJtr1m47MS_1z2pzUFL1Wuedi03ZOkQiIfghjrbgdGlIUXt0ag9t0mr1Y8HgFJSa1.rKEFpr MaZKe4.nO2j5ewSAOyiQxqYN365otD1nvJqP1U_vh1zev2KXYeGLkFvc_3kV8_wfyfsSDau8v9Dm h104_uNEv_tT4w196Zrsi40D8kgH.K1GfofuSZb9rrW_UeEqVHgKdLZAgxZK3U5enn7T9D_hCAVf 91FiJorp462OZ2pRn0ORMKRsAvaAAsYx3ezoOAR1Jpo_xGoXNfPWFZehyPiIMPmxrf0dDNUtnEX4 LIqf_0F48Go8aJfKzhn4bvHsMyqUGPcCuOZXzfrV482LS7J.taKNVDBGQZJLjLCJu_brQpYQQD0V Yeclz6aIMAlqec99L9UvMXF7FZdNg4k44JP6Z1B7zxd9z6OSBBTfuiXRng9RfYGpTNOdCez3dmkz S3fIlh_S.0vARW0co43E6di4j1tsNto7tiJQcW45aI_s8zv5adA2SmgS7cHZS6qvJuY33UEacIC1 fJ0S9luXOtQ5Mzse6aNj_wcWehIkCCpuTl.kwkk1jdBI1ycUUW2Pb6e5Myr7az.9N.JMUpGpDEZ0 q6uKiAehJOi_nTUzN7vK9dsSL5_0e3.QLhlDWJ6Phcd7G8z9DVdDdWsRLHN8pRFF2a47dLGbJZfb 2PLXOQ8_YG7o.LA7HVjaY63MzUkQyTJSJPGU3Gzv_ulolTkQaa.x0ztgLvgPGB.09lE7jzX0T8ra YwDJfHXfEj3qc7zuwh0tSmO8_6nl4ZM27PEEOgCW9xFEePdVOjoaJKqxWj7kGN8_BsUNNE_KeHT1 FQjvXt0K9zrhsv6VQDjYL4Z5NX7XwV6vxOWdTOB.BuVTPQV.37F0Is82gsCBpFQvzGU4TPTlwq2x 7hkziw6cW5_YPlbW8mAmRj9Jx3UvPW05Q8mU3bfZvIE4PJt1vE7qiMt7PJ4DzYcisx_YgOHvJ.eB XoGc.5iNlrdlK7PmADDX7YOX2nGys74BiSPPsuYIFi45WD1fcxdfA1Tm5v.Z6GIIh9wSbOXnR79t y7A3fq8xsJctRQGCE2k2.MeG9dH5KjSQ4CnW.HTgKBUGMmWfEWN8PGBjRXaTvnPbjNkrtSb9F07H 2mL1GTNsOy5C3yv7x2I6uXrbYn2BtFb6rlR3q7yEabbyOxJDtpkkFFEK3N8XSrILBIcs025Mip_U gHgp2Jg7KBHJU8Eb_ENrT45wlaDZ10OZSvWaqZesOE0ma4or2qPa7ycyNfClvwsbBmLiOpLhL_FI zqzgM6yddo3jeo9l.Eeh44EB6kdg5EQqInA7Xnhy_AdnJH.tcB1sxCZnCjPC3ckF5njvUqUXjrTa k7.gDhAwOuLqc4nccBP1OcSSFOrnIPlhlLThNJjO8rDi3Fd93EuHsxqhoGzgC8evDAfkp6.TDXWU ueKb3kNCUspz.n02JQm0b_9agpfDK24SKJUJvb4b876A8G6efUcmsLTRvb197K2IEoBSneS2iHOu 55m.U.5nyB1qXMXd07Pku8ubXBaTuJxdMTD.lGeGEo2CpqhDQhQRCRIdbKA6fmu5kg65bTgKImtQ pHTtN8zNNLMmaLmeGu3DLMvVmSXFC._3GlX8zeZnikeWNjud44pAueZKHPho2DzWnU2g5VdwhLg5 jyIFd9RlYjKVmPoxAWMBrlWbaZ.IcioFUI_MsdUvTGfxQUc2O8v6gAPFoLjesWMIHVXfzE54vzuG k8srHglhjN3gYQApiOx5YDC3NczfLz_SK4YfkwblTMhSpco22tmUG5qFy3C3XXkHNX9Wau4IYtF5 E462FmjF66fdob2hwopasQZLhMxI4JkTu6AXwVOt5eQOXwE.uYW23SJHoSAv482OsF6e0X5ogBIX lh9ZNIvxXwZ.0Toy5k2GRMrQ0T0PjV3t17NqI9CaSiO7NrNeFxwxDwZ0Gknsj0YYw_xaJuIiF.g- -
X-Sonic-MF: <gregsdennis@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic305.consmr.mail.bf2.yahoo.com with HTTP; Thu, 9 Sep 2021 00:21:34 +0000
Date: Thu, 9 Sep 2021 00:21:26 +0000 (UTC)
From: Greg Dennis <gregsdennis@yahoo.com>
Reply-To: Greg Dennis <gregsdennis@yahoo.com>
To: danielaparker@gmail.com
Cc: jsonpath@ietf.org
Message-ID: <1153761015.1270056.1631146886722@mail.yahoo.com>
In-Reply-To: <CA+mwktKViVMyMNO9xok8=+M2SFOo=a5ijLCxEzg50dHQjo9hqA@mail.gmail.com>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com> <2105266982.2221034.1631130103186@mail.yahoo.com> <CA+mwktKViVMyMNO9xok8=+M2SFOo=a5ijLCxEzg50dHQjo9hqA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;  boundary="----=_Part_1270055_249806851.1631146886720"
X-Mailer: WebService/1.1.18924 YahooMailAndroidMobile
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/lVBNBBFtED2eHgudQ7p5URZnF8I>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 00:21:38 -0000

------=_Part_1270055_249806851.1631146886720
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

It's converting an arbitrary value to a boolean.=C2=A0 This isn't trivial i=
n strongly-types languages like c# (and other .net languages).
Greg
=20
=20
  On Thu, 9 Sep 2021 at 11:13 am, Daniel P<danielaparker@gmail.com> wrote: =
  Greg Dennis <gregsdennis@yahoo.com> wrote:
>

>It's all the same in strong languages.=C2=A0 Casting of any kind is diffic=
ult.

Casting? What casting? And what is all "the same"?

Determining whether a single value is truthy or falsey doesn't entail casti=
ng or
conversion of any kind. It simply involves noting the value's type,
and comparing
that against a checklist.

Daniel

 >=C2=A0 On Thu, 9 Sep 2021 at 9:01 am, Daniel P<danielaparker@gmail.com>
wrote:=C2=A0 Dennis,

>>I don't understand your comment. In your cited comment, you comment on
>>the binary operators '=3D=3D' vs '=3D=3D=3D' in JS, and express a prefere=
nce for
>>the latter. But that's a separate issue from "supporting truthiness",
>>which is about evaluating a _single_ value as a boolean.
 =20

------=_Part_1270055_249806851.1631146886720
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

It's converting an arbitrary value to a boolean.&nbsp; This isn't trivial i=
n strongly-types languages like c# (and other .net languages).<div id=3D"yM=
ail_cursorElementTracker_1631146878271"><br></div><div id=3D"yMail_cursorEl=
ementTracker_1631146878425">Greg<br id=3D"yMail_cursorElementTracker_163114=
6804545"> <br> <blockquote style=3D"margin: 0 0 20px 0;"> <div style=3D"fon=
t-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Thu, 9 Sep 2021 at 11=
:13 am, Daniel P</div><div>&lt;danielaparker@gmail.com&gt; wrote:</div> </d=
iv> <div style=3D"padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: =
1px solid #6D00F6;"> Greg Dennis &lt;<a shape=3D"rect" ymailto=3D"mailto:gr=
egsdennis@yahoo.com" href=3D"mailto:gregsdennis@yahoo.com">gregsdennis@yaho=
o.com</a>&gt; wrote:<br clear=3D"none">&gt;<br clear=3D"none"><br clear=3D"=
none">&gt;It's all the same in strong languages.&nbsp; Casting of any kind =
is difficult.<br clear=3D"none"><br clear=3D"none">Casting? What casting? A=
nd what is all "the same"?<br clear=3D"none"><br clear=3D"none">Determining=
 whether a single value is truthy or falsey doesn't entail casting or<br cl=
ear=3D"none">conversion of any kind. It simply involves noting the value's =
type,<br clear=3D"none">and comparing<br clear=3D"none">that against a chec=
klist.<br clear=3D"none"><br clear=3D"none">Daniel<br clear=3D"none"><br cl=
ear=3D"none"> &gt;&nbsp; On Thu, 9 Sep 2021 at 9:01 am, Daniel P&lt;<a shap=
e=3D"rect" ymailto=3D"mailto:danielaparker@gmail.com" href=3D"mailto:daniel=
aparker@gmail.com">danielaparker@gmail.com</a>&gt;<br clear=3D"none">wrote:=
&nbsp;  Dennis,<br clear=3D"none"><br clear=3D"none">&gt;&gt;I don't unders=
tand your comment. In your cited comment, you comment on<br clear=3D"none">=
&gt;&gt;the binary operators '=3D=3D' vs '=3D=3D=3D' in JS, and express a p=
reference for<br clear=3D"none">&gt;&gt;the latter. But that's a separate i=
ssue from "supporting truthiness",<br clear=3D"none">&gt;&gt;which is about=
 evaluating a _single_ value as a boolean.<div class=3D"yqt9227895920" id=
=3D"yqtfd30831"><br clear=3D"none"></div> </div> </blockquote></div>
------=_Part_1270055_249806851.1631146886720--


From nobody Wed Sep  8 17:48:10 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83AFA3A0C02 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 17:48:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level: 
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L5Qe2HRaSjGB for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 17:48:07 -0700 (PDT)
Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 02C313A0BFF for <jsonpath@ietf.org>; Wed,  8 Sep 2021 17:48:06 -0700 (PDT)
Received: by mail-wm1-x32b.google.com with SMTP id g74so100319wmg.5 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 17:48:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ghSz1TT05kCz5nRFqxow33Q6SC1e59rcj4IN0eKRO80=; b=MFsTSV9MRqz6wkyODo7RZbTCiniSn0QgcyDyqpc4ymV/5qIJhwYNcIo99vV2lflkyW dzJtGxf/UAQ6iS3LI9jN1V5xG+WDyhrdj52j2zYQaEH6jtgvZVBfttjWhCdqvP31K41H xjvWPSHYfDWIEayGgZ6TTk4lInBBTZleRMAOHeiPxJ/7hwW3dtO6XP5kwZ9XbGEb/kh0 54ju0wZZaFtVc61dlek97NrTYBN+CLvi0trco86Xfn1WtulDdLuEXsXkFJkIe1Mztnhc UqLlwJurMoRPu47Ywv69OVY4vOp3QPB+tkAX6sxVURODb68WiJ7JKubdFwSw5M5joCUn ak6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ghSz1TT05kCz5nRFqxow33Q6SC1e59rcj4IN0eKRO80=; b=bmmz9rdsUZBpyFtCdMBVvW/bXkn5NZIlewwCxBVM0gz/UPpLh0+u/XxZpWmZfkoKqh EZzOqGuJom0igPd2BnnRQKZASZ61xaO1LBKmbgTAVBarVnQfbUN7GoYwiiA4TLTy0KGw K1Oczikfxgki52qTxhhQlXa8lyq3DGdyJEJ6eWSs6fQo7NQMJKQF4Z0yJ3ptmcGGVabx MdzK+ARpmeAxRFK2+fMzXJ2OczLu2w9Qkpv9KNZ+DXfngCUjzSfMJB8qOL0L0DE3s1RQ /xdvsZuijSzKNdILlk3hMEVuQ1MrTpFyUVl1Sh8GAdXAUP5RmuEbhsQ7gaADYlt0zEPs qRIQ==
X-Gm-Message-State: AOAM531XdbIcZwbMiqHIlAroCOtTn79GBYE/dAuKMirVXgCADXDjj3ey BZvS6zZ/Ss4epAI3yF7Vy+mPNV0dAXlJyboeNMbamFEpqFw=
X-Google-Smtp-Source: ABdhPJy1kFW0ZoY5+6JalFtF38FQtB2c5udcZOqGZKi5VYVRjKIDa16RALEeSi1C7xe2RmwKS78gLzwdXpq0/csygmA=
X-Received: by 2002:a1c:3584:: with SMTP id c126mr143248wma.121.1631148484496;  Wed, 08 Sep 2021 17:48:04 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <CANH0GbK2_kkvH9Qf5c8AmdV=pXrC626Dq03wP+Z0WdHjLb2FWg@mail.gmail.com> <CA+mwktJh1QF=57cVjJuU6KXemMYmV5naFfGk+xx7O-ba-wNn+g@mail.gmail.com> <2105266982.2221034.1631130103186@mail.yahoo.com> <CA+mwktKViVMyMNO9xok8=+M2SFOo=a5ijLCxEzg50dHQjo9hqA@mail.gmail.com> <1153761015.1270056.1631146886722@mail.yahoo.com>
In-Reply-To: <1153761015.1270056.1631146886722@mail.yahoo.com>
From: Daniel P <danielaparker@gmail.com>
Date: Wed, 8 Sep 2021 20:47:51 -0400
Message-ID: <CA+mwktKOp+rx4MADPA+t1mRs5EHsi6GbsKr1zfEhhcJN90ar7Q@mail.gmail.com>
To: Greg Dennis <gregsdennis@yahoo.com>
Cc: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/wc5IQxtUlfGdtNpu4xj4Ns7Xbhw>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 00:48:09 -0000

Well, the ruby/lua test for truthiness is surely trivial:

 boolean isTruthy(Object object)
{
    if (object == null) return false;
    if (object instanceof Boolean) return (boolean)object;
    return true;
  }

And as for the more complicated tests, you have to be able to
associate the value with
a JSON type anyway - number, string, object, array, true, false, null
- whether you're
dealing with a JsonElement type, or a Dictionary or List or Decimal or
struct Foo or whatever
type. If you can make that association, you can perform those tests.

Daniel

On Wed, Sep 8, 2021 at 8:21 PM Greg Dennis <gregsdennis@yahoo.com> wrote:
>
> It's converting an arbitrary value to a boolean.  This isn't trivial in strongly-types languages like c# (and other .net languages).
>
> Greg
>
> On Thu, 9 Sep 2021 at 11:13 am, Daniel P
> <danielaparker@gmail.com> wrote:
> Greg Dennis <gregsdennis@yahoo.com> wrote:
> >
>
> >It's all the same in strong languages.  Casting of any kind is difficult.
>
> Casting? What casting? And what is all "the same"?
>
> Determining whether a single value is truthy or falsey doesn't entail casting or
> conversion of any kind. It simply involves noting the value's type,
> and comparing
> that against a checklist.
>
> Daniel
>
> >  On Thu, 9 Sep 2021 at 9:01 am, Daniel P<danielaparker@gmail.com>
> wrote:  Dennis,
>
> >>I don't understand your comment. In your cited comment, you comment on
> >>the binary operators '==' vs '===' in JS, and express a preference for
> >>the latter. But that's a separate issue from "supporting truthiness",
> >>which is about evaluating a _single_ value as a boolean.
>


From nobody Wed Sep  8 20:18:38 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9AE473A1752 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 20:18:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bMtbW5mDBDwg for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 20:18:32 -0700 (PDT)
Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 168E93A1751 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 20:18:32 -0700 (PDT)
Received: by mail-pj1-x1031.google.com with SMTP id c6so396721pjv.1 for <jsonpath@ietf.org>; Wed, 08 Sep 2021 20:18:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=cTCi/Vp2pkCUbz1yVql6MQfvgrCQPRmTi5KaNiIp1K4=; b=Xd30gS1hOHo7jk8TI4ziqOVAfvvYQE31/vyQmuMmV/mzYvNeWhTHzf+IAqTE6WEdlz wBZimBGeUPokGNelgxFrznL2Q6J6a1+60wFdiXFptiqOw48Nv+q1ffHdtZIt5pNxYi/d U9/jV98Fx7I2CNsX/oOqb+grrycLvW+Fb8HSyr3MhUidh0Dlqmt3nTM5zXBCbeO933ol SaA/RkrRM1+IFvdTc8JoLxhGRRbnsYpQuSA8tN/icXhf0IWz9bCrQL0ILBuupeOI0YrN yuW+BW6UH+YhUxou0uB+UN7XieqqEKVR149xrgxA4VeaPLpwo4pMyO503hL9MZiYkM8l ASWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=cTCi/Vp2pkCUbz1yVql6MQfvgrCQPRmTi5KaNiIp1K4=; b=KT8LMMJ8YcuFuPU/y49n6NW2DTdLcuHJjASnv9GbbD4vaPDE1QIDFjRur3E5A7YOvR wnbiNHkZcQJsQXX0RBVGd830jTJs58jfQ10u4pEYY5Fbqqs3YWQm1V8XA6VCvEz8wQux ksjYUaZhjRMftTixz1Rtnm5Gl2jgqVsZuvsH8ebVFgbYed2zNO/UbhNd2EJZlGUBRqdT z0Y7WAlKDAJstd/Nf/jzCu0/H8SBc8L+rEs8VFE+GXm/T9VkD21Fi+fzx+ujDWGTNW3H eUo2kXF9ftx1vUNnboigD0pu4p9UG3CG9hfs7J+sLJMw2nuxGmb3ZyOEp5Lfd7wxpPN0 g8fA==
X-Gm-Message-State: AOAM53141JbJlxwsL/PXb6hnRK82AqZAMAhUIdj3WcxvVHZYGBXah4S+ K867MhuMeV4QUOovh5JNPhz2iTcV10uArcpg3PM=
X-Google-Smtp-Source: ABdhPJzar8Q3nX1/FIuaUbw2nEXouRV5bNN9xcE4ZwzLC8jLH5uutwopjQUCAOa4did8ryL/fu5STmzi5twG3789ZSg=
X-Received: by 2002:a17:902:f703:b029:12c:982:c9ae with SMTP id h3-20020a170902f703b029012c0982c9aemr895900plo.20.1631157510539; Wed, 08 Sep 2021 20:18:30 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org>
In-Reply-To: <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org>
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Thu, 9 Sep 2021 04:18:19 +0100
Message-ID: <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Daniel P <danielaparker@gmail.com>, jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="000000000000fd0b1105cb877317"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/9ov-o16H5uPxKUCAC60mwrvqdak>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 03:18:37 -0000

--000000000000fd0b1105cb877317
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 8 Sept 2021 at 19:16, Carsten Bormann <cabo@tzi.org> wrote:

> On 2021-09-08, at 19:54, Daniel P <danielaparker@gmail.com> wrote:
> >
> > Perhaps this may be helpful?
> >
> >
> https://craftinginterpreters.com/evaluating-expressions.html#truthiness-a=
nd-falsiness
>
> As this text states, the concept of falsy is of interest only if there ar=
e
> implicit conversions to Boolean.
>
> What are the places where we want to have those implicit conversions?
>

Good question. Expressions like @.foo and $.foo test for the presence of
the key foo in an object (and are false for non-objects), so that leaves
array accesses (e.g. @[0]) and values such as @, $, and JSON literals such
as numbers, strings, booleans, and null.

There is no consensus for @ (
https://cburgmer.github.io/json-path-comparison/results/filter_expression_w=
ith_current_object.html),
booleans (
https://cburgmer.github.io/json-path-comparison/results/filter_expression_w=
ith_value_true.html,
https://cburgmer.github.io/json-path-comparison/results/filter_expression_w=
ith_value_false.html),
or null (
https://cburgmer.github.io/json-path-comparison/results/filter_expression_w=
ith_value_null.html).
Interestingly, the comparison project doesn't yet conceive of implicit
conversions for other JSON literals, array accesses, or $.

I personally don't see a great deal of value in providing implicit
conversions, but maybe that's because of my preference for strongly typed
languages. I'd just as soon make these syntax errors. Does anyone *want*
implicit conversions?

(I don't think strong or weak typing in the implementation language has any
relevance to whether we support implicit conversions. If we define implicit
conversions in the spec, they can be supported equally well in both
strongly and weakly typed languages.)


>
> Gr=C3=BC=C3=9Fe, Carsten
>
> --
> Jsonpath mailing list
> Jsonpath@ietf.org
> https://www.ietf.org/mailman/listinfo/jsonpath
>

--000000000000fd0b1105cb877317
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">On Wed, 8 Sept 2021 at 19:16, Carsten Bor=
mann &lt;<a href=3D"mailto:cabo@tzi.org">cabo@tzi.org</a>&gt; wrote:<br></d=
iv><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:=
1ex">On 2021-09-08, at 19:54, Daniel P &lt;<a href=3D"mailto:danielaparker@=
gmail.com" target=3D"_blank">danielaparker@gmail.com</a>&gt; wrote:<br>
&gt; <br>
&gt; Perhaps this may be helpful?<br>
&gt; <br>
&gt; <a href=3D"https://craftinginterpreters.com/evaluating-expressions.htm=
l#truthiness-and-falsiness" rel=3D"noreferrer" target=3D"_blank">https://cr=
aftinginterpreters.com/evaluating-expressions.html#truthiness-and-falsiness=
</a><br>
<br>
As this text states, the concept of falsy is of interest only if there are =
implicit conversions to Boolean.<br>
<br>
What are the places where we want to have those implicit conversions?<br></=
blockquote><div><br></div><div>Good question. Expressions like @.foo and $.=
foo test for the presence of the key foo in an object (and are false for no=
n-objects), so that leaves array accesses (e.g.=C2=A0@[0]) and values such =
as=C2=A0@, $, and JSON literals such as numbers, strings, booleans, and nul=
l.</div><div><br></div><div>There is no consensus for @ (<a href=3D"https:/=
/cburgmer.github.io/json-path-comparison/results/filter_expression_with_cur=
rent_object.html">https://cburgmer.github.io/json-path-comparison/results/f=
ilter_expression_with_current_object.html</a>), booleans (<a href=3D"https:=
//cburgmer.github.io/json-path-comparison/results/filter_expression_with_va=
lue_true.html">https://cburgmer.github.io/json-path-comparison/results/filt=
er_expression_with_value_true.html</a>, <a href=3D"https://cburgmer.github.=
io/json-path-comparison/results/filter_expression_with_value_false.html">ht=
tps://cburgmer.github.io/json-path-comparison/results/filter_expression_wit=
h_value_false.html</a>), or null (<a href=3D"https://cburgmer.github.io/jso=
n-path-comparison/results/filter_expression_with_value_null.html">https://c=
burgmer.github.io/json-path-comparison/results/filter_expression_with_value=
_null.html</a>). Interestingly, the comparison project doesn&#39;t yet conc=
eive of implicit conversions for other JSON literals, array accesses, or $.=
<br></div><div><br></div><div>I personally don&#39;t see a great deal of va=
lue in providing implicit conversions, but maybe that&#39;s because of my p=
reference for strongly typed languages. I&#39;d just as soon make these syn=
tax errors. Does anyone *want* implicit conversions?<br></div><div><br></di=
v><div>(I don&#39;t think strong or weak typing in the implementation langu=
age has any relevance to whether we support implicit conversions. If we def=
ine implicit conversions in the spec, they can be supported equally well in=
 both strongly and weakly typed languages.)<br></div><div>=C2=A0</div><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:=
1px solid rgb(204,204,204);padding-left:1ex">
<br>
Gr=C3=BC=C3=9Fe, Carsten<br>
<br>
-- <br>
Jsonpath mailing list<br>
<a href=3D"mailto:Jsonpath@ietf.org" target=3D"_blank">Jsonpath@ietf.org</a=
><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" rel=3D"noreferre=
r" target=3D"_blank">https://www.ietf.org/mailman/listinfo/jsonpath</a><br>
</blockquote></div></div>

--000000000000fd0b1105cb877317--


From nobody Wed Sep  8 22:45:44 2021
Return-Path: <cabo@tzi.org>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 286E83A1C3A for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 22:45:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OR_XLQo38Y_M for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 22:45:35 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [134.102.50.15]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 275F33A1C16 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 22:45:32 -0700 (PDT)
Received: from [192.168.217.118] (p548dcf6e.dip0.t-ipconnect.de [84.141.207.110]) (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 4H4nzG31fjz2xNc; Thu,  9 Sep 2021 07:45:30 +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: <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com>
Date: Thu, 9 Sep 2021 07:45:30 +0200
Cc: jsonpath@ietf.org, Daniel P <danielaparker@gmail.com>
X-Mao-Original-Outgoing-Id: 652859129.923915-363c0c9bb3f32bedfb02487c6a114470
Content-Transfer-Encoding: quoted-printable
Message-Id: <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com>
To: Glyn Normington <glyn.normington.work@gmail.com>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/k99AdqVCOlxbAGPEKAI00lF3Nb0>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 05:45:40 -0000

On 2021-09-09, at 05:18, Glyn Normington =
<glyn.normington.work@gmail.com> wrote:
>=20
> Expressions like @.foo and $.foo test for the presence of the key foo =
in an object (and are false for non-objects),

These expressions really return nodelists.
We could define an implicit conversion of nodelists to a Boolean value =
(empty nodelist =3D> false, all other nodelists =3D> true).

> so that leaves array accesses (e.g. @[0]) and values such as @, $, and =
JSON literals such as numbers, strings, booleans, and null.

I don=E2=80=99t see a difference between $.foo and $[0].

Why would I write a literal in a random type to have that implicitly =
converted to Boolean?

So maybe we can focus on the implicit conversion needed for using =
nodelists in a Boolean context.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Wed Sep  8 23:32:21 2021
Return-Path: <gregsdennis@yahoo.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 30F6E3A1DE8 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 23:32:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xQUr1--Zmk0i for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 23:32:14 -0700 (PDT)
Received: from sonic302-1.consmr.mail.bf2.yahoo.com (sonic302-1.consmr.mail.bf2.yahoo.com [74.6.135.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 71BEE3A1DE5 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 23:32:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1631169132; bh=F1GLsEQ+fmrB0fTqeJw0WBlYhgy2j8h/ZPUF8QNtXX0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=SEkFRFJUwXmgn++NFg34NhGwZedeffWxStyLzeh3ABicdmVUNYFhZSyDVEAowxNWJ9rbyOWQHyA+wS/kQgdr9mkvf9XHpDSzxEro0Uywj+ywktfSSi5tslF5zZ0BSGwFygV/0IeKPm8HEhokL4aC984dUwqClyIGqMLI9A2IDtUkTtbL1VTrKCR5MGi0vDJGNNNtzyiSHwPWdDsqp3tXw8ymvsqdK9OU2o3x6KvgI6RyJOcSlfMzj3lIHkoI1dAMEoV7bCD7sesXY2KNkFloB9PRAEnMDOfr9DMCYfa+/78C4NHHFYj9KIsdeYpSvHWzxjm32hE9KKnOfcuXXay/Tg==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;  t=1631169132; bh=gCggOsvYf8J62TqZKgTe6wt1Ain2YHToSX3kKDqhxdG=;  h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=iKwezQP7GjFkTb0be2FSQsU04RjLaz1FZJKqTpr7TnbviAAkOMMtNjTnLUFjxV6MiuMyvmnec1BiYjnPsSiQBdhkMyJKHnGwJfJPF7YCceGiC586pFvegpFFtZqO0ZvBF9KIaaoDD+iC4TcPDcZAJ+yGRFgEb6v5mTsPPIRx3s5Nkr5aC7u2FmeFv8SqyEDTcpC8qSgc5fBHjeFYAfpIqw08PG1F8T2+mV3spgqHXSjqRy+1BZwnQ3fB1r4dOQ7W+/Sx/Fk4Fq4cJgakCi1609UrRlOnaYPyymBKhqjvc07efIS26+bqlgjLYsjTnQui4qVOv+e9NQnLl8O7D+oIuQ==
X-YMail-OSG: 8RlXAjYVM1k4FM0YtO8e9.tHhX7hzs.pdxV_XSf88Ec6vg52c9AeDw7VFLsVNDu VIutxsWzmYHOQsRdGfUNFjBQh6cusAgGf5BqPVBitu8Kcnqe6JTqzPjRsuknAU2MOQWwvVd6sPJT Cwc2nvSxJBBdbouZE4EqzId0AQfIwDcS8LsxSr3oZfrLTV_pVleKUgkKnza6wDNTSQ44sMtHhHWx QER8XP0B409ZEfhXuwpv86AtDjxU8XpmAa1VsvaxtfKoOux11LuQPMHMzb1Afohu683aqMloOqM3 3R7PxEEjjaC.OKVf0wUfc0PpHFSG0cnaDew1H0OzHEKR6kO05f77ARiNW6QsK4Ey40mHaC6SLwp0 ne0NPTxa4S5qSxTdrS4ZFz4qnPjnyIDp7xPy2R9fiCO1sEaotzjMXO2pZVwHtvQlvbDNdAgVDC2s ONLA0JJpzdzUDPIYfiYJ8aSqqnPePjuaLzk9RhMRGoRo8DExdZ5P6lHg9E9f6BxMYWJWoAOH4eBt 2VTG0b9ll2O6DMVQgBSmvQNpoKrMtoS7Sslhwa3FiMSmyqeKn6iEKF.Mrb3EgdCReYniYCaDpQ79 VgADhgMI0DUPpTzE7zkDQVPUIAxSNJcNieLDZIWTpgyE.EBLpboB2dI3eIMVzd6oA7MQPzUEJyGJ CZq4U5Eq37n8XTJ8CvAoLTpLWqHwd9PKhx5Fa0yrh3T86LPAMYRHBgQjElyyddkc9WQ0P6ItqLzO 6ss9I93wcN9sH2bjZYJNkSgopRLQap1DKJRe_i2hTZI3bI3BwGA4I0anoEkWvv.fpmJ2hec5cedU J6mMx7f13TEpK4KK51nEjl6FaP7qYx.j1oUcYvWPw9XUSH6wygRwuZERpFg7gAXRLXZMBAkQiM7i JFVy32VDk7W1Mq._TRsbtYv5CatdLsMGUfe1Wr6Knv.G3VSFNvsL_R54rkhGAZrtqZFBAYjc7sS1 CJu4Ib.YIFqdRx.Dh7v33ykzL_RabmHW93hwu32jJXGFsc4gdxW9B1Xij41YE7jkQAswYZfghe8I 8dgrl5Qz7AccbmH5IWCjk_akdDFvBXeObFX0YyQhHj7AeDdkjB5gdMPmuvAOt0fg06lScb3a.7Nv ZzeusmLj4Y.6BEztkcLVILfl3RsSzJIsI8tFRckDDNykYZW0ajiiZRmom6Qs76OaO6DR9cP5JFq3 gsIsUKC2mPYxOPnEad3IJ1SWOL0P3YRmUzbX59eJQ1zwC50DTW_Nsv_lqlMr5h4701lKjBXygqHs jA5hh7QhDJa9EidzM1q4oao45bVP_L65t.WWd8ZuJDmYULxfVyH8CwDUD_tjDsW78LxYdDeQrzai 0DnjJjlU.0LMdn01RB8swuAnjrxkPCUoMwgSHDy6NRs9nhOhzCabq3KVzcOWzCG6pkkBFmqvrNb_ t4ozqneH9eeRZO7a2H80GzntdEeWkQkKY_DvECyfBf0zn9k2gkjvZ6BI4l7khiPHanDcAsIIiaJs 2ZSQjnWYUUfzyUOoPUWlJljf2vIh_giVDlMAGD5Rw5RMBDRxbh5CcserodrO3dANFdws8f84GNUh r9Qc.YaOMVuf06UVVREC9XWkS8tJfqajv._A.wB2FWssJR5h2oKTSJZNIwhxyR0AGZPnhwl9HFzZ BkP4e7MhqfJcGxigdAW9h0v5kBL0el4VUp1bf3RbszDqUjo_VQqxR1u5Wp5UaMfOv76bNgNt4aXV gbzDl3FNnt9tIimwlYqhdKao1T6pnMubzIRnrd9CRBv7XmtBnGrKwfs35gGH42a.R3F1IXXAb2MZ 9YS1tNE0KmuCOxf5ML74TTBKULytIMLxxYNjzCYrH8PlAwg7L01Kc8esdGtXCTeBwtfZeQGf3tz6 bBbzk7hK2zzYXIvBP68pMWNlK008liEn9AboaOo4bbB.0t49xh7.F9i_PRF8VMngftDzLpzvhK5y D1Wwvy9LZ7lJZl04_3ENLqBil6UT5.LF.R.hWmLdNNcts4v_OyddkzT5gsjVxUfIm3gO55DzCrTx pyyFPs7VNJSfvaAZOiWYj.FN5laAfXfKCXA4zJpBtddFtHn2_is9NX5t3hf4MncRWzB8Z16zbLnQ tBff7ivz3aq0RUt7Naz9IDa5yPKyWmVOeRcTs1Fgdeee6R4bwuUJgoVTyA9NZAccbILZx4r0eEBF 4XGdArvyABdefkzSYpAWg1D.ZTEj_XPLUNdbeJ_ODNAAn9lOodZqk5C7jNVmq1nrM0Dvaiyui9Rk 7FnrAIhdyrRWFsp_6Gz4tcs9ltoZqgC8y8OiBhdREHWpFjfhkdykrIcxVEKVrOcl1FMPkiK3FRPv vuRmQXTZbdhEUrAuYFwVHrTNN9sFC821D6072mdiefgSGvEyfhRllOCFN1t2FCSVO7xCzxQBEiCo 57Tb_JENTquRekTS.9PhDrQNCe2MNi_ERtRyJlo5ROfPeCDshfJdxTttWAYu0gG2Y4tNcHErVBBf kYo4-
X-Sonic-MF: <gregsdennis@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic302.consmr.mail.bf2.yahoo.com with HTTP; Thu, 9 Sep 2021 06:32:12 +0000
Date: Thu, 9 Sep 2021 06:32:02 +0000 (UTC)
From: Greg Dennis <gregsdennis@yahoo.com>
Reply-To: Greg Dennis <gregsdennis@yahoo.com>
To: cabo@tzi.org, Glyn Normington <glyn.normington.work@gmail.com>
Cc: jsonpath@ietf.org, Daniel P <danielaparker@gmail.com>
Message-ID: <1478480298.2315932.1631169122658@mail.yahoo.com>
In-Reply-To: <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org>
MIME-Version: 1.0
Content-Type: multipart/alternative;  boundary="----=_Part_2315931_472785104.1631169122657"
X-Mailer: WebService/1.1.18924 YahooMailAndroidMobile
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/bvNgBceqmVRbUElemMLXDciHoPY>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 06:32:19 -0000

------=_Part_2315931_472785104.1631169122657
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I think you're right here, Carsten.=C2=A0 In light of this, were going to n=
eed conversions from node lists to various types in order to support things=
 like $.foo =3D=3D 2.
Here we're expecting $.foo to return a node list with a single value, and t=
hat value is 2.
If we accept that we can use any JSON value as a constant, then we could ha=
ve things like $.foo =3D=3D [1, 'two'].=C2=A0 This raises an interesting sc=
enario in which we can take this to mean either a node list with a single v=
alue of an array, or a node list with two items, 1 and 'two'.=C2=A0 Both co=
uld be considered valid, I expect.=C2=A0 Do we need some sort of operator t=
o distinguish these cases?=C2=A0 Maybe something like $.foo =3D=3D <1, 'two=
'> to mean a node list (the latter case)?
In any case it looks like we need implicit conversions at some level.=C2=A0=
 It's not impossible, just a bit cumbersome in some languages.
Greg
=20
=20
  On Thu, 9 Sep 2021 at 5:45 pm, Carsten Bormann<cabo@tzi.org> wrote:   On =
2021-09-09, at 05:18, Glyn Normington <glyn.normington.work@gmail.com> wrot=
e:
>=20
> Expressions like @.foo and $.foo test for the presence of the key foo in =
an object (and are false for non-objects),

These expressions really return nodelists.
We could define an implicit conversion of nodelists to a Boolean value (emp=
ty nodelist =3D> false, all other nodelists =3D> true).

> so that leaves array accesses (e.g. @[0]) and values such as @, $, and JS=
ON literals such as numbers, strings, booleans, and null.

I don=E2=80=99t see a difference between $.foo and $[0].

Why would I write a literal in a random type to have that implicitly conver=
ted to Boolean?

So maybe we can focus on the implicit conversion needed for using nodelists=
 in a Boolean context.

Gr=C3=BC=C3=9Fe, Carsten

--=20
Jsonpath mailing list
Jsonpath@ietf.org
https://www.ietf.org/mailman/listinfo/jsonpath
 =20

------=_Part_2315931_472785104.1631169122657
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

I think you're right here, Carsten.&nbsp; In light of this, were going to n=
eed conversions from node lists to various types in order to support things=
 like $.foo =3D=3D 2.<div id=3D"yMail_cursorElementTracker_1631168035836"><=
br></div><div id=3D"yMail_cursorElementTracker_1631168035977">Here we're ex=
pecting $.foo to return a node list with a single value, and that value is =
2.</div><div id=3D"yMail_cursorElementTracker_1631168116908"><br></div><div=
 id=3D"yMail_cursorElementTracker_1631168117070">If we accept that we can u=
se any JSON value as a constant, then we could have things like $.foo =3D=
=3D [1, 'two'].&nbsp; This raises an interesting scenario in which we can t=
ake this to mean either a node list with a single value of an array, or a n=
ode list with two items, 1 and 'two'.&nbsp; Both could be considered valid,=
 I expect.&nbsp; Do we need some sort of operator to distinguish these case=
s?&nbsp; Maybe something like $.foo =3D=3D &lt;1, 'two'&gt; to mean a node =
list (the latter case)?</div><div id=3D"yMail_cursorElementTracker_16311690=
66514"><br></div><div id=3D"yMail_cursorElementTracker_1631168298148">In an=
y case it looks like we need implicit conversions at some level.&nbsp; It's=
 not impossible, just a bit cumbersome in some languages.</div><div id=3D"y=
Mail_cursorElementTracker_1631168743932"><br></div><div id=3D"yMail_cursorE=
lementTracker_1631168744049">Greg<br id=3D"yMail_cursorElementTracker_16311=
67919020"> <br> <blockquote style=3D"margin: 0 0 20px 0;"> <div style=3D"fo=
nt-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Thu, 9 Sep 2021 at 5=
:45 pm, Carsten Bormann</div><div>&lt;cabo@tzi.org&gt; wrote:</div> </div> =
<div style=3D"padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: 1px =
solid #6D00F6;"> On 2021-09-09, at 05:18, Glyn Normington &lt;<a shape=3D"r=
ect" ymailto=3D"mailto:glyn.normington.work@gmail.com" href=3D"mailto:glyn.=
normington.work@gmail.com">glyn.normington.work@gmail.com</a>&gt; wrote:<br=
 clear=3D"none">&gt; <br clear=3D"none">&gt; Expressions like @.foo and $.f=
oo test for the presence of the key foo in an object (and are false for non=
-objects),<br clear=3D"none"><br clear=3D"none">These expressions really re=
turn nodelists.<br clear=3D"none">We could define an implicit conversion of=
 nodelists to a Boolean value (empty nodelist =3D&gt; false, all other node=
lists =3D&gt; true).<br clear=3D"none"><br clear=3D"none">&gt; so that leav=
es array accesses (e.g. @[0]) and values such as @, $, and JSON literals su=
ch as numbers, strings, booleans, and null.<br clear=3D"none"><br clear=3D"=
none">I don=E2=80=99t see a difference between $.foo and $[0].<br clear=3D"=
none"><br clear=3D"none">Why would I write a literal in a random type to ha=
ve that implicitly converted to Boolean?<br clear=3D"none"><br clear=3D"non=
e">So maybe we can focus on the implicit conversion needed for using nodeli=
sts in a Boolean context.<div class=3D"yqt4850517518" id=3D"yqtfd07375"><br=
 clear=3D"none"><br clear=3D"none">Gr=C3=BC=C3=9Fe, Carsten<br clear=3D"non=
e"><br clear=3D"none">-- <br clear=3D"none">Jsonpath mailing list<br clear=
=3D"none"><a shape=3D"rect" ymailto=3D"mailto:Jsonpath@ietf.org" href=3D"ma=
ilto:Jsonpath@ietf.org">Jsonpath@ietf.org</a><br clear=3D"none"><a shape=3D=
"rect" href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" target=3D"_b=
lank">https://www.ietf.org/mailman/listinfo/jsonpath</a><br clear=3D"none">=
</div> </div> </blockquote></div>
------=_Part_2315931_472785104.1631169122657--


From nobody Wed Sep  8 23:43:46 2021
Return-Path: <cabo@tzi.org>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C10C93A1E44 for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 23:43:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4YJR8yDhc1gw for <jsonpath@ietfa.amsl.com>; Wed,  8 Sep 2021 23:43:39 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [134.102.50.15]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 876EE3A1E42 for <jsonpath@ietf.org>; Wed,  8 Sep 2021 23:43:38 -0700 (PDT)
Received: from [192.168.217.118] (p548dcf6e.dip0.t-ipconnect.de [84.141.207.110]) (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 4H4qGH5vbtz2xNr; Thu,  9 Sep 2021 08:43:35 +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: <1478480298.2315932.1631169122658@mail.yahoo.com>
Date: Thu, 9 Sep 2021 08:43:35 +0200
Cc: Glyn Normington <glyn.normington.work@gmail.com>, jsonpath@ietf.org, Daniel P <danielaparker@gmail.com>
X-Mao-Original-Outgoing-Id: 652862615.43437-243aec1a112d60b2334cbd951a970a20
Content-Transfer-Encoding: quoted-printable
Message-Id: <53E0C4BB-F9AF-41AE-9896-A728E30A94E1@tzi.org>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <1478480298.2315932.1631169122658@mail.yahoo.com>
To: Greg Dennis <gregsdennis@yahoo.com>
X-Mailer: Apple Mail (2.3608.120.23.2.7)
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/q65fuipH4gGh7wTYVbHGDRLiF-o>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 06:43:43 -0000

On 2021-09-09, at 08:32, Greg Dennis <gregsdennis@yahoo.com> wrote:
>=20
> I think you're right here, Carsten.  In light of this, were going to =
need conversions from node lists to various types in order to support =
things like $.foo =3D=3D 2.
>=20
> Here we're expecting $.foo to return a node list with a single value, =
and that value is 2.

As you note below, that is dangerous.
(Of course, if that reflects current practice, we=E2=80=99ll need to =
make it work.)

> If we accept that we can use any JSON value as a constant, then we =
could have things like $.foo =3D=3D [1, 'two'].  This raises an =
interesting scenario in which we can take this to mean either a node =
list with a single value of an array, or a node list with two items, 1 =
and 'two'. =20

I don=E2=80=99t think we want to implicitly convert a nodelist to an =
array of the value of the nodes.
Is that something that current practice suggests?

> Both could be considered valid, I expect.  Do we need some sort of =
operator to distinguish these cases?  Maybe something like $.foo =3D=3D =
<1, 'two'> to mean a node list (the latter case)?

That would be one syntax.
We also might want to have operators for cases like =E2=80=9Ccontains=E2=80=
=9D.
Again, guided by current practice.

> In any case it looks like we need implicit conversions at some level.  =
It's not impossible, just a bit cumbersome in some languages.

The conversion could be innate in the type =E2=80=9Cnodelist=E2=80=9D, =
or it could be a property of operators like =E2=80=9C=3D=3D=E2=80=9C.  =
I=E2=80=99d rather see operators that are very specific as to what they =
do, but maybe =E2=80=9C=3D=3D=E2=80=9C (and friends) are the places to =
make this conversion.  So you never compare a nodelist, you always =
invoke a conversion into JSON values.  A nodelist that doesn=E2=80=99t =
support that conversion =E2=80=9Cfails=E2=80=9D the comparison =
expression.

Just thinking out loud; this needs to be driven by examples.

Gr=C3=BC=C3=9Fe, Carsten


From nobody Thu Sep  9 01:07:29 2021
Return-Path: <stefan@goessner.net>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F3A3A3A2119 for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 01:07:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZLv6tFPF_xGD for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 01:07:23 -0700 (PDT)
Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.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 EA62D3A2116 for <jsonpath@ietf.org>; Thu,  9 Sep 2021 01:07:22 -0700 (PDT)
Received: from [192.168.178.20] ([88.130.51.57]) by mrelayeu.kundenserver.de (mreue011 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MFsER-1mAHmJ2edz-00HMMg for <jsonpath@ietf.org>; Thu, 09 Sep 2021 10:07:20 +0200
To: jsonpath@ietf.org
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <1478480298.2315932.1631169122658@mail.yahoo.com>
From: =?UTF-8?Q?Stefan_G=c3=b6ssner?= <stefan@goessner.net>
Message-ID: <bc40da97-d703-263d-0544-43cec3563268@goessner.net>
Date: Thu, 9 Sep 2021 10:07:19 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <1478480298.2315932.1631169122658@mail.yahoo.com>
Content-Type: multipart/alternative; boundary="------------7F5187680D9C5667E9E5DB77"
X-Provags-ID: V03:K1:XOPtjQVG/WCxlushZ41y5KFz5fgVpoVJkRyy8Mie9hvHnnd54Ww nG1ZLz28Cvtgbe2d4rZGEStjekGGy8soSP2l87zN/4KOOJke2wEIjw+jCiJBbM3UywFO3Fz x6MpUMVPx95FwRJIYMuZIvLaF0ayoEt4Fl5Xgq7fqX6sQuT+kjiMps2FE07TkDFyG9uu/IU aTDjP6HrQ3OUnOEBzpq/g==
X-UI-Out-Filterresults: notjunk:1;V03:K0:eQJZI2iZB0s=:SgJ7gYW9uq+Bqad16UTRbg DagCPyyYHJdMzd7LNXO01ob9NEjBYinC3OydYWLSwOkfPFHjvzWyFxEdsvNLPhFXbyYwwQW2N 262zhUENcgkptxLKBx2ASt3JZ9GA+fmwmfNTUWlAI0M4zFXMtXxWlq+JBYl+tk/nz2x9uywbC LtwUJKOZpbyIw+Xw6eWKok5Qkx6QkDqSEHNKodgVgX9IK8E6muA/dHtQoS7P844yri1MSIXv0 VZexdewdiHQhQ4UVg6qHuQ4vzNef2Y/d3W/Zp59q6h3S77VZa9d05jYaq4JnQ+l03/vaeGg5t LCp2LuM10zWOp9CpZhYpaZuT2JAloublP0//h4WbswIg/9gRMS9Io5jp5bF1M2YrrN3qwZGNu C1SSMHFuL4zk6CEIoL/aRXL/RqFwDDIQaUPIGsnkNlkzdKdXQEHRKL8+mawjcxYS8D5MIckKn 0fU/D4u1RrVSqG1KD67Cv0UDWHnQLNkpquKtLnReFMzkn/MSQGXaoTPihN4XKojfmIJS2ePPl mBtykyrDSjIn4kjuD9nWe0/aM8t8ATg4MLNYkyW+McjTsSaHIgXcXwfazE2kjugActKRvKbAR 7ObkPXHCSiKVBRG56KYwkaqeFv43aiU8O9UplZl2i3CiH7kDEfwk1c52DmfZTZI0FVqsdNMIR 2ZyThthkyRBSECidzv9Jx1xsXyFYn9kftKPTccqDM1aVMN//cnF1LOmQXUErF3WYgTqE4Un+n gERH9HZZK2GvAasfm+BOD7LhAV/YZYB9aSRJpw==
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/MYudw_r8ruC11owEy-rT74qgy9s>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 08:07:28 -0000

This is a multi-part message in MIME format.
--------------7F5187680D9C5667E9E5DB77
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Truthy / falsy defined for JavaScript is described here.

https://masteringjs.io/tutorials/fundamentals/truthy

(Greg)
> If we accept that we can use any JSON value as a constant, then we 
> could have things like $.foo == [1, 'two'].  This raises an 
> interesting scenario in which we can take this to mean either a node 
> list with a single value of an array, or a node list with two items, 1 
> and 'two'.  Both could be considered valid, I expect.  Do we need some 
> sort of operator to distinguish these cases?  Maybe something like 
> $.foo == <1, 'two'> to mean a node list (the latter case)?
>

We voted for comparisons of scalar values only, i.e. nodelists 
containing a single node while taking its value.

So current draft reads (at least for now):

 > Comparisons are restricted to primitive values (such as number, 
string, |true|, |false|, |null|). Comparisons with complex values will 
fail, i.e. no selection occurs.

 > Containment tests work with arrays and objects.

We might want to extend containment tests to also work with nodelists.


--------------7F5187680D9C5667E9E5DB77
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1"><font face="Courier New"><font size="-1"><font
            face="Courier New">Truthy / falsy defined for JavaScript is
            described here.<br>
            <br>
            <a class="moz-txt-link-freetext" href="https://masteringjs.io/tutorials/fundamentals/truthy">https://masteringjs.io/tutorials/fundamentals/truthy</a><br>
          </font></font></font></font><br>
    (Greg)<br>
    <blockquote type="cite"
      cite="mid:1478480298.2315932.1631169122658@mail.yahoo.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div id="yMail_cursorElementTracker_1631168117070">If we accept
        that we can use any JSON value as a constant, then we could have
        things like $.foo == [1, 'two'].  This raises an interesting
        scenario in which we can take this to mean either a node list
        with a single value of an array, or a node list with two items,
        1 and 'two'.  Both could be considered valid, I expect.  Do we
        need some sort of operator to distinguish these cases?  Maybe
        something like $.foo == &lt;1, 'two'&gt; to mean a node list
        (the latter case)?</div>
      <div id="yMail_cursorElementTracker_1631169066514"><br>
      </div>
    </blockquote>
    <br>
    <font size="-1"><font face="Courier New"><font size="-1"><font
            face="Courier New">We voted for comparisons of scalar values
            only, i.e. nodelists containing a single node while taking
            its value.<br>
            <br>
            So current draft reads (at least for now):<br>
            <br>
            &gt; </font></font><font size="-1"><font face="Courier New">Comparisons
            are restricted to primitive values (such as number, string,
            <code>true</code>, <code>false</code>, <code>null</code>).
            Comparisons with complex values will fail, i.e. no selection
            occurs.</font></font></font></font><font size="-1"><font
        face="Courier New"><br>
      </font></font><font size="-1"><font face="Courier New"><font
          size="-1"><font face="Courier New"><br>
            &gt;</font></font> <font size="-1"><font face="Courier New">Containment
            tests work with arrays and objects.<br>
            <br>
            We might want to extend containment tests to also work with
            nodelists.</font></font></font></font><br>
    <br>
  </body>
</html>

--------------7F5187680D9C5667E9E5DB77--


From nobody Thu Sep  9 06:40:55 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 565513A1175 for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 06:40:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TXng2g_qBzCA for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 06:40:44 -0700 (PDT)
Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E8843A119A for <jsonpath@ietf.org>; Thu,  9 Sep 2021 06:40:44 -0700 (PDT)
Received: by mail-wm1-x336.google.com with SMTP id u15-20020a05600c19cf00b002f6445b8f55so1458691wmq.0 for <jsonpath@ietf.org>; Thu, 09 Sep 2021 06:40:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4e0ssiMdMEi45ZchHsxoztlo8Flp9dunWTyIMGnn040=; b=dsqlRbX6rvZsG+aCOYOKB0xT1SlY5hQh5revFvH0JulXlqzOmshjD9ejMh4lxOwH0N 6GNvQXC1u3v2GWveuxz1RO0PII9S67+R81qLqpPbhnFkIg5JrFmKS2C44tuyAZS7+FCX TBaxzKyA3TzdNDFXuocZ8Ja8xNWWReMpgnupE0NrCA6nBSjrkuCDFOYuuGEK6453dtg0 s/VhImeY2dZFeP8vsdeit4Rbh6VLY0+D2oKmrZ4B77XtYKfhAMXHcSTAnjPCtGgDDnJm GuccH5pzPOZp1lRrBsRTmNQ6mMOb9YsBa7l81GDLm7PdK8j1sl1kCsK0LRz1OqdQGN1Q BS7A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4e0ssiMdMEi45ZchHsxoztlo8Flp9dunWTyIMGnn040=; b=bdBBQH/v/Q10omzl5MUyPp3hsMP1oEmAGLBG1fRiFo3kXkEoonwUswIdtybP89THJm j7YO6JpH/BX45x9DsUjNsory8leQmn21XNV+eDKDumjVN5uq7NQ8WrHuyyLrtBWZKxUE mxyWKri+oqNvgybNhJN6CHKG6W5sqFyaJzvX9RAUr9RGS2iHiC8H5CZk77WX7xvZ1p6G 3PtnocLo6HP07GcNIM86lFrzDtUA9nd0Wrg61PSy19eob5LJFBOq+qsOJLboD8OFVAbI 85/YQ7IlM0GZmmhoI4ybqBRODbrhXCFUWIoVjQfchB10lp293S1CTKB5phabdHcsmh3X UmeA==
X-Gm-Message-State: AOAM531vcV/xFrnnSv4IAjzMcp52gt/rhuKKiSAgnUjfi7dFV1o+33rG YqIWUD/1EdUrSc8cicSVwW+APmEoMSs73ccsSU4=
X-Google-Smtp-Source: ABdhPJw/UdFAI/RRyj1itVmCg682pS09SxsnsfGlnJqM4Pm0m4JF43/htuJ1w8WdMdf9qIyE2JG9sZqHx2sYq4yMWxE=
X-Received: by 2002:a1c:3584:: with SMTP id c126mr3053358wma.121.1631194841453;  Thu, 09 Sep 2021 06:40:41 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org>
In-Reply-To: <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org>
From: Daniel P <danielaparker@gmail.com>
Date: Thu, 9 Sep 2021 09:40:30 -0400
Message-ID: <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Glyn Normington <glyn.normington.work@gmail.com>, jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/OO5RKvGo4R20qy3E1tUNus6ac2Y>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 13:40:50 -0000

On Thu, Sep 9, 2021 at 1:45 AM Carsten Bormann <cabo@tzi.org> wrote:
>
> On 2021-09-09, at 05:18, Glyn Normington <glyn.normington.work@gmail.com> wrote:
> >
> > Expressions like @.foo and $.foo test for the presence of the key foo in an object (and are false for non-objects),
>
> These expressions really return nodelists.

Perhaps in the WG's specification. But specifically regarding @.foo,
Goessner JavaScript does not return "nodelists", nor do any of the
implementations that use JavaScript, PHP or Python as a scripting
language. But also neither does the most widely used of the
implementations that specify expressions, Jayway JsonPath, which is
rigged into enterprise Java API's. Together, just these would account
for the majority of implementations in actual use, I would suggest the
vast majority.

For the JavaScript implementations, @ corresponds to a Javascript
variable, and @.foo corresponds to a key lookup in a Javascript
object, if that fails, it returns undefined, otherwise, it returns a
single value. Analogous observations can be made about other
implementations using dynamically typed languages for expression
evaluation.

For Jayway JsonPath, @.foo is treated as a JSONPath expression and is
evaluated to a single value following these rules:

- JsonPath selectors that can return multiple results (recursive
descent, unions, slices, wildcards, paths with expressions) always
return a JSON array, which can contain zero, one or many values.
- JsonPath selectors that can only return a single value (identifiers,
indexes), return a single value.

The result is a JSONPath expression evaluated to a single value. This
is obviously not equivalent to returning a "nodelist" and selecting
the 0th element (if it exists).

These observations suggest that it might be helpful to include a note
in the draft that clarifies the purpose of the WG. Is it to
standardize existing behaviour? What would that mean when the extant
implementations exhibit different behaviour, and because they are
entrenched in legacy API's, they cannot change? Or is it to invent
something new, inspired by the original, picking and choosing from
popular implementations as the WG sees fit? If something new, should
it have a different name?

Best regards,
Daniel


From nobody Thu Sep  9 11:38:02 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F8673A0BEB for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 11:38:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rB3HbPmXY6eq for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 11:37:56 -0700 (PDT)
Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0FFF73A0BE6 for <jsonpath@ietf.org>; Thu,  9 Sep 2021 11:37:56 -0700 (PDT)
Received: by mail-pj1-x1032.google.com with SMTP id m21-20020a17090a859500b00197688449c4so2148310pjn.0 for <jsonpath@ietf.org>; Thu, 09 Sep 2021 11:37:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+Jv2DMvQd07jB3Kxk5XySKxvhFbnQVUmw4qvuNVOCcQ=; b=WyI+ONMrG8+8gpss2nzPi7STB6T2R+JbbNx8gb8KzKpnKHLQoCc9VJPOXWXLyLfD71 sQYX6+cwJ0MFI0aMBJcLl9zJdDYIeK8Nj1PwRylUtuq4ItK502JCF0cLpeA/KLJvehjs xZcrR4GlS8+xW5eK1h0XJKv16787hXArsk+iNzGinjBMDzZQbuPzA3nMaDm3TzUwuP5h EUDWRGAMwHJ8jUFufacBK1nePiXo9bUHJw1aHedlLAiBMiR3RWIf6IrHMS4UJB588Cmh tOJ+qDpIg3L9i5pe8dYT5UUBOh38HERW2ALkXkYIvfu7L1FMev/0ce+tCxUsoyJE4EMl XMIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+Jv2DMvQd07jB3Kxk5XySKxvhFbnQVUmw4qvuNVOCcQ=; b=WAJAqaGQP6Ec3rCFacWulwexu2VM5VfCJQuHKHLTMSxDg/WjPONiwNADDpnyGpJWMz PbCXpmO5ohooCC+dq7OlElXQFbRpeNsHvgrM80uYjThd/YHki9vnJN0qPvgolLPc0K8O vQemqNnFCNEquBiX84xyePGOsdWcg58SkeNl9rgOHD+HNhYg7HZW7KP7w12WSNJ/E7ks 7BlPKhn1SaH5NxgbTe2piAEP4r/cp9yVtddslGWPoSRyR84QnHgtCy4YqPXOtucCBOxx tqHjkxPeHaBD0qfT3CZ+911llJGby7AhxmELFajB/aWkA68476OJPTq57Ix4wRhVgesb QIqQ==
X-Gm-Message-State: AOAM530q7eLTh6HvaFA/Bn2x8U1OFTwW9TOaJy+8dragTo5PcBapejV4 dLnSSwbJRcWANTi3jlz1gUYOGB14VZ934o8e8RneEZKYgkU=
X-Google-Smtp-Source: ABdhPJzgdGKDtyEzhv0+1kqAg3ZIwtrBdYhXvNWjdnI5Ba2fu2IYoGZ2iN1heJIAS1S3Kb5s1GlPC6ZCHaa6Y6EIZ24=
X-Received: by 2002:a17:902:830c:b0:13a:7685:cfcd with SMTP id bd12-20020a170902830c00b0013a7685cfcdmr3284156plb.29.1631212674939; Thu, 09 Sep 2021 11:37:54 -0700 (PDT)
MIME-Version: 1.0
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
In-Reply-To: <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Thu, 9 Sep 2021 19:37:44 +0100
Message-ID: <CANH0Gb+2xL=u+cU_N1tA5788_p2jAqL33YCeLarCWRWQ0+L6+Q@mail.gmail.com>
To: Daniel P <danielaparker@gmail.com>
Cc: Carsten Bormann <cabo@tzi.org>, jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/yJEZ1bbdFt19qRAeHEoMqtB6jRg>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Sep 2021 18:38:01 -0000

On Thu, 9 Sept 2021 at 14:40, Daniel P <danielaparker@gmail.com> wrote:
>
> On Thu, Sep 9, 2021 at 1:45 AM Carsten Bormann <cabo@tzi.org> wrote:
> >
> > On 2021-09-09, at 05:18, Glyn Normington <glyn.normington.work@gmail.com> wrote:
> > >
> > > Expressions like @.foo and $.foo test for the presence of the key foo in an object (and are false for non-objects),
> >
> > These expressions really return nodelists.
>
> Perhaps in the WG's specification. But specifically regarding @.foo,
> Goessner JavaScript does not return "nodelists", nor do any of the
> implementations that use JavaScript, PHP or Python as a scripting
> language. But also neither does the most widely used of the
> implementations that specify expressions, Jayway JsonPath, which is
> rigged into enterprise Java API's. Together, just these would account
> for the majority of implementations in actual use, I would suggest the
> vast majority.
>
> For the JavaScript implementations, @ corresponds to a Javascript
> variable, and @.foo corresponds to a key lookup in a Javascript
> object, if that fails, it returns undefined, otherwise, it returns a
> single value. Analogous observations can be made about other
> implementations using dynamically typed languages for expression
> evaluation.
>
> For Jayway JsonPath, @.foo is treated as a JSONPath expression and is
> evaluated to a single value following these rules:
>
> - JsonPath selectors that can return multiple results (recursive
> descent, unions, slices, wildcards, paths with expressions) always
> return a JSON array, which can contain zero, one or many values.
> - JsonPath selectors that can only return a single value (identifiers,
> indexes), return a single value.
>
> The result is a JSONPath expression evaluated to a single value. This
> is obviously not equivalent to returning a "nodelist" and selecting
> the 0th element (if it exists).
>
> These observations suggest that it might be helpful to include a note
> in the draft that clarifies the purpose of the WG. Is it to
> standardize existing behaviour?

Yes. Please see our charter:  https://datatracker.ietf.org/wg/jsonpath/about/

> What would that mean when the extant
> implementations exhibit different behaviour, and because they are
> entrenched in legacy API's, they cannot change?

The charter says:

"Where there are
differences, the working group will analyze those differences and
make choices that rough consensus considers technically best, with
an aim toward minimizing disruption among the different JSONPath
implementations."

So we don't have to preserve all existing behaviour. It will be up to
each implementation whether or not to migrate to the eventual
standard.

> Or is it to invent
> something new, inspired by the original, picking and choosing from
> popular implementations as the WG sees fit? If something new, should
> it have a different name?

I doubt we want to reinvent JMESPath.

>
> Best regards,
> Daniel


From nobody Thu Sep  9 22:47:21 2021
Return-Path: <gregsdennis@yahoo.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 80E833A1AFD for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 22:47:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yahoo.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tAtkODeJsyvm for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 22:47:12 -0700 (PDT)
Received: from sonic311-15.consmr.mail.bf2.yahoo.com (sonic311-15.consmr.mail.bf2.yahoo.com [74.6.131.125]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73F853A1AFC for <jsonpath@ietf.org>; Thu,  9 Sep 2021 22:47:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1631252830; bh=On5Wh5c1cdf0vCzsWuKQgf4dMvS3lXs1tN/w4YrB2ss=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=TQMU4kvMzPmet+4uCQj4gG1/MsXhVbkuOTBIrvcWwfsNk8Z12kKkLQPzl08wV1l5LuaRmcV6lRqr1eMqMy8Yo9e6MwCwipTAtgfofdTU/e5uoSH+WJuftiXwwufQC5uVBm+thzRqH90BEIumZY0zY298fa4LWTfRzcIzSulDRFg0gjaVTMPqxaCeFIUR7QNP60BGWTxts7x1AWwGqJOcCJn/qCnlk+V8LTgeX/xxVU3VxVO94kX2W5QlFR9OmHiykU6eNNQt4MIi0xmnSo030fs/LNI2hC7o2dMXdx1zb6IG3Q9oM/69woGCN2T9iWmYd0whg3k2nCb0X91Sk1bH9A==
X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048;  t=1631252830; bh=Wf0i+QgZax+PtVJFoCwu+6Nm7iHwmHVkkWN+nD+QfxD=;  h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=avn932TbjIzn4J21n1IcAluV8kIHOys7Tz6gdTuHcPeK1/w3m6iNzkIDbg4H+HjimoVMfo9V//mJV/C+6wZwarDE7X29ihkTaNvCdQh0UpmFIoHAYT9rA8Ej+UhtMbWvcyT+ncERzPU5E4eHXs5whSvw+0kfSJRqBhW03TwOENl4NxpilovDYLZ92RvrHVt9jnnOfips+6e4wUkBGLgWrlwqMGr9LSM4jPvyrYit7nvjn5ExD81zj9uwh/D8niaB2QbaUcAUBokHKzb1PTTYFnFmo+YDXOWlzArdm9NswstiEfdnWvOEecORKzDxypHsPO1pJAVz121M8cZGBxdDsA==
X-YMail-OSG: 7uOG43kVM1k8zKTnhXoc7YEG4H5o.Z6J3Bpu2HOmDE3F4u.tVlg5otO3QywCv3O uYvd0f0nbZh8e6cTR1mwUE54dPYTWtPY1I6nDKjGPMkHbtLkc5.JwuRfIiUvKft8fKe_ZIT4Iuu5 ZGi7xtTqJ4zHSvr9wGFMnc5i_xwRUUGh7dwpbvwbcBugFfiiVuBIHa4hzbphONEGjPckXZhKdJy7 4c9vsHfYY7OGdSRI56x5Rh8AVpR3NwcSR_zeXrgCGkv6oJj_9Nh4DQZb5hr8vPxIXaFvMctJjMOG 9ZWSMk.F1O9QdvtlKOYFWD2o2haASu_JnhjaIAjQrz3zPeEtbWKjtItD_u5VRytjxSzzrLF3FtNb nKD0OQUCViWYhDq4htmjWb6G1P_rrGKZDBneIGDNoHCmUYkSfduXeQzR9_pMnQYQkXiDnGnv9Be9 NHmdtg3u3uMXPTcWDgl7u.fkRvMUz..TmZxvLkezebCyP7S2mTcgWO9OfT1lf3DsixaheT4UipUd SWqpV8icj1w0uZD_l09B.hfONZYin9HnAPxL29JuHkKK97o2veRLZiKrWy9gFjoK.W9lKEi6XApI 4E9PG3JttHqctbf7kyu5C.LXxri3FX5LZTJzgM5TEo.DUnpDVv5n6IA2nwVdldsT0L8qntpvaWJN AVpRK32LlBZ_PLJyhtHDMdI25F0TyVYDahaa0NiS6dhBkBlHLiphrQmfQQpdb8JWbmD9qVTlYGpM S9.XxqBXF.seguD7LqVCDr1B3ZsAWVcym.DhnHJq1.Dj2TCnD6S0fIAnqvkI4hsDDYqeqF.Cn5sY m.36IvMQ7CrDgtmGfpFJjKh4ozxnQllSpOYq.0v2as3.oZNwJZPoESYUdz9Md5DPAr5I.4ARTGkT 23gfV8HIdAjJaHeFxK1dldMThF3zwzkLuUd6ELfQ6Bl6PxXYRZ0dNxPzpuqvPERF2jiXMKbgW6_H 9bHiRfY1bl2NZhezpAbbNpWLz6um2gfQD6l_q6VCxSo8FsxHncT8HtPnZR6IkSQln7ENw2vvUdo0 rM5UvIfo85UMeodadwK7DuzXdYrn.i8lkqWoDupjYtfW0Wye1YOaT3lg277GLf_luZrGsBhjVBZc XcMmvVx7dZ8I5Dp6qJ.MqWdydUU6BjycUh2SFbgIDjdwHMf1.MAI17gBZLJTs58YsnKfBN.BlALc 48jXcV0ZaBt4hLCaP4beZ9pIuOCbWujIkUh_kaU4ybjmby6vr87ZWUFGzVEFoo4kRhY23Hb5ui4y cizmsZE5bFjZosqUJNR7W1K_wyD8RqP3lyMVrCuUMO_d6u5emqO1suv.qIJ_RDetvT4WZpL8iPUE 5Pgl38PHKlriIdXbQIujkPA38ICjKWa4Td_08M2YAp4nOEIZCx4SBaR2T06youcg_hOjLet1.XAq JPi.bomRr248heAGuawwNS88B5gvKvPujhfmR5nyvz5x3Jo7kZboNnpJppuPzTNCW4EC.6ivKhlo 3ObV0h_XKtXCrio2a9X1lS2J2qnHCf1FxnF2pAm1ZWdO3quahjmQ.3lRED0OIzuiBSuKUnlGFow5 xtbqFxxkGRV1UMNPeMvWCV_gdoHl0RI_tBhkNdiU1wxwH1Vp8ejZ_Diaw5U9QyVwfAX1wxFc0asy Kvp73cTCR.FB7luKdq_yPsD.Opt.XRvLD3Fu2JYqmMKy_v4zI2qIsoJyckQo.ArHJRAFcoKQ65uL _10CGSPNRwqqgZUrwrgydPBuhv0fUJ7ieOmOUSphDTnF1uLK8FMwYSCzkIZvWZNf3rF0Y_lSym2z 5uSFW4RNfa0d9TN5RGJgyEKAVEB8OC9RliN4Jd1mbWZtLZ8Y.KwpsE_GXHVyFx4r1o1aGRpzDIPd 5E9fb7BqecNlwmIK32jPwECxV4hlvHVTCE8oolnmEp2CFzHOpEDpGsee1c5q.Z_9FndEZsAt3gZL qVXHGjtwwxs9e_NJ_oVBxWom7NWRXaIlGc1wITKAAdypX4KzwZvQBVOEWWK4qhnHsI178BOCEpna ZAfDDoamoGi7lNVIj4NI.turaqKXMAQYe4M0UFCkmZJAkcf8CBS5B69d18dWEUkUX4lhTSO0VyYY m.bPwIw2ttAjC_1dm498KustPDCKaMYEuWHEqKHX63W7SNqu2JFUVw.Diq4rZHBaLK5zRSdNpqFe eNW.t95NmAUCus9JROh0Xx4o6O9IoyPQ9BCgJdGD4XW5PhstEeQmgP3FgFbC1jBroE3ZQmRKbWyG 9WAnLgncobM9BrQRsip_91Xvci_R9Qo96u56eBMmwvUP_H14s_v_O33fEfc4FOXEGj7Nd80ZQvzS rhDIxpSKC6mlBOgmFszloBYUyF_EHE2NE
X-Sonic-MF: <gregsdennis@yahoo.com>
Received: from sonic.gate.mail.ne1.yahoo.com by sonic311.consmr.mail.bf2.yahoo.com with HTTP; Fri, 10 Sep 2021 05:47:10 +0000
Date: Fri, 10 Sep 2021 05:47:05 +0000 (UTC)
From: Greg Dennis <gregsdennis@yahoo.com>
To: Daniel P <danielaparker@gmail.com>,  Glyn Normington <glyn.normington.work@gmail.com>
Cc: "jsonpath@ietf.org" <jsonpath@ietf.org>, Carsten Bormann <cabo@tzi.org>
Message-ID: <1306384548.2537842.1631252825313@mail.yahoo.com>
In-Reply-To: <CANH0Gb+2xL=u+cU_N1tA5788_p2jAqL33YCeLarCWRWQ0+L6+Q@mail.gmail.com>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com> <CANH0Gb+2xL=u+cU_N1tA5788_p2jAqL33YCeLarCWRWQ0+L6+Q@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative;  boundary="----=_Part_2537841_567094872.1631252825311"
X-Mailer: WebService/1.1.18924 YMailNorrin
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/5Q7IcJoh0EhQmrlTpfQzOjcH-qs>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Sep 2021 05:47:19 -0000

------=_Part_2537841_567094872.1631252825311
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

 I've opened issue 119 (https://github.com/ietf-wg-jsonpath/draft-ietf-json=
path-base/issues/119) to continue this discussion.=C2=A0 I think it's easie=
r to read along in an issue than trying to browse an email chain.
Greg
    On Friday, September 10, 2021, 06:38:07 AM GMT+12, Glyn Normington <gly=
n.normington.work@gmail.com> wrote: =20
=20
 On Thu, 9 Sept 2021 at 14:40, Daniel P <danielaparker@gmail.com> wrote:
>
> On Thu, Sep 9, 2021 at 1:45 AM Carsten Bormann <cabo@tzi.org> wrote:
> >
> > On 2021-09-09, at 05:18, Glyn Normington <glyn.normington.work@gmail.co=
m> wrote:
> > >
> > > Expressions like @.foo and $.foo test for the presence of the key foo=
 in an object (and are false for non-objects),
> >
> > These expressions really return nodelists.
>
> Perhaps in the WG's specification. But specifically regarding @.foo,
> Goessner JavaScript does not return "nodelists", nor do any of the
> implementations that use JavaScript, PHP or Python as a scripting
> language. But also neither does the most widely used of the
> implementations that specify expressions, Jayway JsonPath, which is
> rigged into enterprise Java API's. Together, just these would account
> for the majority of implementations in actual use, I would suggest the
> vast majority.
>
> For the JavaScript implementations, @ corresponds to a Javascript
> variable, and @.foo corresponds to a key lookup in a Javascript
> object, if that fails, it returns undefined, otherwise, it returns a
> single value. Analogous observations can be made about other
> implementations using dynamically typed languages for expression
> evaluation.
>
> For Jayway JsonPath, @.foo is treated as a JSONPath expression and is
> evaluated to a single value following these rules:
>
> - JsonPath selectors that can return multiple results (recursive
> descent, unions, slices, wildcards, paths with expressions) always
> return a JSON array, which can contain zero, one or many values.
> - JsonPath selectors that can only return a single value (identifiers,
> indexes), return a single value.
>
> The result is a JSONPath expression evaluated to a single value. This
> is obviously not equivalent to returning a "nodelist" and selecting
> the 0th element (if it exists).
>
> These observations suggest that it might be helpful to include a note
> in the draft that clarifies the purpose of the WG. Is it to
> standardize existing behaviour?

Yes. Please see our charter:=C2=A0 https://datatracker.ietf.org/wg/jsonpath=
/about/

> What would that mean when the extant
> implementations exhibit different behaviour, and because they are
> entrenched in legacy API's, they cannot change?

The charter says:

"Where there are
differences, the working group will analyze those differences and
make choices that rough consensus considers technically best, with
an aim toward minimizing disruption among the different JSONPath
implementations."

So we don't have to preserve all existing behaviour. It will be up to
each implementation whether or not to migrate to the eventual
standard.

> Or is it to invent
> something new, inspired by the original, picking and choosing from
> popular implementations as the WG sees fit? If something new, should
> it have a different name?

I doubt we want to reinvent JMESPath.

>
> Best regards,
> Daniel

--=20
Jsonpath mailing list
Jsonpath@ietf.org
https://www.ietf.org/mailman/listinfo/jsonpath
 =20
------=_Part_2537841_567094872.1631252825311
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body><div class=3D"ydp10af47a4yahoo-style-wrap" style=
=3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px=
;"><div></div>
        <div dir=3D"ltr" data-setdir=3D"false">I've opened issue 119 (<a hr=
ef=3D"https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base/issues/1=
19" rel=3D"nofollow" target=3D"_blank">https://github.com/ietf-wg-jsonpath/=
draft-ietf-jsonpath-base/issues/119</a>) to continue this discussion.&nbsp;=
 I think it's easier to read along in an issue than trying to browse an ema=
il chain.</div><div dir=3D"ltr" data-setdir=3D"false"><br></div><div dir=3D=
"ltr" data-setdir=3D"false">Greg</div><div><br></div>
       =20
        </div><div id=3D"ydp9675969fyahoo_quoted_2073398211" class=3D"ydp96=
75969fyahoo_quoted">
            <div style=3D"font-family: Helvetica Neue, Helvetica, Arial, sa=
ns-serif; font-size: 13px; color: rgb(38, 40, 42); --darkreader-inline-colo=
r:#fef9f1;" data-darkreader-inline-color=3D"">
               =20
                <div>
                    On Friday, September 10, 2021, 06:38:07 AM GMT+12, Glyn=
 Normington &lt;glyn.normington.work@gmail.com&gt; wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div dir=3D"ltr">On Thu, 9 Sept 2021 at 14:40, Daniel =
P &lt;<a shape=3D"rect" href=3D"mailto:danielaparker@gmail.com" rel=3D"nofo=
llow" target=3D"_blank">danielaparker@gmail.com</a>&gt; wrote:<br clear=3D"=
none">&gt;<br clear=3D"none">&gt; On Thu, Sep 9, 2021 at 1:45 AM Carsten Bo=
rmann &lt;<a shape=3D"rect" href=3D"mailto:cabo@tzi.org" rel=3D"nofollow" t=
arget=3D"_blank">cabo@tzi.org</a>&gt; wrote:<br clear=3D"none">&gt; &gt;<br=
 clear=3D"none">&gt; &gt; On 2021-09-09, at 05:18, Glyn Normington &lt;<a s=
hape=3D"rect" href=3D"mailto:glyn.normington.work@gmail.com" rel=3D"nofollo=
w" target=3D"_blank">glyn.normington.work@gmail.com</a>&gt; wrote:<br clear=
=3D"none">&gt; &gt; &gt;<br clear=3D"none">&gt; &gt; &gt; Expressions like =
@.foo and $.foo test for the presence of the key foo in an object (and are =
false for non-objects),<br clear=3D"none">&gt; &gt;<br clear=3D"none">&gt; =
&gt; These expressions really return nodelists.<br clear=3D"none">&gt;<br c=
lear=3D"none">&gt; Perhaps in the WG's specification. But specifically rega=
rding @.foo,<br clear=3D"none">&gt; Goessner JavaScript does not return "no=
delists", nor do any of the<br clear=3D"none">&gt; implementations that use=
 JavaScript, PHP or Python as a scripting<br clear=3D"none">&gt; language. =
But also neither does the most widely used of the<br clear=3D"none">&gt; im=
plementations that specify expressions, Jayway JsonPath, which is<br clear=
=3D"none">&gt; rigged into enterprise Java API's. Together, just these woul=
d account<br clear=3D"none">&gt; for the majority of implementations in act=
ual use, I would suggest the<br clear=3D"none">&gt; vast majority.<br clear=
=3D"none">&gt;<br clear=3D"none">&gt; For the JavaScript implementations, @=
 corresponds to a Javascript<br clear=3D"none">&gt; variable, and @.foo cor=
responds to a key lookup in a Javascript<br clear=3D"none">&gt; object, if =
that fails, it returns undefined, otherwise, it returns a<br clear=3D"none"=
>&gt; single value. Analogous observations can be made about other<br clear=
=3D"none">&gt; implementations using dynamically typed languages for expres=
sion<br clear=3D"none">&gt; evaluation.<br clear=3D"none">&gt;<br clear=3D"=
none">&gt; For Jayway JsonPath, @.foo is treated as a JSONPath expression a=
nd is<br clear=3D"none">&gt; evaluated to a single value following these ru=
les:<br clear=3D"none">&gt;<br clear=3D"none">&gt; - JsonPath selectors tha=
t can return multiple results (recursive<br clear=3D"none">&gt; descent, un=
ions, slices, wildcards, paths with expressions) always<br clear=3D"none">&=
gt; return a JSON array, which can contain zero, one or many values.<br cle=
ar=3D"none">&gt; - JsonPath selectors that can only return a single value (=
identifiers,<br clear=3D"none">&gt; indexes), return a single value.<br cle=
ar=3D"none">&gt;<br clear=3D"none">&gt; The result is a JSONPath expression=
 evaluated to a single value. This<br clear=3D"none">&gt; is obviously not =
equivalent to returning a "nodelist" and selecting<br clear=3D"none">&gt; t=
he 0th element (if it exists).<br clear=3D"none">&gt;<br clear=3D"none">&gt=
; These observations suggest that it might be helpful to include a note<br =
clear=3D"none">&gt; in the draft that clarifies the purpose of the WG. Is i=
t to<br clear=3D"none">&gt; standardize existing behaviour?<br clear=3D"non=
e"><br clear=3D"none">Yes. Please see our charter:&nbsp; <a shape=3D"rect" =
href=3D"https://datatracker.ietf.org/wg/jsonpath/about/" rel=3D"nofollow" t=
arget=3D"_blank">https://datatracker.ietf.org/wg/jsonpath/about/</a><br cle=
ar=3D"none"><br clear=3D"none">&gt; What would that mean when the extant<br=
 clear=3D"none">&gt; implementations exhibit different behaviour, and becau=
se they are<br clear=3D"none">&gt; entrenched in legacy API's, they cannot =
change?<br clear=3D"none"><br clear=3D"none">The charter says:<br clear=3D"=
none"><br clear=3D"none">"Where there are<br clear=3D"none">differences, th=
e working group will analyze those differences and<br clear=3D"none">make c=
hoices that rough consensus considers technically best, with<br clear=3D"no=
ne">an aim toward minimizing disruption among the different JSONPath<br cle=
ar=3D"none">implementations."<br clear=3D"none"><br clear=3D"none">So we do=
n't have to preserve all existing behaviour. It will be up to<br clear=3D"n=
one">each implementation whether or not to migrate to the eventual<br clear=
=3D"none">standard.<br clear=3D"none"><br clear=3D"none">&gt; Or is it to i=
nvent<br clear=3D"none">&gt; something new, inspired by the original, picki=
ng and choosing from<br clear=3D"none">&gt; popular implementations as the =
WG sees fit? If something new, should<br clear=3D"none">&gt; it have a diff=
erent name?<br clear=3D"none"><br clear=3D"none">I doubt we want to reinven=
t JMESPath.<div class=3D"ydp9675969fyqt1780881876" id=3D"ydp9675969fyqtfd75=
210"><br clear=3D"none"><br clear=3D"none">&gt;<br clear=3D"none">&gt; Best=
 regards,<br clear=3D"none">&gt; Daniel<br clear=3D"none"><br clear=3D"none=
">-- <br clear=3D"none">Jsonpath mailing list<br clear=3D"none"><a shape=3D=
"rect" href=3D"mailto:Jsonpath@ietf.org" rel=3D"nofollow" target=3D"_blank"=
>Jsonpath@ietf.org</a><br clear=3D"none"><a shape=3D"rect" href=3D"https://=
www.ietf.org/mailman/listinfo/jsonpath" rel=3D"nofollow" target=3D"_blank">=
https://www.ietf.org/mailman/listinfo/jsonpath</a><br clear=3D"none"></div>=
</div></div>
            </div>
        </div></body></html>
------=_Part_2537841_567094872.1631252825311--


From nobody Thu Sep  9 23:43:40 2021
Return-Path: <cabo@tzi.org>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 613673A1CC9 for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 23:43:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6bg2iYHWmIIo for <jsonpath@ietfa.amsl.com>; Thu,  9 Sep 2021 23:43:33 -0700 (PDT)
Received: from gabriel-smtp.zfn.uni-bremen.de (gabriel-smtp.zfn.uni-bremen.de [IPv6:2001:638:708:32::15]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 220243A1CC4 for <jsonpath@ietf.org>; Thu,  9 Sep 2021 23:43:33 -0700 (PDT)
Received: from smtpclient.apple (p548dcf6e.dip0.t-ipconnect.de [84.141.207.110]) (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 4H5RCj2S57z2xN9; Fri, 10 Sep 2021 08:43:29 +0200 (CEST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
Date: Fri, 10 Sep 2021 08:43:28 +0200
Cc: Glyn Normington <glyn.normington.work@gmail.com>, jsonpath@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <80BA4238-F40C-4DD4-93E3-8B5FB7AA52C7@tzi.org>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
To: Daniel P <danielaparker@gmail.com>
X-Mailer: Apple Mail (2.3654.120.0.1.13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/bqCElXCAvcrfR6CrASphAx32BMk>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Sep 2021 06:43:38 -0000

On 9. Sep 2021, at 15:40, Daniel P <danielaparker@gmail.com> wrote:
>=20
> standardize existing behaviour

Of course!

But there is a difference between behavior and the model used to =
describe that behavior.
The nodelist is an abstraction that can be used to properly describe =
that existing behavior (or also to clean it up, if that is desired).

Of course we can make a difference between, say, $..foo being used as a =
selector in a JSONpath query expression itself and using the same in the =
expression language, say, in a filter expression or an index expression.

> For the JavaScript implementations, @ corresponds to a Javascript
> variable, and @.foo corresponds to a key lookup in a Javascript
> object, if that fails, it returns undefined, otherwise,

The concept of =E2=80=9Cundefined=E2=80=9D is foreign to JSON.
I think it is almost inevitable that, whatever we do, expression =
constructs in the JSONPath expression language will have ranges and =
domains that include values  like that (i.e., that are not JSON values).

Gr=C3=BC=C3=9Fe, Carsten


From nobody Fri Sep 10 03:38:26 2021
Return-Path: <stefan@goessner.net>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CAF143A1001 for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 03:38:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level: 
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NgnhFl8S2F81 for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 03:38:19 -0700 (PDT)
Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.134]) (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 E40C13A0FF7 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 03:38:18 -0700 (PDT)
Received: from [192.168.178.20] ([87.123.195.239]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1M9Wqa-1mLK0J1kMG-005dOc; Fri, 10 Sep 2021 12:38:07 +0200
To: Daniel P <danielaparker@gmail.com>, Carsten Bormann <cabo@tzi.org>
Cc: jsonpath@ietf.org, Glyn Normington <glyn.normington.work@gmail.com>
References: <CA+mwktJ5vK5R9yuwghrhbVQc=k9XfgbWLSroRoVBq-k6VrTUgQ@mail.gmail.com> <D40559DE-4FB0-4B53-8C14-BE947B259AF8@tzi.org> <CANH0GbLNskXXunYq8r8PMtk_sak0qhc8su_PFfsG0dSe7JFWiA@mail.gmail.com> <C2F119E1-F410-4BD1-A591-DCD52581526B@tzi.org> <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
From: =?UTF-8?Q?Stefan_G=c3=b6ssner?= <stefan@goessner.net>
Message-ID: <2999f0f8-5773-4d70-5b27-67f51862d248@goessner.net>
Date: Fri, 10 Sep 2021 12:38:05 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------5BA630E8C0B70E45584D4587"
X-Provags-ID: V03:K1:Vgnd9jZXWBXOBITGnRa1u24Az253quOabSCp4/78aCLWbe7RJNJ ma1u0nDnt7wG0udyr84SMqgT/JCnSDkDT8fKvBxS2hY5G2LfZMuEMck8+OIU/2SwKZiBhro RN5mHZZQze637bZ5HikrrS10JJ3nkxa3ZDTt8VBLYwszXl1/RNshePzLm3x3p6tec5Mvm0b J8MqRtfp9zvWxd7tUCp/w==
X-UI-Out-Filterresults: notjunk:1;V03:K0:HzJk704Ie6w=:4T4UDCopCfJUkG3lQDKbbR asJ7wdy69/5LhQqh3Sq26R1b4aZWDGXUcYSWrxt1ar6B6jJygBqT9X77BJKjBqcFKvnrLD30i FuBPiAH4mHNv2zPHXrgeMj4rcSvV5r+MNc60hjt/f7Mwyujss966N6o95cq8F9Mbkp4A9cKvJ ndLMtt86poNEp6V9r7E2JlP16nBNYeugRkcreeZUwxfszKDBYAfM9BAMXeG4kB+9FgPke0Pab aHI4IvUjH/XjwpSVxua84bmtjP/8+txSxLuD/Xkrni08wLcOV4vsr8WeVYLa2CBPuiyfKUgH7 QyIPEjNQ6eaRgr0Rxwiq0XR1WWoy/CUudZPcAw1HcxP5ber18MTvtgrIgoj0yL7pkuVwfI0Y7 dDr0RAk27QTEPCcHxHdocL/ryuE/+FCFPh6tBHvbdWNEEEPE/rVSirmqqm4Gs+vbAfYEZsOSn h+FFqQbMO8GqiatIH9xn7Z35nTY9rM5uTQm5t6AkHvb8WzLx02bSu+Z+VWVpeGbaWxcPrvsSe kbCiBkH66HBC2Rm/qGX911hjbxW6iJJMpr4g9o86SqoxGuthNlEv6YjwhLWm4tyeYaU4Sxfzz pQcXdZEXpVhlabSEWTMvYTpwrDfbno1jUNjJ9grPRdI6tujbKoLDETpVqaexisDG7O3Di9xt3 WddmEZ12z6a9M22XPUg383YiarpRpts4Sefn18sTEwwoAoqrglbyMDqzf760LP3I4vbrrz8ab DzVQCGNOphByM/NlokMTtUvvfWMrJEBihu3SZA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/K3fT-rDk5ehsrG1j_QS6dlZdcD8>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Sep 2021 10:38:24 -0000

This is a multi-part message in MIME format.
--------------5BA630E8C0B70E45584D4587
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

The latest draft is quite clear:

 > The query is a sequence of zero or more /selectors/, each of which is 
applied to the result of the previous selector and provides input to the 
next selector. These results and inputs take the form of a /nodelist/, 
i.e., a sequence of zero or more nodes.

In my mental model a 'nodelist' is simply an abstract form of a sequence 
of nodes of the tree representation of the query's JSON argument. That 
abstract form is used by implementations internally and mostly coded via 
arrays then - which is implementation specific though.

I have a very strong opinion about fundamental working of JSONPath by 
"JSON in - JSON out". Only that way we can apply a JSONPath query to the 
result of another query ... implying a result array of course. 
Optionally the result array does not contain values, but normalized 
pathes of the selected nodes, which is a concrete instance of the 
abstract resulting nodelist then.

I see your post as a hint for us to perhaps concretise the 'nodelist' 
definition in the spec and check its use throughout the text.
--
sg


Am 09.09.2021 um 15:40 schrieb Daniel P:
> On Thu, Sep 9, 2021 at 1:45 AM Carsten Bormann <cabo@tzi.org> wrote:
>> On 2021-09-09, at 05:18, Glyn Normington <glyn.normington.work@gmail.com> wrote:
>>> Expressions like @.foo and $.foo test for the presence of the key foo in an object (and are false for non-objects),
>> These expressions really return nodelists.
> Perhaps in the WG's specification. But specifically regarding @.foo,
> Goessner JavaScript does not return "nodelists", nor do any of the
> implementations that use JavaScript, PHP or Python as a scripting
> language. But also neither does the most widely used of the
> implementations that specify expressions, Jayway JsonPath, which is
> rigged into enterprise Java API's. Together, just these would account
> for the majority of implementations in actual use, I would suggest the
> vast majority.
>
> For the JavaScript implementations, @ corresponds to a Javascript
> variable, and @.foo corresponds to a key lookup in a Javascript
> object, if that fails, it returns undefined, otherwise, it returns a
> single value. Analogous observations can be made about other
> implementations using dynamically typed languages for expression
> evaluation.
>
> For Jayway JsonPath, @.foo is treated as a JSONPath expression and is
> evaluated to a single value following these rules:
>
> - JsonPath selectors that can return multiple results (recursive
> descent, unions, slices, wildcards, paths with expressions) always
> return a JSON array, which can contain zero, one or many values.
> - JsonPath selectors that can only return a single value (identifiers,
> indexes), return a single value.
>
> The result is a JSONPath expression evaluated to a single value. This
> is obviously not equivalent to returning a "nodelist" and selecting
> the 0th element (if it exists).
>
> These observations suggest that it might be helpful to include a note
> in the draft that clarifies the purpose of the WG. Is it to
> standardize existing behaviour? What would that mean when the extant
> implementations exhibit different behaviour, and because they are
> entrenched in legacy API's, they cannot change? Or is it to invent
> something new, inspired by the original, picking and choosing from
> popular implementations as the WG sees fit? If something new, should
> it have a different name?
>
> Best regards,
> Daniel
>


--------------5BA630E8C0B70E45584D4587
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1"><font face="Courier New">The latest draft is quite
        clear:<br>
        <br>
        &gt; </font></font><font size="-1"><font face="Courier New">The
        query is a sequence of zero or more <em>selectors</em>, each of
        which is applied to the result of the previous selector and
        provides
        input to the next selector.
        These results and inputs take the form of a <em>nodelist</em>,
        i.e., a
        sequence of zero or more nodes.<br>
        <br>
        In my mental model a 'nodelist' is simply an abstract form of a
        sequence of nodes of the tree representation of the </font></font><font
      size="-1"><font face="Courier New"><font size="-1"><font
            face="Courier New">query's </font></font>JSON argument.
        That abstract form is used by implementations internally and
        mostly coded via arrays then - which is implementation specific
        though.<br>
        <br>
        I have a very strong opinion about fundamental working of
        JSONPath by "JSON in - JSON out". Only that way we can apply a
        JSONPath query to the result of another query ... implying a
        result array of course. Optionally the result array does not
        contain values, but normalized pathes of the selected nodes,
        which is a concrete instance of the abstract resulting nodelist
        then.<br>
        <br>
        I see your post as a hint for us to perhaps concretise the
        'nodelist' definition in the spec and check its use throughout
        the text.<br>
        --<br>
        sg<br>
        <br>
      </font></font><br>
    <div class="moz-cite-prefix">Am 09.09.2021 um 15:40 schrieb Daniel
      P:<br>
    </div>
    <blockquote type="cite"
cite="mid:CA+mwktL7FnTNBWuJCqb2_0k9NTHbMyyVDQHw36rFccyKEAd0oA@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">On Thu, Sep 9, 2021 at 1:45 AM Carsten Bormann <a class="moz-txt-link-rfc2396E" href="mailto:cabo@tzi.org">&lt;cabo@tzi.org&gt;</a> wrote:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">
On 2021-09-09, at 05:18, Glyn Normington <a class="moz-txt-link-rfc2396E" href="mailto:glyn.normington.work@gmail.com">&lt;glyn.normington.work@gmail.com&gt;</a> wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">
Expressions like @.foo and $.foo test for the presence of the key foo in an object (and are false for non-objects),
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
These expressions really return nodelists.
</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">
Perhaps in the WG's specification. But specifically regarding @.foo,
Goessner JavaScript does not return "nodelists", nor do any of the
implementations that use JavaScript, PHP or Python as a scripting
language. But also neither does the most widely used of the
implementations that specify expressions, Jayway JsonPath, which is
rigged into enterprise Java API's. Together, just these would account
for the majority of implementations in actual use, I would suggest the
vast majority.

For the JavaScript implementations, @ corresponds to a Javascript
variable, and @.foo corresponds to a key lookup in a Javascript
object, if that fails, it returns undefined, otherwise, it returns a
single value. Analogous observations can be made about other
implementations using dynamically typed languages for expression
evaluation.

For Jayway JsonPath, @.foo is treated as a JSONPath expression and is
evaluated to a single value following these rules:

- JsonPath selectors that can return multiple results (recursive
descent, unions, slices, wildcards, paths with expressions) always
return a JSON array, which can contain zero, one or many values.
- JsonPath selectors that can only return a single value (identifiers,
indexes), return a single value.

The result is a JSONPath expression evaluated to a single value. This
is obviously not equivalent to returning a "nodelist" and selecting
the 0th element (if it exists).

These observations suggest that it might be helpful to include a note
in the draft that clarifies the purpose of the WG. Is it to
standardize existing behaviour? What would that mean when the extant
implementations exhibit different behaviour, and because they are
entrenched in legacy API's, they cannot change? Or is it to invent
something new, inspired by the original, picking and choosing from
popular implementations as the WG sees fit? If something new, should
it have a different name?

Best regards,
Daniel

</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------5BA630E8C0B70E45584D4587--


From nobody Fri Sep 10 05:25:07 2021
Return-Path: <stefan@goessner.net>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AB8833A0C6F for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 05:25:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UKDvE53Lrbdg for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 05:24:58 -0700 (PDT)
Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.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 C099B3A0CA6 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 05:24:57 -0700 (PDT)
Received: from [192.168.178.20] ([87.123.195.239]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MtPzy-1nDrzX2eDO-00unsU; Fri, 10 Sep 2021 14:24:45 +0200
To: Glyn Normington <glyn.normington.work@gmail.com>, Carsten Bormann <cabo@tzi.org>
Cc: jsonpath@ietf.org
References: <CANH0Gb+CmFYDvda_te2aWMsLh-Vc_jEL-wBvNF_Pyedi71JcJA@mail.gmail.com> <29436C3A-7AE6-454E-A6D2-D6514906521D@tzi.org> <CANH0Gb+VuWkNubiSmpmwCry6+YaOA=ohR8Xd7sWH8FLbE=kLwA@mail.gmail.com>
From: =?UTF-8?Q?Stefan_G=c3=b6ssner?= <stefan@goessner.net>
Message-ID: <d508db96-10da-2dfe-9745-3079dd49e656@goessner.net>
Date: Fri, 10 Sep 2021 14:24:45 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
MIME-Version: 1.0
In-Reply-To: <CANH0Gb+VuWkNubiSmpmwCry6+YaOA=ohR8Xd7sWH8FLbE=kLwA@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------49FF67142F1DD6893BB89B5B"
X-Provags-ID: V03:K1:cCp+5dp5ipySIrscSlhoPcYMiIAeChD3q3uuUq5Wcd9EucVDBBf ICA9utvYI7G1DNimoKhgSDH4n8+oPg2LhipOgop0hpflPQRP2pOtDTHrdrEReGhOoxDxl2T pSaAyeeFfKAAyVwWSMlK8EZfJoh1L1WPl6iZEwg28sfLD0MNNjePIU6jiQRCmUSt/mGLMoH V5FuExoqCjGOsb2yMqjTA==
X-UI-Out-Filterresults: notjunk:1;V03:K0:4DscfJZaOhU=:thrtIg2FaAWhn+ltHmgZxs vkovo2RCIyRWgk5TrSVRdsZkYMvZDmCb48wOypwII2UD+PdCXPrfhIK1JHG2un001rct9SSMG 38Vcb+/Z/ZALGNHclCsYMzKauqLiwqCsq0OjrLCV2Yx8NgaJa9YZhbYvlaSGPGWWTdQnV8stO srqrS+Azqu4yMrxQQufqUyHGmv3eIJHBw6T8qhAvgaSI22KgF+uz5hdBBJlerz8LUAy7UFZzU JApcM1M4hDOB3KematHmQGOKxlqM7Af+Y0Fy6ZO3JshBKhxDo0yanN4/22Cf+2ARUk+dPzrtG Gt++cahqEsDlSm+9gQM0OBK9zZ3eQKkP4AcTs/yKCiMLovJ6vAdWbcJYa7T5eL7SZXGbv/chS InvKG/21wBVDk8GrKRttx6PJ9drPrZRAbIBf0YztQuF5VB/t0u97PNXBv2rM3iqeYRppujz8V l8oFH0iQVWJSoFLgVvmJBUp0vAmOh7Xw1oUWFWW3AId4k1iMsMl3OULVeDDAKRZBnWJkqylCc RxTqhTQLHAfWpY6K8KbRuJ4+stLZEQAgEhtvlTmdiyj69piVco80I5xQDmzeViCeCEDuXeJl7 78GWgRF76HckzVACtXurOp1ZK3b5UI3ND+zsJgZYIeUhbZ1+eDLFPs+rcUdu4bkd3doFQIx7A lbzeSDVFi8GdzOujNV5R8gCkQfiRxRyHJRGFcxFKb6ye47WQ/6nvXgiX58Cc9Pfj5/NoPTu/8 e344jLhOo+T/hftJ/L4gmCHrkoaQKECHj3I93Q==
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/4OibUO64BoTaS20KkM3JUALN7dE>
Subject: Re: [Jsonpath] Partial determinism of the descendant selector (..)
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Sep 2021 12:25:04 -0000

This is a multi-part message in MIME format.
--------------49FF67142F1DD6893BB89B5B
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

I must confess, that I am quite passionless here, but I can see the 
usefulness for test. I am open to arguments in any directions, as long 
as it not too restrictive seen from implementations.
--
sg


Am 17.08.2021 um 12:43 schrieb Glyn Normington:
> On Mon, 16 Aug 2021 at 15:50, Carsten Bormann <cabo@tzi.org 
> <mailto:cabo@tzi.org>> wrote:
>
>     On 2021-08-16, at 16:07, Glyn Normington
>     <glyn.normington.work@gmail.com
>     <mailto:glyn.normington.work@gmail.com>> wrote:
>     >
>     > This topic is covered in issue 103, which seems to have stalled,
>     so let me put the main options to the mailing list to try to
>     discern any consensus.
>     > Regardless of the detailed language, please could you indicate
>     which of these options you favour:
>     >
>     > A. Don't tie down the non-determinism of .. at all
>     >
>     > B. Require .. to visit arrays in array order and visit nodes
>     before their descendants
>
>     Yes.
>     (There is no order in maps, so this is as deterministic as it can
>     get.)
>     BTW, the term “pre-order” [1] is in wide use as a handy term for
>     "visit nodes before their descendants” (we would still define it
>     that way).
>
>
> At the risk of another digression, pre-order is more prescriptive than 
> "visit nodes before their descendants". Take this example from [1]:
>
> image.png
>
>
> Pre-order traversal would be "F, B, A, D, C, E, G, I, H", but "visit 
> nodes before their descendants” allows more possibilities, such as "F, 
> B, G, A, D, C, I, E, H".
>
> By being less prescriptive, I was trying to allow for parallel 
> implementations.
>
>
>     > C. Some other option involving B with the option of A or A with
>     the option of B, using some kind of language TBD.
>
>     Yes, as well :-).
>     We haven’t really discussed levels of compliance, and a version of
>     “doesn’t return .. in order” could be a form of conditional
>     compliance.
>     *If* we think we need this to drag some implementations along.
>     (That is, I’d like to hear arguments of the form “We’d lose
>     foomatic’s JSONPath implementation because they make a point of
>     returning arrays in reverse order on Fridays” before we load
>     ourselves with conditional compliance.)
>
>     Grüße, Carsten
>
>     [1]: https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR
>     <https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR>
>     (This article talks about binary trees only, probably because they
>     want to discuss in-order as well, which only makes sense for
>     binary trees.)
>
>     > D. Something else, in which case please say what.
>     >
>     > Regards,
>     >
>     > Glyn
>     >
>     >
>     >
>     > --
>     > Jsonpath mailing list
>     > Jsonpath@ietf.org <mailto:Jsonpath@ietf.org>
>     > https://www.ietf.org/mailman/listinfo/jsonpath
>     <https://www.ietf.org/mailman/listinfo/jsonpath>
>
>
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
> 	Virenfrei. www.avg.com 
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
>
>
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>


--------------49FF67142F1DD6893BB89B5B
Content-Type: multipart/related;
 boundary="------------83F4856C4292000876922556"


--------------83F4856C4292000876922556
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font size="-1"><font face="Courier New">I must confess, that I am
        quite passionless here, but I can see the usefulness for test. I
        am open to arguments in any directions, as long as it not too
        restrictive seen from implementations.<br>
        --<br>
        sg<br>
        <br>
      </font></font><br>
    <div class="moz-cite-prefix">Am 17.08.2021 um 12:43 schrieb Glyn
      Normington:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANH0Gb+VuWkNubiSmpmwCry6+YaOA=ohR8Xd7sWH8FLbE=kLwA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Mon, 16 Aug 2021 at
            15:50, Carsten Bormann &lt;<a href="mailto:cabo@tzi.org"
              moz-do-not-send="true">cabo@tzi.org</a>&gt; wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">On 2021-08-16, at 16:07,
            Glyn Normington &lt;<a
              href="mailto:glyn.normington.work@gmail.com"
              target="_blank" moz-do-not-send="true">glyn.normington.work@gmail.com</a>&gt;
            wrote:<br>
            &gt; <br>
            &gt; This topic is covered in issue 103, which seems to have
            stalled, so let me put the main options to the mailing list
            to try to discern any consensus.<br>
            &gt; Regardless of the detailed language, please could you
            indicate which of these options you favour:<br>
            &gt; <br>
            &gt; A. Don't tie down the non-determinism of .. at all<br>
            &gt; <br>
            &gt; B. Require .. to visit arrays in array order and visit
            nodes before their descendants<br>
            <br>
            Yes.<br>
            (There is no order in maps, so this is as deterministic as
            it can get.)<br>
            BTW, the term “pre-order” [1] is in wide use as a handy term
            for "visit nodes before their descendants” (we would still
            define it that way).<br>
          </blockquote>
          <div><br>
          </div>
          <div>At the risk of another digression, pre-order is more
            prescriptive than "visit nodes before their descendants".
            Take this example from [1]:</div>
          <div><br>
          </div>
          <div><img src="cid:part3.AA520100.723CBCDD@goessner.net"
              alt="image.png" class="" width="293" height="250"><br>
            <br>
          </div>
          <div><br>
          </div>
          <div> Pre-order traversal would be "F, B, A, D, C, E, G, I,
            H", but "visit nodes before their descendants” allows more
            possibilities, such as "F, B, G, A, D, C, I, E, H".</div>
          <div><br>
          </div>
          <div>By being less prescriptive, I was trying to allow for
            parallel implementations.<br>
          </div>
          <div> </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <br>
            &gt; C. Some other option involving B with the option of A
            or A with the option of B, using some kind of language TBD.<br>
            <br>
            Yes, as well :-).<br>
            We haven’t really discussed levels of compliance, and a
            version of “doesn’t return .. in order” could be a form of
            conditional compliance.<br>
            *If* we think we need this to drag some implementations
            along.<br>
            (That is, I’d like to hear arguments of the form “We’d lose
            foomatic’s JSONPath implementation because they make a point
            of returning arrays in reverse order on Fridays” before we
            load ourselves with conditional compliance.)<br>
            <br>
            Grüße, Carsten<br>
            <br>
            [1]: <a
              href="https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR"
              rel="noreferrer" target="_blank" moz-do-not-send="true">https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR</a><br>
            (This article talks about binary trees only, probably
            because they want to discuss in-order as well, which only
            makes sense for binary trees.)<br>
            <br>
            &gt; D. Something else, in which case please say what.<br>
            &gt; <br>
            &gt; Regards,<br>
            &gt; <br>
            &gt; Glyn<br>
            &gt; <br>
            &gt; <br>
            &gt; <br>
            &gt; -- <br>
            &gt; Jsonpath mailing list<br>
            &gt; <a href="mailto:Jsonpath@ietf.org" target="_blank"
              moz-do-not-send="true">Jsonpath@ietf.org</a><br>
            &gt; <a
              href="https://www.ietf.org/mailman/listinfo/jsonpath"
              rel="noreferrer" target="_blank" moz-do-not-send="true">https://www.ietf.org/mailman/listinfo/jsonpath</a><br>
            <br>
          </blockquote>
        </div>
      </div>
      <div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
        <table style="border-top: 1px solid #D3D4DE;">
          <tbody>
            <tr>
              <td style="width: 55px; padding-top: 18px;"><a
href="http://www.avg.com/email-signature?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=emailclient"
                  target="_blank" moz-do-not-send="true"><img
src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"
                    alt="" style="width: 46px; height: 29px;"
                    moz-do-not-send="true" width="46" height="29"></a></td>
              <td style="width: 470px; padding-top: 17px; color:
                #41424e; font-size: 13px; font-family: Arial, Helvetica,
                sans-serif; line-height: 18px;">Virenfrei. <a
href="http://www.avg.com/email-signature?utm_medium=email&amp;utm_source=link&amp;utm_campaign=sig-email&amp;utm_content=emailclient"
                  target="_blank" style="color: #4453ea;"
                  moz-do-not-send="true">www.avg.com</a> </td>
            </tr>
          </tbody>
        </table>
        <a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1"
          height="1" moz-do-not-send="true"> </a></div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
    </blockquote>
    <br>
  </body>
</html>

--------------83F4856C4292000876922556
Content-Type: image/png;
 name="image.png"
Content-Transfer-Encoding: base64
Content-ID: <part3.AA520100.723CBCDD@goessner.net>
Content-Disposition: inline;
 filename="image.png"

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
--------------83F4856C4292000876922556--

--------------49FF67142F1DD6893BB89B5B--


From nobody Fri Sep 10 14:40:47 2021
Return-Path: <tbray@textuality.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EEB173A1D46 for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 14:40:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=textuality-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2xZbIDRvY2KM for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 14:40:40 -0700 (PDT)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B12713A1D41 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 14:40:39 -0700 (PDT)
Received: by mail-lf1-x12b.google.com with SMTP id s10so6765692lfr.11 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 14:40:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=textuality-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3ePittJqlihypFOsIfyEWepAzmaZ9y0mT7fPXy6FtTM=; b=Rgitfxc2fQfGjRzZeTksN8RxFOQ8tv6p4b+7QG+jZ7gyglbuclqRyKWgLZhN2PkuoK LhehrWFXsJ8nnrliC9GZzHt+pVhMvnP950bYogNgiYVdJqSikDnuong8Cy91GzRrUBkC 85PzFe4plhV1oyAV0I7U0Xp/DgYHoEzKiozUG40Rz3+pW3Iq0O2eUKFK32aSftrQGHOR 0w1ICcCp8SCeLxXyt8lr2omgQj/HxR0vjs+gktGw9YLZ76JfFbkgQmMleXwLLzLmkUC6 6gTF7Cl1NJbToLIGFrx6zIV9iLxYeArTXCWHeHxjorreSSs/XQf0MapD4+1gRL3OoxU9 zzZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3ePittJqlihypFOsIfyEWepAzmaZ9y0mT7fPXy6FtTM=; b=rOZvj4BkN4fwr84SdzBMILWeF3geJRrNqTeaYRYB8cOlNWn8RKbNtPBPlNd9TjsXpJ JCHDG9zKD++KxNA9cMjMoLQSfqi3TNuDILSFW/o4hBIMySUfMYzx9pE/DmwAPuU6gL3K 1iKLiKwvS1MgK4Dz/aNFVns+reqzB7COV74EcZO8yofwbrF3ctajSkHGjQ3T5u60y/PA IdcKhh+igbQbtgjYsIB7b4FIK1GKK63nra0RXplgemZ9l6sVckwKa523J/OD3GpsdiLG 8AbzTTQoUm2Sls2COIxH37YPe0GiLhnSz5vant41bVsZnPCglVAJTrNV/TkHr48alZoB ypeg==
X-Gm-Message-State: AOAM532Y5bK4+e2oAdAGpCgD91eXeLGGkj21WG9M/f4X9mUQO2mLEzqR TZ0DoepCniymOhOX/fTK6rkbuUbOuoNJmaRmbtvgqg==
X-Google-Smtp-Source: ABdhPJwaFpbQvpg2yX6PhsK5xqOAb3RnBfvVnVlfiHTLiwfuJrzhYRNFdXRjj2tI6uy7SCK3adFiSN3fXtdRgFSmtcM=
X-Received: by 2002:a05:6512:2310:: with SMTP id o16mr5335834lfu.646.1631310035247;  Fri, 10 Sep 2021 14:40:35 -0700 (PDT)
MIME-Version: 1.0
References: <CANH0Gb+CmFYDvda_te2aWMsLh-Vc_jEL-wBvNF_Pyedi71JcJA@mail.gmail.com> <29436C3A-7AE6-454E-A6D2-D6514906521D@tzi.org>
In-Reply-To: <29436C3A-7AE6-454E-A6D2-D6514906521D@tzi.org>
From: Tim Bray <tbray@textuality.com>
Date: Fri, 10 Sep 2021 14:40:23 -0700
Message-ID: <CAHBU6iu2_LZF3skp4hc6xY8PLmkm=CYNjJb11cxZ+KsR9NuVhQ@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Glyn Normington <glyn.normington.work@gmail.com>, jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="0000000000002b786705cbaaf7d7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/nw3rKSbFqXx2VqKRbD5i2hXuqOc>
Subject: Re: [Jsonpath] Partial determinism of the descendant selector (..)
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 10 Sep 2021 21:40:45 -0000

--0000000000002b786705cbaaf7d7
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I would much prefer to avoid levels of compliance to the degree possible,
so I am in favor of option B.

I'd go further and be in favor of strict pre-order. In this case I think
being unsurprisingly deterministic is more important than hypothetical
optimizations that might turn out to unlock parallel implementations which
might be relevant to some proportion of users.  Anyhow, if you told me to
write a parallel implementation that preserved pre-order, I think I could,
by having each thread remember the array index it's rooted at, then
re-stitching together, no?

On Mon, Aug 16, 2021 at 7:50 AM Carsten Bormann <cabo@tzi.org> wrote:

> On 2021-08-16, at 16:07, Glyn Normington <glyn.normington.work@gmail.com>
> wrote:
> >
> > This topic is covered in issue 103, which seems to have stalled, so let
> me put the main options to the mailing list to try to discern any consens=
us.
> > Regardless of the detailed language, please could you indicate which of
> these options you favour:
> >
> > A. Don't tie down the non-determinism of .. at all
> >
> > B. Require .. to visit arrays in array order and visit nodes before
> their descendants
>
> Yes.
> (There is no order in maps, so this is as deterministic as it can get.)
> BTW, the term =E2=80=9Cpre-order=E2=80=9D [1] is in wide use as a handy t=
erm for "visit
> nodes before their descendants=E2=80=9D (we would still define it that wa=
y).
>
> > C. Some other option involving B with the option of A or A with the
> option of B, using some kind of language TBD.
>
> Yes, as well :-).
> We haven=E2=80=99t really discussed levels of compliance, and a version o=
f
> =E2=80=9Cdoesn=E2=80=99t return .. in order=E2=80=9D could be a form of c=
onditional compliance.
> *If* we think we need this to drag some implementations along.
> (That is, I=E2=80=99d like to hear arguments of the form =E2=80=9CWe=E2=
=80=99d lose foomatic=E2=80=99s
> JSONPath implementation because they make a point of returning arrays in
> reverse order on Fridays=E2=80=9D before we load ourselves with condition=
al
> compliance.)
>
> Gr=C3=BC=C3=9Fe, Carsten
>
> [1]: https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR
> (This article talks about binary trees only, probably because they want t=
o
> discuss in-order as well, which only makes sense for binary trees.)
>
> > D. Something else, in which case please say what.
> >
> > Regards,
> >
> > Glyn
> >
> >
> >
> > --
> > Jsonpath mailing list
> > Jsonpath@ietf.org
> > https://www.ietf.org/mailman/listinfo/jsonpath
>
> --
> Jsonpath mailing list
> Jsonpath@ietf.org
> https://www.ietf.org/mailman/listinfo/jsonpath
>

--0000000000002b786705cbaaf7d7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small">I w=
ould much prefer to avoid levels of compliance to the degree possible, so I=
 am in favor of option B.</div><div class=3D"gmail_default" style=3D"font-s=
ize:small"><br></div><div class=3D"gmail_default" style=3D"font-size:small"=
>I&#39;d go further and be in favor of strict pre-order. In this case I thi=
nk being unsurprisingly deterministic is more important than hypothetical o=
ptimizations that might turn out to unlock parallel implementations which m=
ight be relevant to some proportion of users.=C2=A0 Anyhow, if you told me =
to write a parallel implementation that preserved pre-order, I think I coul=
d, by having each thread remember the array index it&#39;s rooted at, then =
re-stitching together, no?</div></div><br><div class=3D"gmail_quote"><div d=
ir=3D"ltr" class=3D"gmail_attr">On Mon, Aug 16, 2021 at 7:50 AM Carsten Bor=
mann &lt;<a href=3D"mailto:cabo@tzi.org">cabo@tzi.org</a>&gt; wrote:<br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204=
);padding-left:1ex">On 2021-08-16, at 16:07, Glyn Normington &lt;<a href=3D=
"mailto:glyn.normington.work@gmail.com" target=3D"_blank">glyn.normington.w=
ork@gmail.com</a>&gt; wrote:<br>
&gt; <br>
&gt; This topic is covered in issue 103, which seems to have stalled, so le=
t me put the main options to the mailing list to try to discern any consens=
us.<br>
&gt; Regardless of the detailed language, please could you indicate which o=
f these options you favour:<br>
&gt; <br>
&gt; A. Don&#39;t tie down the non-determinism of .. at all<br>
&gt; <br>
&gt; B. Require .. to visit arrays in array order and visit nodes before th=
eir descendants<br>
<br>
Yes.<br>
(There is no order in maps, so this is as deterministic as it can get.)<br>
BTW, the term =E2=80=9Cpre-order=E2=80=9D [1] is in wide use as a handy ter=
m for &quot;visit nodes before their descendants=E2=80=9D (we would still d=
efine it that way).<br>
<br>
&gt; C. Some other option involving B with the option of A or A with the op=
tion of B, using some kind of language TBD.<br>
<br>
Yes, as well :-).<br>
We haven=E2=80=99t really discussed levels of compliance, and a version of =
=E2=80=9Cdoesn=E2=80=99t return .. in order=E2=80=9D could be a form of con=
ditional compliance.<br>
*If* we think we need this to drag some implementations along.<br>
(That is, I=E2=80=99d like to hear arguments of the form =E2=80=9CWe=E2=80=
=99d lose foomatic=E2=80=99s JSONPath implementation because they make a po=
int of returning arrays in reverse order on Fridays=E2=80=9D before we load=
 ourselves with conditional compliance.)<br>
<br>
Gr=C3=BC=C3=9Fe, Carsten<br>
<br>
[1]: <a href=3D"https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR=
" rel=3D"noreferrer" target=3D"_blank">https://en.wikipedia.org/wiki/Tree_t=
raversal#Pre-order,_NLR</a><br>
(This article talks about binary trees only, probably because they want to =
discuss in-order as well, which only makes sense for binary trees.)<br>
<br>
&gt; D. Something else, in which case please say what.<br>
&gt; <br>
&gt; Regards,<br>
&gt; <br>
&gt; Glyn<br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Jsonpath mailing list<br>
&gt; <a href=3D"mailto:Jsonpath@ietf.org" target=3D"_blank">Jsonpath@ietf.o=
rg</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" rel=3D"nore=
ferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/jsonpath</a=
><br>
<br>
-- <br>
Jsonpath mailing list<br>
<a href=3D"mailto:Jsonpath@ietf.org" target=3D"_blank">Jsonpath@ietf.org</a=
><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" rel=3D"noreferre=
r" target=3D"_blank">https://www.ietf.org/mailman/listinfo/jsonpath</a><br>
</blockquote></div>

--0000000000002b786705cbaaf7d7--


From nobody Fri Sep 10 17:18:10 2021
Return-Path: <duerst@it.aoyama.ac.jp>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4325B3A261A for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 17:18:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MSGID_FROM_MTA_HEADER=0.001, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 43O12F0LQbGz for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 17:18:03 -0700 (PDT)
Received: from JPN01-OS2-obe.outbound.protection.outlook.com (mail-eopbgr1410120.outbound.protection.outlook.com [40.107.141.120]) (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 2BF273A2616 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 17:18:02 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZaOFiyCg6mmgxQx050i7E6ioMsll0XO7NoPmpPWdLGUfwGv1dZU/nHohAxsPUKXzXRXMBCrrHNRsNtUTquUBd5Iv2ATBuMH/aVNA5QHIgzxPhNddEbymuweBIUY0crFCv8UxB/L5vQ7lv4ISW+vgJZXtfkwTKS3etpP8ytaNQ27Sz8FzeGYKHKCMo2XtqTNCx7w3wjfv0RLEnya7E/vR/haHt5gOwGMkPSSZyroExY7WkEkSC2A0Y7u0GLlgxWU1uTgVpKA9Myy7AcSj9GAhiGYWgc69mcVSrUHmRgkObN/UelB64DfhFDlBJ8iJc14RUcwua6xVeceMpdxFUrT7EA==
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;  bh=wo7UNe2rwcKQnvQDJW53ZY6yhvqOj5iWXntX+IZVHNk=; b=Em8mBhsPIOi4Uau6UkW4hdZw5yv9D5AxhzAYgaVldECMLG8EuweM35WW7ERSceNWOs5IBFggksoH+Kyck/8Y2obHFv95NEeeYeG2DGXQFvGtTEYO3QQ6QjhvZ0PF/Cbu680FIDsuyq+GraghcYIvwHEeTGSkQKWwwYoBhUsnfy3fyzik/IY5pbbkb/nZgSK6d7tMgSLdNcUW03u3gJHs2GRXPmKEwws9B4Hejn4qvVjjXkx60Ch+x3/4q9HvBvHlVy4lcdRHUD1i88HgFiAaB3zqrF+/APzABTUupGO4o+gfz7zN0Yd2esXCp3gFlgpYZLKZGjz2OewnCeyok81oVA==
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=wo7UNe2rwcKQnvQDJW53ZY6yhvqOj5iWXntX+IZVHNk=; b=fjg/OQh1y1V6tKtcxZ114hKKp/aIDuTzFdJ5WpbMfD0zOFOXfc452O2fV84973ByYF8xUBudI1Or1Jpqr5TkU1782XuVSP+jjKQyVKc/E+PsdJHGUp4gsu9ov8Oz5GEb/uw01r7JjabAZ3pzjEjzq7I1XDUHe1pQ0QccaIEKmJ8=
Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=it.aoyama.ac.jp;
Received: from TYAPR01MB5689.jpnprd01.prod.outlook.com (2603:1096:404:8053::7) by TYCPR01MB6032.jpnprd01.prod.outlook.com (2603:1096:400:49::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.17; Sat, 11 Sep 2021 00:17:59 +0000
Received: from TYAPR01MB5689.jpnprd01.prod.outlook.com ([fe80::b982:f188:bcd1:a798]) by TYAPR01MB5689.jpnprd01.prod.outlook.com ([fe80::b982:f188:bcd1:a798%7]) with mapi id 15.20.4500.018; Sat, 11 Sep 2021 00:17:59 +0000
To: Tim Bray <tbray@textuality.com>, Carsten Bormann <cabo@tzi.org>
Cc: jsonpath@ietf.org, Glyn Normington <glyn.normington.work@gmail.com>
References: <CANH0Gb+CmFYDvda_te2aWMsLh-Vc_jEL-wBvNF_Pyedi71JcJA@mail.gmail.com> <29436C3A-7AE6-454E-A6D2-D6514906521D@tzi.org> <CAHBU6iu2_LZF3skp4hc6xY8PLmkm=CYNjJb11cxZ+KsR9NuVhQ@mail.gmail.com>
From: =?UTF-8?Q?Martin_J=2e_D=c3=bcrst?= <duerst@it.aoyama.ac.jp>
Organization: Aoyama Gakuin University
Message-ID: <3e0b9c1b-a0c8-b8fe-d5e6-5b35a9adaf07@it.aoyama.ac.jp>
Date: Sat, 11 Sep 2021 09:17:57 +0900
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0
In-Reply-To: <CAHBU6iu2_LZF3skp4hc6xY8PLmkm=CYNjJb11cxZ+KsR9NuVhQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-ClientProxiedBy: TYAPR01CA0150.jpnprd01.prod.outlook.com (2603:1096:404:7e::18) To TYAPR01MB5689.jpnprd01.prod.outlook.com (2603:1096:404:8053::7)
MIME-Version: 1.0
X-MS-Exchange-MessageSentRepresentingType: 1
Received: from [192.168.1.12] (60.41.161.248) by TYAPR01CA0150.jpnprd01.prod.outlook.com (2603:1096:404:7e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Sat, 11 Sep 2021 00:17:58 +0000
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: bbb6a288-12b0-455b-be2a-08d974b99c57
X-MS-TrafficTypeDiagnostic: TYCPR01MB6032:
X-Microsoft-Antispam-PRVS: <TYCPR01MB6032154BBD150399C70B0FF8CAD79@TYCPR01MB6032.jpnprd01.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:8882;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: aP91ENolBlelGJeh8fS+jFKwshDOdX/mlgySWNHy5jKJLSirxrPSwd6Fon7v8xOa7n+tRTAoeWsRygiLiPZ5KSqFoM3JaUZuSb7DyTR9raGiFrtNPzDPS6DTK8tbPtMzuoZeGEj0M7gAhPFni7A9ObRx7gdm1wDleqgWV2aGedgMY+ry+aWfkKZjZJArT1jKBz6eXCZVnhvgAqbtwZcv7zpU/U5eAXXHbjNl9Bpy/e/HsXnG8F+UdZaDiUQsICz0WUL7bthapc2wZgT1kMU0nJXKg1ctDK6I8rJLNkb6MzDx9iSo9rYROBWRXnU5pywZNztemjHN02P8Pm3BJ23RzdgkvLqLrgHCc2gyDeExUN2KDLe1W8cqvKeD4iHNz0/iPCzoCstMNG+AwVhuqJfPYqUUMvcyS852C0lWAKVjzXC0+b6M1WOwXqAPPf4D2IVqYcPS6vxlp6KLHUjmyP8AY6bi68nmBWOqankKUFMUq1tHZkN4BPtrT5n3E2ffOwp2OA9BoKZcKUFRe+t6+E4xjXUhHkVWwNW5fjgG6YjJg76UpxSJj8Ebbf+K1zCtv/pCQJT7eqLKvO0pc78HnaQenhwLhupYB7DHIJHc8DHLDeB/FXFEIlF0jInWBuEjU+TURCEZBnYwRn7f665guVJBchuKuX7Sx1FVkPW6qVcuNx+W/kNz/Z7VBj7Tl8c80pTfzHiNqkciV9FoqkoLtH/IO1wp1/+Tcus9jZSZORcDNeQ223mCbrYXapQ8lrd6GZ2QHhRRGIxZi3kmnZPN2P01/Kdd/KVWx+FvMGW0HzBvZzt3gojh16o2UfVQ8QGMp4iUOImNN0QzyhIk2IrKgNzgUg==
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:(376002)(396003)(366004)(39830400003)(346002)(136003)(4326008)(478600001)(83380400001)(31686004)(36916002)(52116002)(966005)(66476007)(53546011)(66556008)(66946007)(2616005)(8676002)(38100700002)(6486002)(110136005)(31696002)(2906002)(38350700002)(8936002)(186003)(86362001)(16576012)(316002)(26005)(956004)(5660300002)(43740500002)(45980500001); DIR:OUT; SFP:1102; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Si9XY2Q1bFlEcWU5bDJaTlNRLzhhVTVlVElHSWRyQjlnclRvK0tmbm14bUkz?= =?utf-8?B?OFgrWTlTcm1hOVRaYzlhV3dKZlRBaVNPeDYrTzFnaGFlZ05pSkU3b1FOK0FX?= =?utf-8?B?TmM0enU4T0ZJWmNsclhndTVNdDhTcTJCRlQ3V2xLMjFyRnBYeFIvN04vVGt0?= =?utf-8?B?UlBaY2htaTFTZHIwN0ZBU1NOZFV3MitDd0hmcnFQTldqZFNxNUVDMjVHMUlO?= =?utf-8?B?TW95VGVjdms3QlB0eFp1R0F4VFBES2ZONkVoM2t1b2Jmd2gxa3FvOFovTStB?= =?utf-8?B?RE45SkY0cC9SY01NOVZyOXZrSjE5VGQ4NTZ5TjBIOGpEdE9pcmJFK3MvRkl5?= =?utf-8?B?RERVRGFwT0FLam1jc253TWVHbUZ2eFZKd2tBcC8zL0dXWUdQaytlK1RhVi96?= =?utf-8?B?OTB5K2JwUkpnU3hrY0NVeVZvQU9iRGUvVS9GV2NSbkJFZ0FyejIyTllDNy9o?= =?utf-8?B?TkRlcWFjM3M5SGFzZXF5V1d6Z2QxNXlid21DRkgvMWFrL1NuK1hveWZHRXNF?= =?utf-8?B?Ri9DYzFqZjYrWDRURkFTUTh0Vm9LWEhRWjB5L0pGUnZoZ0lxTnhRYVhlUkM3?= =?utf-8?B?WCtQcGVHTmNQSnR1V3hUZjlFcVQybHBRdjZUdGp5Y3h2VllmcHlHRTc4TnBn?= =?utf-8?B?a0wrQ0hpN1poTXhVSUFmelg4a1E3RnFQOWlla1lqWCtnK1oyZlAwdGxHU05G?= =?utf-8?B?WFJGTzdJays4ZUJUQmozNWQvZjljZTRHN2QrU0pFQ2I3M2R5eGFSZE5lVXhq?= =?utf-8?B?TXEzanF0RDhva0UrY3dkbm03ZmE1VmdoVk9icWdXMThWdC9Vcm5jK0NkQVAw?= =?utf-8?B?SWZmNWJnNkVZYnJtTjdCTFVjSXVkSFZYajQrYzFNdC9rWVRhZDJFVDBzSWp6?= =?utf-8?B?SUd2MnhYaVBkdVczVmZhYlhhbkFqZzRrUDBnWkpZSDIwMjFtN0lGdFpFeWVF?= =?utf-8?B?d0xRaHZjMzZyRnlzMXU5L3E4VmlQY1RqZGdndlJCYW5DMUkrZlpXUERpYzlM?= =?utf-8?B?MWF4TnNvOW85Z2luQWRIc1R0MitWZkx3OEVNbVJJZFJ5SThtQnpoYzhQaDRX?= =?utf-8?B?Umd1cXVOSmgzcURObCtXRU9VekY1SFFDMm5EamlDT0tUS3daMmYxekxYNXgx?= =?utf-8?B?c01LL042RzdCVGl1dEFiK3V2UFpNTy9sWUtZdDhOSEZvWXNwdXh6RS84NDh1?= =?utf-8?B?K3A0UXVXbVhzcVFuaEFMOW5LY1NaZXNWTFp4U0tmSmhZTEl6aUpPVXZPQWJF?= =?utf-8?B?WVhrNURqOTQ5aXY0Z3NBZEtoTG5iOHdjT0RhanhRNTNUSGcxMkIrdVBhOTlh?= =?utf-8?B?QnlJQTRIb1JPaGlqaCtBYVVHQXkvUEh3MTQ2Z1NrKzFSOGREbGtrVHhJdG5R?= =?utf-8?B?UjdXREJEVXEwbU9KNUZFcWJocE1EekVDNDdSM1VYaUNSSmp2UW1wbGVsaTlo?= =?utf-8?B?cUR5ZThSa0xsYm41Tlo1N2QxRlg2YXNrSCs0YVpPQzdKY21mdXFOZEMwTitl?= =?utf-8?B?dWVmZklKenFhM1FmaUlLdm5pTExCTnpZM2xDVnlRRjdFbjJqNjczQ1E4Ynhv?= =?utf-8?B?STdaZVAxeEFDUXZtN3pZbE1wRURqYlR5V1h1MGJkNDZLV3R6ejdNOWZ3bkM2?= =?utf-8?B?VlhYakRDeGhmeDBnWnpkMUtGVUdrbEo1ZU80TUdxa1ZpVXRLeXVCU3R0c1Qx?= =?utf-8?B?RWpKWGZUSWZCZWFPQlB5UlpUQkZxQzRlRGRWeE5EM3BQR3dtMmR6S2dGRXZV?= =?utf-8?Q?nxBQ+pevNbUNRfOXcLAoIAqme+gsxOyFNg0XzZP?=
X-OriginatorOrg: it.aoyama.ac.jp
X-MS-Exchange-CrossTenant-Network-Message-Id: bbb6a288-12b0-455b-be2a-08d974b99c57
X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5689.jpnprd01.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2021 00:17:59.1797 (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: AKfkTXo0Me9lICe+60f4b1hksW+mdwM4r/7Hjkg7HCFe1nCIf9HfEoDkOjTJtTQIvARSFthOEM1PRdvXn8R+iQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB6032
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/t4kjFS_0fdUXp1IiUA9W61dI1io>
Subject: Re: [Jsonpath] Partial determinism of the descendant selector (..)
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Sep 2021 00:18:09 -0000

I'm very much with Tim here.

But if maps are by definition unordered, it looks like the whole 
argument about testing,... doesn't work out.

Ruby for a long time pretended that hashes (the equivalent of maps) were 
unordered, but because users depended on the order the implementation 
produced, we eventually had to give up on that and declare them ordered.

For JSON, the situation is probably different.

Regards,   Martin.

On 2021-09-11 06:40, Tim Bray wrote:
> I would much prefer to avoid levels of compliance to the degree possible,
> so I am in favor of option B.
> 
> I'd go further and be in favor of strict pre-order. In this case I think
> being unsurprisingly deterministic is more important than hypothetical
> optimizations that might turn out to unlock parallel implementations which
> might be relevant to some proportion of users.  Anyhow, if you told me to
> write a parallel implementation that preserved pre-order, I think I could,
> by having each thread remember the array index it's rooted at, then
> re-stitching together, no?
> 
> On Mon, Aug 16, 2021 at 7:50 AM Carsten Bormann <cabo@tzi.org> wrote:
> 
>> On 2021-08-16, at 16:07, Glyn Normington <glyn.normington.work@gmail.com>
>> wrote:
>>>
>>> This topic is covered in issue 103, which seems to have stalled, so let
>> me put the main options to the mailing list to try to discern any consensus.
>>> Regardless of the detailed language, please could you indicate which of
>> these options you favour:
>>>
>>> A. Don't tie down the non-determinism of .. at all
>>>
>>> B. Require .. to visit arrays in array order and visit nodes before
>> their descendants
>>
>> Yes.
>> (There is no order in maps, so this is as deterministic as it can get.)
>> BTW, the term “pre-order” [1] is in wide use as a handy term for "visit
>> nodes before their descendants” (we would still define it that way).
>>
>>> C. Some other option involving B with the option of A or A with the
>> option of B, using some kind of language TBD.
>>
>> Yes, as well :-).
>> We haven’t really discussed levels of compliance, and a version of
>> “doesn’t return .. in order” could be a form of conditional compliance.
>> *If* we think we need this to drag some implementations along.
>> (That is, I’d like to hear arguments of the form “We’d lose foomatic’s
>> JSONPath implementation because they make a point of returning arrays in
>> reverse order on Fridays” before we load ourselves with conditional
>> compliance.)
>>
>> Grüße, Carsten
>>
>> [1]: https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR
>> (This article talks about binary trees only, probably because they want to
>> discuss in-order as well, which only makes sense for binary trees.)
>>
>>> D. Something else, in which case please say what.
>>>
>>> Regards,
>>>
>>> Glyn


From nobody Fri Sep 10 19:29:07 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9FEA33A2B94 for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 19:29:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qVh2NHuKSaB1 for <jsonpath@ietfa.amsl.com>; Fri, 10 Sep 2021 19:28:59 -0700 (PDT)
Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 574273A2B92 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 19:28:59 -0700 (PDT)
Received: by mail-pl1-x635.google.com with SMTP id k17so2335353pls.0 for <jsonpath@ietf.org>; Fri, 10 Sep 2021 19:28:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5PWiJ3b4OeyzOGwcIkrgbOcnigbG93X2crS2Vn2xTyg=; b=I8xbELDSstxv1TvmqMrRytFnfWwAiduNMywBjKKvf/8mqSyxVKMPtdmLuo6G/1Ad4+ DqYdJ7whY7jFcCMH92NniFXIOoB29rNwaZX1klF/gcBgb3+ybsORHtTsTcrZ4ScZydzO fS7Ah4a0lU5GeRr5tVvonwomnnzcP47i1V35sHoZ5GObSCRs+1YAQTV6CW0RdSnyv1FC 3Q2flucySGAIBrsUtH+mOlhKvVtdUSvPjmrv8aHlkg2FQMIXD7/2JSBTgZXSiCmML1U5 Mhp2wF8rz5IARzF5GlrDHRCOlQS4S+88BLRa8rejgyvGuL7xi8b/5Sf1Hj5s2nHbANI/ kNew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5PWiJ3b4OeyzOGwcIkrgbOcnigbG93X2crS2Vn2xTyg=; b=2vxb+WSw8Kg0xrIsdstloZt1snAdO2bBCAM6k4c2FoxLaBhHuNnoZxdd5+EnPQ5A+p lQNRj5HO7J3wTaWY12Wtkd5gKFwTGYJIu6UKUXAI/Qr6rHl397ChA3nDyW6Dic2P2poc k+smxFrePzSgpqdX8nvyNCbHoMwrhygCflJN/oUHVOlcWMuIvErkl37R7hrgJCj7siYC PL1KSHyb/m0s6XizGmqv+l8mOg1BsVUshKauCwZ0xro+DzH26ZkTeQ9HQATbTIlbYb9T pZr9/3QWTISUFy356TPLIWxTQY8fhx0JQ+ACwj3FWopEtrl/WBsi+/doUs8j9mSimc4K 634A==
X-Gm-Message-State: AOAM533xQb2zS7DWwPsiiJd1jLjV/vn35yVhtfn4TL7UIxfLhI8MhQHJ LH+rPh3UMRM/2jlsTLawbvOtV1FDRMM7p/jFQ/Q=
X-Google-Smtp-Source: ABdhPJzfzfX3VoHfgUSi+C5NQdtkkskyEQs5Aum+y31cQ6goKkCJOySX5df8GkkSgLfAeCmmU2nfLXbvg8bBF8/u03U=
X-Received: by 2002:a17:90a:9511:: with SMTP id t17mr793937pjo.194.1631327337661;  Fri, 10 Sep 2021 19:28:57 -0700 (PDT)
MIME-Version: 1.0
References: <CANH0Gb+CmFYDvda_te2aWMsLh-Vc_jEL-wBvNF_Pyedi71JcJA@mail.gmail.com> <29436C3A-7AE6-454E-A6D2-D6514906521D@tzi.org> <CAHBU6iu2_LZF3skp4hc6xY8PLmkm=CYNjJb11cxZ+KsR9NuVhQ@mail.gmail.com> <3e0b9c1b-a0c8-b8fe-d5e6-5b35a9adaf07@it.aoyama.ac.jp>
In-Reply-To: <3e0b9c1b-a0c8-b8fe-d5e6-5b35a9adaf07@it.aoyama.ac.jp>
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Sat, 11 Sep 2021 03:28:45 +0100
Message-ID: <CANH0GbJ8kRxWjF3dFfk6cc7iLVNig-W1AAHbnBNPXXmUv5wjUg@mail.gmail.com>
To: =?UTF-8?Q?Martin_J=2E_D=C3=BCrst?= <duerst@it.aoyama.ac.jp>
Cc: Tim Bray <tbray@textuality.com>, Carsten Bormann <cabo@tzi.org>, jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="000000000000794c7305cbaefe56"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/G9uW7HCZnlCfq-PSC27l04vfzV8>
Subject: Re: [Jsonpath] Partial determinism of the descendant selector (..)
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Sep 2021 02:29:05 -0000

--000000000000794c7305cbaefe56
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Yes, maps are unavoidably unordered, but that can be catered for in testing
by using maps with only one key/value pair or by allowing multiple possible
results for maps with more than one key/value pair. E.g. to unit test a
selector containing `..`, I can make sure any maps in the input argument
have only one key/value pair each.

In other words, making `..` partially deterministic doesn't solve the
testing problem for maps with more than one key/value pair, but it makes
testing more tractable than with a non-deterministic `..`.

On Sat, 11 Sept 2021 at 01:18, Martin J. D=C3=BCrst <duerst@it.aoyama.ac.jp=
>
wrote:

> I'm very much with Tim here.
>
> But if maps are by definition unordered, it looks like the whole
> argument about testing,... doesn't work out.
>
> Ruby for a long time pretended that hashes (the equivalent of maps) were
> unordered, but because users depended on the order the implementation
> produced, we eventually had to give up on that and declare them ordered.
>
> For JSON, the situation is probably different.
>
> Regards,   Martin.
>
> On 2021-09-11 06:40, Tim Bray wrote:
> > I would much prefer to avoid levels of compliance to the degree possibl=
e,
> > so I am in favor of option B.
> >
> > I'd go further and be in favor of strict pre-order. In this case I thin=
k
> > being unsurprisingly deterministic is more important than hypothetical
> > optimizations that might turn out to unlock parallel implementations
> which
> > might be relevant to some proportion of users.  Anyhow, if you told me =
to
> > write a parallel implementation that preserved pre-order, I think I
> could,
> > by having each thread remember the array index it's rooted at, then
> > re-stitching together, no?
> >
> > On Mon, Aug 16, 2021 at 7:50 AM Carsten Bormann <cabo@tzi.org> wrote:
> >
> >> On 2021-08-16, at 16:07, Glyn Normington <
> glyn.normington.work@gmail.com>
> >> wrote:
> >>>
> >>> This topic is covered in issue 103, which seems to have stalled, so l=
et
> >> me put the main options to the mailing list to try to discern any
> consensus.
> >>> Regardless of the detailed language, please could you indicate which =
of
> >> these options you favour:
> >>>
> >>> A. Don't tie down the non-determinism of .. at all
> >>>
> >>> B. Require .. to visit arrays in array order and visit nodes before
> >> their descendants
> >>
> >> Yes.
> >> (There is no order in maps, so this is as deterministic as it can get.=
)
> >> BTW, the term =E2=80=9Cpre-order=E2=80=9D [1] is in wide use as a hand=
y term for "visit
> >> nodes before their descendants=E2=80=9D (we would still define it that=
 way).
> >>
> >>> C. Some other option involving B with the option of A or A with the
> >> option of B, using some kind of language TBD.
> >>
> >> Yes, as well :-).
> >> We haven=E2=80=99t really discussed levels of compliance, and a versio=
n of
> >> =E2=80=9Cdoesn=E2=80=99t return .. in order=E2=80=9D could be a form o=
f conditional compliance.
> >> *If* we think we need this to drag some implementations along.
> >> (That is, I=E2=80=99d like to hear arguments of the form =E2=80=9CWe=
=E2=80=99d lose foomatic=E2=80=99s
> >> JSONPath implementation because they make a point of returning arrays =
in
> >> reverse order on Fridays=E2=80=9D before we load ourselves with condit=
ional
> >> compliance.)
> >>
> >> Gr=C3=BC=C3=9Fe, Carsten
> >>
> >> [1]: https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR
> >> (This article talks about binary trees only, probably because they wan=
t
> to
> >> discuss in-order as well, which only makes sense for binary trees.)
> >>
> >>> D. Something else, in which case please say what.
> >>>
> >>> Regards,
> >>>
> >>> Glyn
>
>

--000000000000794c7305cbaefe56
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Yes, maps are unavoidably unordered, but that can be =
catered for in testing by using maps with only one key/value pair or by all=
owing multiple possible results for maps with more than one key/value pair.=
 E.g. to unit test a selector containing `..`, I can make sure any maps in =
the input argument have only one key/value pair each.</div><div><br></div><=
div>In other words, making `..` partially deterministic doesn&#39;t solve t=
he testing problem for maps with more than one key/value pair, but it makes=
 testing more tractable than with a non-deterministic `..`.</div></div><br>=
<div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, 11=
 Sept 2021 at 01:18, Martin J. D=C3=BCrst &lt;<a href=3D"mailto:duerst@it.a=
oyama.ac.jp">duerst@it.aoyama.ac.jp</a>&gt; wrote:<br></div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex">I&#39;m very much with Tim here.<br>
<br>
But if maps are by definition unordered, it looks like the whole <br>
argument about testing,... doesn&#39;t work out.<br>
<br>
Ruby for a long time pretended that hashes (the equivalent of maps) were <b=
r>
unordered, but because users depended on the order the implementation <br>
produced, we eventually had to give up on that and declare them ordered.<br=
>
<br>
For JSON, the situation is probably different.<br>
<br>
Regards, =C2=A0 Martin.<br>
<br>
On 2021-09-11 06:40, Tim Bray wrote:<br>
&gt; I would much prefer to avoid levels of compliance to the degree possib=
le,<br>
&gt; so I am in favor of option B.<br>
&gt; <br>
&gt; I&#39;d go further and be in favor of strict pre-order. In this case I=
 think<br>
&gt; being unsurprisingly deterministic is more important than hypothetical=
<br>
&gt; optimizations that might turn out to unlock parallel implementations w=
hich<br>
&gt; might be relevant to some proportion of users.=C2=A0 Anyhow, if you to=
ld me to<br>
&gt; write a parallel implementation that preserved pre-order, I think I co=
uld,<br>
&gt; by having each thread remember the array index it&#39;s rooted at, the=
n<br>
&gt; re-stitching together, no?<br>
&gt; <br>
&gt; On Mon, Aug 16, 2021 at 7:50 AM Carsten Bormann &lt;<a href=3D"mailto:=
cabo@tzi.org" target=3D"_blank">cabo@tzi.org</a>&gt; wrote:<br>
&gt; <br>
&gt;&gt; On 2021-08-16, at 16:07, Glyn Normington &lt;<a href=3D"mailto:gly=
n.normington.work@gmail.com" target=3D"_blank">glyn.normington.work@gmail.c=
om</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This topic is covered in issue 103, which seems to have stalle=
d, so let<br>
&gt;&gt; me put the main options to the mailing list to try to discern any =
consensus.<br>
&gt;&gt;&gt; Regardless of the detailed language, please could you indicate=
 which of<br>
&gt;&gt; these options you favour:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; A. Don&#39;t tie down the non-determinism of .. at all<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; B. Require .. to visit arrays in array order and visit nodes b=
efore<br>
&gt;&gt; their descendants<br>
&gt;&gt;<br>
&gt;&gt; Yes.<br>
&gt;&gt; (There is no order in maps, so this is as deterministic as it can =
get.)<br>
&gt;&gt; BTW, the term =E2=80=9Cpre-order=E2=80=9D [1] is in wide use as a =
handy term for &quot;visit<br>
&gt;&gt; nodes before their descendants=E2=80=9D (we would still define it =
that way).<br>
&gt;&gt;<br>
&gt;&gt;&gt; C. Some other option involving B with the option of A or A wit=
h the<br>
&gt;&gt; option of B, using some kind of language TBD.<br>
&gt;&gt;<br>
&gt;&gt; Yes, as well :-).<br>
&gt;&gt; We haven=E2=80=99t really discussed levels of compliance, and a ve=
rsion of<br>
&gt;&gt; =E2=80=9Cdoesn=E2=80=99t return .. in order=E2=80=9D could be a fo=
rm of conditional compliance.<br>
&gt;&gt; *If* we think we need this to drag some implementations along.<br>
&gt;&gt; (That is, I=E2=80=99d like to hear arguments of the form =E2=80=9C=
We=E2=80=99d lose foomatic=E2=80=99s<br>
&gt;&gt; JSONPath implementation because they make a point of returning arr=
ays in<br>
&gt;&gt; reverse order on Fridays=E2=80=9D before we load ourselves with co=
nditional<br>
&gt;&gt; compliance.)<br>
&gt;&gt;<br>
&gt;&gt; Gr=C3=BC=C3=9Fe, Carsten<br>
&gt;&gt;<br>
&gt;&gt; [1]: <a href=3D"https://en.wikipedia.org/wiki/Tree_traversal#Pre-o=
rder,_NLR" rel=3D"noreferrer" target=3D"_blank">https://en.wikipedia.org/wi=
ki/Tree_traversal#Pre-order,_NLR</a><br>
&gt;&gt; (This article talks about binary trees only, probably because they=
 want to<br>
&gt;&gt; discuss in-order as well, which only makes sense for binary trees.=
)<br>
&gt;&gt;<br>
&gt;&gt;&gt; D. Something else, in which case please say what.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Glyn<br>
<br>
</blockquote></div>

--000000000000794c7305cbaefe56--


From nobody Mon Sep 13 10:34:09 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A3603A0E18 for <jsonpath@ietfa.amsl.com>; Mon, 13 Sep 2021 10:34:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 53Tm68QWArvr for <jsonpath@ietfa.amsl.com>; Mon, 13 Sep 2021 10:34:01 -0700 (PDT)
Received: from mail-wr1-x435.google.com (mail-wr1-x435.google.com [IPv6:2a00:1450:4864:20::435]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C83833A0EAE for <jsonpath@ietf.org>; Mon, 13 Sep 2021 10:34:00 -0700 (PDT)
Received: by mail-wr1-x435.google.com with SMTP id d21so8210940wra.12 for <jsonpath@ietf.org>; Mon, 13 Sep 2021 10:34:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=prwHXumLVIThQmBxHAx/QDR4WNZShCFpzU2k6BW1phA=; b=p9e8b8wAVaJCTAqKlyzV70lnc4O5e/AA2Ex9jKA/iZ6XcUL0WixaDHR5kTMnAoPCBo Jbw8y6fn3c1EH70b9yt7wWrWvjPoF81R+uh9XPRnz0eDK+UhKRbpNU/cmhW3GR8cuVoN FD2XIbMkRDY3cSykyXl/q2jO9oOBVkd3i/fnRoem2GWkyuInzIlkeGVYsZqQAHhh8pbD s+mytqUdoe7NVFLbO85KfDHYuyX7vprjMTiJDGNSnACULxt1gPWcoBwuZIGp0RmJTeus 0K5kpHn3oZygVLgCQKu4BIo/ad38j/jUDaoyFtZaGNHo+CCKHOt6YmJqXVieDZMcjI5l YC8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=prwHXumLVIThQmBxHAx/QDR4WNZShCFpzU2k6BW1phA=; b=YEZFOb17JQ4qPd3hcZ/t6Dq6wrmBp7/LVd2Jv9jMUODp4LUV0HGFjEPZyhM+TpKIPC KsevFlxWEWVahO46HaGGkMDGTmaitWs4ZPHN6qJyCy7EvJkH0AbaITlp4EG0gl6mrR2A 5frrMOF9/TaRAZXlZixy4e99rUN/BG63mK5DKDbsJHyIjL4aQ1VcAX8HI+JGL7Th6o18 /LHViF5/RdnOudgfx+L3XKr0j1q6OP1JdoAA1klUUBpsm6lsmMD2o1yAUtsn5J5ztJ8y cNbFiGOWvdZSH5ghWlpdRyIGKKEIh1nPwJverkvDsUcrfZatNQShPDjY3K6omWn0rZ+c n5wg==
X-Gm-Message-State: AOAM531uO5PUqUdOJ80zeEmvd7Mp0e9bgPGeTyT1JF3XaeVys87zWTdE P0h/IRHh38WkYQT7sF3isUQtifkvCr/t/z1O8ODtrFXgD4w=
X-Google-Smtp-Source: ABdhPJwpxx91gnvPcE2x81r7k9SrdJ3e9Lv3hGrXlZGpe0dh0FS2L7bA48fpSN/XUZnZL+3ipKyWeIRVgADOeSuQHlA=
X-Received: by 2002:a5d:5408:: with SMTP id g8mr14162182wrv.34.1631554435730;  Mon, 13 Sep 2021 10:33:55 -0700 (PDT)
MIME-Version: 1.0
From: Daniel P <danielaparker@gmail.com>
Date: Mon, 13 Sep 2021 13:33:43 -0400
Message-ID: <CA+mwktKy6rMV9rzWA+u=zQDZ0SHJtA1YHxC6O=7Nb-7kNNhT5g@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/U1sXc6I7J8JHEPztfMASmcbh1CM>
Subject: Re: [Jsonpath] truthy and falsy
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Sep 2021 17:34:06 -0000

On Fri, Sep 10, 2021 at 6:38 AM Stefan G=C3=B6ssner <stefan@goessner.net> w=
rote:
>
> The latest draft is quite clear:
>
> > The query is a sequence of zero or more selectors, each of which is app=
lied to the result of the previous selector and provides input to the next =
selector. These results and inputs take the form of a nodelist, i.e., a seq=
uence of zero or more nodes.
>
Yes, but by query you're referring to grammatical strings that start
with '$'. I was responding in context to grammatical strings that
start with '@' in expressions, e.g. $[?(@.name)].

In terms of the current JSON landscape, do strings that start with '@'
represent JSONPath expressions in the same way as strings that start
with '$'? And evaluated accordingly? Or do they correspond to a
Javascript (or another dynamic language) variable, holding an object,
array, string, number, boolean, or null value, and evaluated according
to the rules of that language?

It depends upon what implementation you look at.

At least 12 (probably more) implementations in the JSONPath
Comparisons regard strings that start with '@' to be JSONPath
expressions. Of these, 12 also accept strings starting with '@'
outside expressions in place of '$', e.g. "@.foo", to do otherwise
would only complicate their grammar. These include the Java Jayway
implementation, which is part of the bedrock of JSONPath, deeply
embedded in legacy Java API's.

But in the implementations that use a dynamic language for evaluating
queries, such as Goessner Javascript, strings that start with '@'
don't mean JSONPath expressions at all. In these languages, '@' means
a variable holding an object, array, string, number, boolean, or null
value as represented in that language, and nothing more. There are no
"nodelists", however understood, here. These implementations do not
accept strings starting with '@' outside expressions in place of '$',
as it would serve no purpose.

I realize the WG draft hasn't completed its specification for
expressions yet. But as I read the draft, it seems to me to be
specifying the grammar and semantics for expressions, like the first
group of implementations does, but at the same time adopting a meaning
for '@' that is closer to that of the second group, more like a
Javascript variable than a JSONPath expression. I expect more
clarification will make its way into the draft.

My only intent with these observations is to express scepticism about
whether it's even possible to have a JSONPath specification that
mirrors current practice. On many points, the answer to the question,
what do implementations do, is "It depends on what implementation you
look at." It looks to me that the WG is picking and choosing features
that they like from various implementations, and is moving towards an
end point that will be different in some way from all existing
implementations. If there was a strong vendor interest to have a
common understanding of JSONPath for future API's, that might work.
But I don't think there is. I don't think vendors would have any
interest in revisiting their legacy API's. And as for the present and
future, they appear to be more interested in W3C and Oasis efforts
around JsonIq.

>
> I see your post as a hint for us to perhaps concretise the 'nodelist' def=
inition in the spec and check its use throughout the text.
> --
In my original remarks, I put the term "nodelist" in quotes, and
accepted its meaning as returning a sequence of something. I didn't
want to focus on that, my point was that for a significant part of the
JSONPath landscape, in expressions containing strings that start with
'@', there would be no sequence of anything, just one thing.

I concede that I have some difficulty with understanding the meaning
of "nodelist" as it's used in the draft :-) There are implementations,
e.g. https://www.npmjs.com/package/jsonpath, that support methods for
returning values, paths or nodes (path-value pairs) and I understand
what those mean. I don't understand what the draft  means by this
definition of Node List: "The output of applying a query to an
argument is manifested as a list of nodes. While this list can be
represented in JSON, e.g. as an array, the nodelist is an abstract
concept unrelated to JSON values." But that's another matter.

Daniel


From nobody Tue Sep 14 05:32:25 2021
Return-Path: <danielaparker@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56AA13A1975 for <jsonpath@ietfa.amsl.com>; Tue, 14 Sep 2021 05:32:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level: 
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8RGBPqTlVjNP for <jsonpath@ietfa.amsl.com>; Tue, 14 Sep 2021 05:32:17 -0700 (PDT)
Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8F3543A1971 for <jsonpath@ietf.org>; Tue, 14 Sep 2021 05:32:17 -0700 (PDT)
Received: by mail-wm1-x330.google.com with SMTP id d207-20020a1c1dd8000000b00307e2d1ec1aso2403306wmd.5 for <jsonpath@ietf.org>; Tue, 14 Sep 2021 05:32:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-transfer-encoding; bh=nxZ7M/RxkorYCbUuHaL917+R4pbKV2vfOC/LXp1HvKk=; b=C4hHiltXHUqd3kCBnJTkoSUX8iASUpgILhkmTYIVSHwNRvMl4fdm33C7v6ASvlf8rP FTSCyDj9ASBy1hVeq/E1jDQGksDgqonI3BDyYkwZNE1MQw1Py5kr3p1juBriaktbuc4F w3fJfuUd1ZJWUw5Ex+B1bgw1EKL/0wW1Y2vFAD7vYS/L0JEkgNOa5yM7MzIOpIoEsmeQ N/hYFNQNN/qdYl5U1z12BeEAVeB40UDQ3wp2+zcYBp2E5FRTU0xPHQH2Oj1ksQbvYg69 H2XV2EbgEnrF7D9MND+/jE3o/AtVTR5P6Z/lHgruuWDUOimmady1qOS8EwLqAR/HXGcs bnIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:content-transfer-encoding; bh=nxZ7M/RxkorYCbUuHaL917+R4pbKV2vfOC/LXp1HvKk=; b=FH0p9VHEmgAl36vRarolojxlkbpR0iiwY7XM63oV0gIzljYTRRoIF9Qcxc0cZf3/sc N7ILaGV57btN5rjgBB2JRDMkZn7+g/P27PsmMO9/OEauNFQ2FuzgXfDs925t6REwSa0J cXd5fdQQn5RcfZM+Po1YwWnjfaiGjJu0mesElTcpsaEc1qCb0FlOET6Y/ZK5QzXZq2Z7 ZdYiQH6XToH24z+Hi1KvKjn/TdCqeEefKbWb19PQ3N3KaIm3d9RzqtJEAMPWO9MU7nvD p2+yKbuiouZe8ySxrScfOCS4ReM/s58taXIeMgJ17o7Dpz0btOpYxGc0gAuAIB4X9W7D itng==
X-Gm-Message-State: AOAM530BPVzIDBf9V0B5BZy68N1boPXx/e1VnoWu6F9jOJMVRkp8JOG1 fu2KD205asqnWOIFtDPHKUXz57FIdglZwf+grfC0ijKT6tg=
X-Google-Smtp-Source: ABdhPJyOg2eObGjQyGtHBZLMR0Wr/VTmdsF/kG2XiuwD7usr19IavhQ6ieslA8vINgDKl8Zr2P7S9pj1NdUAsrHAugc=
X-Received: by 2002:a05:600c:21d6:: with SMTP id x22mr1941944wmj.121.1631622735125;  Tue, 14 Sep 2021 05:32:15 -0700 (PDT)
MIME-Version: 1.0
References: <mailman.56.1631214044.30460.jsonpath@ietf.org>
In-Reply-To: <mailman.56.1631214044.30460.jsonpath@ietf.org>
From: Daniel P <danielaparker@gmail.com>
Date: Tue, 14 Sep 2021 08:32:02 -0400
Message-ID: <CA+mwktK1UZzFgG=DMTUS3+bf_Z_FPr252bJJ72gkr9kQLxiVEg@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/ZOU3Ma7ZA8v9E1jeLRK58vtcHhk>
Subject: Re: [Jsonpath] Jsonpath Digest, Vol 15, Issue 4
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 Sep 2021 12:32:23 -0000

> From: Glyn Normington <glyn.normington.work@gmail.com>
> >
> > These observations suggest that it might be helpful to include a note
> > in the draft that clarifies the purpose of the WG. Is it to
> > standardize existing behaviour?
>
> Yes. Please see our charter:  https://datatracker.ietf.org/wg/jsonpath/ab=
out/
>
Thanks for the clarification.

> > What would that mean when the extant
> > implementations exhibit different behaviour, and because they are
> > entrenched in legacy API's, they cannot change?
>
> The charter says:
>
> "Where there are
> differences, the working group will analyze those differences and
> make choices that rough consensus considers technically best, with
> an aim toward minimizing disruption among the different JSONPath
> implementations."
>
> So we don't have to preserve all existing behaviour. It will be up to
> each implementation whether or not to migrate to the eventual
> standard.
>

The differences, as I'm sure you know, are fundamental. Given the
document [{"key" : false}], does "$[?(@.key)]" return [{"key" : false}]
or []? It depends on what implementation you use. In an
expression like @.foo, does @.foo mean a JsonPath expression
evaluated with an EvaluateSingle method, as it does in Jayway and
a dozen other implementations, or does it mean a JavaScript like
variable evaluated with key foo? It depends on what implementation
you use. Can you write "$[?(@.foo[?(@ =3D=3D 'bar')])]"? It depends
whether you're using an implementation where @.foo is a JSONPath
expression or not. Can we use functions in expressions like
$[?(@.key.normalize()=3D=3D"Mot=C3=B6rhead".normalize())]? It depends on
what implementation you use.

The two most influential implementations in the evolution of
JSONPath, Goessner JsonPath and Jayway JsonPath, come
down on different sides for each of the points listed above.

> > Or is it to invent
> > something new, inspired by the original, picking and choosing from
> > popular implementations as the WG sees fit? If something new, should
> > it have a different name?
>
> I doubt we want to reinvent JMESPath.
>
That's a different thing. JMESPath transforms JSON documents, JSONPath
is generally regarded as selecting from JSON documents. (Although even
there, Jayway, regarded as the second most influential JSONPath
implementation, supports transformation via tail functions. Another differe=
nce.)

Realistically, I think that whatever the WG produces will be something new.
A JSONPath B, so to speak. It's unavoidable. Existing behaviour cannot be
standardized because it's too different.

Daniel


From nobody Fri Sep 17 01:59:23 2021
Return-Path: <tbray@textuality.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6105A3A0E62 for <jsonpath@ietfa.amsl.com>; Fri, 17 Sep 2021 01:59:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level: 
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=textuality-com.20210112.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hSy7ZASDFgcq for <jsonpath@ietfa.amsl.com>; Fri, 17 Sep 2021 01:59:16 -0700 (PDT)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 234FF3A0E6B for <jsonpath@ietf.org>; Fri, 17 Sep 2021 01:59:16 -0700 (PDT)
Received: by mail-lf1-x12a.google.com with SMTP id x27so30154564lfu.5 for <jsonpath@ietf.org>; Fri, 17 Sep 2021 01:59:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=textuality-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=sFQlBvZHqWXTplSnm2wpeLKSko0Zs3VWfe5kg7VMJ1A=; b=KKpaIMdnIgvrDUTmYGKiGWX6MrWGdSmfZMjmYHdCTMI7rFp6BekDgYamnuLoCcldHy JIFYpcv1FuDgobsRI85klUCGL4Jty4WrrmigP6X0z86bZWyW8fEYiQpLxfU90gyd08Zt kO/mmCpwmWDj4qIXrK8AQzlvvxSHbpNDQwOn2zwmhPUJZm1dWUINn/jZwCpkxunt4l7E V85SThfF2cCBDlnULTittx8R0/EnVZ6cwJTRi+uesCd2c7FYlX2YbTTFFNhfi3WELleW g8KYK6X9zFftZm0Zc8J3YO9sucMLg1MK83N+UBLSSFv38hAOG9AZjUC8wUM1R/VM1jnB DgsA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=sFQlBvZHqWXTplSnm2wpeLKSko0Zs3VWfe5kg7VMJ1A=; b=HObQjWhiOLRL16WRpODmzYh8CEP4sZ50+37B2XP0mxJvFpsqb0J2m6CSlTTRViNVV1 pbbtsewCOZ0osSb2RN/2BqmJQ6QN2PBMfkiBzEWM0p3eK+t8dEQsgARw1iJwzGydJhfr x9Z9wNwWd+yd37xy3AeTip55/1yOSNTmNeCWVs42Az+9X5zhe7+RbGxYzWKqKfN0MX20 dBIVL3IWB45uSYUsC2tCx84TMz57e/PcTdCn4otxmSyg2XmvKAgj2e7cyQt1IoRLUup4 FeXMg4rPiKVCeL6mfW/cRsAAzvWgm/h4ZSs7ssQ7RYRb6RZFBarr1QiT6KMGJGochV8D uHdQ==
X-Gm-Message-State: AOAM530NaGkYykSXwfGk3WtmcjkpreBASU7LPHDNe+000tpqJAOg8eT4 LSxVFvum9As4N5ex7LJQSAFE4G16Di5ASeJ/LI6wv+nbfRY=
X-Google-Smtp-Source: ABdhPJzrm79A5k62l6jQrkk7yx6nLGcB0YAPPuNIwQVw3FD/qxdt6jpSdFXK/iGoba4fYKvHk+bRbF5m12CmJD0X1NY=
X-Received: by 2002:a05:6512:2310:: with SMTP id o16mr7247447lfu.646.1631869153101;  Fri, 17 Sep 2021 01:59:13 -0700 (PDT)
MIME-Version: 1.0
References: <163008927686.7055.10612889466780867836@ietfa.amsl.com>
In-Reply-To: <163008927686.7055.10612889466780867836@ietfa.amsl.com>
From: Tim Bray <tbray@textuality.com>
Date: Fri, 17 Sep 2021 01:59:02 -0700
Message-ID: <CAHBU6iteHqFveoHwu-M-Obs0J_65h_=NumbU8ED8npFQ_rNV=Q@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="00000000000030e87e05cc2d250d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/gluype3Zt5xwt9gMqh5hgf3dDhM>
Subject: Re: [Jsonpath] JSON Path (jsonpath) WG Virtual Meeting: 2021-09-17
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Sep 2021 08:59:22 -0000

--00000000000030e87e05cc2d250d
Content-Type: text/plain; charset="UTF-8"

Reminder - this is now spinning up.

On Fri, Aug 27, 2021 at 11:34 AM IESG Secretary <iesg-secretary@ietf.org>
wrote:

> The JSON Path (jsonpath) WG will hold
> a virtual interim meeting on 2021-09-17 from 09:00 to 11:00 UTC.
>
> Agenda:
> Agenda TBC
>
> Information about remote participation:
>
> https://meetings.conf.meetecho.com/interim/?short=ae48f1c2-565e-4d19-8605-8fd3e3677a68
>
> --
> Jsonpath mailing list
> Jsonpath@ietf.org
> https://www.ietf.org/mailman/listinfo/jsonpath
>

--00000000000030e87e05cc2d250d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small">Rem=
inder - this is now spinning up.</div></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Fri, Aug 27, 2021 at 11:34 AM IESG=
 Secretary &lt;<a href=3D"mailto:iesg-secretary@ietf.org">iesg-secretary@ie=
tf.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;borde=
r-left-color:rgb(204,204,204);padding-left:1ex">The JSON Path (jsonpath) WG=
 will hold<br>
a virtual interim meeting on 2021-09-17 from 09:00 to 11:00 UTC.<br>
<br>
Agenda:<br>
Agenda TBC<br>
<br>
Information about remote participation:<br>
<a href=3D"https://meetings.conf.meetecho.com/interim/?short=3Dae48f1c2-565=
e-4d19-8605-8fd3e3677a68" rel=3D"noreferrer" target=3D"_blank">https://meet=
ings.conf.meetecho.com/interim/?short=3Dae48f1c2-565e-4d19-8605-8fd3e3677a6=
8</a><br>
<br>
-- <br>
Jsonpath mailing list<br>
<a href=3D"mailto:Jsonpath@ietf.org" target=3D"_blank">Jsonpath@ietf.org</a=
><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/jsonpath" rel=3D"noreferre=
r" target=3D"_blank">https://www.ietf.org/mailman/listinfo/jsonpath</a><br>
</blockquote></div>

--00000000000030e87e05cc2d250d--


From nobody Fri Sep 17 05:30:06 2021
Return-Path: <session-request@ietf.org>
X-Original-To: jsonpath@ietf.org
Delivered-To: jsonpath@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7254C3A1719; Fri, 17 Sep 2021 05:30:03 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: IETF Meeting Session Request Tool <session-request@ietf.org>
To: <session-request@ietf.org>
Cc: francesca.palombini@ericsson.com, james.ietf@gmail.com, jsonpath-chairs@ietf.org, jsonpath@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.37.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <163188180332.17566.1173260123727355427@ietfa.amsl.com>
Date: Fri, 17 Sep 2021 05:30:03 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/vVBk7cCGQpcP9QvyEzgma_ID9kM>
Subject: [Jsonpath] jsonpath - New Meeting Session Request for IETF 112
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Sep 2021 12:30:04 -0000

A new meeting session request has just been submitted by James Gruessing, a Chair of the jsonpath working group.


---------------------------------------------------------
Working Group Name: JSON Path
Area Name: Applications and Real-Time Area
Session Requester: James Gruessing


Number of Sessions: 1
Length of Session(s):  2 Hours
Number of Attendees: 20
Conflicts to Avoid: 
 Chair conflict: dispatch ntp
 Key participant conflict: t2trg

       


People who must be present:
  Tim Bray
  Francesca Palombini
  James Gruessing

Resources Requested:

Special Requests:
  
---------------------------------------------------------



From nobody Fri Sep 24 05:35:50 2021
Return-Path: <glyn.normington.work@gmail.com>
X-Original-To: jsonpath@ietfa.amsl.com
Delivered-To: jsonpath@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BC9F53A26E7 for <jsonpath@ietfa.amsl.com>; Fri, 24 Sep 2021 05:35:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level: 
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Y7-St-NZWhZE for <jsonpath@ietfa.amsl.com>; Fri, 24 Sep 2021 05:35:43 -0700 (PDT)
Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B29233A26E6 for <jsonpath@ietf.org>; Fri, 24 Sep 2021 05:35:43 -0700 (PDT)
Received: by mail-pj1-x1031.google.com with SMTP id v19so6897138pjh.2 for <jsonpath@ietf.org>; Fri, 24 Sep 2021 05:35:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to;  bh=gg8xg2CY4SzSqbF6HRKyNQPA3TxIUyLri0jPkWwTYaU=; b=D7LzX9+ikGeWaSjmo25MU10ttDwBUgTpGAHzAD7TNIu0UPCviIHjxqoqr9mT+Lrwfm B9OJ9Mp/tpeNHY+ru5Ze91XCbW2UqUZyy8/9NaVdDAIeVNWsfyuapdiKONUsoImL19Ak 2MPVuIGMkgiLQ1tg+dRKOzKpvCqej8Geigx4dmWEzpVJzMZ5yqi5sE5Lp5tEAhJcKneL KuOSpRf/uYFFprZurr9uzIiEzv4IxvvpfWvn+wqFTV9JSpnM9byWsdGWvgjD6wCbOKqO J/gMvr1X/zF9zuRDzTZtowsvFp6NmmZbGuuq9Di2GaPxRv4UNBKi8qWltdiOtIG+5GFt FaKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=gg8xg2CY4SzSqbF6HRKyNQPA3TxIUyLri0jPkWwTYaU=; b=YUMu92dmnNUmY2ZroZkjW1ut1fwa5IggKiGYgPJMv7B+9QR7FjuKe6VLYvKKxMx80E AOT75N9Tltx9judkRO4dPFHa6+NCeGNLBVVS1lkcRm699ntz88ZNGlwKMsfI/cd8+zgy zsl/01eEBOyjyiq/ECA0dzSTszs3MxTk2A87cgj9qVKpTRVVCNxKI6E17hlVLDD98ibT X/chDVlVVh3cYvIEYbbTD7iYlxQ2U7cMLyEiwQ4O07yKxujGKTnyo0etHHr5bRXIlBC5 mF+4UIoS1hOtw7cVqnBbxbKGBbYAW8dmiaX0gIDnd97tVQe08U0KufetBbicqaNHCjTb afVQ==
X-Gm-Message-State: AOAM533igJy3jksXWHNegrry57ada3zbkUIbQsrg8/FjLrryYUY/K/SL pt+IcllTlrLIDRW4JGMwbwoDoIGHqU5pqziqFDz18lzOiA8=
X-Google-Smtp-Source: ABdhPJzPOPwfRAUJuPoRQ3ZdHdCf76K55n4cyjl00IT/CkRJVlvuaWHEICfMLv7tJV/o3lXC+Qwa8NTYMV6C/KJDciY=
X-Received: by 2002:a17:90b:3a90:: with SMTP id om16mr2003432pjb.194.1632486942154;  Fri, 24 Sep 2021 05:35:42 -0700 (PDT)
MIME-Version: 1.0
References: <E1mSkFk-00005r-6j@84d908c3c732>
In-Reply-To: <E1mSkFk-00005r-6j@84d908c3c732>
From: Glyn Normington <glyn.normington.work@gmail.com>
Date: Fri, 24 Sep 2021 13:35:30 +0100
Message-ID: <CANH0GbL7-UKVVwDOrFwKLBO6HWB2hw4==sNC8kimz84nR4ofKQ@mail.gmail.com>
To: jsonpath@ietf.org
Content-Type: multipart/alternative; boundary="00000000000049a26605ccbcfc68"
Archived-At: <https://mailarchive.ietf.org/arch/msg/jsonpath/HGKznbsfqOFyRnFmbTwX7ude9Pk>
Subject: [Jsonpath] Fwd: [xml2rfc] New xml2rfc release: v3.10.0
X-BeenThere: jsonpath@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: A summary description of the list to be included in the table on this page <jsonpath.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jsonpath/>
List-Post: <mailto:jsonpath@ietf.org>
List-Help: <mailto:jsonpath-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jsonpath>, <mailto:jsonpath-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 24 Sep 2021 12:35:49 -0000

--00000000000049a26605ccbcfc68
Content-Type: text/plain; charset="UTF-8"

It would be good to upgrade the version of xml2rfc that is used by our CI
to fix the rendering problem (extraneous double quotes) with Table 5 of the
text version ([1]) of our draft.

I raised https://github.com/martinthomson/i-d-template/issues/312, but I'm
not sure how to implement it. If anyone is interested and has the time,
please take a look.

[1]
https://ietf-wg-jsonpath.github.io/draft-ietf-jsonpath-base/draft-ietf-jsonpath-base.txt

---------- Forwarded message ---------
From: <rjsparks@nostrum.com>
Date: Tue, 21 Sept 2021 at 19:12
Subject: [xml2rfc] New xml2rfc release: v3.10.0
To: <xml2rfc-dev@ietf.org>, <xml2rfc@ietf.org>
Cc: <rfc-markdown@ietf.org>



Hi,

This is an automatic notification about a new xml2rfc release,
v3.10.0, generated when running the mkrelease script.

Release notes:

xml2rfc (3.10.0) ietf; urgency=low

  * Merged in [4043] from krathnayake@ietf.org:
    Fixes Python compatibility issues in bin/uglifycall.

  * Merged in [4042] and [4045] from krathnayake@ietf.org:
    Updates docker/run command to support Apple M1. Fixes  #675.

  * Merged in [4041] from krathnayake@ietf.org:
    Adds missing line joiner settings for <ol> and <ul>. Fixes #673.

  * Merged in [4040] from jennifer@painless-security.com:
    Fix Makefile rule precedence and repair canonical.xml test to
    work with yestest. Fixes #671.

  * Merged in [4037] from krathnayake@ietf.org:
    Changes RFC regression test to be a seperate test.

  * Merged in [4036] from krathnayake@ietf.org:
    Adds RFC regression tests. Fixes #667.

  * Merged in [4016] from krathnayake@ietf.org:
    Fix for bad PDF breaks.

  * pin weasyprint<53 for tox tests

  * Merged in [4020] from krathnayake@ietf.org:
    Sort class values in HTML output. Fixes #553.

  * Merged in [4018] and [4019] from jennifer@painless-security.com:
    Keep pns from incoming xml when present; handle case that an author
    does not have an after-next element. Fixes #664.

  * Merged in [4012] from krathnayake@ietf.org:
    Remove quotes from the text rendering of <tt>. Fixes #600 and #647.

  * Merged in [4011] from krathnayake@ietf.org:
    Fix info block runoff issue in PDFs. Fixes #606.

  * Merged in [4010] from krathnayake@ietf.org:
    Remove unicode entity replacement step from v2v3 conversion. Fixes #641.

  * Merged in [4009] from krathnayake@ietf.org:
    Cache XML XInclude files with referencegroup. Fixes #653.

 -- Robert Sparks <rjsparks@nostrum.com>  21 Aug 2021 19:02:15 +0000

The preferred way to install xml2rfc is by doing 'pip install xml2rfc',
and 'pip install --upgrade xml2rfc' to upgrade.  If there are system-
installed python modules which pip will not upgrade, you may have to
use 'pip install --upgrade --no-deps xml2rfc' and install dependencies
manually.

The new version is also available through SVN checkout, with
  'svn checkout https://svn.ietf.org/svn/tools/xml2rfc/tags/cli/3.10.0'

Documentation for this release is built-in, and also available at:
  https://xml2rfc.tools.ietf.org/xml2rfc-doc-3.10.0.html

Regards,

        Robert Sparks
        (via the mkrelease script)

_______________________________________________
xml2rfc mailing list
xml2rfc@ietf.org
https://www.ietf.org/mailman/listinfo/xml2rfc

--00000000000049a26605ccbcfc68
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>It would be good to upgrade the version of xml2rfc th=
at is used by our CI to fix the rendering problem (extraneous double quotes=
) with Table 5 of the text version ([1]) of our draft.</div><div><br></div>=
<div>I raised <a href=3D"https://github.com/martinthomson/i-d-template/issu=
es/312">https://github.com/martinthomson/i-d-template/issues/312</a>, but I=
&#39;m not sure how to implement it. If anyone is interested and has the ti=
me, please take a look. <br></div><div><br></div><div>[1] <a href=3D"https:=
//ietf-wg-jsonpath.github.io/draft-ietf-jsonpath-base/draft-ietf-jsonpath-b=
ase.txt" target=3D"_blank">https://ietf-wg-jsonpath.github.io/draft-ietf-js=
onpath-base/draft-ietf-jsonpath-base.txt</a></div><div><br><div class=3D"gm=
ail_quote"><div dir=3D"ltr" class=3D"gmail_attr">---------- Forwarded messa=
ge ---------<br>From: <span dir=3D"auto">&lt;<a href=3D"mailto:rjsparks@nos=
trum.com" target=3D"_blank">rjsparks@nostrum.com</a>&gt;</span><br>Date: Tu=
e, 21 Sept 2021 at 19:12<br>Subject: [xml2rfc] New xml2rfc release: v3.10.0=
<br>To:  &lt;<a href=3D"mailto:xml2rfc-dev@ietf.org" target=3D"_blank">xml2=
rfc-dev@ietf.org</a>&gt;,  &lt;<a href=3D"mailto:xml2rfc@ietf.org" target=
=3D"_blank">xml2rfc@ietf.org</a>&gt;<br>Cc:  &lt;<a href=3D"mailto:rfc-mark=
down@ietf.org" target=3D"_blank">rfc-markdown@ietf.org</a>&gt;<br></div><br=
><br><br>
Hi,<br>
<br>
This is an automatic notification about a new xml2rfc release, <br>
v3.10.0, generated when running the mkrelease script.<br>
<br>
Release notes:<br>
<br>
xml2rfc (3.10.0) ietf; urgency=3Dlow<br>
<br>
=C2=A0 * Merged in [4043] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Fixes Python compatibility issues in bin/uglifycall. <br>
<br>
=C2=A0 * Merged in [4042] and [4045] from <a href=3D"mailto:krathnayake@iet=
f.org" target=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Updates docker/run command to support Apple M1. Fixes=C2=A0 #=
675.<br>
<br>
=C2=A0 * Merged in [4041] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Adds missing line joiner settings for &lt;ol&gt; and &lt;ul&g=
t;. Fixes #673.<br>
<br>
=C2=A0 * Merged in [4040] from <a href=3D"mailto:jennifer@painless-security=
.com" target=3D"_blank">jennifer@painless-security.com</a>:<br>
=C2=A0 =C2=A0 Fix Makefile rule precedence and repair canonical.xml test to=
 <br>
=C2=A0 =C2=A0 work with yestest. Fixes #671.<br>
<br>
=C2=A0 * Merged in [4037] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Changes RFC regression test to be a seperate test.<br>
<br>
=C2=A0 * Merged in [4036] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Adds RFC regression tests. Fixes #667.<br>
<br>
=C2=A0 * Merged in [4016] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Fix for bad PDF breaks.<br>
<br>
=C2=A0 * pin weasyprint&lt;53 for tox tests<br>
<br>
=C2=A0 * Merged in [4020] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Sort class values in HTML output. Fixes #553.<br>
<br>
=C2=A0 * Merged in [4018] and [4019] from <a href=3D"mailto:jennifer@painle=
ss-security.com" target=3D"_blank">jennifer@painless-security.com</a>:<br>
=C2=A0 =C2=A0 Keep pns from incoming xml when present; handle case that an =
author <br>
=C2=A0 =C2=A0 does not have an after-next element. Fixes #664.<br>
<br>
=C2=A0 * Merged in [4012] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Remove quotes from the text rendering of &lt;tt&gt;. Fixes #6=
00 and #647.<br>
<br>
=C2=A0 * Merged in [4011] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Fix info block runoff issue in PDFs. Fixes #606.<br>
<br>
=C2=A0 * Merged in [4010] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Remove unicode entity replacement step from v2v3 conversion. =
Fixes #641.<br>
<br>
=C2=A0 * Merged in [4009] from <a href=3D"mailto:krathnayake@ietf.org" targ=
et=3D"_blank">krathnayake@ietf.org</a>:<br>
=C2=A0 =C2=A0 Cache XML XInclude files with referencegroup. Fixes #653.<br>
<br>
=C2=A0-- Robert Sparks &lt;<a href=3D"mailto:rjsparks@nostrum.com" target=
=3D"_blank">rjsparks@nostrum.com</a>&gt;=C2=A0 21 Aug 2021 19:02:15 +0000<b=
r>
<br>
The preferred way to install xml2rfc is by doing &#39;pip install xml2rfc&#=
39;,<br>
and &#39;pip install --upgrade xml2rfc&#39; to upgrade.=C2=A0 If there are =
system-<br>
installed python modules which pip will not upgrade, you may have to<br>
use &#39;pip install --upgrade --no-deps xml2rfc&#39; and install dependenc=
ies<br>
manually.<br>
<br>
The new version is also available through SVN checkout, with<br>
=C2=A0 &#39;svn checkout <a href=3D"https://svn.ietf.org/svn/tools/xml2rfc/=
tags/cli/3.10.0" rel=3D"noreferrer" target=3D"_blank">https://svn.ietf.org/=
svn/tools/xml2rfc/tags/cli/3.10.0</a>&#39;<br>
<br>
Documentation for this release is built-in, and also available at:<br>
=C2=A0 <a href=3D"https://xml2rfc.tools.ietf.org/xml2rfc-doc-3.10.0.html" r=
el=3D"noreferrer" target=3D"_blank">https://xml2rfc.tools.ietf.org/xml2rfc-=
doc-3.10.0.html</a><br>
<br>
Regards,<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Robert Sparks<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 (via the mkrelease script)<br>
<br>
_______________________________________________<br>
xml2rfc mailing list<br>
<a href=3D"mailto:xml2rfc@ietf.org" target=3D"_blank">xml2rfc@ietf.org</a><=
br>
<a href=3D"https://www.ietf.org/mailman/listinfo/xml2rfc" rel=3D"noreferrer=
" target=3D"_blank">https://www.ietf.org/mailman/listinfo/xml2rfc</a><br>
</div></div></div>

--00000000000049a26605ccbcfc68--

