Как запросить людей в 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.