A643 Автор неизвестен

Forums: 

Автор неизвестен

Не нравится мне, что "Автор неизвестен" в библиотеке это last-name, при отсутствующем first-name. Это неправильно с точки зрения fb2. Когда к библиотеке прикрутят синхронизацию fb2 с базой данных, библиотека будет выдавать заведомо невалидный файл. Правда альтернативные решения тоже не очень... Разбить на "Автор" и "неизвестен" - криво. Писать "Автор неизвестен" в nickname - пожалуй самое правильное решение, но не уверен, что и либрусек и программы-библиотекари воспримут это корректно.

Есть какие-нибудь мысли по этому поводу?

Тут ничего, кроме «костылей» (что last-name, при отсутствующем first-name, что nickname) не придумаешь — расплата за непродуманность *.fb2. Аналогичный случай — «Коллектив авторов», такая же фигня. Просто *.fb2 не учитывает других типов авторства, кроме авторства «основного текста». В книге может быть составитель или ответственный редактор, например. И вроде бы в *.fb3 Грибов собирается дело с этим поправить.

А где это так? Вроде бы либо "Автор неизвестен" - фамилия, либо имя, но тогда есть и "фамилия": Анекдоты, Эпос и проч.
В списке невалидных это правится вычитывающими регулярно, но можно и отдельно выделить в библиотеке группу файлов с этим пороком и долить их в список с соответствующей пометкой. Хм. А что, разве это уже не сделано?

oldvagrant написал:
Вроде бы либо "Автор неизвестен" - фамилия

Вопрос в том, что фамилия без имени это невалидно с т.зр. fb2. Может это не так уж страшно, но вдруг кто-нибудь что-нибудь интересное посоветует.

upd.

oldvagrant написал:
либо имя, но тогда есть и "фамилия": Анекдоты, Эпос и проч.

О, кстати. Может тогда его для консистентности переименовать в "Автор неизвестен -" "разное".
Тогда у всех неизвестных авторов в first-name будет одинаково. Плюс валидно с т.зр. fb2.

lankier написал:
О, кстати. Может тогда его для консистентности переименовать в "Автор неизвестен -" "разное". Тогда у всех неизвестных авторов в first-name будет одинаково. Плюс валидно с т.зр. fb2.
На мой взгляд это разумно. Только придется опять шерстить файлы :(

lankier написал:

О, кстати. Может тогда его для консистентности переименовать в "Автор неизвестен -" "разное".
Тогда у всех неизвестных авторов в first-name будет одинаково. Плюс валидно с т.зр. fb2.

По-моему, лучше не надо. Если не ошибаюсь, "Автор неизвестен" был создан либрусеком автоматически, значит, если его переименовать, то заливка первой же книги без автора снова создаст ещё одного "Автор неизвестен".

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

lankier написал:
Вроде для этого есть алиасы авторов. "Автор неизвестен - Разное" сделать основным, а просто "Автор неизвестен" алиасом к нему. Тогда должно автоматически исправляться. Или нет?

Ну, наверное, да. Но... э-э... зачем?

lankier написал:
Вроде для этого есть алиасы авторов. "Автор неизвестен - Разное" сделать основным, а просто "Автор неизвестен" алиасом к нему. Тогда должно автоматически исправляться. Или нет?

Дело в том, что нежелательно создавать "дерево алиасов", то есть все, что сейчас подсоединено к 643-му - нужно будет оторвать и пришить к новому протезу. А это - целая туча работы, бессмысленной и бесполезной.

pkn написал:
Ну, наверное, да. Но... э-э... зачем?

Я же выше писал. Сделать синхронизированный документ валидным.
Плюс ещё к этому - в программах-библиотекарях сортировка идет по фамилии. Путаница будет. И вот ещё. Всё-таки правильно везде сделать "Автор неизвестен" как last-name. Для удобства сортировки.

Ну и у всех остальных неизвестных авторов - "Автор неизвестен" это first-name, а этот какой-то исключительный. :)

rr3 написал:
Дело в том, что нежелательно создавать "дерево алиасов", то есть все, что сейчас подсоединено к 643-му - нужно будет оторвать и пришить к новому протезу. А это - целая туча работы, бессмысленной и бесполезной.

Переименовать нынешнего в "разное" и создать нового без "разное" алиасом к нему. Вроде не так уж сложно.

lankier написал:

Я же выше писал. Сделать синхронизированный документ валидным.

Ну я вообще-то не фанат валидности как самоцели.
lankier написал:

Плюс ещё к этому - в программах-библиотекарях сортировка идет по фамилии. Путаница будет. И вот ещё. Всё-таки правильно везде сделать "Автор неизвестен" как last-name. Для удобства сортировки.
Ну и у всех остальных неизвестных авторов - "Автор неизвестен" это first-name, а этот какой-то исключительный. :)

"жанр нужно писать именно в Фамилию, чтобы поиск работал"
http://lib.rus.ec/node/105740

pkn написал:
Ну я вообще-то не фанат валидности как самоцели.

Это не (совсем) самоцель. Это надо, чтобы другие программы работали нормально. Стандарты, типа.

pkn написал:
"жанр нужно писать именно в Фамилию, чтобы поиск работал"
http://lib.rus.ec/node/105740

Понятно. Но как-то это неправильно подстраиваться под движок сайта.

lankier написал:
Но как-то это неправильно подстраиваться под движок сайта.

Собственно, нам никто не запрещает предлагать изменения в движке. Ларин, если не ошибаюсь, это дело вполне приветствует. Только к нему нужно идти как к начальству: не с проблемой, а с решением. То бишь, 1) определить проблему, 2) определить решение, 3) найти в коде движка нужную часть, 4) и переписать её. А уж потом к Ларину.

В идеале надо бы иметь локального либрусека, для отладки...

Посмотрел код. Там сейчас ищется по полному соответствию first/last/nickname:

  $w .= " AvtorId = '$ask' OR FirstName = '$ask' OR LastName = '$ask' OR NickName = '$ask'";

И находит только одного "Автор неизвестен". Потому, что у остальных неизвестных авторов в имени присутствует тире. Так что это (уже) не проблема движка, надо только решить, как правильно обзывать этих неизвестных.

Мне всё-таки больше нравится решение что "Автор неизвестен" это "родовое имя" :) А жанр - first-name.

lankier написал:
Посмотрел код. Там сейчас ищется по полному соответствию first/last/nickname:
  $w .= " AvtorId = '$ask' OR FirstName = '$ask' OR LastName = '$ask' OR NickName = '$ask'";

И находит только одного "Автор неизвестен". Потому, что у остальных неизвестных авторов в имени присутствует тире. Так что это (уже) не проблема движка, надо только решить, как правильно обзывать этих неизвестных.

(поигравшись с поиском) Действительно, теперь ищет и по первому имени... ну значит требование "жанр нужно писать именно в Фамилию, чтобы поиск работал" устарело.

Кстати, забавный глюк, если в поиск (тот, что справа вверху) задать "неизвесте", то результатов не выдаёт, а выбрасывает на вот эту книжку http://lib.rus.ec/b/119070 . Повторить этот эффект используя адресную строку ( http://lib.rus.ec/booksearch?ask=неизвесте ) почему-то не получается.

Упдате: точнее, получается, только если не копипейстить в адресную строку, а кликнуть на линке. Видимо, файрфоксовый эффект какой-то.

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

lankier написал:
Похоже, поиск выдал только один результат. Т.е. это не глюк. А неизвестные авторы не найдены, потому что поиск авторов идет по полному совпадению, а не по части.

То есть это одна-единственная книга, в названии которой есть подстрока "неизвесте"? Ой что-то сомневательно мне...

Я тут у себя проверил прямым запросом к базе данных:
select Title from libbook where Title like '%неизвесте%'
Так и есть. Только одна книга, точнее несколько вариантов одной книги:
UFO - Враг неизвестен
UFO: Враг неизвестен
UFO: враг неизвестен
UFO: враг неизвестен [= Враг неведом]

lankier написал:

Так и есть. Только одна книга,

Угу. Не глюк, значит. Эт хорошо.

lankier написал:
Вопрос в том, что фамилия без имени это невалидно с т.зр. fb2.

А FBE говорит что валидно. С именем без фамилии аналогично.

По схеме не может быть last-name без first-name. Это ошибка. Вот пример:

gomer.fb2:9: element last-name: Schemas validity error : Element '{http://www.gribuser.ru/xml/fictionbook/2.0}last-name': This element is not expected. Expected is one of ( {http://www.gribuser.ru/xml/fictionbook/2.0}first-name, {http://www.gribuser.ru/xml/fictionbook/2.0}nickname ).

Возможно в FBE оторвали эту проверку. С другой стороны оно и понятно, как тогда правильно описывать к примеру Гомера. Можно сделать его имя как nickname, тогда будет валидно. Ну я не знаю...

upd.
Ну хорошо. Вот возьмем того же Гомера. Гомер это что, имя? фамилия? или прозвище?

(Надо голосование устроить, а то давно не было)

Гомер — это имя. Не фамилия и не прозвище. :)

пруфлинк?

Образование нужно хоть маленькое, но иметь, никакими «пруфлинками» его не заменишь. :)
Не было в системе имён античной Эллады никаких фамилий. К имени если и добавлялось, то прозвище — преимущественно географического вида (Аристотель — Аристотель Стагирит = Аристотель из Стагир). Также были в ходу отчества — Аякс Теламонид = Аякс сын Теламона.

Ну и где написано, что единственное имя в древности это first-name а не last-name?

nonduc написал:
Аякс сын Теламона

И почему это не отчество?

Теламонид — это как раз отчество (патроним). Я же это чётко и указал — «Также были в ходу отчества — Аякс Теламонид = Аякс сын Теламона». :)

А насчёт отсутствия фамилий — всё просто. Фамилия — это родовое имя, которое передаётся на протяжении скольких-то поколений. Однако те имена, которые давались древними эллинами своим детям, никому впоследствие не передавались, они были сугубо личными именами.

nonduc написал:
А насчёт отсутствия фамилий — всё просто. Фамилия — это родовое имя, которое передаётся на протяжении скольких-то поколений. Однако те имена, которые давались древними эллинами своим детям, никому впоследствие не передавались, они были сугубо личными именами.

Поставлю вопрос по другому. Имя в древности это аналог современного имени или всё-таки современной фамилии - более уникальной части полного имени? Как мне кажется, имя в древности это не современная фамилия, но и (ещё в бОльшей степени) не современное имя, т.к. более уникальное.

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

Что ты понимаешь под большей или меньшей уникальностью — мне не понятно. Потому что у эллинов имена повторялись будь здоров, хотя и не так часто как у нас, поскольку мы пользуемся в основном «списочными» именами. Возьми тех же самых ахейских вождей у Гомера — и сразу будут тебе два Аякса, совсем-совсем не родственника. :)

ЗЫ. Заметь, что у древних ручисей также не было фамилий, были только имена и отчества, фамилии появились мно-о-ого позже. Какой-нить Святополк как личное имя волне идентичен Александру. К которому добавляется при необходимости только отчество, никак не родовое имя. Ну и прозвища, конечно, были, как без них-то, без кликух. :)

Убедил. Т.е. Гомера надо переносить в first-name?

Ну, конечно! :)

Кстати. Надо бы файл посмотреть. Ругань валидатора на отсутствие соответствующего тега легко обходится созданием пустого тега. Валидатор не проверяет на присутствие в тегах текста, только их наличие. К примеру, файл с пустым тегом book-title считается валидным. 8(

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

oldvagrant написал:
Чаще всего это касается автора и жанра.

... и названия. Особенно полезно, когда добавляются альтернатиные названия книг. Хотя некоторые утверждают, что это неправильно. :)
А еще можно поправить lang, translator и sequence. Итого 6 из 11 полей в title-info.
Чисто теоретически также могут меняться annotation и coverpage - но там с синхронизацией есть сложности.
Остались без возможности изменения - keywords, date и src-lang.

oldvagrant написал:
А нельзя программно поправить файловые дексрипшены в соответствии с библиотечными?

Ну я про это и писал в первом посте - синхронизация базы данных и fb2 файла. Рано или поздно, когда-нибудь прикрутят. :)

lankier написал:
.. и названия. Особенно полезно, когда добавляются альтернатиные названия книг. Хотя некоторые утверждают, что это неправильно. :)

Да-да, это неправильно! :) Значительную часть этих «исправленных» названий — ту, в которой в скобках прибавлен переводчик, — можно сократить «назад»: если ввести для переводных публикаций обязательное указание переводчика в тех же самых скобках из поля <_translator> в *.fb2. :)
Другую часть «расширенных» названий можно сократить, если составить хороший библиографический список в описании автора. Тогда станет наглядной отнесённость разных по названию переводов к одному оригиналу. Или иной способ для того же — добавить в строку произведения позицию из <_src-title-info>/<_book-title>.
Ну и так далее.
То есть, прежде чем переносить в дескрипшены исковерканные названия нужно с этими названиями хорошенько разобраться — большинство из них легко ликвидируются. :)

На счет переводчиков в названии - соглашусь. Это направильно, для этого есть снец. тег. А вот альтернативные названия - пока только так. И библиография не выход. Либрусек и программы-библиотекари не умеют искать в библиографии.

nonduc написал:
большинство из них легко ликвидируются

Все-таки в основном название расширяют альтернативными именами. Изредка - "(с иллюстрациями)" и "(другой перевод)". Для того, чтобы не удалили как дубль. Другого способа избежать неоправданных удалений я не знаю. (Вот когда выйдет fb3, а лучше fb4 - вот тогда можно будет всё делать правильно :))

Цитата:
И библиография не выход.
Совсем не выход. Библиография дело опциональное. Здесь исключительно для ориентира.

Ну так я ведь специально воспроизвёл вариант не только при помощи библиографического списка в описании автора. Цитриую себя:

Цитата:
добавить в строку произведения позицию из <_src-title-info>/<_book-title>
благодаря чему получится — Торговец пушками (пер.: Александр Рахуба) (The Gun Seller) 1170K (5216)   (читать)   (скачать). Обрати внимание на выделенный красным «book-title»! :) А выделенный зелёным переводчик сделает ненужными пометки о «другом переводе». :)

Надо ли в заголовок всех переводных книг добавлять переводчика? Я не уверен. Слишком много информации в заголовке снижает юзабилити. Получится вместо заголовка библиотечная карточка, и искать нужное станет затруднительно.

Это не добавление в заголовок — это добавление позиции в строку библиографии автора. Какую ещё юзабилити такое добавление снизит, а? Разве сейчас строка библиографии перегружена позициями? И что вручную добавленная инфа в название книги, когда она бывала добавлена, — снижала юзабилити? Нет! Только повышала. :)

ЗЫ. Кстати, book-title для переведённого источника можно помещать не в скобки, а в кавычки — «book-title»: «The Gun Seller». Или в квадратные скобки: [The Gun Seller]. Чтобы круглых скобок стало в строке поменьше. Вот так:
- Торговец пушками  (пер.: Александр Рахуба)  «The Gun Seller»  1170K (5216)   (читать)   (скачать)
Или так:
- Торговец пушками  (пер.: Александр Рахуба)  [The Gun Seller]  1170K (5216)   (читать)   (скачать)

X