FictionBook 3.0 - информация к размышлению — различия между версиями

Материал из FictionBook
Перейти к: навигация, поиск
Строка 7: Строка 7:
  
 
Хочу сразу сказать, что я сейчас не рассматриваю драфт FB3 с критической точки зрения. Многие предложения драфта понятны и логичны, очень мало тех, которые вызывают вопросы и сомнения. Но сейчас не об этом. Сейчас хочется остановиться, оглянуться и подумать - а туда ли мы развиваемся? Или - как долго можно вводить новые типы, теги и атрибуты без опасения, что не кто-то из новичков, а уже сам не будешь понимать, что и для чего введено? 8) Итак, обо всем по порядку.
 
Хочу сразу сказать, что я сейчас не рассматриваю драфт FB3 с критической точки зрения. Многие предложения драфта понятны и логичны, очень мало тех, которые вызывают вопросы и сомнения. Но сейчас не об этом. Сейчас хочется остановиться, оглянуться и подумать - а туда ли мы развиваемся? Или - как долго можно вводить новые типы, теги и атрибуты без опасения, что не кто-то из новичков, а уже сам не будешь понимать, что и для чего введено? 8) Итак, обо всем по порядку.
 +
 +
==Разделяй и властвуй==
 +
Здесь я не хочу сказать ничего нового, а только напомнить старые истины. Вспомните, как описываются сложные системы взаимодействия OSI, или более практичный TCP/IP. Очень просто - рассматривают отдельные уровни взаимодействия - физический, транспортный, межсетевой, прикладной  и другие независимо друг от друга. То есть не мешают все в общую кашу и становится все намного яснее. Здесь есть еще одна выгода - можно дорабатывать какой-либо уровень (вводить новый протокол, использовать новую физическую структуру передачи сигнала) и при этом совершенно не трогать остальные уровне, потому что им в принципе все равно, по какой физической среде будет передаваться сигнал или какой транспортный протокол будет использоваться.
 +
 +
Как бы можно было бы применить этот принцип в FB3:
 +
 +
===Первый уровень - файловый===
 +
Здесь описываются все файлы, которые входят в fb3, их назначение и взаимодействие.  Я не буду подробно разжевывать этот уровень и перейду сразу ко второму уровню.
 +
 +
Далее я буду рассматривать файл fb3-body, во-первых, как самый интересный, а во-вторых, я уже говорил, что предложенные принципы я еще не додумал до конца. 8)
 +
 +
===Второй уровень - структурный===
 +
В структурном уровне решается вопрос описания структуры книги. Это никак не влияет на файлы и их взаимодействия и никак не отражает содержимое книги.
 +
 +
Если провести аналогию с бумажной книгой, то это приблизительно похоже на оглавление. Но приблизительно, потому что электронная книга более строго относится к структуре. Если ввести понятие уровня заголовка, то мы часто видим как бумажная книга начинается заголовками второго уровня, например, '''От автора''' и '''Предисловие''', а потом идет заголовок первого уровня - '''Глава 1'''.    Это частый случай. На практике вакханалия с уровнями заголовков бывает и круче, поэтому у меня всегда вызывали удивление предложение делать электронную книгу похожую на бумажную. Электронная книга структурно всегда будет лучше оформлена, чем бумажная. о это тема другого разговора, а здесь я ее коснулся, чтобы обратить внимание на беззаголовочную структуру первого уровня, куда входят два заголовка второго уровня - '''От автора''' и '''Предисловие'''. Это очень важный момент, вызывающий ошибки и путаницу.  Скажу больше - не весь софт нормально обрабатывает беззаголовочную структуру - хотя это основа формата FictionBook.
 +
 +
Так вот структура - это разбиение всего текста книги на секции, неважно с заголовком или без. Вся книга разбивается на секции первого уровня, далее следует разбиение последних на секции второго уровня и так далее. Я бы выделил два типа секций - секция структурная и секция конечная. Секция структурная  '''может содержать только секции''' и больше ничего. Секция конечная '''не может содержать секций'''.  Вот их основное отличие.
 +
 +
Структурные секции умирают на этом уровне не оставляя потомства, а конечные секции раскрываются во всей красе на следующем уровне - у них разная судьба. 
 +
 +
С точки зрения программной обработки существующая схема и описание элемента section не вызывает никаких нареканий.
  
 
(Продолжение следует).
 
(Продолжение следует).
  
 
'''''Алексей Седых'''''
 
'''''Алексей Седых'''''

Версия 23:26, 21 сентября 2009

Введение

Рассматривая предложения по бета-версии формата FictionBook все время возвращаюсь к одной и той же мысли. Можно конечно сейчас начать копаться в отдельных тегах, пытаться что-то улучшить, от чего-то защититься, но это выльется в диалог с Дмитрием Грибовым. А почему?

Более пяти лет пропаганды формата FictionBook позволяет сделать два глобальных вывода. Первый приятный - формат все-таки стал де факто основным форматом электронных библиотек в русскоязычном сегменте сети Интернет. Второй менее приятен - для очень многих пользователей даже этого сайта формат так и остался чем-то туманным. Даже те из них, которые пишут ридеры, редакторы, библиотеки допускают ошибки в понимании применения тех или иных тегов. Разумеется не все, но все же, увы, их большинство.

Даже беглый взгляд на схему fb3 вызывает сомнение, что для основные масс пользователей он станет более понятен. Эту мысль подтверждает и вялость обсуждения предложений по новой версии формата FictionBook. Я хочу вынести на обсуждения предложения, направленные на улучшение стройности формата. Сразу предупреждаю, что это даже не конкретные готовые предложения, а принципы построения третьей версии, которые в случае одобрения, надо еще довести до реализации. Честно, хотел выстроить всю систему до уровня развернутого готового предложения, но понял, что одному делать трудно и долго, можно просто опоздать, и подготовить предложения к тому моменту, когда они уже не будут нужны, как с шестиосной классификацией жанров.

Хочу сразу сказать, что я сейчас не рассматриваю драфт FB3 с критической точки зрения. Многие предложения драфта понятны и логичны, очень мало тех, которые вызывают вопросы и сомнения. Но сейчас не об этом. Сейчас хочется остановиться, оглянуться и подумать - а туда ли мы развиваемся? Или - как долго можно вводить новые типы, теги и атрибуты без опасения, что не кто-то из новичков, а уже сам не будешь понимать, что и для чего введено? 8) Итак, обо всем по порядку.

Разделяй и властвуй

Здесь я не хочу сказать ничего нового, а только напомнить старые истины. Вспомните, как описываются сложные системы взаимодействия OSI, или более практичный TCP/IP. Очень просто - рассматривают отдельные уровни взаимодействия - физический, транспортный, межсетевой, прикладной и другие независимо друг от друга. То есть не мешают все в общую кашу и становится все намного яснее. Здесь есть еще одна выгода - можно дорабатывать какой-либо уровень (вводить новый протокол, использовать новую физическую структуру передачи сигнала) и при этом совершенно не трогать остальные уровне, потому что им в принципе все равно, по какой физической среде будет передаваться сигнал или какой транспортный протокол будет использоваться.

Как бы можно было бы применить этот принцип в FB3:

Первый уровень - файловый

Здесь описываются все файлы, которые входят в fb3, их назначение и взаимодействие. Я не буду подробно разжевывать этот уровень и перейду сразу ко второму уровню.

Далее я буду рассматривать файл fb3-body, во-первых, как самый интересный, а во-вторых, я уже говорил, что предложенные принципы я еще не додумал до конца. 8)

Второй уровень - структурный

В структурном уровне решается вопрос описания структуры книги. Это никак не влияет на файлы и их взаимодействия и никак не отражает содержимое книги.

Если провести аналогию с бумажной книгой, то это приблизительно похоже на оглавление. Но приблизительно, потому что электронная книга более строго относится к структуре. Если ввести понятие уровня заголовка, то мы часто видим как бумажная книга начинается заголовками второго уровня, например, От автора и Предисловие, а потом идет заголовок первого уровня - Глава 1. Это частый случай. На практике вакханалия с уровнями заголовков бывает и круче, поэтому у меня всегда вызывали удивление предложение делать электронную книгу похожую на бумажную. Электронная книга структурно всегда будет лучше оформлена, чем бумажная. о это тема другого разговора, а здесь я ее коснулся, чтобы обратить внимание на беззаголовочную структуру первого уровня, куда входят два заголовка второго уровня - От автора и Предисловие. Это очень важный момент, вызывающий ошибки и путаницу. Скажу больше - не весь софт нормально обрабатывает беззаголовочную структуру - хотя это основа формата FictionBook.

Так вот структура - это разбиение всего текста книги на секции, неважно с заголовком или без. Вся книга разбивается на секции первого уровня, далее следует разбиение последних на секции второго уровня и так далее. Я бы выделил два типа секций - секция структурная и секция конечная. Секция структурная может содержать только секции и больше ничего. Секция конечная не может содержать секций. Вот их основное отличие.

Структурные секции умирают на этом уровне не оставляя потомства, а конечные секции раскрываются во всей красе на следующем уровне - у них разная судьба.

С точки зрения программной обработки существующая схема и описание элемента section не вызывает никаких нареканий.

(Продолжение следует).

Алексей Седых