/ / DisjointClasses erreur lors de l'utilisation de opencyc owl en java - java, nlp, ontologie, raisonnement, owl-api

Erreur DisjointClasses lors de l’utilisation d’opencyc owl en java - java, nlp, ontologie, raisonnement, owl-api

Je travaille actuellement sur un langage naturelprojet de traitement essayant d'utiliser openCYC en tant que base de connaissances. Pour le moment, j’essaie simplement de charger l’ontologie et d’instancier un raisonneur à l’aide de java owl api v.4.4.8 et de HermiT.

Exception dans le fil "principal" java.lang.IllegalArgumentException: Erreur: Analysé DisjointClasses (http://sw.opencyc.org/concept/Mx4rEHSj4Q0sQVGnAmZNRRJ20Q).

code actuel:

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

Cela signifie-t-il qu'il existe un problème avec l'ontologie opencyc elle-même? Ou est-ce que je fais quelque chose de mal?

Réponses:

1 pour la réponse № 1

Le problème est que openCyc contient un axiome erroné: a DisjointClasses avec un seul argument. Les spécifications OWL spécifient que DisjointClasses doit avoir deux arguments ou plus.

L'API OWL vous permettra d'analyser cette ontologie, mais HermiT se plaindra de cet axiome et peut-être même davantage.

Vous pouvez utiliser OWL2DLProfile vérifier quels axiomes violent le OWL 2 DLprofil. Cela signalera d'autres axiomes erronés du même type. Vous devrez toutefois décider vous-même quelle est la bonne solution. L'API OWL ne dispose pas encore d'une implémentation de réparation.