Independent Submission M. Basaglia Request for Comments: 9402 Category: Informational J. Bernards ISSN: 2070-1721 J. Maas 1 April 2023
Concat Notation
Нотация Concat
Аннотация
Этот документ задаёт нотацию Concat — текстовый язык, служащий для описания изображений и видео, включающих котов, контейнеры и их взаимодействия.
Статус документа
Документ не относится к категории Internet Standards Track и публикуется для информации.
Это независимый вклад в серию RFC, не связанный с каким-либо потоком RFC. Редактор RFC решил опубликовать документ по своему усмотрению и не делает заявлений о его ценности для реализации или внедрения. Документы, одобренные для публикации редактором RFC Editor не претендуют на статус Internet Standard (см. раздел 2 в RFC 7841).
Информацию о текущем статусе документа, ошибках и способах обратной связи можно найти по ссылке https://www.rfc-editor.org/info/rfc9402.
Авторские права
Авторские права (Copyright (c) 2023) принадлежат IETF Trust и лицам, указанным в качестве авторов документа. Все права защищены.
К документу применимы права и ограничения, указанные в BCP 78 и IETF Trust Legal Provisions и относящиеся к документам IETF (http://trustee.ietf.org/license-info), на момент публикации данного документа. Прочтите упомянутые документы внимательно.
1. Введение
Изображения и видео с котами часто распространяются в сети Internet. Во многих случаях присутствует взаимодействие кошачьих существ с коробками и другими контейнерами.
Поскольку в настоящее время нет компактной нотации для описания таких сред, этот документ подробно описывает стандартную нотацию для описания позиций и взаимодействия котов, контейнеров и связанных с ними предметов на изображениях.
Описанный в документе язык нотации основан на текстовом представлении и ограничивается кодировкой символов US-ASCII [RFC0020], что позволяет передавать связанные с котами материалы в средах с ограниченными возможностями.
1.1. Уровни требований
Ключевые слова должно (MUST), недопустимо (MUST NOT), требуется (REQUIRED), нужно (SHALL), не следует (SHALL NOT), следует (SHOULD), не нужно (SHOULD NOT), рекомендуется (RECOMMENDED), не рекомендуется (NOT RECOMMENDED), возможно (MAY), необязательно (OPTIONAL) в данном документе интерпретируются в соответствии с BCP 14 [RFC2119] [RFC8174] тогда и только тогда, когда они выделены шрифтом, как показано здесь.
2. Определения
2.1. Терминология
В этом документе применяются специальные термины для обозначения элементов, отображаемых с помощью описанной здесь нотации. Во избежание двусмысленности ниже приведены определения некоторых терминов.
Subject — субъект, предмет
Термином «субъект» в документе обозначают объекты, находящиеся в фокусе аннотируемой среды. Обычно это одушевленный объект, в частности, кот. Аннотация может включать множество субъектов, взаимодействующих разными способами.Cat — кот1
Особый вид субъекта из породы кошачьих. В этом документе предполагается наличие в исходном материале домашних котов, но допустимы и другие существа семейства кошачьих.Container
Термином «контейнер» в этом документе обозначаются неодушевлённые объекты, в которых может размешаться 1 или несколько котов. Чаще всего это картонные коробки, но возможны и иные варианты контейнеров.2.2. Грамматика
Грамматика языка определена с использованием нотации 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. Элементы
3.1. Субъекты
3.1.1. Коты
Стандартным обозначением кота является слово «кот».
3.1.2. Частичные коты
При упоминании кота, частично размещённого внутри контейнера, аннотация должна содержать адекватную маркировку кота, частично размещённого внутри контейнера и частично находящегося снаружи.
Если кот лишь частично виден на изображении или видео, аннотация может ссылаться лишь на видимую часть кота.
Обозначения частичных котов приведены ниже.
c - голова кота a - тело кота t - хвост кота ca - голова и тело кота at - тело и хвост кота.
В аннотации частичного кота следует применять указанные выше термины, лучше всего описывающие упоминаемые части кота.
3.1.3. Другие животные
Других животных и одушевлённые объекты следует указывать подходящими словами, описывающими вид такого животного. Связанные с котами слова, описанные в этом документе, недопустимо применять к субъектам, не являющимися кошачьими.
3.1.4. Клубки ниток
Клубки ниток (yarn) следует обозначать символом @.
3.2. Контейнеры
Когда кот или иной субъект находится внутри контейнера, должно применяться обозначение контейнера, указываемое его размещением в скобках. Тип скобок зависит от формы контейнера, как описано ниже.
-
Квадратные скобки [] представляют коробки и другие контейнеры с прямоугольным входным отверстием.
-
Круглые скобки () представляют контейнеры с круглым отверстием или формой.
-
Для представления контейнеров, не имеющих фиксированной формы, нужно применять фигурные скобки {}.
Кроме того, можно использовать угловые скобки <> для представления группы субъектов вне контейнера. В такие аннотации недопустимо помещать частичных котов.
3.3. Позиционирование
Нотация Concat представляет лишь сведения об общем расположении субъектов и контейнеров, но различает горизонтальную и вертикальную позицию.
Порядку позиционных операндов следует соответствовать порядку их появления в исходном носителе слева направо.
3.3.1. Горизонтальная позиция
Для представления расположенных рядом субъектов или контейнеров применяется символ +.
3.3.2. Вертикальная позиция
Для представления субъекта, расположенного над или под другим должен применяться оператор /.
3.3.3. Множество повторяющихся объектов
При повторении нескольких объектов или конфигураций можно применять сокращённую нотацию.
Горизонтальное позиционирование представляется числом, за которым может следовать символ * и повторяющаяся аннотация.
При вертикальном позиционировании повторяющиеся объекты указываются числом, за которым следует символ / и повторяющаяся аннотация.
При использовании таких сокращений количество повторов должно указываться положительным целым числом.
3.4. Изменения с течением времени
В случае видео и других анимаций подобающей нотации Concat следует применять оператор смены состояния (=>) для указания значимых изменений в положении кота и основных взаимодействий.
3.4.1. Устранение неоднозначностей
За маркером субъекта может следовать целое число, чтобы различать конкретных котов, клубки ниток и другие субъекты. Аннотации с такими числовыми значениями должны включать идентификаторы для всех котов и клубков ниток.
Поскольку конкретный субъект может присутствовать в статическом изображении лишь в одном экземпляре, идентификаторы устранения неоднозначности следует применять лишь в аннотациях, показывающих смену состояния.
4. Применение других языков
Слово кот (cat) является английским и предназначено для передачи нотации Concat лишь с использованием кодировки US-ASCII [RFC0020].
Пользователи других языков могут расширить алфавит и использовать слова своего языка для котов и других животных.
Нестандартные слова для котов не следует применять, пока все участники применения нотации Concat не согласовали кодировку символов и язык до передачи аннотаций.
5. Вопросы безопасности
Кот может оказаться в контейнере меньше воспринимаемого объёма кода. Хотя это может казаться опасной ситуацией, фактически обычным делом является нахождение кота находится в жидком состоянии.
Кот может жевать картонную коробку, в которой размещается. Для смягчения таких атак рекомендуется завести множество коробок для размещения котов.
6. Взаимодействие с IANA
Этот документ не требует действий IANA.
7. Нормативные документы
[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>.
Приложение A. Примеры
В этом приложении представлены некоторые примеры нотации Concat.
[cat]
Рисунок 1. Кот в коробке.
[cat] + cat
Рисунок 2. Кот в коробке рядом с котом не в коробке.
cat / [cat]
Рисунок 3. Кот поверх коробки с другим котом.
[c]at
Рисунок 4. Кот с головой в коробке.
3 * cat
Рисунок 5. 3 кота бок о бок.
3 / cat
Рисунок 6. 3 кота каждый поверх другого кота.
cat + cat / [cat]
Рисунок 7. Кот рядом с коробкой, на которой и внутри которой другие коты.
<cat + cat> / [cat]
Рисунок 8. 2 кота на коробке, в которой другой кот.
cat1 + [cat2] => cat2 + [cat1]
Рисунок 9. Коты внутри и вне коробки меняются местами (Swap)
Адреса авторов
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Перевод на русский язык
Николай Малых
1Термин «кот» в этом документе можно заменить термином «кошка» на усмотрение читателя, хотя некоторые детали поведения упомянутых существ могут существенно различаться. Прим. перев.