private void addOutputs(final OWLAxiom axiom) { final OWLEntity[] entities = axiom.signature().toArray(OWLEntity[]::new); for (int i = 0, n = entities.length; i < n - 1; i++) { final Node n1 = _graph.createEntityNode(entities[i]); for (int j = i + 1; j < n; j++) { final Node n2 = _graph.createEntityNode(entities[j]); n1.addOutput(n2); n2.addOutput(n1); } } }
public <X> EntityNode<X> asEntityNode() { return _node.asEntityNode(); }
private void removeRedundancies() { int removedNode = -1; int removedEdge = -1; while (removedNode != 0) { removedNode = 0; removedEdge = 0; for (final Node node : _entityNodes.values()) for (final Node out : node.getOutputs().toArray(new Node[0])) if (out.isRedundant()) { out.remove(); removedNode++; } else if (out instanceof AndNode && out.hasOutput(node)) { out.removeOutput(node); removedEdge++; } if (_logger.isLoggable(Level.FINE)) _logger.fine("Removed " + removedNode + " nodes and " + removedEdge + " edges"); } } }
assert node.isActive(); for (final Node outputNode : node.getOutputs()) if (outputNode.isActive()) if (outputNode.inputActivated()) node.reset();
if (output.isEntityNode()) final Set<OWLEntity> outputModule = extractModule(engine, output.asEntityNode(), entities, monitor);
nodeInfo._onStack = true; for (final Node out : nodeInfo._node.getOutputs())
public boolean isEntityNode() { return _node.isEntityNode(); }
assert node.isActive(); for (final Node outputNode : node.getOutputs()) if (outputNode.isActive()) if (outputNode.inputActivated()) node.reset();
if (output.isEntityNode()) final Set<OWLEntity> outputModule = extractModule(engine, output.asEntityNode(), entities, monitor);
nodeInfo._onStack = true; for (final Node out : nodeInfo._node.getOutputs())
public boolean isEntityNode() { return _node.isEntityNode(); }
private void removeRedundancies() { int removedNode = -1; int removedEdge = -1; while (removedNode != 0) { removedNode = 0; removedEdge = 0; for (final Node node : _entityNodes.values()) for (final Node out : node.getOutputs().toArray(new Node[0])) if (out.isRedundant()) { out.remove(); removedNode++; } else if (out instanceof AndNode && out.hasOutput(node)) { out.removeOutput(node); removedEdge++; } if (_logger.isLoggable(Level.FINE)) _logger.fine("Removed " + removedNode + " nodes and " + removedEdge + " edges"); } } }
private void addOutputs(final OWLAxiom axiom) { final OWLEntity[] entities = axiom.signature().toArray(OWLEntity[]::new); for (int i = 0, n = entities.length; i < n - 1; i++) { final Node n1 = _graph.createEntityNode(entities[i]); for (int j = i + 1; j < n; j++) { final Node n2 = _graph.createEntityNode(entities[j]); n1.addOutput(n2); n2.addOutput(n1); } } }
@Override public void visit(final OWLSubDataPropertyOfAxiom axiom) { final Node subNode = _graph.createEntityNode(axiom.getSubProperty().asOWLDataProperty()); final Node supNode = _graph.createEntityNode(axiom.getSuperProperty().asOWLDataProperty()); subNode.getOutputs().add(supNode); }
public <X> EntityNode<X> asEntityNode() { return _node.asEntityNode(); }
public Node createAndNode(final Set<Node> inputs) { if (inputs.isEmpty()) throw new IllegalArgumentException(); if (inputs.contains(getNullNode())) return getNullNode(); inputs.remove(getStartNode()); final int size = inputs.size(); if (size == 0) return getStartNode(); else if (size == 1) return inputs.iterator().next(); final AndNode andNode = new AndNode(_id++); for (final Node input : inputs) input.addOutput(andNode); return andNode; }
@Override public void visit(final OWLSubDataPropertyOfAxiom axiom) { final Node subNode = _graph.createEntityNode(axiom.getSubProperty().asOWLDataProperty()); final Node supNode = _graph.createEntityNode(axiom.getSuperProperty().asOWLDataProperty()); subNode.getOutputs().add(supNode); }
public Node createAndNode(final Set<Node> inputs) { if (inputs.isEmpty()) throw new IllegalArgumentException(); if (inputs.contains(getNullNode())) return getNullNode(); inputs.remove(getStartNode()); final int size = inputs.size(); if (size == 0) return getStartNode(); else if (size == 1) return inputs.iterator().next(); final AndNode andNode = new AndNode(_id++); for (final Node input : inputs) input.addOutput(andNode); return andNode; }
public Node createOrNode(final Set<Node> inputs) { if (inputs.isEmpty()) throw new IllegalArgumentException(); if (inputs.contains(getStartNode())) return getStartNode(); inputs.remove(getNullNode()); final int size = inputs.size(); if (size == 0) return getNullNode(); else if (size == 1) return inputs.iterator().next(); final OrNode orNode = new OrNode(_id++); for (final Node input : inputs) input.addOutput(orNode); return orNode; }
public Node createOrNode(final Set<Node> inputs) { if (inputs.isEmpty()) throw new IllegalArgumentException(); if (inputs.contains(getStartNode())) return getStartNode(); inputs.remove(getNullNode()); final int size = inputs.size(); if (size == 0) return getNullNode(); else if (size == 1) return inputs.iterator().next(); final OrNode orNode = new OrNode(_id++); for (final Node input : inputs) input.addOutput(orNode); return orNode; }