OWL API, API Jena, API Protege, который можно использовать - программирование

OWL API, API Jena, API Protege, который можно использовать

Я пытаюсь реализовать приложение на основе eclipse, работающее с онтологиями. (Моя тема - семантическая аннотация). Мне нужно будет отобразить онтологию для пользователя (как дерево) и установить связи между онтологическими классами и некоторой схемой.

Поскольку у меня есть только базовые навыки программирования, я сейчас переполнен, как дизайн приложения... 1. Вопрос: какие API использовать? Я нашел API OWL и API Jena. В одном из сообщений (Есть ли какая-нибудь библиотека, которая может легко изменять и обновлять OWL файлы?) Майкл заявил, что "OWLAPI над Йеной. У Йены есть поддержка OWL, но это не разработанный для OWL, что делает его немного громоздким в использовании". Как вы это видите? 2. Кроме того, существует API Protégé. На первый взгляд, это кажется более подходящим для меня, потому что он уже предоставляет некоторые утилиты GUI и т.д. Но я немного смущен: при попытке найти больше информации я нашел это http://protegewiki.stanford.edu/wiki/P4APIOverview. Там говорится: "Работа в процессе", но последняя страница была изменена в 2009 году. Как это понять? Кто-нибудь работал с Protégé API и может поделиться своим опытом?

Большое спасибо!

4b9b3361

Ответ 1

Хотя этот вопрос, вероятно, не соответствует теме StackOverflow, он по-прежнему является важным вопросом в целом, так что вот некоторые общие соображения о различии между API Jena и OWL API, которые даже не делают вас предпочтительнее один над другим, может дать вам лучшее представление о том, что вы получаете в обоих случаях. Я отмечаю эту вики сообщества, чтобы другие могли ее обновить.

Связь между OWL и RDF

RDF представляет собой формат представления на основе графика. График RDF - это ориентированный граф, узлами которого являются ресурсы (которые могут быть анонимными или идентифицированы IRI) и литералами, а ребра - ориентированными ссылками, идентифицированными IRI. Это удивительно просто, но поскольку идентификаторы IRI и часто могут быть отсрочены, также удивительно полезно. Там действительно не так много говорить о RDF, потому что это все, что нужно. Он очень гибкий, и вы можете представлять что угодно.

OWL, хотя он предназначен для использования в Semantic Web и, таким образом, с данными RDF, на самом деле является логическим языком, который, кстати, случайно связан с RDF. Онтология OWL состоит из набора аксиом OWL, некоторые из которых заявляют, что определенные идентификаторы относятся к индивидуумам, некоторые из которых утверждают отношения между отдельными лицами (и не индивидуальными данными, такими как литералы), некоторые из которых выражают структуру классов, и так далее. Утилита OWL возникает из-за того, что, подобно RDF, она использует IRI как идентификаторы, но логическая структура может существовать полностью отдельно от RDF. Фактически, хотя онтологии OWL могут быть сериализованы с использованием RDF, и, действительно, это, вероятно, самая распространенная сериализация, OWL также может быть сериализована в OWL/XML, функциональном синтаксисе OWL, синтаксисе Манчестера OWL и любом другом формате сериализации, который кто-то изобретает. Эти форматы, как правило, сосредоточены на конструкциях уровня OWL, и становится яснее, что онтология представляет собой набор аксиом.

API Jena - это RDF-ориентированный

API Jena очень прочно укоренен в RDF. Основной концепцией является Model (что более примитивно, чем OntModel, которое используется для выполнения более сложной работы, связанной с OWL), которая обеспечивает удобный API для построения графиков RDF. Используя модели, вы создадите ресурсы, добавьте свойства и т.д. Jena также содержит основанный на правилах аргумент, который весьма удобен для работы с графиками RDF.

Теперь OWL можно сериализовать с использованием RDF, поэтому можно создать слой-оболочку над графиком RDF, чтобы вы могли сказать "создайте для меня класс, являющийся пересечением A и B", и верните идентификацию ресурса этот класс и прозрачное добавление к классу любых трещин RDF необходимы в сериализации OWL, чтобы утверждать, что новый класс (эквивалентен) пересечению A и B. Это то, что делает API Jena OntModel. Он делает это в общем виде, что означает, что Йена может обрабатывать другие языки онтологии, которые также могут быть сериализованы в RDF. Jena OntModels, на момент написания статьи, поддерживает только OWL1; новые конструкции, введенные в OWL2, еще не поддерживаются.

Тот факт, что конструкции уровня OWL в Jena - это просто обертки над сериализацией RDF, означает, что основанные на правилах рассуждения ограничены в том, что он может достичь. В частности, основанные на Jena аргументы для OWL логически неполны (т.е. Они не могут вывести все, о чем говорят спецификации OWL). Тем не менее, они все еще хорошо справляются с повседневной работой. Jena предоставляет интерфейс Reasoner, который позволяет использовать другие (возможно, не основанные на правилах) аргументы, такие как Pellet.

API OWL является OWL-ориентированным

OWL-API является OWL-ориентированным, и вам в значительной степени не придется беспокоиться о RDF вообще (помимо определения объектов IRI и создания литералов по мере необходимости). Используя API OWL, вы фактически будете рассматривать онтологию как набор аксиом, а не как набор троек, которые могут кодировать некоторую аксиому. Если вы уже знакомы с спецификациями OWL и хорошо говорите о таких вещах, как ObjectPropertyAssertions, вы можете найти OWL API немного более естественным.

API Protégé-OWL также является OWL- и RDF (S) -центричным

Из Руководство программиста Protégé-OWL API:

API Protege-OWL - это библиотека Java с открытым исходным кодом для языка веб-онтологии (OWL) и RDF (S). API предоставляет классы и методы для загрузки и сохранения OWL файлов, для запроса и управления моделями данных OWL и для проведения рассуждений на основе логических движков описания. Кроме того, API оптимизирован для реализации графических пользовательских интерфейсов.

На главной странице Protégé-OWL API также есть несколько хороших диаграмм классов, которые он предоставляет. самый полный из них показывает, что существуют классы для объектов RDF (S) и OWL.

Protégé-OWL (инструмент, а не API) - это графический редактор онтологии, построенный на вершине API Protégé-OWL. Вы можете разработать плагины для него, что может быть лучшей альтернативой в вашем случае.