От Николай Манвелов
К All
Дата 24.04.2007 12:41:00
Рубрики Флот; Память;

Вниманию всех, кто интересуется флотом!

Привет
Уважаемые коллеги!
Уважаемая Администрация - прибейте, а? Может кому интересно будет?
Возможно, я строю новый фантом в форме воздушного замка, но уж, извнините, наболело.
Как некоторые из Вас, наверное, знают, я уже довольно давно - более 20 лет - глубоко копаю по истории Российского Императорского флота. На определенном этапе понял, что объять необъятное нельзя, поэтому сосредоточился на биографиях флотских офицеров. Исключив, врочем, врачей, чиновников и духовенство.
на данном этапе, у меня есть данные на приблизительно 6700 человек. Впрочем, часть из них, возможно, одни и те же люди, ибо по ним есть только фамилии, либо инициалы.
Почему я решил запостить это сообщение? Самореклама меня волнует мало. Мне и так хватает внимания к моей скромной персоне (по месту службы) :). Денег на этом деле не заработаешь. Меня волнует другие - как ни высокопарно это звучит - память.
Есть множество людей, которым интерены их предки. Информации же в открытых источниках - очень часто "ноль". На редких сайтах в интернете люди могут наткнуться либо на непроверенную информацию, либо на фразы типа "капитан 2 ранга Корпуса флотских штурманов". Это уже не смешно.
Иначе говоря, я прошу помощи. Я давно мечтаю о мощном военно-морском портале, куда мог бы выложить свою информацию - это вовсе не только биографии. Это уже около 10 гигабайт, причем по всему миру в промежутке между 1850-м (приблизительно) и концом Гражданской войны в России. Сам я такое сделать не смогу, ибо не умею.
Коллеги, может кому-то это интересно? А то давно уже надоело работать в стол. И читать куски собственной информации, которые кто-то где-то публикует. При чем не всегда понимая такую элементарную вещь, как структура и деятельность Морского министерства России.
Если скучно, надоедливо и длинно - простите. Но хочется как лучше.
Николай Манвелов

От Чобиток Василий
К Николай Манвелов (24.04.2007 12:41:00)
Дата 25.04.2007 16:19:28

Re: Вниманию всех,...

Привет!

Пример использования движка wiki отдельно от Википедии можно посмотреть тут:
http://armor.kiev.ua/wiki

Там же есть есть и категория "Персоналии".

Все, что нужно: нормальный хостинг с PHP и MySQL.

Для Вашей задачи такое решение подходит на 100%.

Предложения, заявления, жалобы есть? http://armor.kiev.ua/

От apple16
К Николай Манвелов (24.04.2007 12:41:00)
Дата 25.04.2007 12:47:54

Продолжение

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

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

Можно уже сейчас подумать о некоторых аспектах и потенциальных проблемах.
Например:

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

1. Очевидно, что тип данных любой СУБД нам не очень подойдет из-за
разнообразия вариантов дат, имеющихся в наличии - придется даты хранить или строками и самим их разбирать или диапазонами и разбирать их предварительно.

2. Поскольку заниматься мы будем русской/советской историей
то даты до марта 1918 года практически всегда на вход
поступают по "старому стилю".
Даты иностранных источников это не так -
для каждого источника нужно определить используемый календарь.
По умолчанию видимо русский.

3. Время, когда оно есть, можно или принудительно приводить к Гринвичу
или давать привязку. (точное время встречается очень редко
- в каждом отдельном случае стоит напрячься и сделать удобно)

4. Даты, известные приблизительно придется указывать диапазонами
навроде 1904-1905. Лучше указать широкий диапазон чем не указать
никакого.

5. Даты, популярные в литературе, как "около 1903 года" стоит
заменять на диапазоны, поскольку в виде ~1903 их использование затруднено.

6. Когда известен год - указывать год, известен месяц - указывать
месяц.

В результате каждая дата это диапазон между двумя точками +
возможно какие-то флажки указывающие на нестандартный календарь
или нестандартное время.

Примеры дат и их возможных записей
"август 1904 года" 08.1904
"15 сентября 1904 года" 15.09.1904
"около 1902 года" чешем репу и видим по смыслу
что это диапазон (напрмер для фотографии корабля в белой окраске)
1901-1903
"после 1917 года" опять же видим по смыслу что
царский герб например сбит, а корабль продали на металл в 1922 году
- диапазон 1917-1922
Вычитали в Таймс что немецкий крейсер пришел в Порт-Артур
такого-то февраля 1904 года - вычитаем 13 и пишем такого-то января
или пишем после даты символ G означающий григорианский календарь.
(что лучше не знаю - поскольку такие данные будут сидеть с обязательной
ссылкой на источник - где будет имется и календарь, используемый источником)
Пассажи типа "в 17.05 или в 18.00 по Токио" следует видимо сопровождать
идентификатором конкретного варианта поясного времени.

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

Итого:
Формат даты = (дата1) - (дата2) (как диапазон явный)
или (дата) как диапазон неявный
Можно формат даты подогнать под конкретное API конкретной платформы
чтобы парсить не напрягаясь, но лучше этого не делать ибо
платформы меняются. Также все равно придется что-то дописывать
для поддержки распространенных исключений.

Вариант

дата = DD.MM.YYYY HH:MM:SS [G] ["T"] (менее секунды не учитываем)
[G] - признак григорианского календаря, (по умолчанию юлианский до 1918 года)
прочие календари игнорируем - при желании можно будет дополнить
процедуру парсинга (то же касается и дат до нашей эры)
["T"] символ поясного времени - список их можно составить дополнительно
вместе с разницей с Гринвичем.
DD,MM,YYYY - день месяц и год
Год есть всегда.
Парсить это просто - ищем "-" - если есть - диапазон, нет одна дата.
потом для каждой даты выгребаем количество точек - если 2 то
это с днем, одна с месяцем - нет с годом. В зависимости
от ситуации тянем остальное.
Варианты когда нет например дня но есть время отбрасываем
- ибо информационной ценности нет.
Хрень типа "в полночь одного из мартовских дней 1904 года миноносцы" означает только 03.1904 и все.
Если у нас есть все до секунды - пишем в диапазон 2 одинаковых значения
иначе - даем интервал по тому что есть.

От Hokum
К apple16 (25.04.2007 12:47:54)
Дата 25.04.2007 17:56:37

Re: Продолжение

С датами есть несколько тонких моментов.
1. Все даты должны быть конвертированы в тип данных "дата/время" (datetime, smalldatetime, etc). Сравнивать строки с датами ни одна база на умеет (точнее умеет, но с непредсказуемым результатом :-))
2. Все даты должны быть приведены к единому стандарту. Никаких старых и новых стилей. Хоть от сотворения мира, хоть со дня рождения Джорджа Буша - но единообразно.
3. То же самое со временем. Хоть по Токио, хоть по Шанхаю - но в едином стандарте для всей базы.
4. И самое главное. Ни одна база не понимает неполных дат (вот бы где пригодилась троичная логика). То есть, к примеру, дата "1904 год" будет автоматически преобразована в "1 января 1904 года, 00 часов 00 минут 00 секунд". При этом в принципе невозможно установить, какая часть даты введена пользователем, а какакя сгенерирована сервером.
Вот одно из возможных решений. Не идеальное, во многом избыточное - но работать будет.
Итак:
1. Из основных таблиц убираются все поля типа "дата/время". Никаких "родился - женился - крестился - спущен на воду - продан на слом - съеден аборигенами".
2. Все подобные эпизоды хранятся как события в таблице "хронология". Событие - это любой эпизод, имеющий временную привязку. Спуск на воду крейсера "Баян", рождение адмирала Нельсона, женитьба прапорщика Ранцева на баронессе фон Засс...
3. Событие имеет одну временную отметку. Если требуется хранить какой-то интервал, событие разбивается на несколько отдельных событий. К примеру, бой Желтом море будет представлен десятком-другим событий, а вот выпуск гардемарина Ливитина мичманом - одним (пусть они хоть трое суток гудели по этому поводу :-))
4. Для каждого события в базе хранится:
- ключи ко всем вовлеченным в него сущностям (люди, корабли, флоты и т.п.) через систему промежуточных таблиц,
- дата и время события, пересчитанные в универсальный формат (скажем, григорианский календарь, время по Гринвичу),
- флаги достоверности для всех частей даты (скажем, год и месяц - достоверно, день и час - недостоверно),
- оригинальное представление даты или интервала в текстовом виде (для контроля, при запросах не используется),
- ссылка на источник.
Вот так или примерно так.
С уважением,
Роман

От apple16
К Николай Манвелов (24.04.2007 12:41:00)
Дата 24.04.2007 13:02:32

Пара технических вопросов

Слепить текстовый сайт на бесплатном хостинге не особо большая проблема
только толку от него будет не слишком много.
Ну яндекс его проиндексирует - по фамилии можно будет находить
на общих основаниях. Что-то такое по крупняку уже даже есть.

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

Хочется легко получать ответы на вопросы типа -
процент офицеров-лютеран на миноносцах по состоянию на 1904 год.
Или список всех офицеров когда-либо служивших на
броненосце "Чесма". Данные для ответов есть - но вручную их
получать лениво.

Когда есть база сайт к ней пристроить совершенно техническая задача.
Очевидно что база должна быть расширена также сведениями о кораблях,
эскадрах, флотских экипажах и прочем.

Сначала нужны таблички с учетом особенности того, что бывает
в предметной области, а потом мясом набить и сайтец слепить
дело уже техники.

Как у вас обстоят дела с формализацией данных?
Я сам собирался распатронить справочники с подобной целью, но времени
нет, как водится.

От Николай Манвелов
К apple16 (24.04.2007 13:02:32)
Дата 24.04.2007 13:07:14

Re: Пара технических...

Привет
>Однако если посмотреть справочник по офицерскому составу
>например за 1904 год (благо он в интернете выложен) то можно прийти
>к выводу, что даннные можно сильно формализовать.
>Нужна совершенно обыкновенная реляционная база данных.
Чо такое "реляционная" - не знаю. Образцы того, что у меня есть я на форуме вывешивал.

>Хочется легко получать ответы на вопросы типа -
>процент офицеров-лютеран на миноносцах по состоянию на 1904 год.
>Или список всех офицеров когда-либо служивших на
>броненосце "Чесма". Данные для ответов есть - но вручную их
>получать лениво.
Ну, список офицеров-старший специалистов я предоставить могу, не проблема.

>Когда есть база сайт к ней пристроить совершенно техническая задача.
>Очевидно что база должна быть расширена также сведениями о кораблях,
>эскадрах, флотских экипажах и прочем.
И это тоже есть :).

>Сначала нужны таблички с учетом особенности того, что бывает
>в предметной области, а потом мясом набить и сайтец слепить
>дело уже техники.
Да не понимаю я в этом :(.

>Как у вас обстоят дела с формализацией данных?
>Я сам собирался распатронить справочники с подобной целью, но времени
>нет, как водится.
Пишите на почту - все объясню. Хотите - бросьте пагером телефон - перезвоню.
Николай Манвелов

От ДмМохов
К Николай Манвелов (24.04.2007 13:07:14)
Дата 24.04.2007 13:58:34

Я правильно понимаю, что у Вас вся информация - в обычных текстовых файлах?

Причем информация не только чисто биографическая, но и совершенно разнородная?

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

Решение предлагаемое ув. Apple16 - более правильное, но и более трудозатратное - большую часть информации придется вбивать руками, а когда речь идет об ГбЕб, я затрудняюсь даже оценить сколь времени на это понадобится.

ЗЫ. Пишу тут, а не в пейджер, поскольку мнение ув. Apple16 и других участников тоже весьма важно.

От PK
К ДмМохов (24.04.2007 13:58:34)
Дата 24.04.2007 14:06:58

Кажесь есть функция гугли - можно будет к этой Вике поиск приделать (+)


получится не БД но всё же.

От Николай Манвелов
К PK (24.04.2007 14:06:58)
Дата 24.04.2007 14:08:50

А где про эту Вику почитать подробнее? (-)


От PK
К Николай Манвелов (24.04.2007 14:08:50)
Дата 24.04.2007 14:22:49

Вот она, самая известная Вика, хоть и "не источник" (с)



http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F


То есть вариант такой:
переводим кучу текстовых файлов + фото в кучу статей типа "Пупкин Мафусаилий Амвросьевич" (при необходимости нумерируются...) и производим сводные страницы с ссылками - "Офицеры крейсера Аврора", плюс самая заглавная страница - "Офицеры РИФ" с пофамильным списком и ссылками на корабли и персоналии.

Минусы: сложная структура неавтоматических ссылок приведёт к ошобкам цитирования.
Плюсы: ресурс шустрый, версии старые сохраняюццо, общественность может содействовать развитию ресурса.

Короче, предлагаю перевести материалы в набор статей Википедии.

От Николай Манвелов
К PK (24.04.2007 14:22:49)
Дата 24.04.2007 14:41:10

Мечтательно.... А кто бы поднатаскал в этом благом деле? (-)


От ДмМохов
К Николай Манвелов (24.04.2007 14:41:10)
Дата 24.04.2007 14:50:26

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

Если хотите, то задавайте вопросы в пейджер. Охотно отвечу.

От Николай Манвелов
К ДмМохов (24.04.2007 14:50:26)
Дата 24.04.2007 14:53:42

Спасибо. Как только соберусь.... (-)


От RuLavan
К Николай Манвелов (24.04.2007 14:53:42)
Дата 25.04.2007 10:03:53

Предложение

Я на Википедии небольшую собачку уже съел, и в ней более-менее разбираюсь. Тоже считаю, что для ваших потребностей она вполне подходит. В связи с этим, хочу предложить следующее: могу оперативно сделать там пробную статью по какой-либо персоналии. Это позволить более предметно обсуждать вопрос и оценить трудности, с которыми придётся столкнуться. Для этого бросьте типовой пакет информации по какой-либо второстепенной, но более-менее известной фигуре мне на почту rulavan (собака) gmail.com. Обязуюсь исполнить в кратчайшие сроки.

Подход с созданием собственной реляционной базы данных хоть и более профессионален и в конечном счёте, возможно, более правилен, многократно сложнее и длительнее по реализации. Технология Вики позволяет стартовать прямо здесь и сейчас, на готовом, удобном и чрезвычайно функциональном движке, специально предназначенном для хранения самой разнородной информации. Кроме того, что немаловажно, не болит голова о всей технической части :). Не надо думать ни о серверах, ни о трафике, ни об архивации и обслуживании базы данных, ни о финансировании всего этого(Если использовать существующую Википедию).

От PK
К Николай Манвелов (24.04.2007 14:41:10)
Дата 24.04.2007 14:49:21

Ну как минимум Чобиток публиковал там статьи - чтото про трансмиссию.

А так, правила форматирования описаны, переписывать-улучшать статью можно до бесконечности... можно наверное и по ходу действа научиться :-)

Можно опять же посмотреть друшие статьи, как написаны-оформлены. Ну о соопчейство поможет :-)

Единственная на ум приходящая проблема - аффтарских прав. Особенно на фотографии. В правах я не разбираюсь, бо - информационный анархист :-(

От ДмМохов
К Николай Манвелов (24.04.2007 14:08:50)
Дата 24.04.2007 14:18:20

Например

http://ru.wikipedia.org/wiki/MediaWiki

и дальше по ссылкам.

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

Опять же рекомендую посмотреть
http://animesarov.net.ru/wiki:syntax

Примерно так это и будет выглядеть.

От ДмМохов
К ДмМохов (24.04.2007 14:18:20)
Дата 24.04.2007 14:19:53

ЗЫ: Вторая ссылка на DokuWiki. Ну нравится мне она. (-)


От Николай Манвелов
К ДмМохов (24.04.2007 13:58:34)
Дата 24.04.2007 14:03:35

Re: Я правильно...

Привет
Совершенно верно!
>В этом случае самое простое решение, развернуть где-нибудь какую-нибудь Wiki и кряхтя импортировать туда все ваши файлы. Это относительно недолго - пару недель не напрягаясь.
Интересная идея.

>Решение предлагаемое ув. Apple16 - более правильное, но и более трудозатратное - большую часть информации придется вбивать руками, а когда речь идет об ГбЕб, я затрудняюсь даже оценить сколь времени на это понадобится.
Это я уже понял

Николай Манвелов

От ДмМохов
К Николай Манвелов (24.04.2007 14:03:35)
Дата 24.04.2007 14:11:22

Причем я бы посоветовал даже не MediaWiki,

а DоkuWiki

http://wiki.splitbrain.org/wiki:dokuwiki

Текстовые файлы можно достаточно быстро конвертировать, структурировать и выложить "как есть", а потом не спеша насыщать гиперссылками.


От apple16
К Николай Манвелов (24.04.2007 13:07:14)
Дата 24.04.2007 13:38:50

Re: Пара технических...

Я к тому что вам в первую очередь нужен специалист
по базам данных, который придумает структуру, отражающую
имеющиеся данные.
Задача типовая но трудоемкая.
Кратко факт "офицер X служил на корабле Y с D1 по D2"
разваливается на необходимость в табличке "люди",
про наличие X, запись в табличке "корабли" про наличие Y
и запись в табличке "служба" X_ID, Y_ID, D1, D2
Табличек у вас будет штук 100 :)

Есть сайтец
http://navalhistory.flixco.info/
где подобный подход продвигают, но он часто недоступен
ибо в Австралии сидит.

Кстати вы с земляками с http://sistematima.narod.ru/
имеете связи - может у них есть какие-то подвижки.




От Hokum
К apple16 (24.04.2007 13:38:50)
Дата 24.04.2007 16:22:35

Re: Пара технических...

Приветствую, джентльмены!
В этом плане могу кое-что подсказать - благо, съел на этом не одну собаку, а целую упряжку :-)
В первую очередь требуется целостная и непротиворечивая модель данных. Основные сущности (entities) и связи между ними, хотя бы на пальцах. Далее - детализация каждой сущности до уровня свойств (properties), построение окончательной модели данных и ее реализация на одной из подходящих платформ (Access, SQL Server, Oracle, etc).
В нашем случае, основными сущностями будут:
- Флоты
- Типы и классы кораблей
- Корабли
- Звания
- Должности
- Персоналии
- Войны
- Кампании
- Операции
- События
... ну и так далее

Сущность "корабль", к примеру, может иметь следуюшие свойства:
- Класс
- Тип
- Название
- Даты закладки, спуска на воду и ввода в строй
- Количество стволов 12'', 6'', 3'' калибра
- Количество торпедных аппаратов
- и т.п.

Следуюший шаг - импорт имеющихся данных в базу. Как правило, делается в два этапа - данные загоняются в один из стандартных шаблонов (в том же Excel), перепроверяются, потом скриптом забрасываются в базу.
Ну а прикрутить к этому web-интерфейс - вообще не вопрос.
С уважением,

Роман

От Николай Манвелов
К apple16 (24.04.2007 13:38:50)
Дата 24.04.2007 13:41:24

Нету у меня с ними связи :(.

Привет
Предлагал на "Цусиме", но их не заинтересовало.
Николай Манвелов