Caused by: java.lang.NullPointerException
at org.dllearner.refinementoperators.RhoDRDown.init(RhoDRDown.java:356)
at org.dllearner.algorithms.celoe.CELOE.init(CELOE.java:313)
at org.dllearner.configuration.spring.ComponentInitializationBeanPostProcessor.postProcessBeforeInitialization(ComponentInitializationBeanPostProcessor.java:35)
The main problem seems to be that the operator's init() is called twice in CELOE:
if (operator == null) {
// we use a default operator and inject the class hierarchy for now
operator = new RhoDRDown();
((CustomStartRefinementOperator) operator).setStartClass(startClass);
((ReasoningBasedRefinementOperator) operator).setReasoner(reasoner);
}
if (operator instanceof CustomHierarchyRefinementOperator) {
((CustomHierarchyRefinementOperator) operator).setClassHierarchy(classHierarchy);
((CustomHierarchyRefinementOperator) operator).setObjectPropertyHierarchy(objectPropertyHierarchy);
((CustomHierarchyRefinementOperator) operator).setDataPropertyHierarchy(datatypePropertyHierarchy);
}
operator.init();
We would have to check whether operator is already initialized an use the clone constructor to make the hierarchy settings and use/re-initialize the clone afterwards.
Having a configuration like
will result in a
RuntimeException
:The main problem seems to be that the operator's
init()
is called twice inCELOE
:We would have to check whether
operator
is already initialized an use the clone constructor to make the hierarchy settings and use/re-initialize the clone afterwards.