Предназначение и возможности

SDK Pullenti Address предназначено для разработчиков информационных систем, имеющих дело с адресными объектами России. Это открытое программное обеспечение представлено в функционально эквивалентных исходных кодах на языках программирования C#, Java, Python и Javascript.
SDK позволяет искать в русскоязычных текстах адреса, заданные в свободной форме, нормализовывать их и сопоставлять с объектами ГАР ФИАС. Текст может поступать, например, из поля ввода или из произвольного документа с множеством адресов. В SDK есть возможность поиска ГАР-объектов по реквизитам (кадастровому номеру, guid и пр.), а также по части наименований, что может оказаться полезным для составления списков вариантов при вводе для быстрого выбора. С помощью SDK можно получить полную иерархию всех объектов ГАР, что демонстрируется на вкладке "Поиск".

Лицензионная политика

Non-Commercial Freeware - система бесплатна для некоммерческого использования. Для бесплатной версии доступен индекс с объектами 77-го региона (Москва).


Commercial Software - для коммерческого использования можно приобрести бессрочную лицензию, она без ограничений количества инсталляций и включает техподдержку. Для коммерческой версии доступен полный индекс, а также утилита, преобразующая объекты из формата ГАР (xml) в этот индекс.

Индекс ГАР

В настоящее время информация об адресных объектах выкладывается на сайте ГАР ФИАС в формате xml, сжатый архив которой занимает около 29Гб, после распаковки 254Гб. Для своей работы SDK обращается не к внешнему ресурсу, а к локальному индексу, в который преобразуются эти объекты из xml. Результирующий индекс, с которым работает SDK, оптимизирован под поисковые задачи и занимает в полной версии 9.5Гб (3.5Гб в сжатом виде).
Как и в исходных данных, основной объём информации занимают дома, участки и комнаты. Если они не нужны, то урезанный индекс имеет объём около 0.5Гб.
Индекс создаётся с помощью специально разработанной утилиты. Мы планируем обновлять индекс ежемесячно, владельцы коммерческой версии могут делать это на своей стороне чаще с помощью этой утилиты.

Реализация и платформы

Исходные коды для языков C# (Framework и Core), Java, Python3, Javascript (Node.js) и документация получены с помощью конвертера Unisharping. Конвертер генерирует функционально эквивалентный код, что подтверждается многочисленными автотестами, которые также конвертируются и корректно отрабатывают на конечных языках.
Скорость обработки на разных языках отличается: C# и Java примерно одинаковы по времени исполнения, Javascript медленнее в 5 раз, Python - в 20 раз. SDK может использоваться на любых платформах, поддерживающих хотя бы один из перечисленных языков.
В качестве движка, выделяющего адреса из текста, используется SDK Pullenti. SDK самодостаточно и для своего использования не требует сторонних библиотек или предустановленного ПО.