/ / Помилка DisjointClasses під час використання opencyc сови в java - java, nlp, онтологія, міркування, сова-api

Помилка DisjointClasses при використанні opencyc owl в java-java, nlp, онтологія, міркування, сова-ап

Зараз я працюю над природною мовоюобробка проекту, що намагається використовувати openCYC як КБ. На даний момент я просто намагаюся завантажити онтологію та інстанціювати повторно за допомогою ява сови 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? Або я роблю щось не так?

Відповіді:

1 для відповіді № 1

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

API OWL дозволить проаналізувати цю онтологію, але HermiT поскаржиться на цю аксіому та, можливо, більше.

Ви можете використовувати OWL2DLProfile щоб перевірити, які аксіоми порушують OWL 2 DLпрофіль. Це повідомить про інші помилкові аксіоми того ж типу. Вам доведеться самостійно вирішити, що є правильним рішенням - API OWL ще не має фіксуючої реалізації.