Как запросить людей в DL Manchester OWL Синтаксис? - PullRequest
7 голосов
/ 22 мая 2011

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

IЯ разрабатываю что-то, что запрашивает файл OWL через его API, используя Синтаксис Manchester OWL и аргумент HermiT.В качестве альтернативы я также запускаю запросы на вкладке DL Query в Protege 4, чтобы проверить результаты моих запросов по этому файлу.Этот файл в основном представляет собой онтологию Friend of a Friend (FOAF) с добавленными экземплярами данных.

Проблема: я не могу найти способ запросить экземпляр по его уникальному идентификатору.

Этопредполагается, что это URI, поэтому, например, для объекта Person с URI http://xmlns.com/foaf/0.1/Andrew_Kuchling я попытался выполнить следующие запросы:

Person and URI value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person and URI value "Andrew_Kuchling"

Person that "Andrew_Kuchling"

. Ни один из этих способов не работает.(URI создается путем добавления префикса http://xmlns.com/foaf/0.1/ к любой вводимой строке, а URI фактически не идентифицируется в онтологии как свойство).

В FOAF mbox_sha1sum - это sha1sum почтового ящика.Почтовые ящики однозначно связаны с физическими лицами.Поэтому я попробовал следующий запрос:

Person and mbox_sha1sum value "mbox_sha1sum-property-value-here"

Однако он даже не выполняет этот запрос, потому что чувствует, что запрос неверен.Значение mbox_sha1sum такое же, как я добавил для этого человека.Он существует в физических лицах.

Он выполняет этот запрос:

Person and firstName value "Andrew"

Все свойства данных не являются специализированными типами данных.По умолчанию рассматриваются как литералы.

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

1 Ответ

7 голосов
/ 26 июня 2012

Я знаю, что этот вопрос был опубликован более года назад, но недавно я задал мне тот же вопрос и нашел следующее решение:

Просто введите имя человека / члена, которого вы хотите запроситьв фигурных скобках:

{MyIndividualEntityName}

Таким образом, вы можете даже запрашивать более одного человека одновременно:

{IndividualName1,IndividualName2}

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

Более подробную информацию вы можете найти в OWL Manchester.Синтаксис в официальной спецификации W3C .

...