【问题标题】:GraphDB custom ruleset for inference over RDF* statementsGraphDB 自定义规则集,用于通过 RDF* 语句进行推理
【发布时间】:2020-10-10 00:35:41
【问题描述】:

我正在尝试向内置 RDFSPlus(优化)规则集添加一个简单规则,以便能够让 GraphDB 从 RDF* 断言生成推断(隐式)语句。

具体来说,这里参考GraphDB例子https://graphdb.ontotext.com/documentation/9.4/free/devhub/rdf-sparql-star.html,从这些断言开始:

    :hasSpouse a owl:ObjectProperty ,
                 owl:SymmetricProperty .

    :man :hasSpouse :woman .

    <<:man :hasSpouse :woman>> :startDate "2020-02-11"^^xsd:date .

我想让 GraphDB 推理引擎来推断这两个语句:

    :woman :hasSpouse :man .
    <<:woman :hasSpouse :man>> :startDate "2020-02-11"^^xsd:date .

GraphDB 生成第一个(显然)没有问题,但事实证明 RDF* 有点棘手。

首先我尝试将此规则添加到内置 RDFSPlus(优化)的副本中:

    Id: owl_rdfstarOverSym

      a b c
      b <rdf:type> <owl:SymmetricProperty>
      <<a b c>> p q
    ------------------------------------
      <<c b a>> p q

在这种情况下,我无法创建存储库; GraphDB 控制台显示此异常:

    Error in rule 'owl_rdfstarOverSym'. Invalid identifier: '>'

然后我尝试添加只有一个''的规则,如下所示:

    Id: owl_rdfstarOverSym

      a b c
      b <rdf:type> <owl:SymmetricProperty>
      <a b c> p q
    ------------------------------------
      <c b a> p q

GraphDB 似乎能够创建存储库,但是尝试使用 SPARQL 会导致以下错误消息:“Failed initializing inferencer”,并且 GraphDB 控制台显示此异常:

    Invalid entity: 'c b a'

所有这些测试均使用 GraphDB 免费版运行:版本:9.3,修订:41892658

提前致谢,

佛朗哥

【问题讨论】:

  • 只是为了说明这一点——GraphDB 规则语言不支持 RDF*,所以你不能那样使用它...

标签: graphdb reasoning rdf-star


【解决方案1】:

正如 Damyan Ognyanov 在他的评论 (GraphDB custom ruleset for inference over RDF* statements) 中所说,我试图做的事情是 GraphDB 规则语言无法实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多