LINUX.ORG.RU

Ищется подход к структурированному хранения информации и построения документов на основе такого хранилища


0

0

Доброго времени суток!

Требуется подход к структурированному хранению информации и построению документов на основе такого хранилища.

Например, предположим мы хотим описать политическую сцену в крупном городе РФ. Нужно описать политические партии (программа, история, члены, акции, отношения с другими партиями и т.д.), политиков (персональные данные, история, членство в партиях, публикации и т.д.), СМИ, объекты приложения политической борьбы и т.д. Очевидно, что в этом примере будут описания некоторых сущностей (партия, политик, экземпляр СМИ и т.д.), состоящие из набора атрибутов (значениями которых могут быть ссылки на другие элементы структурированного представления информации, текст, изображения), набор которых должен быть регламентирован для каждого типа сущности, а также описания событий или процессов, представляющие собой относительно слабо структурированные блоки информации, содержащие ссылки на описания упоминающихся сущностей (например, описание митинга, где встречаются имена политиков и названия политических партий, со ссылками на соответствующие сущности). Далее, получив такую информационную базу мы хотим строить документы на ее основе. Это может быть представление информации в целом (энциклопедия), с учетом "уровней доступа" (публичное представление будет содержать только ту часть информации, которую можно публиковать, представление для более специфического использования, может содержать также более специфическую информацию - при этом вся информация содержится в базе и разные ее части просто промаркированы для разделения уровней доступа), может быть некоторый срез (история одной партии, возможно с краткими сносками или врезками в местах упоминания других партий или конкретных политиков), может быть просто представление отдельного элемента базы (описание отдельного политика с краткой биографией). Также у документов может быть разное представление. Энциклопедия может быть гипертекстовой (набор страниц с гипертекстовыми связями между собой), может быть в "книжном формате" - непрерывный документ предназначенный для печати, где связи между отдельными участками информации представляются в виде "см. п. 4.3.2 гл. 4". То же может быть и с другими вариантами документов.

Мне видится, что задача разбивается на следующие части:

1) структурированное хранение информации 2) описание документов (структуры и того, как формируется содержимое на основе хранилища) 3) описание представлений документов

Плюс предполагается групповое наполнение/редактирование хранилища (что-то вроде Wiki).

Собственно, вопрос: какие подходы, технологии, инструменты можете посоветовать? Мне сразу пришел в голову XML для 1-й задачи, для 3-й тогда, вероятно, подойдет XSL, а со 2-й не очень понятно пока. Скажем, в рамках приведенного примера хочется в описании формирования содержимого указывать что-то вроде "перечисление всех описанных партий" + формат формирования описания партии.

anonymous

Ответ на: комментарий от gaa

Что именно подразумевается под БД? Реляционные? Зачем они тут? Объем данных не очень велик, индексы не нужны, большая часть данных - текстовая, кол-во элементов одного типа мало (т.е. при оформлении в рамках реляционной БД мы получим кучу коротких таблиц со множеством столбцов типа "текст"). Задача поиска тоже не стоит, кроме, разве что, задачи перечисления всех элементов определенного типа.

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

anonymous
()

Пахнет RDF! Интересно, но непросто. Традиционные БД слишком регулярны для такой задачи.

Sphinx ★★☆☆
()

В своих рекламных проспектах XML базы данных обещали все это решить. Но что-то пару лет уже о них ничего не было слышно.

Я б на вашем месте взял mediawiki за основу. И дописал туда все что надо. Заодно и дописаный код может можно будет обратно законтрибутить.

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

или лучше сразу open source делайте, а то когда у вас менты все это изымут после того как в вашей базе накопится достаточно подробностей про местного политика из ЕР, вы просто не успеете исходники выложить.

gods-little-toy ★★★
()

Интересно, кто такое заказывает?

частный инвестор наврядли... заводить сайт про политегов, если это не сайт местного отделения ЕР, сейчас себе дороже окажется.

На администрацию тоже не похоже, "описать политические партии,..., СМИ" - чё тут описывать, в кпз всех, там сержант опишет... всякие политтехнолаги тоже такое б не заказали, там одни гуманитарии им такое в голову не придет...

ЦРУшники такое вообразить себе могли бы, но они я думаю такую активность бы не аутсорсили, там наверно уже и хранилище и все остальное есть, и доступ к нему только у граждан США с соответствующим допуском...

Европа?

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

>Интересно, кто такое заказывает?

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

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

AM

anonymous
()

Вообще вопрос как хранить он не интересный и не сложный.

Вот вопрос как структурировать, это да, это уже интереснее.

Есть два варианта:

1) посодить девочек что бы они структурировали

2) сделать систему

Второй вариант намного интереснее, но сложнее в реализации, и затраты на его создание могут окупиться разве только если вам нужно будет нанять 10 тысяч девочек ;) Но у него есть свои плюсы.

catap ★★★★★
()

RDF OWL KQML

Ну и другие баззворды

anonymous
()
Ответ на: комментарий от gr_buza

>LDAP для хранения

LDAP? А можно вкратце пояснить, почему именно LDAP? Насколько я понимаю, LDAP - это дерево, в листьях которого элементы, а в узлах - значения атрибутов. Положим, часть информации в моей задаче можно определить, как элементы, имеющие обязательные и необязательные атрибуты. Выборка элемента(-ов) по нескольким атрибутам полезна, да. Но не будет ли использование LDAP только лишь для хранения/извлечения несколько избыточным? С LDAP'ом знаком весьма поверхностно, как-то совсем о нем не думал в таком ключе.

> RDF OWL KQML

Но я (пока?) не ставлю задачи работать с семантикой. Все что мне нужно - это построить базу нерегулярной/слабо структурированной информации, а затем заиметь способ относительно просто строить "шаблоны" документов, по которым будут автоматически создаваться документы на основе этой базы. Мне казалось, что RDF, семантические сети, онтологии решают другие задачи, разве нет?

> Вот вопрос как структурировать, это да, это уже интереснее

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

В общем, мне пока путь решения видится таким: абстрагироваться от хранилища (в сущности, можно использовать хоть файловую систему для этого - структурой каталогов задавать классификацию, атрибуты хранить в файлах. Хм, а не аналог ли это LDAP'а?) и подумать над шаблонами документов, по которым можно создавать что-нибудь типа DocBook, на которые уже затем накладывать стили конечного представления.

anonymous
()
Ответ на: комментарий от catap

А на тему чего ты хотел бы пообщаться? В рамках данной задачи я совсем не думал пока об автоматической обработке текстов/знаний. Эта тема меня привлекает, но я от нее еще пока далек.

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

>> RDF OWL KQML

> Но я (пока?) не ставлю задачи работать с семантикой. Все что мне нужно - это построить базу нерегулярной/слабо структурированной информации, а затем заиметь способ относительно просто строить "шаблоны" документов, по которым будут автоматически создаваться документы на основе этой базы. Мне казалось, что RDF, семантические сети, онтологии решают другие задачи, разве нет?

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

А потом можно из этой кучи-малы XSL-ем сделать "семантический", т.е. отражающий структуру содержимого XML-документ, который вторым проходом отрендерить в HTML или PDF.

anonymous
()
Ответ на: комментарий от catap

catap, отпиши мне на pacify@mail.ru - я думаю над подобной базой знаний )

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

Раз не интересует, тогда общаться будет не интересно, а жаль ;)

А может вас все-таки интересует черный ящик с возможностью автоматической обработки текстов?

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

> Раз не интересует, тогда общаться будет не интересно, а жаль

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

А черный ящик - имеется в виду некий конечный продукт? Лично меня больше интересуют подходы, методики, идеи.

anonymous
()
Ответ на: комментарий от catap

> А может вас все-таки интересует черный ящик с возможностью автоматической обработки текстов?

Хитёр бобёр )))

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

Угу, научилась.

Только я так и не смог понять, сколько она стоит ;)

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

Конечный продукт, гм. Нет, это не конечный продукт.

Конечным продуктом, наверное, он станет лет через 5-7 такими темпами, и то, если станет.

А интерес был только с точки зрения алгоритмов и идей.

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

Я не совсем правильно выразился. Мне инетерсно создание таких вот ящиков. Я думал что кому-то еще это будет интересно :(

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