/ / DisjointClasses грешка при използване на opencyc owl в java - java, nlp, онтология, разсъждение, owl-api

DisjointClasses грешка при използване на opencyc owl в java - java, nlp, онтология, разсъждения, бухал-апи

В момента работя по естествен езикобработващ проект, който се опитва да използва openCYC като KB. В момента аз просто се опитвам да заредя онтологията и инстанцираме разсъждение, използвайки java owl api v3.4.8 и HermiT.

Изключение в нишката "main" java.lang.IllegalArgumentException: Грешка: Разбор на несъвместими класове (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());

Означава ли това, че има проблем с ontology opencyc себе си? Или правя нещо нередно?

Отговори:

1 за отговор № 1

Проблемът е, че openCyc съдържа грешна аксиома: a DisjointClasses само с един аргумент. Спецификациите на OWL определят, че DisjointClasses трябва да имат два или повече аргумента.

OWL API ще ви позволи да анализирате тази онтология, но HermiT ще се оплаче от тази аксиома и вероятно повече.

Можеш да използваш OWL2DLProfile да провери кои аксиоми нарушават OWL 2 DLпрофил. Това ще докладва за други погрешни аксиоми от същия тип. Вие обаче ще трябва сами да решите кое е правилното решение - OWL API все още няма реализация за фиксиране.