gpt4 book ai didi

java - 在java中使用opencyc owl时出现DisjointClasses错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:59 25 4
gpt4 key购买 nike

我目前正在开发一个自然语言处理项目,尝试使用 openCYC 作为知识库。目前,我只是尝试加载本体并使用 java owl api v3.4.8 和 HermiT 实例化推理器,但是每当我尝试实例化推理器时,我都会收到错误

线程“main”中出现异常 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 规范指定 DisjointClass 必须有两个或更多参数。

OWL API 会让你解析这个本体,但是 HermiT 会提示这个公理,甚至可能更多。

您可以使用 OWL2DLProfile 来检查哪些公理违反了 OWL 2 DL 配置文件。这将报告相同类型的其他错误公理。不过,您必须自己决定什么是正确的解决方案 - OWL API 还没有修复实现。

关于java - 在java中使用opencyc owl时出现DisjointClasses错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com