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

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

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

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

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

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

Person and firstName value "Andrew"

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

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


person Rida Khan    schedule 22.05.2011    source источник
comment
Принять ответ!   -  person gsamaras    schedule 04.03.2016


Ответы (1)


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

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

{MyIndividualEntityName}

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

{IndividualName1,IndividualName2}

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

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

person benjiman    schedule 26.06.2012