/ / Errore DisjointClasses durante l'utilizzo di opencyc owl in java-java, nlp, ontology, reasoning, owl-api

Errore di DisjointClasses durante l'utilizzo di opencyc owl in java-java, nlp, ontology, reasoning, owl-api

Attualmente sto lavorando su un linguaggio naturaleelaborazione del progetto che tenta di utilizzare openCYC come KB. Al momento sto semplicemente cercando di caricare l'ontologia e di istanziare un ragionatore usando java owl api v3.4.8 e Hermit, tuttavia ogni volta che provo ad istanziare il ragionatore ottengo l'errore

Eccezione nel thread "main" java.lang.IllegalArgumentException: Errore: Analizzato DisjointClasses (http://sw.opencyc.org/concept/Mx4rEHSj4Q0sQVGnAmZNRRJ20Q).

codice corrente:

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

Questo significa che c'è un problema con l'ontologia opencyc stessa? O sto facendo qualcosa di sbagliato?

risposte:

1 per risposta № 1

Il problema è che openCyc contiene un assioma errato: a DisjointClasses con un solo argomento. Le specifiche OWL specificano che DisjointClasses deve avere due o più argomenti.

L'API OWL ti permetterà di analizzare questa ontologia, ma HermiT si lamenterà di questo assioma, e forse di più.

Puoi usare OWL2DLProfile per verificare quali assiomi stanno violando l'OWL 2 DLprofilo. Questo riporterà altri assiomi errati dello stesso tipo. Dovrai decidere da solo quale sia la soluzione corretta, però - l'API OWL non ha ancora un'implementazione di fissaggio.