[Json] Re: Proposal for use of JSON Text vs JSON Document in JSON Schema
John Carlson <yottzumm@gmail.com> Tue, 19 May 2026 23:16 UTC
Return-Path: <yottzumm@gmail.com>
X-Original-To: json@mail2.ietf.org
Delivered-To: json@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 5962DF122AB6 for <json@mail2.ietf.org>; Tue, 19 May 2026 16:16:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1779232596; bh=FqfUCjlTS0TnuRwbbJBfJyGWD3KhE/q1+AeScQodWm4=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=M7IfsHZ7v1m66m8ICRDOl4CFaL3H2LoEz2s9PdtOmJyjaRFWDeHXgl1YU97Bv1cIw M7E4QbKl2iyGT+MuYD/iVzJ42zEe5SpPPHAFGtVJ9+vpks1mNvxINo3RnmQBnBoxla URl1p8u4r6zWaZhNaa72bjmS4cG0KmYR6/9+4GKQ=
X-Virus-Scanned: amavisd-new at ietf.org
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=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U0IO9W0FtEg3 for <json@mail2.ietf.org>; Tue, 19 May 2026 16:16:29 -0700 (PDT)
Received: from mail-dy1-x132e.google.com (mail-dy1-x132e.google.com [IPv6:2607:f8b0:4864:20::132e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id BD021F1229C2 for <json@ietf.org>; Tue, 19 May 2026 16:16:02 -0700 (PDT)
Received: by mail-dy1-x132e.google.com with SMTP id 5a478bee46e88-2ee1054627bso3362977eec.1 for <json@ietf.org>; Tue, 19 May 2026 16:16:02 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1779232562; cv=none; d=google.com; s=arc-20240605; b=fI6FkxetgQI6EvcQVgGdOVuxevuViM5xsWWJC5oFvlMq0voj8qv+ABs56r5j9mEuib be5YaIwm1TJJ0LbSlcTU1UvdJI8tor/hUhR6vK3UYSKbLAEJybE7CDdcejxi7QYTT5Cs rkY3xAs5RiCYmdQ7ZHDDFK6dj86AKQST4O7HnlMV9xbALAfdivn09xBLKlTkeSLldh6z dAsvQi9SUueH3Xh2SqsRH7gQdHcZxSa+svlVNyPkEJsCDi59D/G6gV/QSC7XCfxy4L2I kA9EU71RZYz3Fjc6PkgCFvvsGIGoB9FEtQkneQco6QRTsmhe+0GHGyYluqEbL9SKari2 LRdA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=m/P9eV6iLMrCL4a19mpVNGRDF8NEPK2vSoEafon9uWc=; fh=+dQDn3xdGCwK/xZfmBZILT2GQaH+Jv8P5eSHAYNIUyc=; b=HrkwTktdCGDpp7Mx4frVHgguVmfNIsBSygfj5VUTzNMIa8NMiCXnZsXfhuLkpQcYKl pqLAfdajBUQyT7DyFa8azFg4iM1FOvb4CBBRNVMfanUg8BZE/DOF6gm2mFDymO38nlhI yg39EvBy2FmFZR0MjGjy9e0NIEAbCM4k5KIxveBPLYmaTWzOH/v2r68cw6zKAChAOaRH +NichbjNe7P4h5++w2xXIhMo0MwSIoLyhzTwY9jgkXvO5lEYKmoKquqqZ+/GkrWcXG9p wC685HaP+0W0gY8SIryATYz0eURcOiGZV14RD66NlU5IfMI1smcSmYBlXCVkGOp9s0GQ LNSw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779232562; x=1779837362; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=m/P9eV6iLMrCL4a19mpVNGRDF8NEPK2vSoEafon9uWc=; b=Erp/AAyb4YJlSzcHcyExvmHMWG4Ve47lJwZq0wzyQrM1KRNhISDU8n5yeH9uFMjMkm 85t8t7zqcKQSAc7KFwIlpIX43QcOvD/WM+yRPbia/f2q4MNJr88a03w9G1C5UR2cGZtV FtGnpavbrjwFlSRypHt2in9O64FIV7Dh2lCPq/BcD59eXty6442tA+rU73/bdOXFG5Dh X8FjRn8djFI5nRJBbj9Do6Wzx2KMue68QkLTATdLq79Ddl4xs3ffPk4NNsGN2LlWqQwk 0Pf/7hia1nOtfzS+pmOHmfe5/l31OJUaf+8T3qO1jAncrB1S/USZvvJXBwOZJ7sKtFb1 YiQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779232562; x=1779837362; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=m/P9eV6iLMrCL4a19mpVNGRDF8NEPK2vSoEafon9uWc=; b=W5SSpTj1C6eiq0tWL9WqE2quy7wVvF8kssGCxeg0jLVwM3uj79TIZjYTyj14hx6Q2e Eh8v4RghoeJTXHDRt4ri0vX1wbdJ+w+qmIvFdtLxXjuobd4CpSA8ce1R0F5Kx+B+qs2q vUmeUqniX/qCpPhAsjCxXaNv89RJ4cPEPoayxjEVs6v4aXHOjKAg2uuKlDTVS7h1lRP2 kzeBw93gEc6CeWfjJJSpW2IWZeME+NFW8PjORPoupAhazY2+uXJZeLUefBkSF5oRWxyQ V70DMR3JoQl125tI8TIu9Rq9XvPiU0bmanyvmGRgvnAEf4iVl76S+N9mt+LRIwA95BgH 7BMw==
X-Forwarded-Encrypted: i=1; AFNElJ/OvAsXAikmr6TAw7RX42bx3uhse/F7UjttKEwo2jINeIoMqjLwiiaWxvGDAtXY5ESFVy1h@ietf.org
X-Gm-Message-State: AOJu0YxMpbfEctBcedPzy80dqVFq/SWSRIO1YCjbU1LXxaqICA73I1pG VApuQTPoz2x/sSLX0zsGuAE5R2fjoRZ9xQwGzMjUGKT8zNDetvqoBY6WJDgi1DUA9gwM2F2aKKI xIdXoHC3PkcK2BwL8q+ObZAYLVNLFDkI=
X-Gm-Gg: Acq92OHEPwLel/CpXh9eNmYODwmThSlrtJ+oc2r4Mj2zMdo0QsGpP26zydKsUpocXmh Fa9V1X0adZVup/03lV08MFwzFSkGGEE2RljpidO5ycszTqwigSDi3KbJxmWC6hi6xcSRFene0+M t32lotoUBy6v1f5t8WgEZXkyTQwOsiYyIRJohECEm8D5rtA5TH9ZrkNT4jJ+emABtE5BsZR953S 18XETumc9YXXGhLI8jyhsaNVrYcRiiwLYCMZFXNH2oO1yLHUwWAOVzMyIPjk0cm932fQDi7GZzF 3W0JFbGVUWx+X/3CaqudtRuXXROhcqFmAWdtNz+3NTkPL1GueUu7zGn7KoBkrz2uIpS1FFzV+2w /EEWdArkdu/tt87T32brMTeCW8u0bfW4=
X-Received: by 2002:a05:7300:fd16:b0:2de:e194:5fb1 with SMTP id 5a478bee46e88-30397897781mr8673172eec.7.1779232561598; Tue, 19 May 2026 16:16:01 -0700 (PDT)
MIME-Version: 1.0
References: <CAEi+uC7geTKVn-NXkDsBaPo39dcKLMJ+G2ffFW4229mJd-O5_w@mail.gmail.com> <MN2PR17MB4031C8B63AFF804B4FB54A69CD002@MN2PR17MB4031.namprd17.prod.outlook.com> <725352192.2278846.1779206890302@mail.yahoo.com> <CAE5tNmrjo6mBQCbjpU43R2DafkovMTdX25=zzsZ_g8SrV3DefA@mail.gmail.com> <65D17014-7F89-41BD-B883-D1EA1F56AD29@tzi.org> <2098935972.2327556.1779216811802@mail.yahoo.com> <CAE5tNmqNuykd7+zGAV_KAGKE+jS2=-miEVfcrotBMaRZyxWUJw@mail.gmail.com> <1143027163.2397896.1779231800277@mail.yahoo.com>
In-Reply-To: <1143027163.2397896.1779231800277@mail.yahoo.com>
From: John Carlson <yottzumm@gmail.com>
Date: Tue, 19 May 2026 18:15:50 -0500
X-Gm-Features: AVHnY4IjYU7RDQ3mJnJ60pyNYnHe4PGvL-jdJb4jcdRkA2BlLDTub68h2IkS_C0
Message-ID: <CAGC3UEmVESxaY-D=2o5d7jprpaaogvv4P8S5pUn2OfZEqfY=ew@mail.gmail.com>
To: Henry Andrews <andrews_henry@yahoo.com>
Content-Type: multipart/alternative; boundary="000000000000ce946a065233dc5d"
Message-ID-Hash: BL75N5APKCYNAT2TCTZAUBVAOBO2RO3C
X-Message-ID-Hash: BL75N5APKCYNAT2TCTZAUBVAOBO2RO3C
X-MailFrom: yottzumm@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-json.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: David Kemp <dk190a@gmail.com>, Carsten Bormann <cabo@tzi.org>, Lisa Dusseault <lisa.dusseault@gmail.com>, JSON WG <json@ietf.org>, "Salz, Rich" <rsalz=40akamai.com@dmarc.ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Json] Re: Proposal for use of JSON Text vs JSON Document in JSON Schema
List-Id: "JavaScript Object Notation (JSON) WG mailing list" <json.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/D6LEPxkftIKXPcPAvAYtLu9nSXM>
List-Archive: <https://mailarchive.ietf.org/arch/browse/json>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Owner: <mailto:json-owner@ietf.org>
List-Post: <mailto:json@ietf.org>
List-Subscribe: <mailto:json-join@ietf.org>
List-Unsubscribe: <mailto:json-leave@ietf.org>
Let’s not do “schema instance” I was thinking I could convert JSON schema text to XSD text, and was going wait a minute. John On Tue, May 19, 2026 at 6:05 PM Henry Andrews <andrews_henry= 40yahoo.com@dmarc.ietf.org> wrote: > Inventing "schema instance" for schemas would be massively confusing to > all of the users and implementors out there. Yes, schemas are instances of > their metaschemas, but that's like saying someone who is a parent is also a > child of *their* parents. It is a true statement, but when choosing > whether to refer to them as parents or children, the context matters. The > JSON Schema community has used "schema instance" for _instances_ (validated > input), not schemas, for well over a decade. > > I am enthusiastic about clarifying ambiguous language, which might include > dropping long-used terminology in favor of something new (or old, from a > better-established lineage of specifications). But appropriating a term > that has a well-established meaning and *redefining it to mean something > else* is just going to create confusion. > > > A namespace is not a resource. > > Something that is identified by a Uniform Resource Identifier is, by > definition, a resource. There is absolutely not requirement that resources > be physical things. A resource can be an abstract concept with no physical > manifestation at all. > > thanks, > -henry > > > On Tuesday, May 19, 2026 at 03:46:00 PM PDT, David Kemp <dk190a@gmail.com> > wrote: > > > 1. Because the JSON metaschema is a JSON value, it defines a Schema type > and every JSON Schema value is an instance of that type. This is the key > to everything. > 2. JSON Schema instances can be serialized as JSON documents or YAML > documents. (Using an IM the same JSON Schema instance could be serialized > as an XML document.) > 3. The $id keyword is an absolute IRI that defines the namespace of every > Schema instance, allowing qualified references to every > namespace#$defs-name type (using fragment notation) or prefix:$defs-name > (using QNAMEs if prefix abbreviations are assigned to namespaces). > 4. Every type defined in every Schema instance is a unit of serialization. > > To take a random example, the JSON Schema for CycloneDX at > https://github.com/CycloneDX/specification/blob/master/schema/bom-1.6.schema.json > has a namespace "$id": "http://cyclonedx.org/schema/bom-1.6.schema.json", > an unnamed root type with two required properties, and finally at line 534 > it has top-level definitions > that could be referenced externally, starting with cdx:refType if the > referencer defines "cdx" as the prefix for the referenced namespace. > > That file is a JSON document that defines a "bom-1.6.schema". There could > also be a YAML document ".../bom-1.6.schema.yaml" that defines the > identical "bom-1.6.schema". They are both instances of the JSON metaschema > so you can call the value a "schema instance" or "schema value" or simply a > "schema", whereas a CycloneDX value parsed from a JSON or YAML document > would be a "cdx-bom-1.6 instance" or "cdx-bom-1.6 value" or simply a > "cdx-1.6 bom". The $id namespace should be semantically a URN even if it > has an http:// scheme, with no file pathnames or extensions. > > I think of "resource" as being a physical thing, so the > bom-1.6-schema.json file and bom-1.6-schema.yaml file are different > resources that parse to the identical schema. The identical files copied to > a different server would be two additional different resources, for a total > of 4. If that is what resource means, then a document is a resource. A > namespace is not a resource. > > Regards, > David > > On Tue, May 19, 2026 at 2:53 PM Henry Andrews <andrews_henry@yahoo.com> > wrote: > > David and Carsten, > I agree that "JSON value" is pretty close to what we have been doing > with "JSON Schema document", but Carsten does note part of the concern here. > > I think we've also gotten some wires crossed a bit, though, as we are > talking about the _schemas_, not the things that schemas describe (which, > IIRC, in the latest draft we call "inputs" prior to validation, and then > "instances" if they pass validation. In prior drafts, we used "instance" > rather more broadly). > > So what we're really discussing here is more akin to "schema document" > than "JSON document"/"JSON value". We call it a "JSON Schema document" > because it is "JSON Schema" that we're talking about, but the "JSON" part > is not the important part. It's schema documents vs schema resources. > > Therefore, we really can't call these things "instances" as that is what > things that the schema describes have been called for many years. > > I'm going to try to summarize the various concepts: > > * JSON Schema in the form of JSON text: application/schema+json or similar > media type; A serialization format to allow interoperable exchange of > schemas > * JSON Schema in the form of YAML text: (application/schema+yaml or > similar media type; Same as above, but with YAML. If we want to add that. > * JSON Schema as a unit of serialization: currently "JSON Schema > document", but under debate. Not required to have ever been actual JSON. > * JSON Schema as an identifiable unit: "JSON Schema resource"; identified > by an absolute-URI (e.g. a "primary resource" in terms of RFC3986) > * JSON input (and potential instance) in the form of JSON text: > application/json, possibly with a profile param, or possibly a media type > like application/schema-instance+json; a media type or media type parameter > for interoperably associating an input (potential instance) with a schema > in exchanges such as via HTTP > * input (and potential instance), independent of serialization format, if > any: I think we just call this the input or instance? We don't make a > particularly big deal about serializing inputs/instances, IIRC. > > BTW I am really appreciating the effort to bring rigor to the > terminology. It's something we always struggled with. > > thanks, > -henry > > On Tuesday, May 19, 2026 at 09:54:38 AM PDT, Carsten Bormann <cabo@tzi.org> > wrote: > > > On 2026-05-19, at 18:41, David Kemp <dk190a@gmail.com> wrote: > > > > s/JSON document/JSON value/g > > > > As Carsten said, there is already a clearly-defined word for the concept > of "contrasting schema values with resources" and "an instance value is a > unit of serialization". That word is "value", not "document". Using a > word in a way that contradicts its widely-understood meaning is a recipe > for confusion. > > Right, I talked about the difference between the JSON text and the JSON > value (value that is parsed/ingested from JSON). > > However, people also seemed to want to have a “whole” vs. “part” > distinction. > If we need to avoid the term “document”, the JSON value that is the whole > thing the JSON schema model is trying to describe could be called “JSON > instance”. > We also need a word for the JSON value that describes the whole JSON > schema model — I obviously like the word model, but I’m not going to make a > proposal. > (Note also that the model may be composed from more than one JSON Schema > value/text.) > > (If you want to save a bit of time, you might want to have a look how we > solved a related terminology problem in RFC 9880.) > > Grüße, Carsten > > _______________________________________________ > json mailing list -- json@ietf.org > To unsubscribe send an email to json-leave@ietf.org >
- [Json] Proposal for use of JSON Text vs JSON Docu… Lisa Dusseault
- [Json] Re: Proposal for use of JSON Text vs JSON … Rob Sayre
- [Json] Re: Proposal for use of JSON Text vs JSON … Carsten Bormann
- [Json] Re: Proposal for use of JSON Text vs JSON … Martin J. Dürst
- [Json] Re: Proposal for use of JSON Text vs JSON … Rob Sayre
- [Json] Re: Proposal for use of JSON Text vs JSON … Carsten Bormann
- [Json] Re: Proposal for use of JSON Text vs JSON … David Kemp
- [Json] Re: Proposal for use of JSON Text vs JSON … Salz, Rich
- [Json] Re: Proposal for use of JSON Text vs JSON … Henry Andrews
- [Json] Re: Proposal for use of JSON Text vs JSON … David Kemp
- [Json] Re: Proposal for use of JSON Text vs JSON … Carsten Bormann
- [Json] Re: Proposal for use of JSON Text vs JSON … Henry Andrews
- [Json] Re: Proposal for use of JSON Text vs JSON … David Kemp
- [Json] Re: Proposal for use of JSON Text vs JSON … Henry Andrews
- [Json] Re: Proposal for use of JSON Text vs JSON … John Carlson
- [Json] Re: Proposal for use of JSON Text vs JSON … David Kemp
- [Json] Re: Proposal for use of JSON Text vs JSON … Henry Andrews