Википедия:Вики-конференция 2007/Программа/Доклады/Колодин М.Ю. Сравнительный анализ гипертекстовых форматов и преобразований документов между ними
Колодин М. Ю. Сравнительный анализ гипертекстовых форматов и преобразований документов между ними[править код]
Михаил Юрьевич Колодин, Санкт-Петербургский институт информатики и автоматизации Российской Академии наук, myke@mail.ru
Аннотация[править код]
Целью исследования является определение наиболее важных форматов представления информации с учётом преобразуемости документов между ними.
In English[править код]
Kolodin M.Y. Comparatory analysis of hypertext formats and documents conversions between them.
The research determines most important formats of information representation, including documents' convertability between these formats.
Текст[править код]
Современные электронные документы представляются во многих форматах.
Исследуем простые и гипертекстовые форматы, используемые одновременно в печатной и сетевой форме:
- простой текст (plain text)
- Wiki (разных версий)
- MSO Word (Microsoft Office Word)
- OOO Writer (OpenOffice.org Writer)
- HTML (разных версий и мощности)
- XML и близкие (типа YAML)
- SGML и близкие, производные (типа DocBook, TEI)
- Postscript
- TeX (собственно TeX/LaTeX, его формульная составляющая, dvi, BibTeX),
- БД (разных типов)
- графика
(здесь к собственно гипертекстовым форматам добавлены несколько близких, часто используемых).
Результаты представлены в таблице.
из → в | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
01. text | = | / | / | / | / | / | / | / | / | / | / | - | - | - | - | - |
02. wiki | \ | = | - | - | + | + | % | % | - | - | % | - | - | ~ | - | - |
03. MSO Word | \ | - | = | ~ | ~ | ~ | - | - | - | - | - | - | - | + | - | - |
04. OOO Writer | \ | - | ~ | = | ~ | ~ | - | - | - | - | - | - | - | + | - | - |
05. HTML | \ | ~ | - | - | = | / | / | / | / | / | - | - | - | + | - | - |
06. XML | \ | + | - | - | + | = | + | + | + | + | ~ | - | - | - | - | - |
07. YAML | \ | % | - | - | % | + | = | % | % | % | ~ | - | - | - | - | - |
08. SGML | \ | % | - | - | + | + | % | = | + | + | % | - | - | - | - | - |
09. TEI | \ | - | - | - | - | - | - | + | = | ~ | - | - | + | + | - | - |
10. DocBook | \ | - | - | - | - | ~ | % | + | ~ | = | - | - | + | + | - | - |
11. TeX | \ | - | ~ | - | ~ | ~ | % | % | ~ | ~ | = | + | + | + | - | - |
12. dvi | \ | - | - | - | - | - | - | - | - | - | + | = | + | + | - | - |
13. PS | \ | - | - | - | + | - | - | - | - | - | ~ | = | + | + | - | - |
14. PDF | \ | - | - | - | + | - | - | - | - | - | ~ | % | = | + | - | - |
15. БД | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
16. графика | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
где знаками отмечены:
- = то же самое
- / вверх, с достройкой (м.б. эвристической)
- \ вниз, с потерей информации
- ~ близко, но неточно
- + есть точно
- - нет
- % может быть получено
Добавлены строки
- БД: представление информации в базах данных (общих преобразований нет, но для конкретных случаев их можно построить)
- графика: текстовая или иная линейная или структурированная информация в виде изображения (хотя бы как копия экран почти всегда может быть получена, но общих преобразований нет)
Нужно учитывать
- формат ввода
- первичного
- повторного
- формат хранения
- формат представления на экране
- формат печати
- формат передачи информации по сети
Имеются проблемы и ограничения:
- множественные кодировки (обмен и внешнее хранение — только в unicode (utf-8))
- сложность форматов, инструментальные возможности для их поддержки (на всех этапах)
- неполная совместимость даже близких форматов (разные wiki используют разные соглашения по набору текста, имеют весьма различные возможности и расширения)
- слабая структурированность нерамочных форматов
(где «рамочные форматы» — форматы с чёткой структурой вложенности типа XML*, XHTML, SGML*; по внутреннему представлению таковыми являются и современные MSO Word, OOO Writer, но при вводе текста пользователем это не так).
Понятно, что если существуют достаточно адекватные (полнофункциональные) и полные (включающие все основные используемые форматы) цепочки преобразователей, то можно вводить тексты в форматах, удобных для ввода, упрощённых, хранить в универсальных, из которых легко получать следующие производные, и т. п. Увы, ни таких цепочек, ни даже достаточно полных соответствий между форматами нет.
Хотя можно построить почти полные схемы «транзитивных замыканий» для всех указанных форматов, реально они очень ограничены, и происходят с потерей и/или искажением информацией, с эвристической достройкой недостающей или подразумеваемой информации, прежде всего, по структурированию и визуальному форматированию, по налаживанию гипертекстовых (в общем случае — гипермедийных) связей, по сборке документов в системы. Нужно достроить (полу)автоматически выполнимые цепочки преобразований, максимально полно и точно отображающих форматы друг на (в) друга; во многих случаях такие преобразования будут эвристическими (типа (полу)автоматической «типографики»), но нужно добиваться того, чтобы результаты таких преобразований были допустимы для использования по назначению без необходимости человеческой доработки (просмотра с ручным исправлением ошибок). Тем более не имеет смысла строить преобразования из каждого формата в каждый другой.
Выводы:
- нет единого оптимального формата, и даже набора форматов,
- вводить нужно просто, но обязательно автоматически проверять введённое,
- во всех существенно сложных случаях хранить информацию нужно в форматах типа XML, но для удобства работы сохранять и полуформальный источник,
- и тогда основой для последующих преобразований д.б. XML, возможно, наборы (архивы) XML,
- что мы и видим в современных офисах; а вот сетевые возможности пока отстают; тем не менее, налицо их сращивание, и в перспективе ожидается унификация способов работы и представлений.
Исследования в этом направлении и построение соответствующих преобразователей будут продолжены.