LINUX.ORG.RU

В каком формате лучше хранить текстовые данные?


0

1

В программе требуется обрабатывать (парсить) большие тексты, а также иметь возможность экспорта/импорта в форматы TeX, otd, rtf, pdf.

В тексте возможны мат. формулы. И данные должны быть отдельно от оформления.

Реляционная модель.

anonymous ()

>В тексте возможны мат. формулы.

В тексте возможны мат, формулы.

//fix

Zhbert ★★★★★ ()

В текстовом.

anonymous ()

Думаю, в tex и стоит хранить.

runtime ★★★★ ()
Ответ на: комментарий от Zodd

> всякие soap или xml-rpc

Мде. А где их там, в сокетах что ли хранить?

friday ★★★ ()
Ответ на: комментарий от Chaser_Andrey

Объёмы разные, от служебной записки до небольшой книжки.

Ну при редактировании пользователем документа, надо в реальном времени, а вот при экспорте в pdf можно и подождать.

keeper_b ★★★ ()

В программе требуется обрабатывать (парсить) большие тексты, а также иметь возможность экспорта/импорта в форматы TeX, otd, rtf, pdf.

В тексте возможны мат. формулы. И данные должны быть отдельно от оформления.

а чего бы их сразу в odt и не хранить?

shty ★★★★★ ()
Ответ на: комментарий от keeper_b

Данные как-то структурированы? Первое, что приходит в голову - БД, но реляционная или иерархическая - зависит от структуры.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от keeper_b

> Ну при желании туда можно и слона засунуть. Но зачем?

1) чтобы хранить иерархию в удобном для машинного редактирования виде
2) чтобы иметь быстрый доступ к данным (sql-ные БД офигительно быстрее, чем XML)
3) чтобы можно было менять технологию отображения (адаптера до mysql сейчас только у совсем ленивых нет)

stevejobs ★★★★☆ ()
Ответ на: комментарий от Chaser_Andrey

Предположим надо составить договор между коммерческими организациями (или написать книгу в соавторстве).

Обычно такой документ делается в МС ворде. Для согласования этот документ перемещается из отдела в отдел через флешку или по почте.

Я же хочу создать свой редактор и связать его с git (очень понравились идеи заложенные в нём) для распределённой работы.

Также хочется хранить стили оформления отдельно от содиржимого.

keeper_b ★★★ ()
Ответ на: комментарий от keeper_b

Так же использование git очень заманчиво с точки зрения возможности отката назад.

keeper_b ★★★ ()
Ответ на: комментарий от Chaser_Andrey

Не спорю, что я что то упустил но в спецификации odt нет информации что это иерархическая БД.

С иерархическими БД дела не имел.

keeper_b ★★★ ()

Текст с матом хранить надо в формате .gpg, чтоб дети не прочитали.

anonymous ()

xml? может заюзать sqlite? очень зависит от множества факторов.

erfea ★★★★★ ()
Ответ на: комментарий от keeper_b

А вообще посмотри еще в сторону NoSQL, если так уж важна скорость работы, что без БД не обойтись.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от keeper_b

> + хорошо, тогда почему исходные тексты программ ещё не хранятся в БД.

1) целые сайты с текстом хранятся в БД. Думаешь, современные CMS тексты с сайтов хранят статическими страницами в HTML? =)

2) тексты программ (в отличие от книжек с формулами)обычно никто не задается красиво визуализировать. Поэтому и иерархия никакая не нужна внутри листинга обычной программы.

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

>Думаешь, современные CMS тексты с сайтов хранят статическими страницами в HTML?

Нет конечно.

тексты программ (в отличие от книжек с формулами)обычно никто не задается красиво визуализировать. Поэтому и иерархия никакая не нужна внутри листинга обычной программы.

Ну хорошо а почему тогда не одна офисная программа не использует БД?

keeper_b ★★★ ()
Ответ на: комментарий от keeper_b

Вообще-то все офисные пакеты, использующие формат ODF, данные которого хранятся в XML, который легко использовать как иерархическую БД.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от keeper_b

хм, nvi конечно не совсем офисный, но он хранит редактируемый текст как раз в bdb

beastie ★★★★★ ()
Ответ на: комментарий от keeper_b

> а почему тогда не одна офисная программа не использует БД?

ага, ODF - это XML, так что используют они БД по самое не балуйся.

а любая sql-ная база гораздо быстрее XML, по самой своей сути. Читать вот здесь: (http://russian.joelonsoftware.com/Articles/BacktoBasics.html) со слов «На прошлой неделе я». Ну и вообще статья поучительная.


Или ты хотел узнать, почему не используют прямо таки mysql? Ну например, чтобы не зависеть от них. Или чтобы иметь возможность установить на компьютер, на котором уже крутится своя mysql.

Кстати, видел хорошую трехмерную пошаговую стратежку (в стиле Djagged Alliance) под вендой, которая хранила ресурсы в портабельной версии MSSQL.

stevejobs ★★★★☆ ()
Ответ на: комментарий от keeper_b

> А почему ты к ней так?

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

stevejobs ★★★★☆ ()
Ответ на: комментарий от keeper_b

> Ну тык давно было, может уже исправили?

да, это было очень давно. Может быть и исправили.
[fat]Переходом на новое поколение быстрых компьютеров ;)[/fat]

вот чисто на поржать сайтег: http://lotusnotessucks.4t.com/index.html
80 причин, почему Lotus Notes sucks :)

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

Спасибо за статью. Вы убедили не использовать как основу XML.

Но, вот например мне надо хранить математическую формулу. В каком формате? Вроде бы очевидным выглядит TeX.

keeper_b ★★★ ()
Ответ на: комментарий от keeper_b

> Но, вот например мне надо хранить математическую формулу. В каком формате? Вроде бы очевидным выглядит TeX.

какие возможности нужны от «формата» текста вообще, и от «формата» формулы? Какую информацию кроме самого текста должен содержать текст? Чем собираешься рисовать саму формулу?

БД хорошо подойдет если нужно странного (навигация по абзацам, работа со стилями, навигация по составным частям формулы, семантический поиск итп).
А если тупо хранить текстовики и конвертить их между форматами - храни их в техе и конвертируй куда надо, если сможешь ;)

stevejobs ★★★★☆ ()

В DocBook
youtube.com/watch?v=RQUTQ3dD9Es

Karapuz ★★★★★ ()
Ответ на: комментарий от keeper_b

в odt это все есть, и стиль там отделен от содержимого

wfrr ★★☆ ()
Ответ на: комментарий от keeper_b

Я же хочу создать свой редактор и связать его с git (очень понравились идеи заложенные в нём) для распределённой работы


Это работа не для одного человека

Karapuz ★★★★★ ()
Ответ на: комментарий от keeper_b

> требуется обрабатывать (парсить) большие тексты, а также иметь возможность экспорта/импорта в форматы

markdown

Матфорумлы в латехе - обрабатывать отдельно (их в любом случае придется обрабатывать отдельно).

Также хочется хранить стили оформления отдельно от содиржимого.


Даже не думай об этом, если планируешь совместную работу над документом людей, которым все эти иксыимэли глубоко до фени.

Алсо, забей. Преподы как печатали в ворде, так и дальше будут печатать в ворде.

LamerOk ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.