1

Тема: Вопрос новичка про Protege

Помогите разобраться в следующем практическом вопросе по Protege (4.3).

Пусть имеются множества A и В, причем объекты из B являются частями объектов из A.
Есть также объекты множества C, которые используют объекты из множества A.

Я хочу создать (и куда-то записать) аксиому, утверждающую что:
Если С использует А, и В является частью А, то С использует В.

Как  будет выглядеть эта аксиома и где ее следует объявить?

Спасибо.

Отредактировано smirnov (2013-06-18 18:40:12)

Thumbs up Thumbs down

2

Re: Вопрос новичка про Protege

Для этого служат property chains (см. object property chains в OWL 2):
uses o part-of- => uses
Здесь o - символ композиции свойств, а part-of- означает инверсию part-of.
В Протеже композиции свойств задаются на закладке Object Properties.

Можно ввести два взаимно обратных свойства part-of & has-part и записать аксиому как uses o has-part => uses.

3

Re: Вопрос новичка про Protege

Спасибо, Вы направили мою мысль.
В документации http://owl.cs.manchester.ac.uk/tutorial … 4_v1_3.pdf
этот вопрос почему-то не рассмотрен, но пример со скриншотами  можно найти тут
http://protege.stanford.edu/conference/ … ameron.pdf

Следующий вопрос: А где вообще почитать про функциональные отличия между онтологией и БД? Ведь онтологию можно использовать как БД? Или я не прав?
Спасибо.

Thumbs up Thumbs down

4

Re: Вопрос новичка про Protege

Не рассмотрен потому что авторы забыли (можешь написать в protege mailing list).
Различий между онтологиями и БД много. Часто проводят следующую аналогию: TBox в онтологии == схема БД, АBox в онтологии == данные в БД. Но разница все равно есть, особенно что касается различий между open world assumption (в OWL) и closed world assumption (БД). Можешь начать с презентации Иана "Ontologies and Databases" тут.

5

Re: Вопрос новичка про Protege

Следующий вопрос.

Можно ли написать (и как) такой DL-запрос, чтобы ответом на него стало содержание слота типа Data Property ?

Thumbs up Thumbs down

6

Re: Вопрос новичка про Protege

В OWL нет понятия "слот", это не фреймы. Попробуй переформулировать вопрос, возможно с примером.

7

Re: Вопрос новичка про Protege

Хорошо, допустим есть экземпляр класса Человек (имя экземпляра Человек1), у него определено поле вида Data Property следующим образом:
                                  фио "Иванов Иван Иванович"^^string
Возможно ли написать запрос следующего содержания: "Каково фио объекта Человек1"?
и получить в ответ "Иванов Иван Иванович"?
Как будет выглядить подобный запрос в окошке DL Query Protege??

Спасибо.

Отредактировано smirnov (2013-06-20 12:46:51)

Thumbs up Thumbs down

8

Re: Вопрос новичка про Protege

В DL Query это не получится сделать, т.к. он позволяет только задавать class expressions. А экземплярами CE могут быть только individuals, но не данные. В зависимости от конкретной задачи такие запросы можно делать по-разному, от XQuery до SPARQL.

9

Re: Вопрос новичка про Protege

А что еще в диапазоне от XQuery до SPARQL ?
Что проще освоить?
Также меня интересуют технические подробности интеграции онтологии с программными системами, написанными на разных языках (не только на Java).

Спасибо

Thumbs up Thumbs down

10

Re: Вопрос новичка про Protege

то что не стоит осваивать. SPARQL подойдет.

11

Re: Вопрос новичка про Protege

Я правильно понимаю, что если я беру SPARQL, то я становлюсь привязанным к Java, и нет никакого программного моста, который бы позволил мне обращаться к онтологии из программных систем, написанных на других языках? Очень бы пригодился какой-нибудь OCX на эту тему..

Thumbs up Thumbs down

12

Re: Вопрос новичка про Protege

Я пишу на PHP и SPARQL,  в зависимости конечно от возможностей триплетстора, но обычно наиболее популярные языки поддерживаются. из опробованных есть еще возможность писать на C#. В большинстве случаев я на SPARQL смотрю как на разновидность SQL но есно для своего класса БД. значит к нему подходы по использованию такие же. cool

Межсистемный коннект также возможен через SPARQL Protocol
И Java вообще к интеграции не имеет никакого отношения. Java, С# и прочее это инструмент реализации а не интеграции.

UPD. Целая база знаний на тему по ссылке http://semanticfuture.net/index.php/%D0 … 1%86%D0%B0