Тема: Создание запросов к онтологии

Вопрос следующий: разработана онтология драгоценных камней, теперь нужно сформулировать к ней запросы и получить ответы. Работаю в Protege 4.1, как я понимаю работать нужно с резонером, у меня тут FACT++. Простые запросы типа "вывести всех индивидов определенного класса" - работают. А как создать более сложные, по типу "вывести всех индивидов с определенной характеристикой"?
1) В таком случае запросы нужно создавать sparql или же как по-другому сформулировать запрос в резонере?
2) Если все таки можно в резонере, то что для этого надо? подключить еще какие-то модули, или плагины например? (не могу найти конкретных примеров и советов по созданию sparql для protege)

Thumbs up Thumbs down

2

Re: Создание запросов к онтологии

Во-первых, обрати внимание, что в DL Query можно запрашивать не просто всех индивидов простого (именованного) класса, а еще и всех индивидов класса-выражения (которое может быть сколь угодно сложным). Поэтому для начала можно попробовать создать выражение для "всех индивидов с определенной характеристикой".
Что касается SPARQL, то тут вопрос непростой. Надо понять, хватит ли тебе SPARQL 1.0 без логического вывода или требуется SPARQL 1.1 с логическим выводом. Например, Sesame реализует 1.1, насколько я помню. Но работать придется скорее всего без Protege.
Но мне кажется у тебя все должно получиться с class expression.

3

Re: Создание запросов к онтологии

А есть ли какая-нибудь литература по созданию запросов в class expression? Мне пока ничего не удается найти более-менее по теме.

Thumbs up Thumbs down

4

Re: Создание запросов к онтологии

Там все просто: ты просто создаешь выражение класса таким образом, чтобы ему принадлежали только интересующие тебя объекты. При этом ты можешь использовать любые конструкции OWL 2 (см. Главу 8 спецификации.
Единственное, насколько я помню, DL Query ожидает что выражение будет написано в Манчестерском синтаксисе. Примеры.

5

Re: Создание запросов к онтологии

Сложные запросы в DL Query работают отлично и выводится все что нужно. Вопрос следующий: можно ли эти запросы как-то сохранить в протеже, или например создать графический интерфейс с данными запросами...т.е. разработать как бы базу этих запросов в самой протеже чтобы потом просто ссылаться на какой-то конкретный запрос? Напомню...работаю в протеже 4.0.2, а резонер FACT++

Отредактировано Marishechka (2012-05-08 12:14:52)

Thumbs up Thumbs down

6

Re: Создание запросов к онтологии

Уважаемые специалисты! Большая просьба откликнуться!)

Thumbs up Thumbs down

7

Re: Создание запросов к онтологии

Marishechka пишет:

Сложные запросы в DL Query работают отлично и выводится все что нужно. Вопрос следующий: можно ли эти запросы как-то сохранить в протеже, или например создать графический интерфейс с данными запросами...т.е. разработать как бы базу этих запросов в самой протеже чтобы потом просто ссылаться на какой-то конкретный запрос? Напомню...работаю в протеже 4.0.2, а резонер FACT++

Первое, что приходит в голову - плагин для протеже сделать. В плагине использовать OWL API для задания нужных class expression и, собственно сделать в плагине кнопки или подобное и привязать к ним использование class exp и показ результатов.

Отредактировано Crider (2012-05-23 01:18:02)

8

Re: Создание запросов к онтологии

Еще можно делать запросы и правила вывода с помощью SWRLTab.

Отредактировано vkopey (2012-05-23 01:40:28)

Thumbs up Thumbs down

9

Re: Создание запросов к онтологии

Или расширить DLQuery для сохранения выражений в файл, либо тупо создать дополноительную онтологию, в которой все аксиомы будут вида Declaration(CE), где CE - выражение класс для запросов в DLQuery.