genibase's People
genibase's Issues
Форма правки данных. Режим правки
Сделать второй режим её работы. Не формализация, а правка. Недоделано
Недостатки индексации новых записей
-
это происходит несинхронно с формализацией
В итоге, счётчик пишет, что всё доступно для поиска, а фамилии не находятся (нет индексов).
Либо конкретизировать работу счётчика (например, писать "формализовано ХХХ, индексировано YYY"), либо расширять основной запрос (по id) на неиндексированные записи -
запрос, отбирающий фамилии для индексации работает, как мы ещё раз недавно перепроверили, верно
Но неверны, по-моему, запросы, отбирающие по этим фамилиям записи для индексации (на delete и insert). Туда ТОЖЕ надо добавить ограничения на даты модификации и смены алгоритма.
Потому как похоже, что залил я сейчас Георгиевских... Там есть Иванов. Вот индексатор ВСЕХ Ивановых заново перелопачивает!!! А надо - только добавленные записи.
Залил 5,5 тысяч строк, а 350 тыс. строк индексов уже обновились! %)
Система просмотра оригиналов документов
Онлайн вьюер с возможностью ссылаться на конкретную часть любой страницы.
Добавление в систему режима техобслуживания сайта
Создание простого и максимально автономного режима техобслуживания сайта.
При его включении на экран должна выдаваться стандартная заглушка, а исполнение скриптов сайта — прерываться.
Важно также заложить автоматическое отключение режима, если он включён слишком долгое время (на случай сбоев с обновлением).
Создание полной технической документации на систему
Проверка дат списков
После заливке всей базы пройтись по всем спискам и посмотреть, какие записи выбиваются по дате из общего фона для каждого списка.
Новый алгоритм поиска информации в БД
Оптимизация запросов к СУБД с целью максимального ускорения его работы.
Страница статистики запросов к базе stat_base
- переделать на обновляемую таблицу, в которую ежесуточно будут заноситься данные за прошедшие сутки
это избавит от повторных "тяжёлых" запросов - тем более, что анные за прошедший период можно считать статичными - добавить столбцы со средними скоростями выполнения запросов
- саму страницу настроить на работу с представлением (таблица + данные за текущие сутки)
Вообще, по хорошему, надо покопаться в java-скриптах для OLAP-кубов. Ссылки я приводил на форуме. Но при их использовании, возможно, не удасться сохранить единый стиль оформления.
Механизм инсталляции системы и автоматического обновления структуры базы данных
Скрипт инсталляции чистой системы с базой. Как минимум для целей автоматического тестирования кода.
А также функция, распознающая необходимые структурные изменения в схеме таблиц, и применяющая к базе только их.
Перед этим необходимо сделать механизм хранения опций системы.
Нормирование данных в типах событий и рангах
Введены справочники dic_reason2reason и dic_rank2_rank. Первый уже сейчас используется при формализации. Второй - нет.
По званиям надо запланировать переделку таблицы person - чтобы там индексы хранились из dic_rank, а не сами значения
Кроме того переименовать таблицы в dic_reason2id и dic_rank2id, соответственно (для лучшего понимания их назначения).
Форма правки данных портит данные по источникам
форма для правки данных (edit, которая) сейчас портит сведения из raw по источникам (она всегда его берёт нулём и вычисляет по № страницы, вродебы). Сейчас это неправильно! Новые данные (не из списков, а из Разведчика, например) грузятся в raw с уже заполненным source_id
edit-форма его затирает
Это надо не забыть проверить!!!
Поиск с учётом ошибок написания
Создание алгоритма поиска, нивелирующего возможные ошибки написания/прочтения рукописных и печатных текстов на бумажных носителях.
Написать автоматические тесты для всей системы
Перевод всего встроенного в систему текста на gettext. Английская и русская локализации системы
Одновременно перевод системы на английский язык.
Ограничение видимости результатов поиска для поисковиков
Предлагается запретить поисковикам индексацию слишком больших результатов поиска. Тем самым уменьшится нагрузка на базу данных.
Алгоритм вычисления границы — вопрос открытый.
Как вариант, предлагаю запрещать все результаты поиска, в которых в запросе используются метасимволы и в результате найдено более 300 строк.
Создание сводных данных по людям
По ходу мысль родилась, не знаю, насколько фантастично ее претворение в жизнь.
Допустим, в одном источнике одни данные про Иванова Ивана Иванович (список №.. - ранен тогда-то), в другом источнике про него же (список №... - убит тогда-то).
Затем в третьем, ином, источнике, что он служил в такой-то роте такого-то полка.
В четвертом, ином, источнике, о нем же информация, что похоронен после боя там-то.
Система находит при запросе именно по этому человеку все эти записи, плюс записи полных тёзок.
А вот не смогла бы она (система) не просто найти эти все записи о нём, а сформировать их в одну запись, назовем её "Карточка учета военнослужащего", в которой бы были все возможные поля, которые закладываются при внесении списков в бд?
Правда, как тогда быть с полными тёзками - отфильтруются, только если есть во всех источниках данные по их месту жительства?
Такое слияние возможно, НО ни в коем случае НЕ в автоматическом режиме.
Мы можем на эту возможность ориентироваться на будущее. Например, ввести регистрацию пользователей и исследователям дать возможность самостоятельно ВРУЧНУЮ создавать сводные карточки по интересующим их людям, которые уже показывать (если разрешит исследователь) всем остальным пользователям.
Но всё это — уже серьёзный шаг от просто фактографической базы данных к генеалогической социальной сети.
Система управления куками
Расширяемость системы за счёт плагинов
Экспорт информации из базы в формате GedCom
Инструмент поиска неохваченных сокращений имён
Сделать инструмент, который будет показывать, какие ещё сокращения имён в базе не охвачены системой автоматического расширения имён.
Индикатор исполнения запроса
когда нажимаешь кнопку "Поиск", внешне ничего не происходит, и поначалу реакция поисковой системы непонятна.
Можно ли поставить какой-нибудь индикатор того, что "процесс пошел"?
Модификация формы для правки
- форма для правки данных (edit, которая) сейчас портит сведения из raw по источникам (она всегда его берёт нулём и вычисляет по № страницы, вродебы). Сейчас это неправильно! Новые данные (не из списков, а из Разведчика, например) грузятся в raw с уже заполненным source_id
edit-форма его затирает
Это надо не забыть проверить!!! - по ней же. Сделать второй режим её работы. Не формализация, а правка. Недоделано
Расширенный поиск, список событий — неверная сортировка строк
Какая-то проблема на стороне MySQL
Страница "Команда проекта"
Был 10 пункт в мелких багах первоначально. По поводу отсутствия указания на некоторых участников.
Позже было предложение формировать эту страницу на основе справочника dic_user.
Сейчас справочник модифицирован. На его основе создано представление v_user.
Надо подумать/договориться по-поводу расшифровки типов ролей (степени участия в проекте). Я сейчас сделал во вьюшке так же, как и в текущем варианте страницы. Плюс добавил категорию помошников.
Возможно, типизацию надо будет расширить.
Выделение генераторов поисковых ключей в отдельные плагины
Новая система работы с СУБД
Новая, более защищённая от взлома, система работы с СУБД MySQL.
Новости проекта + подписка на их рассылку
Неплохо было бы сделать в рамках сайта такую страницу.
Можно даже некоторые новости добавлять не неё в автоматическом режиме - например, "За такие-то сутки изменилось кол-во доступных для поиска записей"
А рассылка - просто удобно следить за проектом, кому интересно. Заодно нам доп. статистика о постоянных пользователях.
Графологический нечёткий поиск
Формируем набор правил (строго только на реальных примерах):
- «ьш» = «ьм» = «ын» (Ольшанец/Ольманец/Олынанец)
- «ев» = «оз» (Морев/Мороз)
- «Н» = «И» (Новиков/Ио…)
- «а» = «е» (Сатанин/Сетенин)
- «п» = «м» = «н» (Храпов/Храмов; Шурамов/Шуранов)
Не работает расширенный поиск
По № списка выдаёт пустой результат. К тому же кол-во возвращённых записей пишет равным 1.
Копилка для мелких багов/правок
1) Расширенный поиск, список событий - неверная сортировка строк.
Мне добиться решения не удалось
7) Инструкция для пользвателей:
"В списках можно выбирать по нескольку значений. Для этого кликайте мышью держа зажатой клавишу «Ctrl» («Command» для Mac)."
Предлагаю добавить: "Повторный клик по выбранному значению с зажатой клавишей позволяет отменить выбор".
А то я вот, например, далеко не сразу до этого допёр. :)
15) сообщение "В полях «Страница источника» и «ID записи» можно перечислять по нескольку значений через запятую или пробел." нет «Номер источника»
Извращение, конечно, но можно формировать эту фразу динамически - на основе массива цифровых полей.
16) футер всех страниц - слова о принципах размещения и использования данных базы.
Мне кажется, что "Обратите внимание:" тут не подходит. Надо что-то типа "(Copyright)" - вначале, "(с)" - в конце, или вообще ничего. Вообщем, подумать над этим...
- additional_info из результатов у нас ушло - надо возвращать (и думать про поиск по нему - как бы не пришлось его в основную таблицу persons для этого добавлять)
Перевести все данные в словаре имён в верхний регистр
НО!… Это надо делать ТОЛЬКО при публикации новой версии, т.к. иначе старая перестанет корректно работать с именами.
Ошибка на странице статистики
Warning: Invalid argument supplied for foreach() in /home/www/z77591/1914/stat.php on line 109
Кажется затыкается на статистике по вероисповеданиям и семейному положению.
Сделать нормальное оформление форм поиска
Иерархия в вероисповеданиях, рангах, типах событий
В идеале (мы же будем к нему стремиться?) - вероисповедания тоже надо иерархическими делать.
Ну, примерно такой же, как и в иерархии по АТД smile.gif - увидеть картину по трём главным вероучениям вцелом, т.е. по христианству, буддизму, исламу.
Выделение в таблице логов поиска запросов от сторонних поисковых роботов
Механизм хранения опций системы
Переход на событийно-индивидуумную систему хранения информации
Переход на систему хранения информации, когда отдельно хранятся данные о персоне и о событиях, происходивших с какими-либо персонами из базы. И обе эти части базы взаимосвязаны между собой ссылками M:N.
Система ручной оцифровки документов
Система управления сообществом волонтёров для максимально точной ручной оцифровки массивов документов.
Система авторизации пользователей
Инструмент исправления ошибок в базе её посетителями
Мысли по-поводу будующего администрирования базы в плане исправления ошибок, обнаруженных посетителями...
Представляется оптимальным такой алгоритм:
- посетитель обнаружил, что данная конкретная запись содержит ошибку (не совпадает с оригинальным сканом/неправильно формализована и т.п)
- совершает действие, чтобы отметить эту запись как ошибочную (например, ставит флажок в соответствующем столбце или нажимает на кнопочку)
- база предлагает ему ввести правильный вариант записи, т.е., если посетитель согласен, ему открывается соответствующая форма, в которой он ДОЛЖЕН заполнить ВСЕ(!!!) поля записи правильно (по-умолчанию, их можно открывать заполненными старым вариантом)
С помощью со стороны посетителя всё.
Далее два режима:
- работа администратора - отбор записей, предложенных к исправлению, проверка, подтверждение/отклонение исправления
- автономная(!!!) работа базы данных, которая заключается в том, что база ожидает, пока данную конкретную запись не предложат ИДЕНТИЧНО(!) исправить два (три... как решим) разных(!) посетителя. А как только такие предложения, сохранённые в спец. таблице, появятся - так сразу система их и использует.
Вариант 2, как видно, совсем не противоречит варианту 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
Внесение данных по ФИО на латинице
Есть сведения о некрополях 1МВ в Европе, где данные о похороненых указаны латиницей.
Часть, теоретически, можно транслитерировать, но, наверное, не стоит (?)
Часть - точно не поддаётся этой операции
В связи с этим продумать вопрос о хранении и поиске такого типа ФИО:
- опциональный режим ввода фамилии на транслите (т.к. не ясно, ищут русскую или английскую её весию)
- построение ключей(!!!) - фонетического и графологического
Звания в persons
Введены справочники dic_reason2reason и dic_rank2_rank. Первый уже сейчас используется при формализации. Второй - нет.
По званиям надо запланировать переделку таблицы person - чтобы там индексы хранились из dic_rank, а не сами значения
Отправка почтовых сообщений пользователям из системы
Шаблонное оформление страниц. Темы
Перенести оставшиеся справочники из php в mysql
API поиска в базе
Мета-разметка результатов поиска
Разметка в соответствии с общепринятыми стандартами.
См. http://schema.org/Person
Юзабилити сайта.
Больше всего сейчас проблем с расширенным поиском.
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.