Skip to content

SubClassAxiom missing when using reflexive property #93

Description

@tobiaswjohn

I am using Openllet to compute the class hierarchy of an ontology. I discovered a case, where Openllet does not infer a SubClass axiom, although it is entailed. I cross-checked with HermiT and ELK, which both infer the axiom.

  • Here is a minimal example:
Prefix(:=<http://example.org#>)
Ontology(
    Declaration(Class(:A))
    Declaration(Class(:B))
    Declaration(ObjectProperty(:p))
    
    ReflexiveObjectProperty(:p)
    EquivalentClasses( :B ObjectSomeValuesFrom(:p :A) )
)
  • The problem: The axiom SubClassOf(:A :B) is entailed but not inferred by Openllet.

  • Here is the call from my program:

OWLOntologyDocumentSource source = new FileDocumentSource(ontFile, new FunctionalSyntaxDocumentFormat());
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology ont = manager.loadOntologyFromOntologyDocument(source);

OpenlletReasonerFactory rf = new OpenlletReasonerFactory();
OWLReasoner openllet = rf.createReasoner(ont);

// compute class hierarchy
InferredSubClassAxiomGenerator subClassGenerator = new InferredSubClassAxiomGenerator();
if (openllet.isConsistent()) {
  openllet.precomputeInferences(InferenceType.CLASS_HIERARCHY);
  Set<OWLSubClassOfAxiom> subClassAxioms = subClassGenerator.createAxioms(manager.getOWLDataFactory(), openllet);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions