用于推论RDF *语句的GraphDB自定义规则集

问题描述

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

具体来说,请从以下声明开始,在此处https://graphdb.ontotext.com/documentation/9.4/free/devhub/rdf-sparql-star.html中参考GraphDB示例:

    :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会导致以下错误消息:“初始化推理程序失败”,并且GraphDB控制台显示此异常:

    Invalid entity: 'c b a'

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

预先感谢

Franco

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)