public Set<LabeledLink> getOutgoingEdgesOf(Node node) { Set<LabeledLink> edges = new HashSet<>(); for(DirectedWeightedMultigraph<Node, LabeledLink> model : models) { GraphUtil.printGraph(GraphUtil.asDefaultGraph(model)); if(model.containsVertex(node)) edges.addAll(model.outgoingEdgesOf(node)); } return edges; }
private boolean cycleExits(DirectedWeightedMultigraph<Node, LabeledLink> model, Set<Node> columnNodes, Set<Node> traversedNodes, Node start, Node end) { Set<Node> neighbors = GraphUtil.getOutNeighbors(GraphUtil.asDefaultGraph(model), start); logger.debug("start:" + start.getDisplayId() + ", end:" + end.getDisplayId()); for (Node w : neighbors) { if(w == end) { return true; } if(columnNodes.contains(w) || traversedNodes.contains(w)) continue; traversedNodes.add(w); logger.debug("neighbour:" + w.getDisplayId()); boolean innerCycle = cycleExits(model, columnNodes, traversedNodes, w, end); if(innerCycle) return true; } return false; }
else GraphUtil.writeGraph(GraphUtil.asDefaultGraph(this.graph), writer, false, false);
String pathStr; for (int i = 1; i <= maxLength; i++) { gpList = GraphUtil.getPaths(GraphUtil.asDefaultGraph(baseModel.graph), i); if (gpList != null) basePaths.addAll(gpList); gpList = GraphUtil.getPaths(GraphUtil.asDefaultGraph(this.graph), i); if (gpList != null) modelPaths.addAll(gpList);
Set<Node> neighbors = GraphUtil.getOutNeighbors(GraphUtil.asDefaultGraph(model), v); for (Node w : neighbors) { if(!columnNodes.contains(w)) {
for(Entry<String,SemanticModel> entry : models.entrySet()) { if (entry.getKey() == "1-correct model") { cluster = GraphVizUtil.convertToGraphviz(GraphUtil.asDefaultGraph(entry.getValue().getGraph()), entry.getValue().getMappingToSourceColumns(), false, nodeLabelType, linkLabelType, false, false); } else { cluster = GraphVizUtil.convertToGraphviz(GraphUtil.asDefaultGraph(entry.getValue().getGraph()), entry.getValue().getMappingToSourceColumns(), false, nodeLabelType, linkLabelType, showNodeMetaData, showLinkMetaData);
private void learnFromKnownSemanticModels() { List<Node> steinerNodes = this.computeSteinerNodes(); if (steinerNodes == null || steinerNodes.isEmpty()) { return; } ModelLearner modelLearner = new ModelLearner(this.graphBuilder, steinerNodes); SemanticModel model = modelLearner.getModel(); if (model == null) { logger.error("could not learn any model for this source!"); if (this.steinerTree == null) { this.steinerTree = new DirectedWeightedMultigraph<>(LabeledLink.class); } this.addForcedNodes(); this.addForcedLinks(); //add new semantic type to the tree // this.removeDeletedLinks(); this.root = TreePostProcess.selectRoot(GraphUtil.asDefaultGraph(this.steinerTree)); return ; } this.updateAlignment(model, null); }
public static void exportSemanticModelToGraphviz( SemanticModel model, GraphVizLabelType nodeLabelType, GraphVizLabelType linkLabelType, boolean showNodeMetaData, boolean showLinkMetaData, String filename) throws IOException { OutputStream out = new FileOutputStream(filename); org.kohsuke.graphviz.Graph graphViz = new org.kohsuke.graphviz.Graph(); graphViz.attr("fontcolor", "blue"); graphViz.attr("remincross", "true"); graphViz.attr("label", model.getName() == null ? "" : model.getName()); // graphViz.attr("page", "8.5,11"); org.kohsuke.graphviz.Graph gViz = convertToGraphviz(GraphUtil.asDefaultGraph(model.getGraph()), model.getMappingToSourceColumns(), false, nodeLabelType, linkLabelType, showNodeMetaData, showLinkMetaData); gViz.attr("label", "model"); gViz.id("cluster"); graphViz.subGraph(gViz); graphViz.writeTo(out); out.close(); }
this.addForcedNodes(); this.addForcedLinks(); this.root = TreePostProcess.selectRoot(GraphUtil.asDefaultGraph(tree));
new AsUndirectedGraph<>(treeModel); List<Node> steinerNodes = inputNodes; SteinerTree steinerTree = new SteinerTree(GraphUtil.asDefaultGraph(undirectedGraph), steinerNodes);