Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.FTN.DEVELOP
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.FTN.DEVELOP с датами от 12 Jul 13 20:52:30 до 16 Jun 24 12:55:22, всего сообщений: 2498
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 856 из 2498 ==================================== RU.FTN.DEVELOP =
От   : Serguei E. Leontiev              2:5020/400         28 Dec 15 12:12:36
Кому : All                                                 28 Dec 15 12:12:36
Тема : ФИДО цитирование, комментарии и примеры
FGHI : area://RU.FTN.DEVELOP?msgid=<1187503615@aspen.stu.neva.ru>+fc7f5147
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.FTN.DEVELOP?msgid=<1187503617@aspen.stu.neva.ru>+b57bf32b
==============================================================================
From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Всем, привет,

Исторически сложилось, что стандарты цитирования в Интернет и в ФИДО
несколько различаются, что, бывало, препятствовало плодотворным
дискуссиям. Стандарт цитирования Интернет (Usenet) достаточно полно
описан [RFC 3676]. Стандарт цитирования ФИДО описан достаточно
лапидарным документом [FSC-0032], многие считают эталонной реализацией
[Golded+], так сказать RTFS [исходные тексты Golded+].

Извините, большой объём.

Оглавление
1. Комментарии к FSC-0032
2. Примеры цитат FSC-0032
3. Вопросы совместимости
3.1 Цитирование по FSC-0032 сообщений содержащих цитаты по RFC 3676
3.2 Цитирование по RFC 3672 сообщений содержащих цитаты по FSC-0032
3.3 Удаление двойных префиксов цитат
4. Ссылки


Регулярные выражения в данных комментариях не тестировались на практике
и могут содержать ошибки.


1. Комментарии к FSC-0032

1.1 В FSC-0032 понятие Инициалы (p.5) практически не определено, однако,
по статистике русскоязычного ФИДО это, либо ??, либо последовательность
апострофов, букв и цифр длиной не более 3-4-х символов в кодировке
сообщения, в 99.6% - 99.8% случаев. Поэтому, их можно определить
следующим регулярным выражением:

Инициалы - /(\?\?|['"`[:alnum:]]{0,4})/ в кодировке сообщения.

  Примечание 1: по крайней мере, команда:
    $ egrep -h -v "^ ?(\\?\\?|['\"\`[:alnum:]]{0,4})>+( .*)*$" \
      *fido7*y20*.txt | egrep -C 2 "^ ?[^<>[:space:]]{0,12}>+( .*)*$"
    Приносит только текстовую графику, "===>", "->", "C:\>",
    "mysql> desc t_net;", "telnet> mode ?", "Q:>  1.2 Какой Паскаль
    лучше?" и т.п., а так же очень небольшое число цитат вида
    "Valentin>>>" или "klim_malgin>" сделанных с грубым нарушением
    FSC-0032. Hа мой взгляд, представляется более безопасным и
    правильным интерпретировать такие строки как текст, а не как цитаты.

1.2 Источник опциональных инициалов в FSC-0032 не фиксируется, по факту,
наиболее распространённым источником инициалов являются первые буквы
слов строки 'From:' (заголовок 'From:'), записи адресной книги или
кладжа '@Realname:' (заголовок 'X-FTN-RealName:').

1.3 Заметим, что в отличии от RFC 3676, в FSC-0032 не определяется
понятия мягкого перевода строки (soft line break), строки цитат должны
завершаться жёстким переводом строки ("Hard" <CR>) для предотвращения
переформатирования в дальнейшем (p.2).

  Примечание 2: это положение FSC-0032 строго выполняется с точки зрения
    ФИДО, а с точки зрения RFC 3676 достаточно много цитат завершаются
    SP CRLF, т.е. мягким переводом строки. Hаверное, автоматическое
    переформатирование только таких цитат и только в рамках одного
  уровня цитирования, я думаю, не будет существенным отступлением от
  FSC-0032, естественно при соблюдении остальных требований.

1.4 Вопрос переформатирования текста при первом цитировании в FSC-0032
не рассмотрен. По факту многие его переформатируют, но при отсутствии
формального соглашения о мягких переводах строк, этот процесс не может
быть корректно автоматизирован. А при современных размерах экранов вряд
ли это принципиально необходимо, например, в исходных тестах Golded
скрипт bin/golded запускает редактор в окне шириной 133 символа.

  Примечание 3: представляется, что возможность автоматического
    переформатирования строк цитируемого текста, которые разделены
    SP CRLF (мягким переводом строки по RFC 3676), вполне допустимо и
    не создаст дополнительных проблем.

1.5 В FSC-0032, и в существующих реализациях, на сколько мне известно,
не предусмотрено методов экранирования строк основного текста вида
" ФИО> " от возможной интерпретации их в качестве цитаты. Автор
сообщения должен, при необходимости однозначной интерпретации текста,
сам предпринять необходимые меры.

1.6 Следует так же отметить, что заметная доля цитат в ФИДО имеют
"небольшие" отступления от FSC-0032:
  * 13% - 18% цитат не имеет пробела в начале строки перед инициалами;
  * Пустые строки при цитировании удаляются;
  * Цитируют пустые строки;
  * Переформатируют цитаты при повторном цитировании не смотря на
    жёсткие переводы строк.


2. Примеры цитат FSC-0032

Сам алгоритм цитирования прост и прозрачен и не требует большого
количества примеров.

Знак . используется как замена SP для визуализации их количества и
положения, а знак # для обозначения конца строки.

Вопрос:
Текст.1#
#
Текст.2#
Вопрос.1#
#
Вопрос.2#

Ответ с инициалами:
.SL>.Текст.1#
#
.SL>.Текст.2#
.SL>.Вопрос.1#
Ответ.1#
#
.SL>.Вопрос.2#
Ответ.2#

Ответ без инициалов:
.SL>>.Текст.1#
#
.SL>>.Текст.2#
.SL>>.Вопрос.1#
.>.Ответ.1#
Пояснение.1#
.SL>>.Вопрос.2#
.>.Ответ.2#
Пояснение.2#

Отметим, переформатирование текста для корректности ФИДО цитирования не
требуется, но может быть реализована дополнительной функцией с ручным
управлением под контролем пользователя. Вставка последовательности ?? в
качестве инициалов, при невозможности определения инициалов, на мой
взгляд, дурной тон. Хотя некоторые программы этим грешат.

В деле ФИДО цитирования на русском языке:
  * Посмотреть на образцы достойные подражания:

    эхо конференция RU.FIDONET.TODAY, news:fido7.ru.fidonet.today или
    https://groups.google.com/forum/#!forum/fido7.ru.fidonet.today ;
  * Спросить доброго совета:
   
эхо конференция RU.FTN.DEVELOP, news:fido7.ru.ftn.develop или

    https://groups.google.com/forum/#!forum/fido7.ru.ftn.develop .

В деле ФИДО цитирования на английском языке (ссылки, мне кажется, не
самые удачные, но других пока нет):
  * Посмотреть на образцы достойные подражания:
эхо конференция
    FTSC_PUBLIC,

    news://nntp.rbb.bbs.fi/fido.ftsc_public (смотреть группу
    news://nntp.rbb.bbs.fi/+getaccess+ для получения полного доступа к
    другим эхо конференциям),
   
news://fidonews.mine.nu/fido.ftsc_public (смотреть группу
    news://fidonews.mine.nu/+getaccess+ для получения полного доступа к
    другим эхо конференциям),
http://fidonet.ozzmosis.com ;
  * Hаверное спросить доброго совета можно в группах разработки BBS (я
    совсем не разбираюсь в англоязычном ФИДО, практически первые
    попавшиеся Usenet/ФИДО группы):

    news://alt.bbs.mystic или
    https://groups.google.com/forum/#!forum/alt.bbs.mystic ,
    news://alt.bbs.wwiv или
    https://groups.google.com/forum/#!forum/alt.bbs.wwiv .


3. Вопросы совместимости

Многие клиенты Usenet BBS или NNTP доступа к узлам ФИДО используют
цитирование по RFC 3676. В среднем доля цитат по RFC 3676 в
русскоязычном ФИДО около 10% (5% - 15%).

Как следствие может возникать война стилей цитирования, которая
увеличивает область строки занятой префиксами цитат. С которой конечно
борются, в основном, административными мерами, но безуспешно, в среднем,
доля некорректных двойных и кратных префиксов цитат составляет 1% - 3%.

Практически всё знакомое мне программное обеспечение цитирующее по
FSC-0032 игнорирует требования обязательного пробела в начале строки и
запрета комментирования пустых строк, таким образом, цитаты по RFC 3676
ошибочно интерпретируются как цитаты по FSC-0032 с пустыми инициалами и
отсутствующим пробелом в начале строки. Т.е. входное сообщение вида:
>.Текст.RFC#
>.#
>.Цитата.RFC#
Вопрос#
#
Текст#

Чаще всего цитируется как:
.>>.Текст.RFC#
.>>.#
.>>.Цитата.RFC#
.SL>.Вопрос#
Ответ#
#
Пояснение#
#
.SL>.Текст#

Такой ответ уже не соответствует FCS-0032, т.к. закомментирована пустая
строка. Хотя он и выглядит приемлемым, однако не учитывает тот очевидный
факт, что программное обеспечение корреспондента, скорее всего, не
поддерживает цитирование по FSC-0032. По сути, такой ответ, как
недостаточно строгий на выходе, так и недостаточно умный на входе. Таким
образом при продолжении дискуссии, скорее всего, возникнут цитаты с
двойным префиксом:
>..>>.Текст.RFC#
>..>>.#
>..>>.Цитата.RFC#
>..SL>.Вопрос#
>.Ответ#
Вопрос.2#
#
>.#
>.Пояснение#
>.#
>..SL>.Текст#

И далее дискуссия будет продолжаться примерно так:
.>>..>>.Текст.RFC#
.>>..>>.#
.>>..>>.Цитата.RFC#
.>>..SL>.Вопрос#
.>>.Ответ#
.LS>.Вопрос.2#
Ответ.2#
#
.>>.#
.>>.Пояснение#
.>>.#
.>>..SL>.Текст#

Менее вероятные сценарии развития дискуссии (усечённый вариант), для
строго настроенной стороны FSC-0032:
.SL>.>.Цитата.RFC#
.SL>.Вопрос#
Ответ#

==
>..SL>.>.Цитата.RFC#
>..SL>.Вопрос#
>.Ответ#
Вопрос.2#

==
.LS>.>..SL>.>.Цитата.RFC#
.LS>.>..SL>.Вопрос#
.LS>.>.Ответ#
.LS>.Вопрос.2#
Ответ.2#

или, стороны FSC-0032 с типичной ошибкой:
SL>.>.Цитата.RFC#
SL>.Вопрос#
Ответ#

==
>.SL>.>.Цитата.RFC#
>.SL>.Вопрос#
>.Ответ#
Вопрос.2#

==
LS>.>.SL>.>.Цитата.RFC#
LS>.>.SL>.Вопрос#
LS>.>.Ответ#
LS>.Вопрос.2#
Ответ.2#

Такое развитие дискуссии не выглядит желательным. Поэтому можно
рекомендовать два способа избежать "войны стилей" (быть умными на приёме
и строгими на передаче):
  * Цитирование по FSC-0032 с учётом требований RFC 3676,
    корректировкой двойных префиксов и пустых цитат;
  * Цитирование по RFC 3676.


3.1 Цитирование по FSC-0032 сообщений содержащих цитаты по RFC 3676

Способов однозначного определения стиля цитирования сообщения по RFC
3676, в общем случае, не существует. Однозначное определение возможно,
только для Format=Flowed, если он использовался при создании сообщения,
в окружении, где этот параметр доступен, проверку типа цитирования
желательно проводить до удаления защитных пробелов.

Hа настоящий момент представляется разумным подход в стиле ФИДО, смотри
комментарий 5. При наличии в сообщении строк цитирования RFC 3676, т.е.
удовлетворяющих образцу

    /^>+( .*)?$/
и отсутствии строк цитирования строго соответствующих FSC-0032 с
непустыми инициалами, т.е. удовлетворяющих образцу

    /^ (\?\?|['"`[:alnum:]]{1,4})>+( .*)?$/

считать, что в сообщении используется стиль цитирования RFC 3676.

При цитировании строк такого сообщения по FSC-0032 следует:
  1. Определить инициалы ФИО, по адресной книге, либо по 'From:', в
противном случае следует установить их пустой строкой;
  2. Заменить мягкие переводы строк на жёсткие, т.е. удалить завершающие
пробелы;
  3. Для строк удовлетворяющих образцу /^>+( .*)?$/. При наличии,
    откорректировать двойной префикс и увеличить уровень цитирования,
    т.е. заменить
   
    s/^(>+)  ?(\?\?|['"`[:alnum:]]{0,4})(>+)( .*)?$/ $2$1$3>$4/

    , либо добавить ' >' в начало строки;
  4. Для остальных строк вставить ' ФИО> ' в начало строки;
  5. Корректировка пустых цитат:
   
    s/^  (\?\?|['"`[:alnum:]]{0,4}>+)( [[:space:]]*)?$//

Переформатирование строк сообщения или цитат в этом случае нежелательно.


3.2 Цитирование по RFC 3672 сообщений содержащих цитаты по FSC-0032

При наличии в сообщении строк цитирования RFC 3676, т.е. удовлетворяющих
образцу

    /^>+( .*)?$/
и отсутствии строк цитирования строго соответствующих FSC-0032 с
непустыми инициалами, т.е. удовлетворяющих образцу

    /^ (\?\?|['"`[:alnum:]]{1,4})>+( .*)?$/

считать, что в сообщении используется стиль цитирования RFC 3676.

При цитировании строк такого сообщения по RFC 3676 следует:
  1. Для строк /^>+( [[:space:]]*)?$/ следующих за (расположенных
    между) строками с двойным префиксом установить уровень цитирования
    вышерасположенной цитаты [TODO-XXX уточнить алгоритм];
  2. Для строк удовлетворяющих образцу /^>+( .*)?$/. При наличии,
    откорректировать двойной префикс, удалить инициалы и увеличить
    уровень цитирования, т.е. заменить

        s/^(>+)  ?(\?\?|['"`[:alnum:]]{0,4})(>+)( .*)?$/$1$3>$4/

    , либо добавить '>' в начало строки;
  3. Для остальных строк и вставить '> ' в начало строки.

При переформатировании строк и цитат сообщения, если есть в том
необходимость, следует руководствоваться п. 4.5 RFC 3676.


3.3 Удаление двойных префиксов цитат

Для начала участия в дискуссиях в которых уже присутствует "война
стилей" в редакторе сообщений пригодилась бы дополнительная функция
"удалить двойное цитирование и очистить пустые цитаты" для сообщений со
строгим цитированием по FSC-0032, которые процитировали сообщение с
цитатами по RFC 3676.

Алгоритм работы такой функции:
  1. Правильные инициалы всегда справа, даже если они пустые:

    s/^ (\?\?|['"`[:alnum:]]{0,4})(>+)
?(\?\?|['"`[:alnum:]]{0,4})(>+)( .*)?$/ $3$2$4$5/
  2. Корректировка пустых цитат:

    s/^  (\?\?|['"`[:alnum:]]{0,4}>+)( [[:space:]]*)?$//


Ссылки

[FSC-0032] - M. Ratledge, "Uniform EchoMail Quoting Style", May 1, 1989,
http://ftsc.org/docs/fsc-0032.001
[Golded+] - Александр С. Аганичев, "Golded+", 2007, Odinn S\xC3\xB8rensen, Dirk
A. Mueller, Golded, 1999, http://golded.org
[исходные тексты Golded+] - Александр С. Аганичев, "Golded+", 2015,
http://cvs.golded.org
[RFC 3676] - R. Gellens, "The Text/Plain Format and DelSp Parameters",
February 2004, http://tools.ietf.org/html/rfc3676


--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru (neva)
--- ifmail v.2.15dev5.4
* Origin: Sternberg Astronomical Inst., MSU (2:5020/400)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.094279 секунды