Что есть Noda OMF?

Noda OMF (Ontology Managment Framework) - это простая система для web представления дескрипционных логик, описанных на языке RDF с семантикой, расширяемой XML. Работает с простыми онтологиями, которые могут быть описаны на уровне OWL Lite, но обеспечивает совместимость с OWL DL и Full на уровне выгружаемой онтологии (но не семантики представления и добавления).

Свойства:

  • Наследование URI по структуре таксонометрии базовой онтологии (онтологий): разделы/группы/классы/категории/виды/представители. Автоматическое сокращение длинных URI для представлений
  • Автоматическая генерация веб-представлений на всех уровнях таксонометрии
  • Полная совместимость с DOM
  • Совместимость на уровне вывода классов с OWL Lite, автоматическая генерация OWL-представлений знаний
  • Расширяемость до синтаксиса URI OWL (семантики формальных логик)
  • Генерация классов, представителей классов и свойств с помощью веб-форм через нативную адресацию на базе URI. Функция добавления в логике URI является расширением свойств самой онтологии
  • Генерация XML и Json представлений элементов таксонометрии
  • Полное разделение онтологий и элементов их сервисного представления
  • Представление любых валидных RDF и XML сущностей в виде единого дерева DOM
  • Обратный экспорт XML онтологий в валидный RDF
  • Работа с XML с полным сохранением логики URI-таксонометрии

Технологии:

Презентационная составляющая Noda OMF реализована в двух вариантах на основе DOM: браузерном (JS) (с известными проблемами) и серверном (PHP). Логика представлений реализована на XPath и XSLT.

Функционал расширения таксонометрии реализован на PHP.

Технические требования: PHP 5.2 и выше с расширением PHP-XML (используется DomDocument), браузер с поддержкой JS и DOM. БД не используется. Для работы презентационной составляющей на основе JS серверная часть не требуется. В этом случае возникает прямая зависимость между размером онтологии и размером оперативной памяти устройства клиента.

Методы:

  • Навигация по таксонометрии через URI:
    • Обращение к разделам: /раздел(ы)/
    • Обращение к группам: /раздел(ы)/группа/
    • Обращение к категориям: /раздел(ы)/группа(ы)/категория(и)/
    • Обращение к видам: /раздел(ы)/группа(ы)/категория(и)/вид(ы)/
    • Обращение к представителям видов: /раздел/группа/категория/вид/представители
    • Обращения к свойствам: через добавление префикса @. Например: /раздел/группа@трезвость/категория/вид/представитель@номер5
  • Добавление элементов таксонометрии: метод (свойство) вызывается через префикс# в начале URI. Например: /#/раздел/группа/категория/вид/представители сгенерирует форму добавления представителя вида
  • Генерация JSON и XML выгрузок: метод (свойство) вызывается через префикс $ в начале URI. Например: /$json/раздел/группа/категория/вид/представители выгрузит Json-представление, Например: /$xml/раздел/группа/категория/вид/представители - XML

Установка и настройка

Установка не требуется. Настройка сводится к заданию BaseURI в .htaccess и файле базовых настроек представления Index.xml в папке XML.

Структура папок: views - содержит XLST шаблоны, названные levelX.xsl, где X - это глубина вложенности отображаемого таксона относительно BaseURI. template.xsl - базовый шаблон представления. Аssets - содержит элементы вывода (CSS, img, JS), lib - содержит классы PHP для работы, XML - содержит все файлы данных и представления онтологий (поддерживается XML (Schema), RDF). ВНИМАНИЕ - для XML файлов Noda резервирует корневой класс root - его лучше не использовать. Обработка валидных документов происходит автоматически при запуске скрипта, валидация не предусмотрена.