Валидация fb2

1. Добавил валидацию загружаемых книг.
2. Прогнал через валидатор существующие. Список непрошедших - http://lib.rus.ec/stat/invalid.

pkn написал:
Клауза "Мои предложения очень хорошо обдуманы", как я понимаю, снимается. Вот и ладненько.

Вы сюда потроллить пришли? Ну, продолжайте без меня.

cancel написал:
pkn написал:
Клауза "Мои предложения очень хорошо обдуманы", как я понимаю, снимается. Вот и ладненько.

Вы сюда потроллить пришли? Ну, продолжайте без меня.

Я сюда пришел предложить Вам получше продумывать Ваши предложения. Однако корм, как видно, не в коня.

Дело в том, что «расширенное» название для некоторых публикаций — всего-навсего вынужденная мера, — в связи с тем, что в здешней базе данных не может равноправно храниться две единицы с одинаковым названием, одна из них должна стать «дублем». А если, например, у романа два разных перевода, то в здешней библиотеке нет другого выхода, кроме как «расширять» название с учётом переводчика. Вот и всё.

nonduc написал:
Дело в том, что «расширенное» название для некоторых публикаций — всего-навсего вынужденная мера, — в связи с тем, что в здешней базе данных не может равноправно храниться две единицы с одинаковым названием, одна из них должна стать «дублем». А если, например, у романа два разных перевода, то в здешней библиотеке нет другого выхода, кроме как «расширять» название с учётом переводчика. Вот и всё.

Значит, надо исправлять библиотеку. Бардак очень легко устроить и потом очень сложно разобрать. Я с буквально такой же проблемой сталкивался — люди забивали в одно поле разную по сути информацию, и когда настало время обновлять систему, пришлось долго и упорно весь этот мусор вычищать. Далее, fb2-файл — это образ конкретной книги, а не обобщённый образ литературного произведения, как на фантлабе. Разные издания одной книги должны одновременно сосуществовать в рамках одной библиотеки, пусть даже для него не будет загруженного файла книги. Библиотеку делает библиотекой не куча книг, а структурированный каталог. Если часть этой структуры не поддерживается форматом файла, нужно это унести на уровень библиотеки (например, альтернативные названия, альтернативные издания (журнальный вариант, к примеру) и так далее). На фантлабе построена очень хорошая система каталогизации книг и к ней очень хорошо прикручивается непосредственно файл книги, но из-за политики фантлаба это невозможно. Вот нам нужно что-то типа фантлаба, но с файлами книг, открытой базой и открытым кодом, чтобы коллективный труд нельзя было одним махом прикрыть.

Ну я бы не стал брать ФантЛаб за образец каталогизации книг — именно потому что ФантЛаб не библиотека, а только картотека, каталог. То есть у ФантЛаба сугубо информационная функция — сообщить данные об авторе и всех неэлектронных изданиях его произведений. А Либрусеку нужно в первую очередь снабжать читателей текстами и делать это так, чтобы читатель не путался в многочисленных дубликатах или вариантах одного и того же текста.

И я не могу радикально не возразить такому твоему предложению: «Разные издания одной книги должны одновременно сосуществовать в рамках одной библиотеки, пусть даже для него не будет загруженного файла книги». Нет! нет! и ещё раз нет! В каталоге библиотеки должно быть только то, что в ней есть — только уже загруженные единицы хранения. Сведения же о всех фактических изданиях должны помещаться в раздел «описание автора».

nonduc написал:
И я не могу радикально не возразить такому твоему предложению: «Разные издания одной книги должны одновременно сосуществовать в рамках одной библиотеки, пусть даже для него не будет загруженного файла книги». Нет! нет! и ещё раз нет! В каталоге библиотеки должно быть только то, что в ней есть — только уже загруженные единицы хранения. Сведения же о всех фактических изданиях должны помещаться в раздел «описание автора».

Это никакое не возражение. Я за то, чтобы информация структурированно хранилась в библиотеке, а уж в каком месте она будет показываться — это дело десятое. Если данные структурированные, то их представление можно менять как угодно, в этом и прелесть подхода. У фантлаба данные структурированы, поэтому там можно легко сделать что угодно. На бардаке легко сделать не получится. У фантлаба есть один большой недостаток — там информация может изменяться лишь очень небольшим кругом людей, и некоторых авторов они не хотят принимать по причинам типа «отсутствие публикаций» и так далее. Вот если взять за основу схему данных фантлаба, да сделать на ней открытый движок, да ещё детально описать все правила работы — получится просто фантастическая неубиваемая штука.

Ещё раз — на ФантЛабе структурированы странички с инфой по книгам, имеющим неэлектронное издание. Но не файлы с самими книгами. Разница существенная — у них заведомо нет проблемы с дубликатами текста, ведь текстов нет вообще!

Кроме того, заметь, как на ФантЛабе «прекрасно» структурованы данные о романе «Оружие скальда» Дворецкой, если посмотреть на странички work90693 и work18313. Ну просто сразу всё понятно, где первая редакция, а где вторая, значительно переработанная… — инфа об этом внесена только на страничку цикла, на страничках изданий об этом ни гу-гу. А вообще разобраться с этим циклом, где там именно первые издания романов, а где переделки — без поллитры не разберёшь. Но нужна именно поллитра, помимо ФантЛаба приобретаемая, потому что ФантЛаб нужную инфу не представил.

nonduc написал:
Ещё раз — на ФантЛабе структурированы странички с инфой по книгам, имеющим неэлектронное издание. Но не файлы с самими книгами. Разница существенная — у них заведомо нет проблемы с дубликатами текста, ведь текстов нет вообще!

А электронные книги откуда берутся? Правильно — из неэлектронных. Прикрутить поддержку файлов в книг в схеме фантлаба очень легко. А вот прикрутить поддержку разнообразных метаданных о книгах в либрусеке сложно. И даже если книга изначально электронная, в фантлабе проблем не возникаетю

nonduc написал:
Кроме того, заметь, как на ФантЛабе «прекрасно» структурованы данные о романе «Оружие скальда» Дворецкой, если посмотреть на странички work90693 и work18313. Ну просто сразу всё понятно, где первая редакция, а где вторая, значительно переработанная… — инфа об этом внесена только на страничку цикла, на страничках изданий об этом ни гу-гу. А вообще разобраться с этим циклом, где там именно первые издания романов, а где переделки — без поллитры не разберёшь. Но нужна именно поллитра, помимо ФантЛаба приобретаемая, потому что ФантЛаб нужную инфу не представил.

Блин, это проблема предстваления. Информация-то об этом явно представлена в метаданных книги. Поэтому её можно вывести и на страницу книги. А если не сделано…, ну, мало ли багов в фантлабе. Но заметьте — это баги представления, которые легко фиксятся. Баги в ядре фиксятся сложно.

Очень легко только рассуждать здесь о том, что очень легко прикрутить там. Потому что представление о механизме фиксации данных предельно абстрактное. :-/

В третий раз повторяю. На ФантЛабе для книг создаются страницы — для одного и то же текста этих страниц можно насоздавать чёртову тучу. И, конечно, разобраться в этой чёртовой туче не составит труда, если это один и тот же текст. А вот если один и тот же роман оказывается в нескольких переводах или в нескольких редакциях с разными названиями, то и на ФанЛабе появляются «расширенные» названия с пояснениями в скобках. Чем эта ситуация в положительную сторону отличается от ситуации на Либрусеке, а? Ничем. Всё те же «неправомерные» перелицовки названий.

Дальше. На ФантЛабе строчка в авторской библиографии ссылается на что? — правильно, на страницу с инфой по книге. А эта страница ссылается на страницы с инфой по каждому отдельному изданию. (И читателю ФантЛаба должен ковыряться в этих многочисленных страничках, прежде он поймёт какое издание чем именно отличается от другого, что, например, роман «Железная голова» не входит в роман «Корни гор» 2004 года издания, но представляет собой половину романа «Корни гор» 2007 года издания (роман входит в… роман оригинальное представление инфы, однако)). На Либрусеке строка авторской библиографии должна содержать ссылку на текст. Но никак не на страницу с несколькими ссылками на несколько текстов.

Наконец, есть ли на ФантЛабе рубрика, которая бы объединяла идентичные тексты произведения и обосабливала другие (другой редакции, другого перевода)? Нету. Потому что ФантЛабовцам пофик эти проблемы — их посетители должны отправляться в магазин, а не получать текст на месте.

Вообще-то валидатор ничего в файле не меняет, он только проверяет на вшивость. Или вы про что?

lankier написал:
Вообще-то валидатор ничего в файле не меняет, он только проверяет на вшивость. Или вы про что?

Я про валидатор ничего не знаю. Я лишь предлагаю добавлять в файл информацию о характере изменений, если меняется книга из библиотеки. То есть берётся файл, исправляются ошибки валидации и снова заливается в систему (заменяется битый на новый). При этом увеличивается версия и добавляется блок history. Улучшать в битых файлах можно много чего. Часто там, например, нет разбивки на главы и весь текст идёт одной секцией. Или сноски оформлены угловыми скобками. В идеале это всё надо фиксить, но это долго.

cancel написал:

Я про валидатор ничего не знаю. Я лишь предлагаю добавлять в файл информацию о характере изменений, если меняется книга из библиотеки. То есть берётся файл, исправляются ошибки валидации и снова заливается в систему (заменяется битый на новый). При этом увеличивается версия и добавляется блок history.

А почему Вы решили, что это не делается? Кто Вам это сказал? Это "предлагается" примерно около года. И если файл правится, а не верстается заново - так и положено делать.
cancel написал:
Улучшать в битых файлах можно много чего. Часто там, например, нет разбивки на главы и весь текст идёт одной секцией. Или сноски оформлены угловыми скобками. В идеале это всё надо фиксить, но это долго.

Да, долго. Но надо.
P.S. Если сноски оформлены угловыми скобками - файл так и останется битым. Однозначно.
--------------------
Постепенно дошло и до меня - Вы, похоже, предлагаете добавлять информацию в history автоматом при заливке новой версии? Едва ли это правильно. Оно получится "малоинформативным".

Tanja45 написал:

А почему Вы решили, что это не делается? Кто Вам это сказал? Это "предлагается" примерно около года. И если файл правится, а не верстается заново - так и положено делать.

Ну вот неплохо было бы на какое-нибудь видное место положить такие правила, я пока не нашёл.

cancel написал:
Улучшать в битых файлах можно много чего. Часто там, например, нет разбивки на главы и весь текст идёт одной секцией. Или сноски оформлены угловыми скобками. В идеале это всё надо фиксить, но это долго.

Да, долго. Но надо.
P.S. Если сноски оформлены угловыми скобками - файл так и останется битым. Однозначно.
--------------------
Tanja45 написал:

Постепенно дошло и до меня - Вы, похоже, предлагаете добавлять информацию в history автоматом при заливке новой версии? Едва ли это правильно. Оно получится "малоинформативным".

Нет, нет, нет. Я не предлагают править автоматически fb2-файл. Я предлагал просто как-то стандартизировать процесс изменений, см. начало сообщения.

У меня была другая идея, но я её пока не озвучивал: хочется иметь историю изменения книги в библиотеке. Это совершенно не то же, что document-info/history из файла, это именно лог причин обновлений книги. Например, автор обновляет книгу в библиотеке и пишет на вебформе обновления комментарий типа «фикс ошибок валидации: убраны ошибки распознавания, тег middle-name помещён на правильное место» или «заменено на новую, более качественную версию из другого источника». Но эта идея скорее к функциональности библиотеки относится

Не относится, но определенный смысл в ней есть - если например добавить такое поле да еще и обязательное в "Нашел дубля. Кликните разрешить конфликт" то есть если человек меняет одну книгу на другую ее версию - пусть напишет почему втбрал именно этот вариант" , польза от этого в том что хоть некотторых заставит задуматься прежде чем автоматом кликать на тот что залил сам , да и библиотекарям если разбирать такой "конфликт" то будет легче.
Впрочем вся эта дискуссия к валидации вообще не имеет никакого отношения.

добавте пожалуйста валидацию без загрузки на сайт

b4770796 написал:
добавте пожалуйста валидацию без загрузки на сайт

http://code.google.com/p/fb2utils/downloads/list

Скачайте себе последнюю версию и тогда Вы сможете валидировать файл до загрузки на сайт.

Как в валидаторе отключить проверку даты?

Аватар пользователя Isais

А как валидатор совместить с новыми жанрами FBE?

Аватар пользователя s_Sergius

Isais написал:
А как валидатор совместить с новыми жанрами FBE?

Это легко. Достаточно заменить файл FictionBookGenres.xsd (из папки валидатора) на новый.
Аватар пользователя Isais

Спасибо! Успешно.

Isais написал:
А как валидатор совместить с новыми жанрами FBE?

А вот мне всегда сомнительно, надо ли это делать. Для других библиотек ведь эти файлы тогда могут оказаться невалидными. Или это пофигу и нафигу, и все равно надо чтобы прямо в файле новые жанры?

Уважаемые, столкнулся с такой проблемой валидации данных.
Данный прием использования секций некорректен, выдается ошибка нарушения схемы DTD (expecting image, p...):

<body>
<title><p>Author</p><p>Book name</p></title>
<section>
  <title><p>Title of section 1 level</p></title>
  <p>Text 1.</p>
  <section>
   <title><p>Title of section 2 level</p></title>
   <p>Text 2.</p>
  </section>
</section>
</body>

После валидации курсор ставится в проблемное место - в конце тэга вложенной секции (после второго < section >). Что это значит?
Но если текст 1 заключить в секцию - валидация проходит.
<body>
<title><p>Author</p><p>Book name</p></title>
<section>
  <title><p>Title of section 1 level</p></title>
  <section>
   <p>Text 1.</p>
  </section>
  <section>
   <title><p>Title of section 2 level</p></title>
   <p>Text 2.</p>
  </section>
</section>
</body>

С чем это связано? Нарушение структуры, правил использования схемы? По логике-то все верно..

bookoman23 написал:

С чем это связано? Нарушение структуры, правил использования схемы? По логике-то все верно..

При чем тут логика?

В Вашем первом варианте слишком большая нагрузка на интерпретатор читалки получается. Второй вариант проще.
Но все уже давно привыкли к тому, что текст должен быть заключен в теги "section" и теги "p" и "section" не могут быть на одном уровне.

Не может секция начинаться посередине текста. Перед началом секции обязательно должна быть либо (а) закрыта предыдущая секция либо (б) закрыт её title. Иными словами недопустимым является вот это

.
....</p>
  <section>.....

Цитата:
Не может секция начинаться посередине текста.

Но на практике такое часто случается, даже в моей текущей книге. И как, тогда такие исключения обходить? Согласно описанному второму варианту?
И еще.. валидатор FBUtils на такие случаи размещения секций смотрит спокойно. Либо баг программы, либо это допустимо.
Аватар пользователя Isais

bookoman23 написал:
Цитата:
Не может секция начинаться посередине текста.

Но на практике такое часто случается, даже в моей текущей книге.
Это ошибка.
bookoman23 написал:
И как, тогда такие исключения обходить? ?

Исправлять.

Цитата:
Исправлять.

Путем использования второго варианта? Очевидно..
Аватар пользователя Isais

bookoman23 написал:
Цитата:
Исправлять.

Путем использования второго варианта? Очевидно..
Не знаю, как Вы там варианты отсчитываете, но правильная структура вложений такая:
<body>
  <title>
   <p>Титл</p>
  </title>
  <section>
   <title>
    <p>Уровень 1</p>
   </title>
   <section>
    <p>****************</p>
   </section>
   <section>
    <title>
     <p>Уровень 2</p>
    </title>
    <p>◦******************</p>
   </section>
   <section>
    <title>
     <p>Уровень 2</p>
    </title>
    <section>
     <p>◦********************</p>
    </section>
    <section>
     <title>
      <p>◦Уровень 3</p>
     </title>
     <p>**************************</p>
    </section>
   </section>
  </section>
</body>

Да, таким же образом я и поступаю сейчас. Но в этом случае на лицо пустые подзаголовки (< section >) в оглавлении.

bookoman23 написал:
Да, таким же образом я и поступаю сейчас. Но в этом случае на лицо пустые подзаголовки (< section >) в оглавлении.

Ну и? Почему это Вам мешает?
Ситуация довольно распространённая.

Если так Должно быть, то вопрос по этой теме снимается. Я в создании fb2 еще новичок и потому каждое несоответствие, подозрительное действие воспринимаю критично. :)
Кстати, выше означенная проблема уже описана в http://lib.rus.ec/node/111115
Но мне не дает покоя - почему валидатор FB2Utils такие несоответствия проглатывает? Он не безгрешен? FB2Utils vs FBE - 0:1 :)

bookoman23 написал:
Если так Должно быть, то вопрос по этой теме снимается. Я в создании fb2 еще новичок и потому каждое несоответствие, подозрительное действие воспринимаю критично. :)
Кстати, выше означенная проблема уже описана в http://lib.rus.ec/node/111115
Но мне не дает покоя - почему валидатор FB2Utils такие несоответствия проглатывает? Он не безгрешен? FB2Utils vs FBE - 0:1 :)

Так может быть.
Насчёт валидатора: хотелось бы увидеть конкретный файл.

Отправил в личку файл.

bookoman23 написал:
Отправил в личку файл.

Я Вам ответила. Файл невалидный:

Цитата:
Try the DOM parser
xml validity check passed
Schema validation
Schemas validity ERROR:
Line 56: Element '{http://www.gribuser.ru/xml/fictionbook/2.0}section': This element is not expected. Expected is one of ( {http://www.gribuser.ru/xml/fictionbook/2.0}p, {http://www.gribuser.ru/xml/fictionbook/2.0}image, {http://www.gribuser.ru/xml/fictionbook/2.0}poem, {http://www.gribuser.ru/xml/fictionbook/2.0}subtitle, {http://www.gribuser.ru/xml/fictionbook/2.0}cite, {http://www.gribuser.ru/xml/fictionbook/2.0}empty-line, {http://www.gribuser.ru/xml/fictionbook/2.0}table ).
fb2 validity check failed
Extra FB2 checkup
Some errors found

Так что валидатор работает штатно. ;)

Да, спасибо :) без посторонней помощи я бы погряз в самодурстве и лжекритике))
Высказывание про косячность FB2Utils было скороспелым. Выяснилось, что ошибки с секциями он не пропускает.. пока что. Так что, FB2Utils vs FBE - дружественная НИЧЬЯ! :)

Если сделать согласно второму варианту, то в оглавлении появляется пустой раздел (без title, соответствует абзацу с текстом 1):

< Title of section 1 level >
  < section >
  < Title of section 2 level >

Но это терпимо.

Цитата:
Если сделать согласно второму варианту, то в оглавлении появляется пустой раздел

Не все программы для чтения этим грешат. Например, в CR2 в оглавлении никаких пустых разделов не наблюдается. Так что не заморачивайтесь на этот счет, пусть разработчики программ об этом думают.

Согласен. Достаточно лишь не отображать подобные пустышки, а редактор FBE по идее как раз и должен отображать все секции независимо, имеют ли они заголовки (title) или нет.

Цитата:
Например, в CR2 в оглавлении никаких пустых разделов не наблюдается.

Зато они в CR3 наблюдаются :)
Аватар пользователя PrePress

bookoman23 написал:
Согласен. Достаточно лишь не отображать подобные пустышки, а редактор FBE по идее как раз и должен отображать все секции независимо, имеют ли они заголовки (title) или нет.

Цитата:
Например, в CR2 в оглавлении никаких пустых разделов не наблюдается.

Зато они в CR3 наблюдаются :)
И в FBReader тоже. "Умные" оба.
А вот HaaliReader, AlReader и CoolReader2 это дело в оглавлениях игнорируют.

Вопрос к технической службе.

А можно ли сделать так, чтобы заливаемый fb2 файл в случае выявления on-line валидатором ошибок (речь идёт об ошибках, не носящих критического характера) выдавал бы предупреждение (список выявленных ошибок) и предлагал выбор из двух вариантов:
[а] Ой, простите. Не надо такое заливать, я сейчас поправлю; (XOR)
[б] Всё-таки залить несмотря на ошибки!

При этом по умолчанию работает вариант [а].

VolgoDon написал:
Вопрос к технической службе.

А можно ли сделать так, чтобы заливаемый fb2 файл в случае выявления on-line валидатором ошибок (речь идёт об ошибках, не носящих критического характера) выдавал бы предупреждение (список выявленных ошибок) и предлагал выбор из двух вариантов:
[а] Ой, простите. Не надо такое заливать, я сейчас поправлю; (XOR)
[б] Всё-таки залить несмотря на ошибки!

При этом по умолчанию работает вариант [а].


сам задавался этим вопросом, пока не увидел тут http://lib.rus.ec/soft в самом низу оффлайн прожку выполняющую проверку) прежде чем заливать просто ей проверяйте :)

Полностью поддерживаю предложение VolgoDon-а. Причиной ляпа может быть обычная запарка или рассеянность, но пути назад уже нет - файл на сайте.

sd написал:
Полностью поддерживаю предложение VolgoDon-а. Причиной ляпа может быть обычная запарка или рассеянность, но пути назад уже нет - файл на сайте.

+1
Аватар пользователя s_Sergius

sd написал:
Полностью поддерживаю предложение VolgoDon-а. Причиной ляпа может быть обычная запарка или рассеянность, но пути назад уже нет - файл на сайте.
Согласен. Если робот пишет: «Плохой, негодный файл», то и не надо такой добавлять. Пусть заворачивает его тут же назад. На доводку.
Меньше некачественных файлов будет.

+1000!

Не уверен, сюда ли обращаюсь..
Мне интересно знать, какие стили распознает doc2fb, кроме основного текста и подразделов? Как форматировать цитаты, стихи и т.п.?

bookoman23 написал:
Не уверен, сюда ли обращаюсь..
Мне интересно знать, какие стили распознает doc2fb, кроме основного текста и подразделов? Как форматировать цитаты, стихи и т.п.?

Все что выходит из под doc2fb необходимо допиливать руками на FictionBook Editor. Формат doc и pdf вообще лучше сразу перегонять в этот редактор с помощью Any2FB2. И там опять же допиливать вручную.

bookoman23 написал:
Не уверен, сюда ли обращаюсь..
Мне интересно знать, какие стили распознает doc2fb, кроме основного текста и подразделов? Как форматировать цитаты, стихи и т.п.?
Никак. Допиливать в FBE.
Лучше воспользуйтесь OOoFBTools, в нем можно все стили расставить, какие нужны для FB2 и даже не требует допиливания в FBE, сразу создает валидный документ, не требует наличия Ворда, как doc2fb, но работает на OpenOffice и требует либо OpenOPffice либо LibreOffice. И все же, хотя допил в FBE после OOoFBTools не требуется, всё же лучше пройтись FBE и посмотреть, что получилось, может что нужно подправить.

Вопрос молодого-начинающего.
Честно все прочитал с самого начала
и не понял - как валидатор установить
и как им пользваться?

http://ge.tt/7W0d0Jt/v/0
Скачать, распаковать, кликнуть на validator-gui перейти к проверяемому фб2 файлу и постараться расшифровать на что валидатор возмущается

Страницы

X