Как запросить людей в DL Manchester OWL Синтаксис?

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

Я разрабатываю что-то, что запрашивает файл OWL через его API, используя Синтаксис Манчестера 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 это сумма в почтовом ящике Почтовые ящики однозначно связаны с физическими лицами. Поэтому я попробовал следующий запрос:

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

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

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

Person and firstName value "Andrew"

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

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

1 ответ

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

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

{MyIndividualEntityName}

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

{IndividualName1,IndividualName2}

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

Вы можете найти больше информации о синтаксисе OWL Manchester в официальной спецификации W3C.

Другие вопросы по тегам