Как используется OWL при создании семантического веб-приложения?

Я читал о семантических веб-технологиях, таких как RDF и OWL, и заинтригован возможностью создания семантической базы данных RDF/triple-store поверх существующих существующих реляционных БД. Это просто упражнение R & D, чтобы увидеть, что я могу сделать.

Мне нравится внешний вид OWLIM, но некоторые основы меня не впечатляют. Как конкретно нужно строить, а затем использовать OWL-онтологию? Вы строите его с чем-то вроде Protege, а затем импортируете его в свой репозиторий? Или онтология является побочным продуктом программного обеспечения, которое вы разрабатываете для связи с репо?

Это вопрос новичков, но я просто не уверен, где OWL вписывается в великий порядок вещей... Я бы не стал задавать вопрос, не искал ли я для руководства.

Ответ 1

Я не думаю, что вам нужно использовать OWL для создания приложения. Черт, вам даже не нужно использовать его, чтобы создать приложение semweb.

Как правило, я думаю, что существует пара способов, которыми люди склонны использовать OWL. Я думаю, что один из главных - это рассуждение. Они определяют понятия, важные для их применения, используя один из профилей OWL2, а затем используйте reasoner, чтобы вывести новые знания на основе их онтологии. В настоящее время существует даже некоторая работа по использованию онтологий OWL в качестве схем для ограничений целостности.

В других случаях люди используют его в качестве артефакта документации, чтобы просто указать, что есть в их данных, но они не используют его более формально, чем это.

Есть промежуточные варианты использования между ними, и существуют аналогичные применения для схемы RDF, которые могут использоваться как онтологии OWL, только с более низкий уровень выразительности или что-то вроде SKOS, которое может быть использовано для простого определения таксономии в вашей заявке без какой-либо формальной выразительности, прилагаемой к ней.

Получение Protege будет хорошим началом. Это позволит вам изучить некоторые основы построения онтологии, и большинство аргументов доступны в виде плагинов, поэтому вы также можете изучить, как вы можете построить свою онтологию и какие выводы вы можете получить в результате.

Если у вас есть онтология, если вы хотите использовать ее для чего-то другого, кроме документации, то есть рассуждения, вам придется загрузить ее в аргументатор (Pellet, Факт ++, RacerPro, HermiT) или базу данных, которая анализирует OWL (Stardog, OWLIM). Если вы не беспокоитесь о рассуждениях, вы можете бросить его в любой трипестор, доступ к нему через кунжут или Jena (если вы используете Java) и все еще сможете запросить явные факты через SPARQL.

Итак, я думаю, что короткий ответ заключается в том, что не существует правильного способа использования OWL, он используется во множестве разных возможностей. Можно подумать, что вам интересно, W3C хранит страницу с список семантических веб-приложений. В этих тематических исследованиях рассказывается о проблемах, которые имели компании, и о том, как они решали их, используя семантические технологии. Вы можете прочитать некоторые из них, чтобы лучше понять, как люди в различных отраслях используют технологию.

Ответ 2

Существует множество трипестреров, которые используют реляционный db для задней части.

Отъезд Apache Jena и openrdf Sesame для трипестреров которые имеют как rdbms, так и "родные" (чистые тройки).

Кроме того, я настоятельно рекомендую посмотреть D2RQ, который обращается к данным в существующем реляционном хранилище через трехслойное наложение.

Есть более длинные списки, но это хорошие отправные точки.

Ответ 3

Да, вы можете проектировать свою онтологию в Protege, а затем импортировать ее в свой Triple Store. Если ваш Тройной магазин поддерживает рассуждения, и вы включили его, ваши запросы Sparql будут давать разные результаты.

Например, вы можете определить "связанные с" как супер-свойство для "замужних", "дочерних", "родительских" и "родственных". Затем вы можете попросить всех "связанных с" людей.

Начните экспериментировать с автономным тройным магазином, чтобы понять технологию. Отложите взаимодействие с RDB, пока вы не будете довольны основами.