отображения онтологий может использовать плагин OntoGraf. Для его активации (если он еще не активирован) в главном меню Protégé необходимо выбрать пункт Window/Tabs и в появившемся подменю поставить галочку напротив пункта OntoGraf (рис. 2.1).
Рис 2.1. Активизация вкладки OntoGraf
После этого в основном окне Protégé должна появиться вкладка с названием OntoGraf. При выборе этой вкладки в левой части окна отображается панель с иерархией классов, в правой – область диаграмм графического отображения онтологии, в верхней части расположена панель инструментов.
Для добавления класса на диаграмму необходимо щелкнуть на нем в панели классов. OntoGraf позволяет выбирать различные способы отображения онтологии с помощью соответствующих кнопок на панели инструментов. Кроме того, поддерживается фильтрация по отображаемым типам элементов – классам, свойствам и экземплярам.
21
Рис. 2.2. Диаграмма классов
На рис. 2.2 показан пример отображения диаграммы классов для учебной онтологии, рассмотренной в Лабораторной работе № 1.
2.2.Методика выполнения работы
1.Спроектировать онтологию, описывающую предметную область, в соответствии с вариантом задания, согласованным с преподавателем. Варианты предметных областей могут быть выбраны из приведенного ниже списка или предложены студентом самостоятельно. Реализовать спроектированную онтологию с использованием редактора Protégé.
Онтология |
должна |
содержать |
не менее 50 классов, |
30 |
свойств и |
30 индивидов. |
Свойства |
должны |
включать примитивные |
и |
объектные, |
функциональные и обратно функциональные, а также должны быть заданы ограничения кардинальности.
2. Активировать (если он еще не активирован) в главном меню Protégé плагин OntoGraf. С помощью вкладки OntoGraf отобразить графически онтологию или ее часть, выбранную для иллюстрации возможностей
OntoGraf.
22
Варианты предметных областей:
1.Продукты питания (виды продуктов, блюда, меню и др.).
2.Транспорт (воздушный, наземный, личный, общественный, грузовой, пассажирский, типы и марки автомобилей и др.).
3.Компьютеры и комплектующие (настольные, мобильные, персональные, сервера, комплектующие: материнские платы, память, процессор и др.).
4.Средства связи (стационарная, мобильная, спутниковая, типы оборудования и др.).
2.3.Содержание отчета
1.Цель выполнения работы.
2.Графическое изображение разработанной онтологии из выбранной предметной области.
3.Скриншоты экранных форм с вкладками созданных классов, свойств и индивидуумов.
4.Скриншот онтологии во вкладке OntoGraf.
5. Представление созданной онтологии в машинном формате.
6. Выводы о результатах работы.
2.4. Вопросы для самоконтроля
1. Перечислите и охарактеризуйте основные шаги при проектировании онтологий.
2. В чем отличие примитивных и объектных свойств?
3.Приведите примеры обратных, функциональных и обратно функциональных свойств.
4.Приведите примеры транзитивных, симметричных и асимметричных свойств.
5.Приведите примеры рефлексивных и иррефлексивных свойств.
6. Как активизировать вкладку для визуализации онтологий OntoGraf?
7. Какие варианты отображения онтологии позволяет выбирать
OntoGraf?
8. Как выбрать требуемый вариант отображения онтологии в OntoGraf?
23
ЛАБОРАТОРНАЯ РАБОТА № 3 Разработка приложений семантического Web с использованием библиотеки Jena
Цель работы: сформировать базовые навыки программного доступа к информационным ресурсам семантического Web и их обработки с использованием фреймворка Jena.
3.1. Общие сведения
Jena – свободно распространяемый Java-фреймворк с открытым исходным кодом для построения приложений семантического Web и связанных данных (Linked Data). Разработка Jena как библиотеки Javaклассов была начата фирмой Hewlett Packard. В настоящее время развитие фреймворка Jena поддерживается фондом Apache Software Foundation [9].
На момент сдачи в печать настоящего пособия (июнь 2018 г.) актуальной версией является apache-jena-3.5.0, доступная для скачивания по адресу: https://jena.apache.org/download/index.cgi. Начиная с версии 3.0.0 Jena
требует для работы Java 8.
Создание моделей. Внутреннее представление семантического ресурса (в частности, онтологии) в Jena называется моделью. Модели соответствует базовый интерфейс Model, предоставляющий доступ к RDF-тройкам. Интерфейс OntModel расширяет Model, добавляя поддержку классов, свойств и экземпляров. Именно этот интерфейс используется для работы с онтологиями.
Простейший способ создания модели:
OntModel model = ModelFactory.createOntologyModel();
При этом создается модель с параметрами по умолчанию. В число параметров входят: язык (RDFS, OWL Lite, OWL DL, OWL Full), способ хранения модели (в оперативной памяти или в базе данных), способ логического вывода. Но на параметры по умолчанию лучше не полагаться, так как они могут отличаться в разных версиях Jena. Рекомендуется пользоваться следующим способом создания модели:
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
Класс OntModelSpec служит для задания параметров модели. В нем существует ряд предопределенных констант, например:
24
•OntModelSpec.OWL_DL_MEM – язык OWL DL, хранение модели в памяти, отсутствие логического вывода (именно этот вариант рекомендуется
врамках данной работы);
•OntModelSpec.OWL_LITE_MEM – язык OWL Lite, хранение модели
впамяти, отсутствие логического вывода;
•OntModelSpec.OWL_DL_MEM_TRANS_INF – язык OWL DL,
хранение модели в памяти, логический вывод для транзитивных отношений.
Чтение и сохранение моделей. Jena поддерживает загрузку моделей как из файлов на локальной машине, так и из ресурсов на удаленных серверах. Для загрузки используется универсальный метод интерфейса Model:
read(String url).
При загрузке онтологий Jena обрабатывает данные об импортируемых онтологиях и позволяет автоматически загружать эти онтологии. Для задания параметров импорта используется вспомогательный класс
OntDocumentManager:
OntDocumentManager manager =
model.getDocumentManager();
Основные методы этого класса, относящиеся к процессу импорта онтологий:
•setProcessImports(boolean processImports) – включает или выключает автоматический импорт онтологий;
•addIgnoreImport(String uri) – позволяет выборочно задавать адреса (URI) тех онтологий, которые не нужно импортировать;
•addAltEntry(String docURI, String locationURL) –
позволяет задать локальный адрес, по которому хранится копия онтологии, расположенной на удаленном сервере. Это делается для повышения скорости
инадежности загрузки онтологий (так как скорость скачивания удаленной онтологии может быть небольшой, а в худшем случае такая онтология может быть временно недоступной).
Для сохранения модели используется следующий метод интерфейса
OntModel:
write(java.io.OutputStream out).
25