genibase's People
genibase's Issues
Звания в persons
Введены справочники dic_reason2reason и dic_rank2_rank. Первый уже сейчас используется при формализации. Второй - нет.
По званиям надо запланировать переделку таблицы person - чтобы там индексы хранились из dic_rank, а не сами значения
Система авторизации пользователей
Инструмент исправления ошибок в базе её посетителями
Мысли по-поводу будующего администрирования базы в плане исправления ошибок, обнаруженных посетителями...
Представляется оптимальным такой алгоритм:
- посетитель обнаружил, что данная конкретная запись содержит ошибку (не совпадает с оригинальным сканом/неправильно формализована и т.п)
- совершает действие, чтобы отметить эту запись как ошибочную (например, ставит флажок в соответствующем столбце или нажимает на кнопочку)
- база предлагает ему ввести правильный вариант записи, т.е., если посетитель согласен, ему открывается соответствующая форма, в которой он ДОЛЖЕН заполнить ВСЕ(!!!) поля записи правильно (по-умолчанию, их можно открывать заполненными старым вариантом)
С помощью со стороны посетителя всё.
Далее два режима:
- работа администратора - отбор записей, предложенных к исправлению, проверка, подтверждение/отклонение исправления
- автономная(!!!) работа базы данных, которая заключается в том, что база ожидает, пока данную конкретную запись не предложат ИДЕНТИЧНО(!) исправить два (три... как решим) разных(!) посетителя. А как только такие предложения, сохранённые в спец. таблице, появятся - так сразу система их и использует.
Вариант 2, как видно, совсем не противоречит варианту 1. Но добавляет системе некоторую независимость от необходимости действий администратора.
Недостаток (значительный) в том, что время ожидания второго предложения по исправлению одной и той же записи может быть очень большим.
Новая система работы с СУБД
Новая, более защищённая от взлома, система работы с СУБД MySQL.
Выделение в таблице логов поиска запросов от сторонних поисковых роботов
Не работает расширенный поиск
По № списка выдаёт пустой результат. К тому же кол-во возвращённых записей пишет равным 1.
Навести порядок в таблицах основной базы данных
Удалить ненужные таблицы/поля, привести все имена к нормальной форме.
Переименования таблиц базы:
dic_marital
→dic_maritals
dic_rank2rank
→dic_rank2id
dic_reason
→dic_reasons
dic_reason2reason
→dic_reason2id
dic_region
→dic_regions
dic_religion
→dic_religions
dic_source
→dic_sources
dic_source_type
→dic_source_types
dic_user
→dic_users
Переименование/Удаление полей таблиц/вьюшек:
persons
:list_nr
→ ×list_pg
→source_pg
dic_source
:pg_correction
→source_pg_corr
v_persons
:source_pg_correction
→source_pg_corr
list_pg
→source_pg
Новый алгоритм поиска информации в БД
Оптимизация запросов к СУБД с целью максимального ускорения его работы.
Ограничение видимости результатов поиска для поисковиков
Предлагается запретить поисковикам индексацию слишком больших результатов поиска. Тем самым уменьшится нагрузка на базу данных.
Алгоритм вычисления границы — вопрос открытый.
Как вариант, предлагаю запрещать все результаты поиска, в которых в запросе используются метасимволы и в результате найдено более 300 строк.
Экспорт информации из базы в формате GedCom
Модификация формы для правки
- форма для правки данных (edit, которая) сейчас портит сведения из raw по источникам (она всегда его берёт нулём и вычисляет по № страницы, вродебы). Сейчас это неправильно! Новые данные (не из списков, а из Разведчика, например) грузятся в raw с уже заполненным source_id
edit-форма его затирает
Это надо не забыть проверить!!! - по ней же. Сделать второй режим её работы. Не формализация, а правка. Недоделано
Сделать нормальное оформление форм поиска
Мета-разметка результатов поиска
Разметка в соответствии с общепринятыми стандартами.
См. http://schema.org/Person
Иерархия в вероисповеданиях, рангах, типах событий
В идеале (мы же будем к нему стремиться?) - вероисповедания тоже надо иерархическими делать.
Ну, примерно такой же, как и в иерархии по АТД smile.gif - увидеть картину по трём главным вероучениям вцелом, т.е. по христианству, буддизму, исламу.
Система ручной оцифровки документов
Система управления сообществом волонтёров для максимально точной ручной оцифровки массивов документов.
Поиск с учётом ошибок написания
Создание алгоритма поиска, нивелирующего возможные ошибки написания/прочтения рукописных и печатных текстов на бумажных носителях.
Система просмотра оригиналов документов
Онлайн вьюер с возможностью ссылаться на конкретную часть любой страницы.
Проверка дат списков
После заливке всей базы пройтись по всем спискам и посмотреть, какие записи выбиваются по дате из общего фона для каждого списка.
API поиска в базе
Недостатки индексации новых записей
-
это происходит несинхронно с формализацией
В итоге, счётчик пишет, что всё доступно для поиска, а фамилии не находятся (нет индексов).
Либо конкретизировать работу счётчика (например, писать "формализовано ХХХ, индексировано YYY"), либо расширять основной запрос (по id) на неиндексированные записи -
запрос, отбирающий фамилии для индексации работает, как мы ещё раз недавно перепроверили, верно
Но неверны, по-моему, запросы, отбирающие по этим фамилиям записи для индексации (на delete и insert). Туда ТОЖЕ надо добавить ограничения на даты модификации и смены алгоритма.
Потому как похоже, что залил я сейчас Георгиевских... Там есть Иванов. Вот индексатор ВСЕХ Ивановых заново перелопачивает!!! А надо - только добавленные записи.
Залил 5,5 тысяч строк, а 350 тыс. строк индексов уже обновились! %)
Расширяемость системы за счёт плагинов
Перенести оставшиеся справочники из php в mysql
Механизм хранения опций системы
Добавление в систему режима техобслуживания сайта
Создание простого и максимально автономного режима техобслуживания сайта.
При его включении на экран должна выдаваться стандартная заглушка, а исполнение скриптов сайта — прерываться.
Важно также заложить автоматическое отключение режима, если он включён слишком долгое время (на случай сбоев с обновлением).
Ошибка на странице статистики
Warning: Invalid argument supplied for foreach() in /home/www/z77591/1914/stat.php on line 109
Кажется затыкается на статистике по вероисповеданиям и семейному положению.
Написать автоматические тесты для всей системы
Расширенный поиск, список событий — неверная сортировка строк
Какая-то проблема на стороне MySQL
Инструмент поиска неохваченных сокращений имён
Сделать инструмент, который будет показывать, какие ещё сокращения имён в базе не охвачены системой автоматического расширения имён.
Копилка для мелких багов/правок
1) Расширенный поиск, список событий - неверная сортировка строк.
Мне добиться решения не удалось
7) Инструкция для пользвателей:
"В списках можно выбирать по нескольку значений. Для этого кликайте мышью держа зажатой клавишу «Ctrl» («Command» для Mac)."
Предлагаю добавить: "Повторный клик по выбранному значению с зажатой клавишей позволяет отменить выбор".
А то я вот, например, далеко не сразу до этого допёр. :)
15) сообщение "В полях «Страница источника» и «ID записи» можно перечислять по нескольку значений через запятую или пробел." нет «Номер источника»
Извращение, конечно, но можно формировать эту фразу динамически - на основе массива цифровых полей.
16) футер всех страниц - слова о принципах размещения и использования данных базы.
Мне кажется, что "Обратите внимание:" тут не подходит. Надо что-то типа "(Copyright)" - вначале, "(с)" - в конце, или вообще ничего. Вообщем, подумать над этим...
- additional_info из результатов у нас ушло - надо возвращать (и думать про поиск по нему - как бы не пришлось его в основную таблицу persons для этого добавлять)
Страница статистики запросов к базе stat_base
- переделать на обновляемую таблицу, в которую ежесуточно будут заноситься данные за прошедшие сутки
это избавит от повторных "тяжёлых" запросов - тем более, что анные за прошедший период можно считать статичными - добавить столбцы со средними скоростями выполнения запросов
- саму страницу настроить на работу с представлением (таблица + данные за текущие сутки)
Вообще, по хорошему, надо покопаться в java-скриптах для OLAP-кубов. Ссылки я приводил на форуме. Но при их использовании, возможно, не удасться сохранить единый стиль оформления.
Создание сводных данных по людям
По ходу мысль родилась, не знаю, насколько фантастично ее претворение в жизнь.
Допустим, в одном источнике одни данные про Иванова Ивана Иванович (список №.. - ранен тогда-то), в другом источнике про него же (список №... - убит тогда-то).
Затем в третьем, ином, источнике, что он служил в такой-то роте такого-то полка.
В четвертом, ином, источнике, о нем же информация, что похоронен после боя там-то.
Система находит при запросе именно по этому человеку все эти записи, плюс записи полных тёзок.
А вот не смогла бы она (система) не просто найти эти все записи о нём, а сформировать их в одну запись, назовем её "Карточка учета военнослужащего", в которой бы были все возможные поля, которые закладываются при внесении списков в бд?
Правда, как тогда быть с полными тёзками - отфильтруются, только если есть во всех источниках данные по их месту жительства?
Такое слияние возможно, НО ни в коем случае НЕ в автоматическом режиме.
Мы можем на эту возможность ориентироваться на будущее. Например, ввести регистрацию пользователей и исследователям дать возможность самостоятельно ВРУЧНУЮ создавать сводные карточки по интересующим их людям, которые уже показывать (если разрешит исследователь) всем остальным пользователям.
Но всё это — уже серьёзный шаг от просто фактографической базы данных к генеалогической социальной сети.
Форма правки данных. Режим правки
Сделать второй режим её работы. Не формализация, а правка. Недоделано
Перевести все данные в словаре имён в верхний регистр
НО!… Это надо делать ТОЛЬКО при публикации новой версии, т.к. иначе старая перестанет корректно работать с именами.
Внесение данных по ФИО на латинице
Есть сведения о некрополях 1МВ в Европе, где данные о похороненых указаны латиницей.
Часть, теоретически, можно транслитерировать, но, наверное, не стоит (?)
Часть - точно не поддаётся этой операции
В связи с этим продумать вопрос о хранении и поиске такого типа ФИО:
- опциональный режим ввода фамилии на транслите (т.к. не ясно, ищут русскую или английскую её весию)
- построение ключей(!!!) - фонетического и графологического
Страница "Команда проекта"
Был 10 пункт в мелких багах первоначально. По поводу отсутствия указания на некоторых участников.
Позже было предложение формировать эту страницу на основе справочника dic_user.
Сейчас справочник модифицирован. На его основе создано представление v_user.
Надо подумать/договориться по-поводу расшифровки типов ролей (степени участия в проекте). Я сейчас сделал во вьюшке так же, как и в текущем варианте страницы. Плюс добавил категорию помошников.
Возможно, типизацию надо будет расширить.
Система управления куками
Индикатор исполнения запроса
когда нажимаешь кнопку "Поиск", внешне ничего не происходит, и поначалу реакция поисковой системы непонятна.
Можно ли поставить какой-нибудь индикатор того, что "процесс пошел"?
Создание полной технической документации на систему
Новости проекта + подписка на их рассылку
Неплохо было бы сделать в рамках сайта такую страницу.
Можно даже некоторые новости добавлять не неё в автоматическом режиме - например, "За такие-то сутки изменилось кол-во доступных для поиска записей"
А рассылка - просто удобно следить за проектом, кому интересно. Заодно нам доп. статистика о постоянных пользователях.
Форма правки данных портит данные по источникам
форма для правки данных (edit, которая) сейчас портит сведения из raw по источникам (она всегда его берёт нулём и вычисляет по № страницы, вродебы). Сейчас это неправильно! Новые данные (не из списков, а из Разведчика, например) грузятся в raw с уже заполненным source_id
edit-форма его затирает
Это надо не забыть проверить!!!
Нормирование данных в типах событий и рангах
Введены справочники dic_reason2reason и dic_rank2_rank. Первый уже сейчас используется при формализации. Второй - нет.
По званиям надо запланировать переделку таблицы person - чтобы там индексы хранились из dic_rank, а не сами значения
Кроме того переименовать таблицы в dic_reason2id и dic_rank2id, соответственно (для лучшего понимания их назначения).
Выделение генераторов поисковых ключей в отдельные плагины
Юзабилити сайта.
Больше всего сейчас проблем с расширенным поиском.
Шаблонное оформление страниц. Темы
Механизм инсталляции системы и автоматического обновления структуры базы данных
Скрипт инсталляции чистой системы с базой. Как минимум для целей автоматического тестирования кода.
А также функция, распознающая необходимые структурные изменения в схеме таблиц, и применяющая к базе только их.
Перед этим необходимо сделать механизм хранения опций системы.
Перевод всего встроенного в систему текста на gettext. Английская и русская локализации системы
Одновременно перевод системы на английский язык.
Переход на событийно-индивидуумную систему хранения информации
Переход на систему хранения информации, когда отдельно хранятся данные о персоне и о событиях, происходивших с какими-либо персонами из базы. И обе эти части базы взаимосвязаны между собой ссылками M:N.
Интерфейс с поддержкой мобильных браузеров
Отправка почтовых сообщений пользователям из системы
Графологический нечёткий поиск
Формируем набор правил (строго только на реальных примерах):
- «ьш» = «ьм» = «ын» (Ольшанец/Ольманец/Олынанец)
- «ев» = «оз» (Морев/Мороз)
- «Н» = «И» (Новиков/Ио…)
- «а» = «е» (Сатанин/Сетенин)
- «п» = «м» = «н» (Храпов/Храмов; Шурамов/Шуранов)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.