Обеспечивает ли GraphDB какой-либо механизм, аналогичный проверке ограничения целостности Stardog (ICV) - PullRequest
0 голосов
/ 25 июня 2018

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

До сих пор единственным, кого я определил для предоставления этого механизма, является Stardog (https://www.stardog.com/docs/#_validating_constraints).

. Есть ли в GraphDB какой-либо механизм, аналогичный этому?

1 Ответ

0 голосов
/ 26 июня 2018

Язык правил 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.
};

Правило с последствием указывает, что оператор должен существовать в репозитории, если правило запускается.

Вы можете проверить больше примеров во встроенном наборе правил.

...