繁体   English   中英

在Java中使用Opencyc猫头鹰时出现DisjointClasses错误

[英]DisjointClasses error while using opencyc owl in java

我目前正在从事一个自然语言处理项目,试图将openCYC用作KB。 目前,我只是尝试使用Java owl api v3.4.8和HermiT加载本体并实例化推理程序,但是每当我尝试实例化推理程序时,我都会收到错误消息

线程“主”中的异常java.lang.IllegalArgumentException:错误:解析了DisjointClasses( http://sw.opencyc.org/concept/Mx4rEHSj4Q0sQVGnAmZNRRJ20Q )。

当前代码:

File ontology = new File("owl-export-unversioned.owl");

    OWLOntologyManager m = OWLManager.createOWLOntologyManager();

    System.out.println("Loading...");
    OWLOntology o = m.loadOntologyFromOntologyDocument(ontology);
    System.out.println("Loaded");

    Reasoner hermit=new Reasoner(o);
    System.out.println(hermit.isConsistent());

这是否意味着opencyc本体本身存在问题? 还是我做错了什么?

问题是openCyc包含一个错误的公理:仅具有一个参数的DisjointClasses OWL规范指定DisjointClasses必须具有两个或更多参数。

OWL API使您可以解析此本体,但是HermiT会抱怨这种公理,甚至更多。

您可以使用OWL2DLProfile检查哪些公理违反了OWL 2 DL配置文件。 这将报告其他相同类型的错误公理。 但是,您将必须决定自己是正确的解决方案-OWL API尚无固定的实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM