private Set<Node> getAllColumnNodes(DirectedWeightedMultigraph<Node, LabeledLink> model) { Set<Node> columnNodes = new HashSet<>(); for (Node u : model.vertexSet()) { if (u instanceof ColumnNode) columnNodes.add(u); } return columnNodes; }
public Set<InternalNode> getInternalNodes() { Set<InternalNode> internalNodes = new HashSet<>(); if (this.graph != null) { for (Node n : this.graph.vertexSet()) if (n instanceof InternalNode) internalNodes.add((InternalNode)n); } return internalNodes; }
public List<ColumnNode> getColumnNodes() { List<ColumnNode> columnNodes = new LinkedList<>(); if (this.graph != null) { for (Node n : this.graph.vertexSet()) if (n instanceof ColumnNode) columnNodes.add((ColumnNode)n); } return columnNodes; }
public Set<Node> getGraphNodes() { return this.graphBuilder.getGraph().vertexSet(); }
public Set<LabeledLink> getIncomingLinksInTree(String nodeId) { Set<LabeledLink> results = new HashSet<>(); if (steinerTree == null) return results; if (steinerTree.vertexSet().isEmpty()) return results; Node node = null; for (Node n : steinerTree.vertexSet()) { if (n.getId().equals(nodeId)) { node = n; break; } } if (node == null) return results; results = this.steinerTree.incomingEdgesOf(node); return results; }
public Set<LabeledLink> getOutgoingLinksInTree(String nodeId) { Set<LabeledLink> results = new HashSet<>(); if (steinerTree == null) return results; if (steinerTree.vertexSet().isEmpty()) return results; Node node = null; for (Node n : steinerTree.vertexSet()) { if (n.getId().equals(nodeId)) { node = n; break; } } if (node == null) return results; results = this.steinerTree.outgoingEdgesOf(node); return results; }
public void addClosureAndUpdateLinks(Set<InternalNode> internalNodes, Set<Node> addedNodes) { logger.debug("<enter"); if (addedNodes == null) addedNodes = new HashSet<>(); long start = System.currentTimeMillis(); float elapsedTimeSec; if (internalNodes != null) { Node[] nodes = internalNodes.toArray(new Node[0]); for (Node node : nodes) if (this.idToNodeMap.containsKey(node.getId())) addNodeClosure(node, addedNodes); } long addNodesClosure = System.currentTimeMillis(); elapsedTimeSec = (addNodesClosure - start)/1000F; logger.debug("time to add nodes closure: " + elapsedTimeSec); updateLinks(); long updateLinks = System.currentTimeMillis(); elapsedTimeSec = (updateLinks - addNodesClosure)/1000F; logger.debug("time to update links of the graph: " + elapsedTimeSec); logger.debug("total number of nodes in graph: " + this.graph.vertexSet().size()); logger.debug("total number of links in graph: " + this.graph.edgeSet().size()); logger.debug("exit>"); }
private Map<Node,Boolean> getClassesInModel(Workspace workspace) { final Alignment alignment = AlignmentManager.Instance().getAlignment( workspace.getId(), worksheetId); Map<Node,Boolean> nodeSet = new HashMap<>(); Set<Node> treeNodes = alignment.getSteinerTree().vertexSet(); if (treeNodes != null) { for (Node n : treeNodes) { nodeSet.put(n, true); } } return nodeSet; }
@SuppressWarnings("unused") private static void getStatistics1(List<SemanticModel> semanticModels) { for (int i = 0; i < semanticModels.size(); i++) { SemanticModel source = semanticModels.get(i); int attributeCount = source.getColumnNodes().size(); int nodeCount = source.getGraph().vertexSet().size(); int linkCount = source.getGraph().edgeSet().size(); int datanodeCount = 0; int classNodeCount = 0; for (Node n : source.getGraph().vertexSet()) { if (n instanceof InternalNode) classNodeCount++; if (n instanceof ColumnNode) datanodeCount++; } System.out.println(attributeCount + "\t" + nodeCount + "\t" + linkCount + "\t" + classNodeCount + "\t" + datanodeCount); List<ColumnNode> columnNodes = source.getColumnNodes(); getStatistics2(columnNodes); } }
public void printModel(DirectedWeightedMultigraph<Node, LabeledLink> model) { logger.debug("Vertices: "); for(Node n : model.vertexSet()) { logger.debug("\t" + n.getId()); } logger.debug("Edges: "); for(LabeledLink l : model.edgeSet()) { logger.debug("\t" + l.getSource().getId() + " --> " + l.getTarget().getId()); } }
public static void writeGraph(DirectedWeightedMultigraph<Node, DefaultLink> graph, JsonWriter writer, boolean writeNodeAnnotations, boolean writeLinkAnnotations) throws IOException { writer.beginObject(); writer.name("nodes"); writer.beginArray(); if (graph != null) for (Node n : graph.vertexSet()) writeNode(writer, n, writeNodeAnnotations); // writeNode(workspace, worksheet, writer, n); writer.endArray(); writer.name("links"); writer.beginArray(); if (graph != null) for (DefaultLink l : graph.edgeSet()) writeLink(writer, l, writeLinkAnnotations); writer.endArray(); writer.endObject(); }
protected ModelLearningGraph(OntologyManager ontologyManager, ModelLearningGraphType type) throws IOException { this.ontologyManager = ontologyManager; this.totalNumberOfKnownModels = 0; File file = new File(getGraphJsonName()); if (!file.exists()) { this.initializeFromJsonRepository(); } else { logger.info("loading the alignment graph ..."); DirectedWeightedMultigraph<Node, DefaultLink> graph = GraphUtil.importJson(getGraphJsonName()); if (type == ModelLearningGraphType.Compact) this.graphBuilder = new GraphBuilderTopK(ontologyManager, graph); else this.graphBuilder = new GraphBuilder(ontologyManager, graph, false); this.nodeIdFactory = this.graphBuilder.getNodeIdFactory(); logger.info("loading is done!"); } if (this.graphBuilder.getGraph() != null) { logger.info("number of nodes: " + this.graphBuilder.getGraph().vertexSet().size()); logger.info("number of links: " + this.graphBuilder.getGraph().edgeSet().size()); } this.lastUpdateTime = System.currentTimeMillis(); }
public static DirectedWeightedMultigraph<Node, DefaultLink> asDefaultGraph(DirectedWeightedMultigraph<Node, LabeledLink> graph) { if (graph == null) { logger.debug("graph is null."); return null; } DirectedWeightedMultigraph<Node, DefaultLink> g = new DirectedWeightedMultigraph<>(DefaultLink.class); for (Node v : graph.vertexSet()) g.addVertex(v); for (DefaultLink e: graph.edgeSet()) g.addEdge(e.getSource(), e.getTarget(), e); return g; }
logger.debug("total number of nodes in steiner tree: " + this.steinerTree.vertexSet().size()); logger.debug("total number of edges in steiner tree: " + this.steinerTree.edgeSet().size());
public static DirectedWeightedMultigraph<Node, LabeledLink> asLabeledGraph(DirectedWeightedMultigraph<Node, DefaultLink> graph) { if (graph == null) { logger.debug("graph is null."); return null; } DirectedWeightedMultigraph<Node, LabeledLink> g = new DirectedWeightedMultigraph<>(LabeledLink.class); for (Node v : graph.vertexSet()) g.addVertex(v); for (DefaultLink e: graph.edgeSet()) if (e instanceof LabeledLink) g.addEdge(e.getSource(), e.getTarget(), (LabeledLink)e); return g; }
private void createTripleMaps() { Set<Node> nodes = alignmentGraph.vertexSet(); for (Node node:nodes) { if (node instanceof InternalNode) { // Create a TriplesMap corresponding to the Internal node SubjectMap subjMap = r2rmlMapping.getSubjectMapIndex().get(node.getId()); TriplesMap trMap = new TriplesMap(TriplesMap.getNewId(), subjMap); r2rmlMapping.getTriplesMapIndex().put(node.getId(), trMap); this.r2rmlMapping.addTriplesMap(trMap); r2rmlMapping.getAuxInfo().getTriplesMapGraph().addTriplesMap(trMap); } } }
private void mergeModels(DirectedWeightedMultigraph<Node, LabeledLink> model1, DirectedWeightedMultigraph<Node, LabeledLink> model2) { for(Node n : model1.vertexSet()) { model2.addVertex(n); for(LabeledLink link : model1.incomingEdgesOf(n)) { model2.addVertex(link.getSource()); model2.addVertex(link.getTarget()); model2.addEdge(link.getSource(), link.getTarget(), link); } } this.models.remove(model1); } }
private void setUserTypesForColumnNodes() { if (this.graph == null) return; for (Node n : this.graph.vertexSet()) { if (!(n instanceof ColumnNode)) continue; ColumnNode cn = (ColumnNode)n; Set<LabeledLink> incomingLinks = this.graph.incomingEdgesOf(n); if (incomingLinks != null) { for (LabeledLink link : incomingLinks) { Node domain = link.getSource(); SemanticType st = new SemanticType(cn.getHNodeId(), link.getLabel(), domain.getLabel(), domain.getId(), false, Origin.User, 1.0); cn.assignUserType(st); } } else logger.debug("The column node " + ((ColumnNode)n).getColumnName() + " does not have any domain or it has more than one domain."); } }
return; for (Node node : graph.vertexSet()) {