Protégé 5 Documentation Введение Protege - это среда разработки OWL ontology. Это руководство по началу работы является частью документации пользователя Protege Desktop и предназначено для ознакомления с инструментом. Всего за несколько минут вы сможете установить Protege, загрузить онтологию, перемещаться по ней, использовать reasoner для ее классификации и настроить интерфейс по своему вкусу. Загрузите, установите и запустите Protégé Если вы еще не сделали этого, вам необходимо загрузить и установить Protege Desktop с веб-сайта Protege. Пожалуйста, следуйте пошаговым инструкциям по установке Protege. Установка Protégé в Windows Protege 5.6.2 распространяется в виде ZIP-файла. Сюда входит 64-разрядная среда выполнения Java (JRE). 1. Перейдите на страницу загрузки и нажмите кнопку Загрузить. 2. После завершения загрузки перейдите к папке, в которую был загружен Protégé. Обычно это будет ваша папка “Загрузки”. Например, “C:/Users /[ваше имя пользователя]/Загрузки”. 3. Щелкните правой кнопкой мыши на файле Protégé-5.6.2.zip и выберите Извлечь все ... во всплывающем меню, чтобы запустить диалоговое окно Извлечения сжатых папок. 4. Нажмите кнопку “Обзор ...”, чтобы выбрать место назначения для установки вашего Protégé Desktop, например, папку “C:/Program Файлы”. 5. Извлеките ZIP-файл Protégé в "C:/Program Файлы". 6. Protege Desktop будет извлечен в выбранное вами место назначения в папку под названием “Protege-5.6.2”. 7. Есть два способа запустить Protégé: (1) Дважды щелкните на Protege.exe, или (2) дважды щелкните на run.bat - который запустит Protege, также показывая консоль. 8. Для более быстрого доступа к Protege Desktop в дальнейшем щелкните правой кнопкой мыши на файле Protege.exe и выберите “Отправить” -> “Рабочий стол (создать ярлык)”. Это создаст ярлык для запуска Protege Desktop на вашем рабочем столе Windows. Установка Protégé на Mac OS X Protege 5.6.2 распространяется в виде приложения для Mac OS X. Оно включает 64разрядную среду выполнения Java (JRE). Приложение содержится в ZIP-файле. 1. Перейдите на страницу загрузки и нажмите кнопку Загрузить. 2. После завершения загрузки перейдите к папке, в которую был загружен Protég. Обычно это будет ваша папка “Загрузки”. 3. Список загрузок в веб-браузере Safari. Щелкните увеличительное стекло, чтобы отобразить загрузку. Как только вы найдете папку для загрузки Protégé-5.6.2, вы должны увидеть приложение Protégé. Рис. Приложение Protégé после загрузки. 4. Перетащите приложение Protege в свою папку Applications. 5. Дважды щелкните Protege, чтобы запустить его. Откройте онтологию Откройте Pizza ontology из Интернета. В меню Файл выберите Открыть по URL.... Появится диалоговое окно с вопросом, хотите ли вы открыть онтологию в текущем окне. Если Нет, то в следующем диалоговом окне можно выбрать имя онтологии в поле URI и нажать OK. Теперь вам будет представлено основное рабочее пространство Protege, в котором по умолчанию отображается вкладка Активная онтология. На этой вкладке показан обзор "активной” онтологии, включая показатели ее содержимого, аннотации к онтологии и импортированные онтологии. В раскрывающемся списке на панели инструментов отображается текущая активная онтология, то есть та, в которую вносятся все изменения. При работе с единой онтологией эта концепция активной онтологии не вызывает беспокойства. В правом верхнем углу панели инструментов находится кнопка Поиск ..., которую можно нажать, чтобы открыть окно поиска. Это окно поиска также можно открыть, нажав CTRL + F (или CMD + F на Mac). Вкладка "Активная онтология". Навигация Теперь перейдите на вкладку Entities Tab. Вкладка "Entities Tab" - это рабочая лошадка редактора онтологий. Из этой папки вы можете просмотреть все классы, свойства и отдельных лиц в онтологии. Как вы, возможно, уже заметили, каждая вкладка состоит из нескольких представлений, размер которых можно изменять, удалять, перемещать, разделять и накладывать слои (подробнее о представлениях позже). Модель выбора является глобальной: когда класс, свойство или отдельное лицо выбирается в деревьях с левой стороны, правая панель изменяется для немедленного отображения выбранного элемента. Кроме того, в большинстве представлений реализована гипертекстовая навигация, так что по ссылкам можно легко переходить независимо от того, какое представление вы используете. При открытии иерархий и выборе класса или свойства справа отображается соответствующее описание. Навигация вперед и назад возможна с помощью кнопок со стрелками влево и вправо на панели инструментов, которые действуют точно так же, как в веб-браузере. Рис. Вкладка Entities Tab. Здесь класс Country выбирается в иерархии классов (дереве) с левой стороны. В правой части отображается информация о выбранной сущности (в данном случае Country). Еще один простой способ навигации по содержимому онтологии - выполнить поиск. Кнопка Поиск... (Search…) на панели инструментов выполняет глобальный поиск в загруженных онтологиях. Кроме того, различные представления иерархии имеют свои собственные диалоги поиска (чтобы активировать диалоговое окно поиска вида, щелкните в любом месте требуемого представления, чтобы сфокусировать на нем внимание, затем нажмите CTRL + F (или CMD + F на Mac).). Reasoning Рассуждения о вашей онтологии - это часто выполняемое действие, и Protege поставляется со встроенным средством рассуждения под названием HermiT. Чтобы поразмыслить над своей онтологией, откройте меню Reasoner и выберите HermiT. Затем нажмите Ctrl + R (или CMD + R на Mac). Это запустит программу рассуждения. После завершения работы разработчика вы можете просмотреть свою онтологию, чтобы просмотреть выводимую информацию. Например, выберите American в иерархии классов (в разделе NamedPizza, который находится в разделе Pizza, который находится в разделе Food, который находится в разделе DomainConcept). Обратите внимание, что некоторая информация с правой стороны отображается на желтом фоне - это предполагаемая информация. Другими словами, это информация, которая была вычислена разработчиком обоснования. Вы также можете переключиться на предполагаемую иерархию классов, используя раскрывающийся список в правом верхнем углу иерархии классов. Обратите внимание на разницу между этой предполагаемой иерархией (иерархией, вычисляемой исследователем) и утверждаемой иерархией (иерархией, записанной в онтологии). Для Protege доступны другие средства аргументации, включая Pellet и FaCT ++. Эти средства аргументации доступны для загрузки из пункта меню Файл> Проверить наличие плагинов .... Выбор Файла> Проверить наличие плагинов ... открывает диалоговое окно автоматического обновления. Отсюда вы можете установить различные плагины, такие как Reasoners. Изучите другие вкладки (tabs) OWLViz - требуется установка GraphViz, прежде чем что-либо станет видимым. На этой вкладке показано графическое представление иерархии подразделов классов. Полное описание OWLViz доступно в руководстве OWLViz. Запрос DL - требует, чтобы онтология была классифицирована, прежде чем она вернет результаты. Можно ввести произвольное описание класса и запросить у разработчика аргументации подклассы / суперклассы, предполагаемые члены и т.д., В зависимости от того, что выбрано. Исследуйте View Каждая вкладка состоит из нескольких представлений - каждое со своим взглядом на онтологию или только на один аспект онтологии (например, последний выбранный класс). Представления можно накладывать друг на друга, и в этом случае вы увидите дополнительные вкладки для их отображения. Примерами этого являются представления использования, которые по умолчанию находятся на вкладках Entities, Classes, Properties и Individuals. Выберите tab, чтобы сделать вид видимым. Все представления, которые находятся на вкладках по умолчанию, и многие другие, которые отсутствуют, перечислены в меню View. Вы можете добавлять и удалять представления для создания собственных пользовательских интерфейсов (см. Ниже). Перенастройте пользовательский интерфейс Перенастроить пользовательский интерфейс несложно. Добавлять и удалять вкладки и представления можно с помощью меню "Tabs" и "View". Попробуйте добавить представление на вкладку "Entities tab": 1. Перейдите на вкладку Entities. 2. Выберите класс, чтобы убедиться, что в выбранном представлении объекта отображаются представления класса. 3. Выберите Окно> Виды> Виды классов> Иерархия суперклассов (Window > Views > Class Views > Superclass hierarchy). Теперь, когда вы наводите указатель мыши на вкладку " Entities tab ", синий контур показывает, куда будет перенесен новый вид - сверху, над, под, слева или справа от каждого из текущих видов. Подвигайте мышью, чтобы увидеть, как это работает. 4. Когда вы будете довольны позицией, щелкните левой кнопкой мыши, чтобы изменить вид (если вы хотите отменить эту операцию, просто щелкните гденибудь на панели инструментов вместо этого). 5. Теперь доступно представление дерева суперклассов (дерево показывает “перевернутую” версию дерева подклассов, используя текущий класс в качестве корневого). Все изменения будут сохранены при правильном завершении работы Protege (или сохранение можно выполнить принудительно, выбрав “Сохранить текущий макет” в меню Window). Понятные человеку Имена entities Многие онтологии, в частности биомедицинские, используют буквенно-цифровые коды в качестве идентификаторов классов, свойств и индивидуумов. Если ваша иерархия классов выглядит просто как набор чисел или других компьютерных кодов, но у вас есть метки для каждой сущности, вы можете попросить Protege использовать эти метки при отображении сущностей вместо этого. 1. Выберите Файл > Настройки (File > Preferences). 2. Выберите вкладку Renderer диалогового окна настроек. 3. Выберите Render entities using annotation values. 4. Там, где предусмотрены метки, Protege теперь будет отображать их во всех представлениях. Если метка отсутствует, она продолжит отображать идентификатор объекта. 5. Аннотацию, которая будет использоваться для отображения метки (а также язык), можно выбрать, нажав на Аннотации... (Annotations) кнопка. Выбранный текущий рендерер будет сохранен при следующем открытии Protege, чтобы сохранить этот шаг в будущем. Рис. Настройки программы визуализации. В разделе " Entity rendering section " указывается, каким образом имена классов, свойств и отдельных лиц должны выводиться и отображаться в пользовательском интерфейсе. Здесь выбрано " Render by annotation property ", что означает, что если у объекта есть аннотация, такая как rdfs: label, значение этой аннотации будет использоваться для отображаемого имени объекта. Что дальше? Ознакомившись с пользовательским интерфейсом / protege, вы можете попробовать наше быстрое и понятное руководство по созданию онтологии пиццы за 10 минут. Об онтологии Pizza Основные категории Pizza Pizza_base Pizza_topping Списки каждого вида основных тем Pizza_base ← Толстая корочка, Thin_crust,… Pizza_topping ← Tomato_topping, Mozarella_topping, Spicy_beef_toping, Pepperoni_topping, … Pizzas (primitive) ← Маргарита, Горячая и со специями, Морепродукты, … Pizzas (define) Вегетарианская *, с сыром* Для очень быстрой версии полезно знать, какие классы будут определены. Список свойств (properties), их домен (domen) и диапазоны (rang) has_topping has_base Запустите Protege и создайте новую онтологию Запустите Protege (предпочтительно из командной строки, используя один из предоставленных скриптов, так как это даст вам дополнительную обратную связь) Выберите Создать новую онтологию OWL Присвоите онтологии URI, связанный с пиццей Укажите, где вы хотите сохранить онтологию Создание онтологии Pizza Создайте верхнюю иерархию Вам не нужно этого делать, но по ряду причин это “хорошая практика”. Выберите вкладку Entities Убедитесь, что в иерархии классов выбрана Thing Выберите Tools | Create class hierarchy Создайте иерархию с отступом табуляции для обозначения подклассов: Domain_entity Independent_entity Значение Создайте скелетную иерархию (skeleton hierarchy) Создайте классы верхнего уровня Выберите Independent_entity Выберите Tools | Create class hierarchy... Создание Pizza, Pizza_topping и Pizza_base (При желании вы можете создать здесь всю иерархию, используя вкладки для обозначения иерархии, но если вы это сделаете, вы не сможете воспользоваться автоматическим механизмом суффиксов и вам придется вводить “_base”, ”_topping“, "_pizza” для каждого объекта вручную.) Завершите работу мастера и оставьте отмеченным флажок Сделать классы непересекающимися (Make classes disjoint). Создайте каждую ветвь таксономии (онтологии) Выберите Pizza_topping Выберите Tools | Create class hierarchy... В поле с суффиксом (Suffix) введите "_topping” Введите список начинок и завершите, как и раньше, используя вкладки для обозначения подклассов Повторить для Pizza_base Повторите для Pizza, но снимите флажок Разделять классы (Make classes disjoint), потому что мы определим некоторые из этих классов, поэтому разделяющие элементы мы добавим позже. Выберите Value и создайте иерархию Spiciness (остроты) ← Hot (Острый), Medium (Средний), Mild (Мягкий), добавляя суффикс “_value” Закройте раздел значений, выбрав Spiciness_value и выберите Редактировать | Добавить покрывающую аксиому (Edit | Add covering axiom). Откройте иерархию классов и проверьте Если вы допустили какие-либо орфографические ошибки, вы можете просто исправить их в поле label. Введите удобные описания видов пиццы и всего остального, что не является однозначным или будет определено. Теперь онтология выглядит так, как показано ниже для одного выбора начинок (Topping) и видов пиццы. Создайте Object Properties В представлении свойств объекта создайте два основных свойства объекта relational_property modifier_property Создание вложенных свойств relational_property has_topping has_base Создайте дочернее свойство modifier_property has_spiciness Вкладка свойств объекта теперь должна выглядеть примерно так. Добавьте определения для определенных классов на основе существующих Обычно проще создавать определенные классы, создавая ограничения по отдельности, а затем преобразовывая результат в определенный класс. Если вы не хотите использовать все ограничения в определениях, просто выберите те, которые вы хотите преобразовать, щелкните правой кнопкой мыши и воспользуйтесь преобразованием). Создайте подкласс Pizza_topping, Spicy_topping Добавьте суперкласс в представление описания, has_spiciness some Hot_value Выберите Редактировать | Преобразовать в определенный класс (Edit | Convert to defined class) (или нажмите сокращенную клавишу – CMD-D на Mac, CTRL-D в Windows). Все суперклассы объединены в один эквивалентный класс - вы увидите это перемещение в представлении описания Выберите или создайте Spicy_pizza Добавьте суперкласс в представление описания, has_topping some Spicy_topping Задайте его, нажав CMD-D или CTRL-D. Добавьте определения для других определенных классов Если определения более сложные, например, для вегетарианской пиццы, то вам просто придется проделать долгий путь. Все же, вероятно, проще добавить их как отдельные ограничения, а затем преобразовать в определенный класс Добавьте определение для Cheesey_pizza = Пицца и has_topping min 2 Cheese_topping, например, чтобы в ней было как минимум два вида сыра. Добавьте определение для вегетарианской Pizza = Pizza and not(has_topping some (Meat_topping or Fish_topping)), например, что в ней нет мясных или рыбных начинок. Сохраняйте, классифицируйте и проверяйте Онтология не будет полной, пока она не будет классифицирована и проверена! Сначала сохраните свою работу! На самом деле, если вы поступали мудро, вы сохраняли свою работу по ходу работы. Выберите аргументирующего в меню Аргументирующего. Это автоматически заставит аргументирующего классифицировать вашу онтологию. Если что-то покраснеет, не паникуйте. Вероятно, это непересекающаяся аксиома. Сначала проверьте их. Вносим исправления Проблемы возникают из-за непересекающихся аксиом. Если вы меняете иерархию классов: Если вы перемещаете класс, сначала удалите его непересекающиеся аксиомы. Они почти наверняка будут неправильными для его нового местоположения Когда вы закончите, перейдите к родственному классу с непересекающимися аксиомами, удалите длинную непересекающуюся аксиому и нажмите CTRL-J/CMD-J чтобы добавить обратно непересекающиеся аксиомы для всех примитивных братьев и сестер. Все остальное просто исправьте в обычном представлении описания класса. Пункты меню Protege Экспорт выведенных аксиом в виде онтологии Файл > Экспортировать выведенные аксиомы в виде онтологии Использует выбранный в данный момент аргументирующий модуль для вычисления набора выведенных аксиом и сохраняет их в единой онтологии. Это можно использовать для экспорта выведенной иерархии классов в онтологию для просмотра или для использования в каком-либо приложении, которое не хочет использовать средство анализа, например, во время выполнения. Найти Windows: Ctrl-F Mac: ⌘F Редактировать > Найти Отобразите диалоговое окно Поиска для поиска онтологий в текущей рабочей области. Сбор онтологий Windows: Ctrl-⇧ G Mac: ⌘⇧ G Файл> Собрать онтологии Сохраняет все загруженные онтологии в одну папку. Это можно использовать для сбора данных о завершении импорта онтологии и сохранения их локально в одном месте. Загруженные источники онтологии... Файл> Загруженные источники онтологии... Показывает сводку загруженных онтологий, включая их расположение, и позволяет выполнять несколько действий, таких как перезагрузка, закрытие и переход к источнику. New Windows: Ctrl-N Mac: ⌘N File > New Create a new empty ontology. A dialog box will be displayed that asks the user whether they would like to create the new ontology in the current workspace window or in a new workspace window. Ontology libraries Windows: Ctrl-L Mac: ⌘L File > Ontology libraries Manage locations for commonly used shared ontologies to reside Open Windows: Ctrl-O Mac: ⌘O File > Open Open an ontology that is stored in a local file. A file chooser will be displayed for selecting the file. When you open an ontology in this way, the enclosing folder and its sub-folders will be searched for imported ontologies. Open from URL Windows: Ctrl-⇧ O Mac: ⌘⇧ O File > Open from URL Open an ontology that is located on the Web by specifying the http:// URL (address) of the ontology document. You can also open bookmarked ontologies from here. Open recent File > Open recent Displays a submenu with a list of recently opened ontologies. The list is limited to 10 items. To clear the list selected the “Clear” item at the end of the submenu. Reload Windows: Ctrl-⇧ R Mac: ⌘⇧ R File > Reload Reloads all of the open ontologies from where ever they were loaded from. If an ontology has been modified a warning will be displayed indicating that any changes will be lost for that ontology. Переименовать объект Windows: Ctrl-U Mac: ⌘U Рефакторинг > Переименовать объект Изменяет IRI выбранного объекта. Сохранить Windows: Ctrl-S Mac: ⌘S Файл > Сохранить Сохраните все открытые онтологии, которые были изменены, в локальный файл. Если онтология уже была сохранена в локальный файл, она будет сохранена в этот файл, в противном случае будет показано диалоговое окно "Сохранить как файл". Сохранить как Windows: Ctrl-⇧ S Mac: S S Файл > Сохранить как Отображает диалоговое окно сохранения файла для сохранения текущей активной онтологии в локальный файл. Это можно использовать для сохранения онтологий, загруженных из Интернета, в локальный файл, или это можно использовать для сохранения копии онтологии, загруженной из локального файла. Сохраняется только активная онтология. Запустите Reasoner Windows: Ctrl-R Mac: ⌘R Reasoner > Запустить Reasoner Загружает онтологии из рабочей области в выбранный reasoner для запроса. Средство синхронизации Windows: Ctrl-R Mac: ⌘R Reasoner > Синхронизировать reasoner Перенесите все изменения, внесенные в онтологии в текущей рабочей области, в выбранный инструмент аргументации, чтобы изменения были учтены при выполнении аргументации. Синтаксис выражения класса OWL Выражения класса используются для описания элементов, имеющих общие характеристики. Сюда входят как имена классов (или именованные классы), так и сложные выражения класса. В таблице ниже представлены ключевые слова, которые используются для создания сложных выражений класса, а также некоторые примеры. Выражения класса могут быть вложены на произвольную глубину, чтобы создавать подробные описания моделируемой предметной области. Синтаксис Manchester OWL используется для представления и записи различных видов сложных выражений в Protégé. На этой странице представлен краткий обзор синтаксиса выражения класса. Ключевое слово some (некоторы й) Пример Интуитивно Понятный Смысл hasPet some Dog Сущности, у которых есть домашнее животное - Собака Это наиболее распространенный тип выражения класса. Также известен как "SomeValueFrom restriction" или "Экзистенциальное ограничение". Этот тип выражения класса состоит из свойства (в данном случае hasPet) и выражения класса, известного как заполнитель (в данном случае заполнителем является Dog). Индивидуумы, являющиеся экземплярами этого выражения класса, имеют отношение по свойству hasPet к индивидууму, который является экземпляром класса Dog. value (значение) hasPet value Tibbs Сущности, у которых есть домашнее животное по имени Tibbs. Здесь Tibbs - это конкретное лицо. Интуитивно это описывает владельцев Tibbs. Обратите внимание, что это сокращенный вариант и логически эквивалентен (hasPet some {Tibbs}), где фигурные скобки описывают класс конкретных индивидуумов - в данном случае класс одного индивидуума, которым является Tibbs. Также известен как "ограничение на значение" Only (только) hasPet only Cat Сущности, у которых есть домашние животные, которые являются всего лишь Кошками. Обратите внимание, что это не означает, что у этих сущностей должна быть кошка, но если у них действительно есть домашнее животное, то это будет кошка. Также известен как "ограничение по всем значениям" или "Универсальное ограничение" min hasPet min 3 Cat Сущности, у которых есть по крайней мере три домашних животного - Кошки. Объекты, у которых есть по крайней мере три домашних питомца - кошки. Также известен как "ограничение минимальной мощности" max hasPet max 5 Dog Сущности, у которых есть не более пяти домашних животных - собак. Обратите внимание, что всего может быть более пяти домашних животных, например, три кошки и пять собак, но количество собак не будет больше пяти. Это выражение класса также означает, что домашних животных может не быть вообще. Также известен как "Ограничение максимальной мощности" exactly (точно) hasPet exactly 2 GoldFish Сущности, у которых в качестве домашних животных есть ровно 2 золотые рыбки. Обратите внимание, что питомцев может быть более двух, но два из них являются золотыми рыбками - не больше и не меньше. Также известно как "Точное ограничение мощности". and Person and (hasPet some Cat) Люди, у которых есть домашнее животное - Кошка. Здесь у нас есть имя класса и сложное выражение класса в сочетании с ключевым словом and. Скобки необязательны в данном конкретном случае, но были включены для наглядности. Также известен как "Пересечение" или "Соединение". Мы также говорим, что каждое выражение класса в соединении является "соединением". or (hasPet some Cat) or (hasPet some Dog) Сущности, у которых есть домашнее животное - Кошка или есть домашнее животное - Собака Обратите внимание, что или не является исключающим. То есть этот класс включает в себя объекты, у которых есть Кошка в качестве домашнего животного, или есть Собака в качестве домашнего животного, или есть оба домашних животных, и Кошка, и Собака. Обратите внимание, что мы могли бы также записать этот пример как (hasPet some (Cat or Dog)) Также известен как "Объединение" или "Дизъюнкция". Мы также говорим, что каждое выражение класса в дизъюнкции является "дизъюнктом". not not (hasPet some Dog) Сущности, у которых нет домашнего животного - собаки. Сюда входят объекты, у которых либо нет домашнего животного, либо если у них и есть домашнее животное, то это не собака. Обратите внимание, что это логически эквивалентно (only (not Dog) Также известен как "отрицание".