Concat Notationglax@dragon.besthttps://dragon.best/joep@duali.xyzJ.f.w.maas@tue.nlcatcontainerThis 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
.
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
() 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
. Introduction
. Conventions Used in This Document
. Definition
. Terminology
. Grammar
. Elements
. Subjects
. Cats
. Partial Cats
. Other Animals
. Balls of Yarn
. Containers
. Positioning
. Horizontal Position
. Vertical Position
. Multiple Repeated Objects
. Changes over Time
. Disambiguation
. Internationalization Considerations
. Security Considerations
. IANA Considerations
. Normative References
. Examples
Authors' Addresses
IntroductionCat 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 , allowing
the transfer of cat-related materials in environments with restricted
capabilities.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
when, and only when, they appear in all capitals, as shown here.
DefinitionTerminologyThis 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.
GrammarThe grammar is defined using the ABNF notation .
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"
ElementsSubjectsCatsThe standard notation for a cat is the word cat.Partial CatsWhen 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.Other AnimalsOther 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.Balls of YarnBalls of yarn SHOULD be represented with @.ContainersWhen 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.PositioningThe 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.Horizontal PositionThe + operator is used to represent subjects or containers
next to each other.Vertical PositionWhen a subject is above or on top of another, the operator /MUST be
used.Multiple Repeated ObjectsWhen 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.Changes over TimeIn 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.DisambiguationSubject 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.Internationalization ConsiderationsThe word cat is in English and is provided to allow transfer of
Concat notations using only the US-ASCII character encoding .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.Security ConsiderationsA 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.IANA ConsiderationsThis document has no IANA actions.Normative ReferencesASCII format for network interchangeKey words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.Augmented BNF for Syntax Specifications: ABNFInternet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]Ambiguity of Uppercase vs Lowercase in RFC 2119 Key WordsRFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.ExamplesThis appendix provides some examples of the Concat notation.Authors' Addressesglax@dragon.besthttps://dragon.best/joep@duali.xyzJ.f.w.maas@tue.nl