private void updateSchema( String relationName, PrintWriter log, Node left, Node right, String nodename1, String nodename2) { Pair<String, String> p = left.getName().hashCode() > right.getName().hashCode() ? new Pair<String, String>(left.getName(), right.getName()) : new Pair<String, String>(right.getName(), left.getName()); ConcurrentHashMap<Pair<String, String>, Boolean> explored = uniquePairs_.get(relationName); if (explored.containsKey(p)) return; String outStr; if (!left.equals(right)) { if (isAlreadyDisjointed(left, right)) { updateReliabilityCount(relationName, left, right, 0); outStr = relationName + ": " + left.getName() + " known disjoint to " + right.getName() + ": " + nodename1 + "," + nodename2; } else if (hasConjoint(left, right)) { updateReliabilityCount(relationName, left, right, 1); outStr = relationName + ": " + left.getName() + " known conjoint to " + right.getName() + ": " + nodename1 + "," + nodename2; } else { updateReliabilityCount(relationName, left, right, 2); outStr = relationName + ": " + left.getName() + " unknown to " + right.getName() + ": " + nodename1 + "," + nodename2; } // System.out.println(outStr); log.println(outStr); } explored.put(p, true); }
private boolean isTangible(Node node) { // exclude itself if (node.equals(partiallyTangible)) return false; return queryModule_.prove(false, genls, node, partiallyTangible) == QueryResult.TRUE; }