首页 文章

GraphDB 是否提供与 Stardog Integrity Constraint Validation(ICV)类似的任何机制

提问于
浏览
0

我正在寻找一个大型的三重存储数据库管理系统,它提供了一种机制来保证提交的事务不会以与 TBox 不一致的方式改变本体的 ABox。

到目前为止,我唯一确定提供此机制的是 Stardog(https://www.stardog.com/docs/#_validating_constraints)。

GraphDB 是否提供与此类似的任何机制?

1 回答

  • 1

    GraphDB 的规则语言支持推理和一致性检查规则。您可以使用GraphDB 的 PIE 语法重写相同的已发布完整性验证约束(ICV),如:

    经理必须是员工

    此规则的更通用版本是替换“RDFS 范围”推理规则:

    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.
    };
    

    带有结果的规则表示如果规则触发,则语句必须存在于存储库中。

    您可以在 built-in 规则集中查看更多示例。

相关问题