Библиотека libIM
Программная библиотека libIM предназначена для работы с моделью данных информационных моделей. Первоначально библиотека основывается на обработке модели данных IFC и формирования в соответсвтии с Российской национальной XML-схемой. Описание и обсуждение данной бибилиотеки ведется на сайте Свод знаний по информационному моделированию
Концепция построения библиотеки
Использование библиотеки
Сборка библиотеки
Раработка библиотеки ведется на языке программирования Julia. Данный язык был выбран в качестве базового по двум причнам:
- этот язык мне нравится и применяется для различных видов математического моделирования
- архитектура языка повщволяет в нем использовать конструкции C++ и Python Правила кодирования определяются
При реализации данной библиотеки, с целью обеспечения последующей реализации поддержки различных форматов данных и преобразования их в универсальный формат информационной модели, было решено написать свои лексические анализаторы. Для этой цели используется сторонняя библиотека ParcerCombinator.jl, которая распространяется по лицензии MIT “Expat” License. Для удобства работы и понимания подходов работы данной библиотекиу здесь вы сможете найти перевод README.md этой библиотеки. Также общее описание подходов по работе данной библиотеки можно прочитать в переводенной версии файла design.txt. В дополнение ко всему на основе материалов stackoverflow.com был сформирован файл на английском языке Packard.md, чтобы дать пояснения как работает алгоритм семантического анализа Packrat.
Примечание: дополнительно ведется анализ бибилиотеки CombinedParsers.jl. Workshop 2021 года по этой библиотее состоялся в рамка конференции JuliaCon2021. Также к этой библиотеке есть набор дополнительных решений CombinedParserTools.jl.
Если вы планируете участовавать в доработке библиотеки libIM ознакомьтесь, пожалуйста, с рекомендациями под доработке и Кодексом Поведения участника
Для обеспечения доступности библиотеки на разных платформах и на разных языках прогаммирования используется специальный пакет BinaryBuilder
Описание
Программная библиотека для работы с моделью данных информационной модели