Описание избирательных комиссий - GolosMovement/StatElectGenerator GitHub Wiki

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

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

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

Таким образом, описания комиссий используются в описании протоколов и используются при визуализации данных.

Описание элементов иерархии избирательных комиссий

В базе данных предусмотрена возможность сохранения описания для избирательной комиссии любого уровня: числовое описание (номер комиссии, код региона), текстовые описания на двух рабочих языках (русском - строковое поле [TitleRus] и английском - [TitleEng]) и на языке оригинала ([TitleNative]). В базе данных иерархия комиссий описывается внутренним идентификационным номером и не зависит от этих описаний. Более того, полный набор текстовых описаний на всех языках трудоемко создавать и бессмысленно поддерживать:

  • тысячи названий мелких населенных пунктов не имеют аналогов в рабочих языках
  • большинство названий не известны и ничего не говорят пользователям
  • локация обнаруженной аномалии будет уточнятся исходя из названия на языке оригинала

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

Использование описаний

Навигация пользователя по иерархии комиссий

Такая навигация используется в списках или tree-view. При навигации пользователю удобнее ориентироваться в описаниях на родном языке.

Приоритет для вывода в навигации:

  1. описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
  2. описание на языке оригинала (из поля [TitleNative]
  3. описание на другом рабочем языке (из поля [Title(второй рабочий язык)]

Согласно нашим соглашениям, хотя бы одно текстовое описание для комиссии обязательно должно быть.

При сортировке, корректнее сортировать по номеру, если он есть. Таким образом "УИК №11" не будет идти за "УИК №1" вместо "УИК №2".

Приоритет для сортировки в навигации:

  1. числовое описание (номер комиссии, номер региона, из поля [CommissionNumber])
  2. текстовое описание на рабочем языке выбранным пользователем (из строкового поля [Title(рабочий язык выбранный пользователем)]
  3. текстовое описание на языке оригинала (из поля [TitleNative])
  4. текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]

Сортировка при анализе

При сортировке, корректнее сортировать по номеру, если он есть. Таким образом "УИК №11" не будет идти за "УИК №1" вместо "УИК №2".

Приоритет для сортировки в навигации:

  1. числовое описание (номер комиссии, номер региона, из поля [CommissionNumber])
  2. текстовое описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
  3. текстовое описание на языке оригинала (из поля [TitleNative]
  4. текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]

Подписи к данным

Текстовое подписи более информативны чем просто цифры. Ср. "Мазовецкое - 00232 - 92323" vs. "Мазовецкое - Код региона: 00232 - УИК № 92323".

Приоритет при формировании подписей к данным

Что будет существовать первым:

  1. текстовое описание на рабочем языке выбранным пользователем [Title(рабочий язык выбранный пользователем)]
  2. текстовое описание на языке оригинала (из поля [TitleNative]
  3. текстовое описание на другом рабочем языке (из поля [Title(второй рабочий язык)]

Согласно нашим соглашениям, хотя бы одно текстовое описание для комиссии обязательно должно быть.