用于推理 RDF* 语句的 GraphDB 自定义规则集
GraphDB custom ruleset for inference over RDF* statements
我正在尝试向内置的 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
提前致谢,
佛朗哥
正如 Damyan Ognyanov 在他的评论中所述 (),我试图做的事情在 GraphDB 规则语言中是不可能的。
我正在尝试向内置的 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
提前致谢,
佛朗哥
正如 Damyan Ognyanov 在他的评论中所述 (