[Joke-RFC] RFC9402 Concat 表記法

# はじめに

* この文書は [RFC9402](https://www.rfc-editor.org/rfc/rfc9402.txt) を勉強と好奇心のため適当に訳したものです。
* 翻訳の正確さは全く保証しません。
* 誤字誤訳等の指摘はいつでも大歓迎です。

- おそらくは、「連結する」の concatenate ではなくて、コンテナ（段ボールとか）と猫で、con+cat なんだと思う。
- （さすがに、これに「コンテナ」タグ、あるいは「コンテナ技術」タグをつけるのはまずいかな？）
- 今年のジョーク RFC は [RFC9401](https://qiita.com/yoshi389111/items/0a83938d4b0939cd41c3)、RFC9402、[RFC9405](https://qiita.com/yoshi389111/items/8f081fac79a6f45c2389) の３本でした。その他は、[ジョーク RFC 一覧](https://qiita.com/yoshi389111/items/6ba5966f739ea01c6719) をどうぞ。


# Concat Notation（Concat 表記法）

* Independent Submission
* Request for Comments: 9402
* Category: Informational
* ISSN: 2070-1721

- M. Basaglia
- J. Bernards
- J. Maas
- 1 April 2023

## 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.

本文書では、Concat 表記法を定義する。Concat 表記法は、猫、コンテナ、およびそれらの相互作用を主題とする写真やビデオを記述するために使用されるテキストベースの言語である。

## 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.

これは、他の RFC ストリームとは関係なく、RFC シリーズへの貢献である。 RFC 編集者は、その裁量でこの文書を公開することを選択しており、実装または展開の価値については何も述べていない。 RFC 編集者によって発行が承認された文書は、どのレベルのインターネット標準の候補にもならない。 RFC 7841 の 2 章を参照のこと。

> 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.

この文書の現在のステータス、正誤表、フィードバックの提供方法に関する情報は、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.

本文書で説明されている表記言語はテキストベースであり、US-ASCII 文字エンコーディング [RFC0020] に制限されているため、機能が制限された環境でも猫関連の資料を転送できる。

### 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.

本文書でキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、および「OPTIONAL」 」は、ここに示すようにすべて大文字で表示される場合にのみ、BCP 14 [RFC2119] [RFC8174] で説明されているように解釈される。

## 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.

サブジェクト(Subject; 訳注: ここでは被写体の意): 「サブジェクト」という用語は、本文書では、注釈が付けられるメディアの焦点であるオブジェクトを指すために使用される。 これは通常、アニメートオブジェクト（訳注：生きている物＝生物の意味）、具体的には猫である。 注釈には、さまざまな方法で相互作用する複数のサブジェクトを含めることができる。

> 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.

猫(Cat): 猫は、ネコ科起源の特別な種類のサブジェクトである。 本文書では、ソースメディアに飼い猫が存在することを前提としている。 ただし、他の猫も受け入れられる。

> 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.

コンテナ(Container): 「コンテナ」という用語は、内部に 1 匹以上の被験者を配置できる無生物を指すために使用される。 最も一般的なのは段ボール箱である。 ただし、さまざまなコンテナを使用できる。

### 2.2.  Grammar（文法）

> The grammar is defined using the ABNF notation [RFC5234].

文法は ABNF 表記を使用して定義される [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`.

猫の標準的な表記法は `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.

コンテナ内の猫を部分的に参照する場合、注釈には、コンテナの内側と外側に適切に分割された完全な猫マークが含まれている必要がある (MUST)。

> 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.

猫が写真またはビデオのフレームに部分的にしか見えない場合、注釈は猫の見える部分のみを参照してもよい (MAY)。

> The partial cat notations are as follows:

部分的な猫の表記は次のとおりである。

> `c`:  marks the head of the cat.

`c`:  猫の頭をマークする。

> `a`:  marks the body of the cat.

`a`: 猫の体をマークする。

> `t`:  marks the tail of the cat.

`t`: 猫の尾をマークする。

> `ca`:  marks the head and body of the cat.

`ca`: 猫の頭と体をマークする。

> `at`:  marks the body and tail of the cat.

`at`: 猫と体と尾をマークする。

> The annotation for a partial cat SHOULD use the terms mentioned above that best describe the portion of the cat that is being referenced.

部分的な猫の注釈は、参照されている猫の部分を最もよく説明する上記の用語を使用する必要がある (SHOULD)。

#### 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.

他の動物またはアニメートオブジェクト（生物）は、そのような動物の種を説明する適切な言葉で表現する必要がある (SHOULD)。 本文書で説明されている猫固有の単語は、猫以外のサブジェクトに使用してはならない (MUST NOT)。

#### 3.1.4.  Balls of Yarn（毛糸の玉）

> Balls of yarn SHOULD be represented with `@`.

糸の玉は `@` で表す必要がある (SHOULD)。

### 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:

猫やその他のサブジェクトがコンテナの中にいる場合は、コンテナ表記を使用する必要がある (MUST)。 そのような表記法は、その主題が括弧内にあることによって示される。 括弧の種類は、コンテナの形状によって次のように異なる。

> *  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.

* 角括弧 `[]` は、長方形の開口部を持つボックスまたはその他のコンテナを表す。
* 括弧 `()` は、丸い開口部または形状のコンテナを表す。
* 波括弧 `{}` は、固定された形状のない柔らかいコンテナを表すのに使用する (SHALL)。

> Additionally, angle brackets MAY be used to group subjects outside a container.  Such annotations MUST NOT contain partial cats.

さらに、山括弧 `<>` は、コンテナの外側でサブジェクトをグループ化するために使用される場合がある (MAY)。 そのような注釈には、部分的な猫を含めてはならない (MUST NOT)。

### 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.

Concat 表記法は、サブジェクトとコンテナの一般的なレイアウトに関する情報のみを提供するが、水平位置と垂直位置を区別する。

> The order of positional operands SHOULD follow the order in which they appear from left to right in the source media.

位置演算子の順序は、ソースメディアで左から右に表示される順序に従う必要がある (SHOULD)。

#### 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.

サブジェクトが別のサブジェクトの上方またはすぐ上にある場合、演算子 `/` を使用する必要がある (MUST)。

#### 3.3.3.  Multiple Repeated Objects（複数の繰り返しオブジェクト）

> When multiple objects or configurations are repeated, the shorthand notation MAY be used.

複数のオブジェクトまたは構成が繰り返される場合、簡略表記を使用できる (MAY)。

> 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.

このような簡略表記を使用する場合、繰り返し回数は正の整数でなければならない (MUST)。

### 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.

ビデオやその他のアニメーションの場合、適切な Concat 表記では、状態変更演算子 (`=>`) を使用して、猫の位置と主要な相互作用の大幅な変更をマークする必要がある (SHOULD)。

#### 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.

サブジェクトトークンの後には、特定の猫、毛糸玉、またはその他のサブジェクトを区別するための整数識別子が続く場合がある (MAY)。 このような数値の曖昧さ回避を含む注釈には、すべての猫と毛糸の玉に対するそのような曖昧さの解消が含まれている必要がある (MUST)。

> Since a specific subject can only appear once in a static image, disambiguation identifiers SHOULD be used only on annotations showing state changes.

静止画像では特定のサブジェクトは 1 回しか表示されないため、曖昧さ回避識別子は、状態の変化を示す注釈でのみ使用する必要がある (SHOULD)。

## 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].

cat という単語は英語であり、US-ASCII 文字エンコーディング [RFC0020] のみを使用して Concat 表記法を転送できるようにするために提供されている。

> Users of other languages MAY extend the alphabet and use their localized words for cat and other animals.

他の言語のユーザーは、アルファベットを拡張し、ローカライズされた単語を猫や他の動物に使用できる (MAY)。

> 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.

Concat 表記法の生成と消費に関与するすべての関係者が、注釈の送信前に文字エンコーディングと言語について合意していない限り、猫の非標準語は使用すべきではない (SHOULD NOT)。

## 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（IANAに関する考慮事項）

> This document has no IANA actions.

本文書には IANA アクションはない。

## 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（付録A. 例）

> This appendix provides some examples of the Concat notation.

この付録では、Concat 表記の例をいくつか示す。

```
   [cat]
```

> Figure 1: A Cat in a Box

図1. 箱に入った猫

```
   [cat] + cat
```

> Figure 2: A Cat in a Box Next to a Cat Not in a Box

図2. 箱に入った猫と、その隣にいる箱に入っていない猫

```
   cat / [cat]
```

> Figure 3: A Cat over a Box Containing Another Cat

図3. 箱の上の猫と、その箱の中の猫

```
   [c]at
```

> Figure 4: A Cat with Its Head inside a Box

図4. 箱の中に頭を入れた猫

```
   3 * cat
```

> Figure 5: 3 Cats Side by Side

図5. 横に並んだ三匹の猫

```
   3 / cat
```

> Figure 6: 3 Cats on Top of Each Other

図6. 重なり合う三匹の猫

```
   cat + cat / [cat]
```

> Figure 7: A Cat Standing Next to a Box That Has a Cat on Top and inside of It

図7. 立っている猫と、その隣にある箱の上と中にいる猫たち

```
   <cat + cat> / [cat]
```

> Figure 8: Two Cats Standing on a Box with Another Cat inside of It

図8. 箱の上に立っている2匹の猫と、その箱の中の別の猫

```
   cat1 + [cat2] => cat2 + [cat1]
```

> Figure 9: A Cat inside a Box and a Cat outside Swap Places

図9. 箱の中の猫と外の猫の場所を入れ替える

## 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
```