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