Поддерживает ли Jena применение ограничений OWL во время запроса на обновление SPARQL?

Я пытаюсь выяснить, будет ли Jena (или любой другой сервер обновлений SPARQL) применять онтологические ограничения. Например, я хочу обеспечить, чтобы только сущности, имеющие тип x, могли иметь свойство y, а значение свойства должно иметь тип z. Я думаю, это то, что может предоставить OWL, но я не уверен. Кроме того, гарантирует ли Jena, что если я попытаюсь написать запрос обновления SPARQL, который не соответствует этим правилам, это обновление не будет вставлено и будет возвращена ошибка?


person Zach Dwiel    schedule 27.05.2015    source источник


Ответы (2)


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

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

свойствоY rdfs:тип доменаX
свойствоY rdfs:тип доменаZ

но это не означает (по крайней мере, так, как вы ожидаете), что только вещи типа X могут иметь значения для свойства Y, и что значения должны быть типа Z. Что это значит? означает, что всякий раз, когда вы видите утверждение, которое использует свойство Y, например

свойствоY б

рассуждающий на OWL может заключить, что

a rdf:type typeX
b rdf:type typeZ

Единственный случай, когда эти выводы будут каким-либо «нарушением ограничений», — это если у вас есть какой-либо другой способ сделать вывод о том, что a не может быть типа X или что b не может быть типа Z. Тогда рассудок OWL распознает несоответствие.

Я пытаюсь выяснить, будет ли Jena (или любой другой сервер обновлений SPARQL) применять онтологические ограничения. Кроме того, гарантирует ли Jena, что если я попытаюсь написать запрос обновления SPARQL, который не соответствует этим правилам, это обновление не будет вставлено и будет возвращена ошибка?

Я не знаю, поддерживает ли Jena что-то подобное из коробки, но вы, вероятно, могли бы:

  1. Используйте OntModel с присоединенным ракурсом и запустите обновления SPARQL для этого графа. Затем вы можете запросить график и посмотреть, не обнаружено ли каких-либо несоответствий. То, как это будет сделано, будет зависеть от того, как рассуждающий сигнализирует о несоответствиях. Это может быть не так сложно, но помните, что Jena на самом деле основана на RDF, и для полноценного OWL-рассуждения вам понадобится еще один модуль рассуждений, который интегрируется с Jena (например, Pellet, но, я думаю, есть и другие).
  2. В качестве альтернативы вы можете использовать хранилище со встроенными рассуждениями и, вероятно, уже имеющими такие функции. Я думаю, что у Stardog есть некоторые из этих особенностей.
person Joshua Taylor    schedule 28.05.2015

Что вам нужно знать о OWL, так это ограничение свойства:

Ограничение свойства — это особый вид описания класса. Он описывает анонимный класс, а именно класс всех индивидуумов, удовлетворяющих этому ограничению. OWL различает два вида ограничений свойств: ограничения значений и ограничения количества элементов.

Ограничение значения накладывает ограничения на диапазон свойства при применении к этому конкретному описанию класса.

Ограничение кардинальности накладывает ограничения на количество значений, которые может принимать свойство в контексте данного конкретного описания класса.

Основываясь на описании вашей проблемы, вам нужно использовать ограничение значения. Эти ограничения значений существуют: некоторые (someValuesFrom), только (allValuesFrom) и точно (hasValue).

Например:

Class: Woman subClassOf: hasGender only Female
Class: Mother subClassOf: hasChild some Child
Class: Employee subClassOf: hasEmployeeID exaclty 1 ID

Таким образом, в зависимости от ограничений для отдельных лиц, которые вы определили, эти лица могут быть отнесены рассудком к нужному классу, который будет их типом. Как правило, системы не будут препятствовать вводу ложной информации, но концепция будет либо объявлена ​​неудовлетворительной, либо непоследовательной. В случае занесения в онтологию индивидуума, несовместимого с константами, онтология становится несогласованной (все идет не так) то можно отказаться от последнего факта я полагаю. Я не уверен насчет Jena, но OWL-API позволяет временно добавить концепт в менеджер онтологий, после чего можно проверить непротиворечивость онтологии. Обычно, когда эта проверка дает сбой, вы можете удалить последнее несохраненное изменение в диспетчере онтологий (через прослушиватель изменений), и, если все в порядке, вы можете сохранить изменения в диспетчере онтологий.

person Artemis    schedule 27.05.2015