Как настроить пользовательское правило в Graphdb

Я пытаюсь сделать таможенные правила в Graphdb. У меня есть онтология Person, в которой есть классы "Parent" и "Child", а также свойство объекта "hasChild" и "hasGrandChild". Есть три узла с такими отношениями:

: Али: hasChild: Аслам
: Aslam: hasChild: Ахмед

Теперь я хочу сделать вывод, что ":Ali:hasGrandChild:Ahmed" в Graphdb. Встроенный набор правил, вроде оптимизированного для совы, не работает. Я пытался использовать файл.pie для создания пользовательских правил, но новые правила не работают

2 ответа

GraphDB дает вам гибкость в разработке ваших собственных правил, если вы хотите выразить семантику, не являющуюся частью стандартов OWL или RDFS. В этом примере вы пытаетесь определить, что свойство hasGranChild это цепочка из двух hasChild свойства. Это возможно с аксиомой цепочки свойств OWL.

Я предлагаю использовать стандартную часть семантики OWL в наборах правил OWL 2 RL и OWL 2 QL в GraphDB. Вот пример:

@prefix :      <http://www.example.org/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:hasParent  a  owl:ObjectProperty .

:hasGrandChild  owl:propertyChainAxiom
                ( :hasChild :hasChild ) .

:Ahmed :hasChild :Ali .
:Ali :hasParent :Aslam .

Пожалуйста, не забудьте изменить набор правил по умолчанию на OWL 2 RL или OWL 2 QL во время создания репозитория.

Я создал файл набора правил под названием "CustomRule.pie". Он состоит из трех основных частей: "Префиксы", "Аксиомы" и "Правила".
В Prefices я вставил наш префикс онтологии, например:
Человек: http://www.semanticweb.org/hamza/ontologies/2017/6/Person.owl#
Затем в Аксиомах мы должны написать все три предмета, Предиката, Объекта, которые мы вставили в нашу онтологию. Подобно:
<'Person: Ahmed'> <'Person: hasChild'> <'Person: Ali'>
<'Person: Ali'> <'Person: hasChild'> <'Person: Aslam'>
// Ingore запятые
Наконец, в разделе "Правила" мы можем написать правила подключения. Он проверяет все аксиомы, доступные в разделе Аксиомы для реализации правил. подобно
Id: обычай
a <'Person: hasChild'> b
b <'Person: hasChild'> c
------------------------------------
c

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