1

I'm currently working on a natural language processing project attempting to use openCYC as a KB. At the moment I'm simply trying to load the ontology and instantiate a reasoner using the java owl api v3.4.8 and HermiT, however whenever I try to instantiate the reasoner I get the error

Exception in thread "main" java.lang.IllegalArgumentException: Error: Parsed DisjointClasses(http://sw.opencyc.org/concept/Mx4rEHSj4Q0sQVGnAmZNRRJ20Q).

current code:

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());

Does this mean there is a problem with the opencyc ontology itself? Or am I doing something wrong?

4

1 に答える 1

1

問題は、openCyc に誤った公理が含まれていることです: aDisjointClasses引数は 1 つしかありません。OWL 仕様では、DisjointClasses には 2 つ以上の引数が必要であると指定されています。

OWL API を使用すると、このオントロジーを解析できますが、HermiT はこの公理について文句を言うでしょう。

を使用OWL2DLProfileして、OWL 2 DL プロファイルに違反している公理を確認できます。これにより、同じタイプの他の誤った公理が報告されます。ただし、何が正しい解決策であるかを自分で判断する必要があります。OWL API にはまだ修正実装がありません。

于 2014-01-06T07:25:53.820 に答える