Stardog 2.0 DataNotImpl 不能强制转换为 ClassExpression



我用stardog 2.0.0创建了一个(磁盘)数据库。

我已经将我的本体和一些数据加载到这个数据库中。

当我执行以下命令时,我可以看到我的本体的公理和这些数据:

./stardog query -v --username user --passwd pass dbname "select * where { ?s ?p ?o }"

这是返回公理的选择:

  ?s                                             ?p                ?o
| http://www.ugent.be/chest#Infection           | rdf:type        | owl:Class |
| http://www.ugent.be/chest#Infection           | rdf:type        | http://www.ugent.be/chest#RespiratoryInfection |
| http://www.ugent.be/chest#Infection           | rdf:type        | owl:NamedIndividual |
| http://www.ugent.be/chest#Infection           | rdfs:subClassOf | http://www.ugent.be/chest#Pathology |

这是返回数据的选择:

| <http://www.ugent.be/chest#Infection/4641> | rdf:type | <http://www.ugent.be/chest#Infection> |
| <http://www.ugent.be/chest#Infection/4642> | rdf:type | <http://www.ugent.be/chest#Infection> |
| <http://www.ugent.be/chest#Infection/4643> | rdf:type | <http://www.ugent.be/chest#Infection> |
| <http://www.ugent.be/chest#Infection/4644> | rdf:type | <http://www.ugent.be/chest#Infection> |

当我尝试执行查询以检索所有患有rdf:type感染的人时,我什么也得不到。

./stardog query -v --username user --passwd pass "chest" "PREFIX : <http://www.ugent.be/chest#> select ?s where { ?s rdf:type :Infection }"

当我添加推理类型 QL 或 EL 时,我得到

:Infection

当我添加推理类型 DL 时,我得到:

com.clarkparsia.pellet.api.term.impl.entity.DataNotImpl cannot be cast to com.clarkparsia.pellet.api.term.entity.ClassExpression

一致性检查也是如此。

我是不是做错了什么?

DL 推理只允许用于通过 TBox 的查询,因此您给定的查询不会使用推理来回答;在使用 Stardog 的推理功能时请记住这一点。

话虽如此,你永远不应该得到一个ClassCastException。 尝试使用最新的Stardog,您落后了三个版本,如果问题仍然存在,请将一个独立的最小示例发送到邮件列表,我们很乐意修复它。

相关内容

  • 没有找到相关文章

最新更新