en ru Какое расширение выбрать для пакетов (опрос)Продолжаю разработку проектов AiKernel и AReason. Напомню, что проект AiKernel разрабатывается как универсальное ядро для построения ИИ систем. AiKernel на данный момент представляет из себя библиотеку (.dll) с зачатками реализованного API для работы с онтологиями (OwlApi). AiKernel реализуется на чистом Си. Проект AReason - это подборка программ и библиотек с функционалом, который, вероятно, потребуется для реализации ИР. AReason состоит из нескольких самописных программ, утилит и библиотек, а так же сторонних программ и библиотек. Одной из основных библиотек в AReason будет AiKernel. Почти два года я занимался подготовкой, сборкой и "причесыванием" моих старых проектиков, которые реализовывал с 2003 года. Сейчас эта работа почти завершена. Скачать Alpha версию можно со страничке проекта AReason на SourceForge. На данный момент последняя версия areason-0.0.5-alpha2.7z (9.5 MB). Планирую добавить в сборку AReason дополнительно такие программы как Proteje и другие. Projege требует для своей работы установленного Java. Другие программы требуют дополнительно Qt, Gtk и другие фреймворки. Каждый из этих дополнительных фреймворков может быть представлен как portable (то есть не требующий установки в систему, а достаточно просто распаковать файлы и положить рядом с основной программой). Возникла мысль сделать для удобного добавления, обновления и удаления некоторое подобие пакетной системы (как в Debian/Ubuntu). Рассмотрев разные варианты (Assebmly в DotNet, Deb пакеты Debian/Ubuntu, Jar в Java и другие) я пришел к выводу, что самое простое - это создавать пакет в виде архивного файла с некоторой вложенной мета информацией. Вариантов архивов очень много. Я потестировал и сравнил несколько и решил остановится на методе сжатия lzma и контейнере 7-Zip. Преимущество 7-Zip в том, что при необходимости можно будет поменять метод сжатия без изменения структуры контейнера (пакета). То есть обеспечивается будущая обратная совместимость.
Собрал несколько тестовых "пакетов":
Каждый "пакет" (package) представляет из себя обычный архив 7-Zip. Внутри каждого пакета располагаются файлы с мета-информацией.
Структура содержимого пакета:
Я задумываю систему пакетов, как универсальную, не привязанную именно к AReason. Для управления пакетами задумывается программа - пакетный менеджер (APackageManager). Можно предложить использование этой пакетной системы для других проектов (в частности AINIX). Для безпроблемной работы можно предложить в содержимое пакета добавлять файл (например ./ainix) с некоторой мета-информацией (просто версия или что-то дополнительное). Пакеты задумываются для передачи не только ИИ программ и библиотек, но и обычных (не ИИ) программ, документации, дополнительной отладочной информации и пр, а так же "знаний" в виде онтологий.
Возник вопрос какое расширение файла лучше использовать. Мне на ум приходят следующие варианты
10.07.2012
Ну чтож. Подведем итоги.
Обсуждение: project-ai.org/forum/viewtopic.php?t=808 |
© AiKernel 2010-2013
21.06.2012 - 17.01.2013