Как я могу использовать OWL API вместо OWL Explanation API для генерации объяснения OWLaxioms - PullRequest
0 голосов
/ 25 апреля 2020

Я использую API объяснения OWL для создания объяснений согласованности / несогласованности. Код:

        //some code to load an existing ontology o//

        OWLOntologyManager m=OWLManager.createOWLOntologyManager();
        OWLOntology o=m.loadOntologyFromOntologyDocument(file);

        OWLReasonerFactory rf=new ReasonerFactory();
        OWLReasoner r=rf.createReasoner(o);

        OWLDataFactory df=m.getOWLDataFactory();

        IRI masterIRI = IRI.create("http://www.semanticweb.org/raghavrathi/ontologies/2020/3/Q2#Master");
        OWLClass master=df.getOWLClass(masterIRI);
        IRI sportmanIRI=IRI.create("http://www.semanticweb.org/raghavrathi/ontologies/2020/3/Q2#Sportsman");
        OWLClass sportsman=df.getOWLClass(sportmanIRI);
        ExplanationGeneratorFactory<OWLAxiom> genFac = ExplanationManager.createExplanationGeneratorFactory(rf);
        ExplanationGenerator<OWLAxiom> explain=genFac.createExplanationGenerator(o);
        Set<Explanation<OWLAxiom>> explanations1 = explain.getExplanations(df.getOWLSubClassOfAxiom(master, sportsman));
        System.out.println("Explaination OWL Explaination API: "+explanations1);

Ну, это прекрасно работает, чтобы проверить, является ли класс (здесь мастер) подклассом другого класса (здесь спортсмен).

Однако мне было интересно, если то же самое возможно без использования OWLexplanations API и только с OWL API. Где-то в Интернете я видел, что мы можем использовать HSTExplanationGenerator () с OWLAPI, но я не смог найти какой-либо ресурс, где и как он использовался.

...