public void precomputeDisjointClasses() { checkPreConditions(); if (!m_isConsistent) return; if (m_atomicConceptHierarchy==null || m_directDisjointClasses.keySet().size()<m_atomicConceptHierarchy.getAllNodesSet().size()-2) { classifyClasses(); Set<HierarchyNode<AtomicConcept>> nodes=new HashSet<HierarchyNode<AtomicConcept>>(m_atomicConceptHierarchy.getAllNodes()); nodes.remove(m_atomicConceptHierarchy.getTopNode()); nodes.remove(m_atomicConceptHierarchy.getBottomNode()); nodes.removeAll(m_directDisjointClasses.keySet()); int steps=nodes.size(); int step=0; if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskStarted("Compute disjoint classes"); for (HierarchyNode<AtomicConcept> node : nodes) { getDisjointConceptNodes(node); if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskProgressChanged(++step,steps); } if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskStopped(); } } protected HierarchyNode<AtomicConcept> getHierarchyNode(OWLClassExpression classExpression) {
/** * Precompute disjoint classes. */ public void precomputeDisjointClasses() { checkPreConditions(); if (!m_isConsistent.booleanValue()) return; if (m_atomicConceptHierarchy==null || m_directDisjointClasses.size()<m_atomicConceptHierarchy.getAllNodesSet().size()-2) { classifyClasses(); Set<HierarchyNode<AtomicConcept>> nodes=new HashSet<>(m_atomicConceptHierarchy.getAllNodes()); nodes.remove(m_atomicConceptHierarchy.getTopNode()); nodes.remove(m_atomicConceptHierarchy.getBottomNode()); nodes.removeAll(m_directDisjointClasses.keySet()); int steps=nodes.size(); int step=0; if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskStarted("Compute disjoint classes"); for (HierarchyNode<AtomicConcept> node : nodes) { getDisjointConceptNodes(node); if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskProgressChanged(++step,steps); } if (m_configuration.reasonerProgressMonitor!=null) m_configuration.reasonerProgressMonitor.reasonerTaskStopped(); } } protected HierarchyNode<AtomicConcept> getHierarchyNode(OWLClassExpression classExpression) {
return atomicConceptHierarchyNodesToNodeSet(node.getAncestorNodes()); else { Set<HierarchyNode<AtomicConcept>> directDisjoints=getDisjointConceptNodes(node); Set<HierarchyNode<AtomicConcept>> result=new HashSet<HierarchyNode<AtomicConcept>>(); for (HierarchyNode<AtomicConcept> directDisjoint : directDisjoints) {
return atomicConceptHierarchyNodesToNodeSet(node.getAncestorNodes()); else { Set<HierarchyNode<AtomicConcept>> directDisjoints=getDisjointConceptNodes(node); Set<HierarchyNode<AtomicConcept>> result=new HashSet<>(); for (HierarchyNode<AtomicConcept> directDisjoint : directDisjoints) {