Язык правил GraphDB поддерживает правила вывода и проверки согласованности.Вы можете переписать те же опубликованные ограничения проверки целостности (ICV), используя синтаксис PIE GraphDB , например:
Менеджеры должны быть сотрудниками
Более универсальныйверсия этого правила заключается в замене правила вывода «RDFS range»:
Id: prp_rng
a <rdfs:range> b
c a d
------------------------------------
d <rdf:type> b
на эквивалент проверки проверки:
Consistency: prp_rng_constraint
a <rdf:type> b
a <rdfs:range> c [Constraint b != c]
------------------------------------
Если правило с пустым последствием запускается, оно будетсгенерировать ошибку проверки.
SSN может иметь только сотрудник
Я бы изложил правило более общим образом, так как каждый тип должен иметь хотя бы одно свойство:
Consistency: min_cardinality
a <owl:minCardinalityConstraint> "1"^^xsd:nonNegativeInteger
a <owl:onType> b
c <rdf:type> b
------------------------------------
c a y
и затем укажите в онтологии:
INSERT DATA {
:ssn owl:minCardinalityConstraint "1"^^xsd:nonNegativeInteger;
owl:onType :Employee.
};
Правило с последствием указывает, что оператор должен существовать в репозитории, если правило запускается.
Вы можете проверить больше примеров во встроенном наборе правил.