From 268d985616e46eb24bec9b763521391bd626b1d6 Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Wed, 24 Jan 2024 15:44:01 +1300 Subject: [PATCH 1/5] add glossary entry for 'implementation' --- pages/learn/glossary.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pages/learn/glossary.md b/pages/learn/glossary.md index 66b4a3abc..57fc5eeea 100644 --- a/pages/learn/glossary.md +++ b/pages/learn/glossary.md @@ -53,6 +53,19 @@ A property appearing within a [schema](#schema) object. The [JSON Schema specification](../specification) defines behavior for a large library of keywords which can be used to describe [instances](#instance). +### implementation + +An implementation is any piece of software that provides or exposes behavior defined by the JSON Schema specification. + +The following are considered implementations: + +- a validator library +- a CLI validator +- a schema or code generator +- a UI form generator + +Applications which use JSON Schema internally without exposing that functionality in some way, for example, validating configuration files or web requests, are not considered implementations. + ### instance A piece of JSON data which is to be described by a [schema](#schema). From 8e8f4b5bc2983ee2b4846f2807f54596dedc04ab Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Fri, 2 Feb 2024 09:19:53 +1300 Subject: [PATCH 2/5] update implementation defn --- pages/learn/glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/learn/glossary.md b/pages/learn/glossary.md index 57fc5eeea..ccff8b230 100644 --- a/pages/learn/glossary.md +++ b/pages/learn/glossary.md @@ -55,7 +55,7 @@ The [JSON Schema specification](../specification) defines behavior for a large l ### implementation -An implementation is any piece of software that provides or exposes behavior defined by the JSON Schema specification. +An implementation is any software tooling or library for working with or evaluating schemas in some way that does not contradict the JSON Schema specification. The following are considered implementations: From 34738ce91fefe123bd82f5914dcc8c29c2018c5c Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Tue, 6 Feb 2024 12:52:26 +1300 Subject: [PATCH 3/5] update 'implementation' to prefer 'tooling'; move defn to 'tooling' --- pages/learn/glossary.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pages/learn/glossary.md b/pages/learn/glossary.md index ccff8b230..e2b18eae0 100644 --- a/pages/learn/glossary.md +++ b/pages/learn/glossary.md @@ -55,16 +55,7 @@ The [JSON Schema specification](../specification) defines behavior for a large l ### implementation -An implementation is any software tooling or library for working with or evaluating schemas in some way that does not contradict the JSON Schema specification. - -The following are considered implementations: - -- a validator library -- a CLI validator -- a schema or code generator -- a UI form generator - -Applications which use JSON Schema internally without exposing that functionality in some way, for example, validating configuration files or web requests, are not considered implementations. +Historically, the word "implementation" has been used to describe both specifically validators/annotators (interpreted as strictly operating as the spec describes) and also various other kinds of JSON Schema tooling. However, due to this ambiguity, we have decided that the preferred conversational term should be ["tooling"](#tooling). ### instance @@ -125,6 +116,19 @@ Said more plainly, whether a particular value is a subschema or not depends on i Subschemas may themselves contain sub-subschemas, though colloquially one generally uses the term "subschema" regardless of the level of nesting, further clarifying which larger schema is the parent schema whenever needed. +### tooling + +A JSON Schema tool (or colloquially "tooling") is any software application or library for working with or evaluating schemas in some way that does not contradict the JSON Schema specification. + +The following are considered tools: + +- a validator library +- a CLI validator +- a schema or code generator +- a UI form generator + +Applications which use JSON Schema internally without exposing that functionality in some way, for example, validating configuration files or web requests, are not considered tooling. + ### vocabulary A tightly related collection of [keywords](#keyword), grouped to facilitate re-use. From a2bfdc4e98095b7b380153c0d904d052d8cb9e36 Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Thu, 8 Feb 2024 08:33:17 +1300 Subject: [PATCH 4/5] Update pages/learn/glossary.md Co-authored-by: Jason Desrosiers --- pages/learn/glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/learn/glossary.md b/pages/learn/glossary.md index e2b18eae0..d414b67dd 100644 --- a/pages/learn/glossary.md +++ b/pages/learn/glossary.md @@ -118,7 +118,7 @@ Subschemas may themselves contain sub-subschemas, though colloquially one genera ### tooling -A JSON Schema tool (or colloquially "tooling") is any software application or library for working with or evaluating schemas in some way that does not contradict the JSON Schema specification. +A JSON Schema tool (or colloquially "tooling") is any software application or library for working with or evaluating schemas in some way. The following are considered tools: From 944e6cef163d92a201554deb0f4ff76791620204 Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Thu, 8 Feb 2024 10:04:51 +1300 Subject: [PATCH 5/5] reword clarification about validators and the spec --- pages/learn/glossary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/learn/glossary.md b/pages/learn/glossary.md index d414b67dd..decf97dbf 100644 --- a/pages/learn/glossary.md +++ b/pages/learn/glossary.md @@ -55,7 +55,7 @@ The [JSON Schema specification](../specification) defines behavior for a large l ### implementation -Historically, the word "implementation" has been used to describe both specifically validators/annotators (interpreted as strictly operating as the spec describes) and also various other kinds of JSON Schema tooling. However, due to this ambiguity, we have decided that the preferred conversational term should be ["tooling"](#tooling). +Historically, the word "implementation" has been used to describe both specifically validators/annotators (the scope of the spec) and also various other kinds of JSON Schema tooling. However, due to this ambiguity, we have decided that the preferred conversational term should be ["tooling"](#tooling). ### instance