summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9402.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9402.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9402.txt')
-rw-r--r--doc/rfc/rfc9402.txt357
1 files changed, 357 insertions, 0 deletions
diff --git a/doc/rfc/rfc9402.txt b/doc/rfc/rfc9402.txt
new file mode 100644
index 0000000..75178e2
--- /dev/null
+++ b/doc/rfc/rfc9402.txt
@@ -0,0 +1,357 @@
+
+
+
+
+Independent Submission M. Basaglia
+Request for Comments: 9402
+Category: Informational J. Bernards
+ISSN: 2070-1721
+ J. Maas
+ 1 April 2023
+
+
+ Concat Notation
+
+Abstract
+
+ This document defines the Concat notation: a text-based language used
+ to describe pictures and videos whose subject includes cats,
+ containers, and their interactions.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This is a contribution to the RFC Series, independently of any other
+ RFC stream. The RFC Editor has chosen to publish this document at
+ its discretion and makes no statement about its value for
+ implementation or deployment. Documents approved for publication by
+ the RFC Editor are not candidates for any level of Internet Standard;
+ see Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9402.
+
+Copyright Notice
+
+ Copyright (c) 2023 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document.
+
+Table of Contents
+
+ 1. Introduction
+ 1.1. Conventions Used in This Document
+ 2. Definition
+ 2.1. Terminology
+ 2.2. Grammar
+ 3. Elements
+ 3.1. Subjects
+ 3.1.1. Cats
+ 3.1.2. Partial Cats
+ 3.1.3. Other Animals
+ 3.1.4. Balls of Yarn
+ 3.2. Containers
+ 3.3. Positioning
+ 3.3.1. Horizontal Position
+ 3.3.2. Vertical Position
+ 3.3.3. Multiple Repeated Objects
+ 3.4. Changes over Time
+ 3.4.1. Disambiguation
+ 4. Internationalization Considerations
+ 5. Security Considerations
+ 6. IANA Considerations
+ 7. Normative References
+ Appendix A. Examples
+ Authors' Addresses
+
+1. Introduction
+
+ Cat pictures and videos are often shared across the Internet. Many
+ of these files display feline subjects interacting with boxes and
+ other containers.
+
+ Since there is currently no compact notation for describing such
+ media, this document details a standard notation to describe the
+ position and interaction of cats, containers, and related subjects
+ pictured in these images.
+
+ The notation language described in this document is text-based and
+ limits itself to the US-ASCII character encoding [RFC0020], allowing
+ the transfer of cat-related materials in environments with restricted
+ capabilities.
+
+1.1. Conventions Used in This Document
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+2. Definition
+
+2.1. Terminology
+
+ This document uses specific terms to refer to items being depicted by
+ the notation described herein.
+
+ To avoid ambiguity, such terms are defined as follows:
+
+ Subject: The term "subject" is used in this document to refer to the
+ object that is the focus in the media to be annotated. This
+ usually is an animate object, specifically a cat. An annotation
+ can have multiple subjects interacting in various ways.
+
+ Cat: A cat is a special kind of subject of feline origin. This
+ document will assume a house cat is present in the source media;
+ however, other felines are also acceptable.
+
+ Container: The term "container" is used to refer to inanimate
+ objects inside of which one or more subjects can be located. Most
+ commonly, this will be a cardboard box; however, a variety of
+ containers can be used.
+
+2.2. Grammar
+
+ The grammar is defined using the ABNF notation [RFC5234].
+
+ SEQUENCE = POSITION / POSITION "=>" SEQUENCE
+ POSITION = ADJACENT
+ ADJACENT = OVER / ADJACENT "+" OVER
+ OVER = MULTIPLE / MULTIPLE "/" POSITION
+ MULTIPLE = CONCAT / NUMBER [ "*" ] MULTIPLE / NUMBER "/" MULTIPLE
+ CONCAT = SUBJECT [ NUMBER ] / [ PARTIAL ] CONTAINER [ PARTIAL ]
+ CONTAINER = "[" OPT-POS "]" / "(" OPT-POS ")"
+ CONTAINER =/ "{" OPT-POS "}" / "<" OPT-POS ">"
+ OPT-POS = [ POSITION ]
+ SUBJECT = CAT / 1*ALPHA / "@"
+ CAT = "cat" / PARTIAL
+ PARTIAL = "c" / "a" / "t" / "ca" / "at"
+ ALPHA = %x41-5A / %x61-7A
+ NUMBER = 1*DIGIT
+ DIGIT = "0" / "1" / "2" / "3" / "4"
+ DIGIT =/ "5" / "6" / "7" / "8" / "9"
+
+3. Elements
+
+3.1. Subjects
+
+3.1.1. Cats
+
+ The standard notation for a cat is the word cat.
+
+3.1.2. Partial Cats
+
+ When referencing cats partly inside a container, the annotation MUST
+ contain the full cat mark adequately split inside and outside the
+ container.
+
+ If a cat is only partly visible in the frame of the picture or video,
+ the annotation MAY only reference the visible portion of the cat.
+
+ The partial cat notations are as follows:
+
+ c: marks the head of the cat.
+
+ a: marks the body of the cat.
+
+ t: marks the tail of the cat.
+
+ ca: marks the head and body of the cat.
+
+ at: marks the body and tail of the cat.
+
+ The annotation for a partial cat SHOULD use the terms mentioned above
+ that best describe the portion of the cat that is being referenced.
+
+3.1.3. Other Animals
+
+ Other animals or animate objects SHOULD be represented with a
+ suitable word describing the species of such animal. The cat-
+ specific words described in this document MUST NOT be used for non-
+ feline subjects.
+
+3.1.4. Balls of Yarn
+
+ Balls of yarn SHOULD be represented with @.
+
+3.2. Containers
+
+ When a cat or other subject is inside a container, the container
+ notation MUST be used. Such notation is denoted by its subject being
+ between brackets. The type of bracket depends on the shape of the
+ container as follows:
+
+ * Square brackets represent boxes or other containers with a
+ rectangular opening.
+
+ * Parentheses represent containers with a round opening or shape.
+
+ * Curly braces SHALL be used to represent soft containers without a
+ fixed shape.
+
+ Additionally, angle brackets MAY be used to group subjects outside a
+ container. Such annotations MUST NOT contain partial cats.
+
+3.3. Positioning
+
+ The Concat notation only gives information about the general layout
+ of subjects and containers, but it does make a distinction between
+ horizontal and vertical positions.
+
+ The order of positional operands SHOULD follow the order in which
+ they appear from left to right in the source media.
+
+3.3.1. Horizontal Position
+
+ The + operator is used to represent subjects or containers next to
+ each other.
+
+3.3.2. Vertical Position
+
+ When a subject is above or on top of another, the operator / MUST be
+ used.
+
+3.3.3. Multiple Repeated Objects
+
+ When multiple objects or configurations are repeated, the shorthand
+ notation MAY be used.
+
+ Horizontal positioning is denoted by a number followed by an optional
+ * and the annotation to be repeated.
+
+ Similarly, for vertical positioning, repeated objects are denoted by
+ a number followed by / and the annotation to be repeated.
+
+ When using such a shorthand, the number of repetitions MUST be a
+ positive integer.
+
+3.4. Changes over Time
+
+ In the case of videos or other animations, a proper Concat notation
+ SHOULD make use of the state change operator (=>) to mark significant
+ changes in the cat position and major interactions.
+
+3.4.1. Disambiguation
+
+ Subject tokens MAY be followed by an integer identifier to
+ distinguish specific cats, balls of yarn, or other subjects. An
+ annotation containing such numeric disambiguations MUST contain such
+ disambiguations for all cats and balls of yarn.
+
+ Since a specific subject can only appear once in a static image,
+ disambiguation identifiers SHOULD be used only on annotations showing
+ state changes.
+
+4. Internationalization Considerations
+
+ The word cat is in English and is provided to allow transfer of
+ Concat notations using only the US-ASCII character encoding
+ [RFC0020].
+
+ Users of other languages MAY extend the alphabet and use their
+ localized words for cat and other animals.
+
+ Non-standard words for cats SHOULD NOT be used unless all parties
+ involved in the production and consumption of the Concat notation
+ have agreed upon a character encoding and a language prior to the
+ transmission of the annotation.
+
+5. Security Considerations
+
+ A cat might find themselves in a container smaller than the perceived
+ volume of the cat. While this might seem to be a dangerous
+ situation, it's actually a natural occurrence when the cat is in its
+ liquid form.
+
+ Cats might chew on the cardboard of the box containing them. To
+ mitigate this attack, we recommend having multiple boxes to put the
+ cats into.
+
+6. IANA Considerations
+
+ This document has no IANA actions.
+
+7. Normative References
+
+ [RFC0020] Cerf, V., "ASCII format for network interchange", STD 80,
+ RFC 20, DOI 10.17487/RFC0020, October 1969,
+ <https://www.rfc-editor.org/info/rfc20>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234,
+ DOI 10.17487/RFC5234, January 2008,
+ <https://www.rfc-editor.org/info/rfc5234>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+Appendix A. Examples
+
+ This appendix provides some examples of the Concat notation.
+
+ [cat]
+
+ Figure 1: A Cat in a Box
+
+ [cat] + cat
+
+ Figure 2: A Cat in a Box Next to a Cat Not in a Box
+
+ cat / [cat]
+
+ Figure 3: A Cat over a Box Containing Another Cat
+
+ [c]at
+
+ Figure 4: A Cat with Its Head inside a Box
+
+ 3 * cat
+
+ Figure 5: 3 Cats Side by Side
+
+ 3 / cat
+
+ Figure 6: 3 Cats on Top of Each Other
+
+ cat + cat / [cat]
+
+ Figure 7: A Cat Standing Next to a Box That Has a Cat on Top and
+ inside of It
+
+ <cat + cat> / [cat]
+
+ Figure 8: Two Cats Standing on a Box with Another Cat inside of It
+
+ cat1 + [cat2] => cat2 + [cat1]
+
+ Figure 9: A Cat inside a Box and a Cat outside Swap Places
+
+Authors' Addresses
+
+ Mattia Basaglia
+ Email: glax@dragon.best
+ URI: https://dragon.best/
+
+
+ Joep Bernards
+ Email: joep@duali.xyz
+
+
+ Joost Maas
+ Email: J.f.w.maas@tue.nl