private GraphBuilder cloneGraphBuilder(GraphBuilder graphBuilder) { GraphBuilder clonedGraphBuilder = null; if (graphBuilder == null || graphBuilder.getGraph() == null) { clonedGraphBuilder = new GraphBuilderTopK(this.ontologyManager, false); } else { clonedGraphBuilder = new GraphBuilderTopK(this.ontologyManager, graphBuilder.getGraph()); } return clonedGraphBuilder; }
public boolean addNode(Node node) { if (super.addNode(node)) { SteinerNode n = new SteinerNode(node.getId()); getTopKGraphNodes().put(n.getNodeId(), n); getTopKGraph().put(n, new TreeSet<SteinerEdge>()); return true; } else return false; }
GraphBuilderTopK gbtk = new GraphBuilderTopK(mgr, false); Node n4 = new InternalNode("n4", new Label("http://erlangen-crm.org/current/E74_Group")); gbtk.addNode(n1); gbtk.addNode(n2); gbtk.addNode(n3); gbtk.addNode(n4); new Label("http://erlangen-crm.org/current/P92_brought_into_existence"), ObjectPropertyType.Direct); gbtk.addLink(n1, n2, e1, 0.6); gbtk.addLink(n1, n4, e2, 0.9); gbtk.addLink(n1, n3, e3, 0.2); gbtk.addLink(n2, n3, e4, 0.7); gbtk.addLink(n2, n4, e5, 0.4); gbtk.addLink(n4, n3, e6, 0.3); gbtk.addLink(n2, n3, e7, 0.5); steinerNodes.add(n3); List<DirectedWeightedMultigraph<Node, LabeledLink>> trees = gbtk.getTopKSteinerTrees(steinerNodes, 10, null, null, false); for (DirectedWeightedMultigraph<Node, LabeledLink> tree : trees) { System.out.println(GraphUtil.labeledGraphToString(tree));
CustomizedBANKS.graph = this.getTopKGraph(); CustomizedBANKS.nodes = this.getTopKGraphNodes(); processedTree = getLabeledSteinerTree(tree, terminals); if (processedTree != null) results.add(processedTree);
tree.addVertex(this.getIdToNodeMap().get(t.name())); for (Fact f : initialTree.getFacts()) { source = this.getIdToNodeMap().get(f.source().name()); target = this.getIdToNodeMap().get(f.destination().name()); l = new CompactObjectPropertyLink(id, ObjectPropertyType.None); else l = this.getIdToLinkMap().get(f.label().name);
public void changeLinkWeight(DefaultLink link, double weight) { super.changeLinkWeight(link, weight); SteinerNode n1 = new SteinerNode(link.getSource().getId()); SteinerNode n2 = new SteinerNode(link.getTarget().getId()); SteinerEdge e = new SteinerEdge(n1, link.getId(), n2, (float)weight); if (getTopKGraph().get(n2).remove(e)) { if (link instanceof LabeledLink) { e.setModelIds(((LabeledLink)link).getModelIds()); e.setForced(((LabeledLink)link).getStatus() == LinkStatus.ForcedByUser); } getTopKGraph().get(n2).add(e); } }
topKSteinerTrees = ((GraphBuilderTopK)this.graphBuilder).getTopKSteinerTrees(sn, modelingConfiguration.getTopKSteinerTree(), null, null, true);
public void changeLinkStatus(LabeledLink link, LinkStatus status) { super.changeLinkStatus(link, status); if (status == LinkStatus.PreferredByUI) return; SteinerNode n1 = new SteinerNode(link.getSource().getId()); SteinerNode n2 = new SteinerNode(link.getTarget().getId()); SteinerEdge e = new SteinerEdge(n1, link.getId(), n2, (float)link.getWeight()); if (getTopKGraph().get(n2).remove(e)) { if (link instanceof LabeledLink) { e.setModelIds(((LabeledLink)link).getModelIds()); e.setForced(status == LinkStatus.ForcedByUser); } getTopKGraph().get(n2).add(e); } }
getTopKSteinerTrees(steinerNodes.getNodes(), k, recursiveLevel, maxPermutations, onlyAddInternalNodes);
protected ModelLearningGraph(OntologyManager ontologyManager, boolean emptyInstance, ModelLearningGraphType type) { this.ontologyManager = ontologyManager; if (type == ModelLearningGraphType.Compact) this.graphBuilder = new GraphBuilderTopK(ontologyManager, false); else this.graphBuilder = new GraphBuilder(ontologyManager, false); this.nodeIdFactory = this.graphBuilder.getNodeIdFactory(); this.lastUpdateTime = System.currentTimeMillis(); }
public boolean addLink(Node source, Node target, DefaultLink link, Double weight) { if (super.addLink(source, target, link, weight)) { SteinerNode n1 = new SteinerNode(source.getId()); SteinerNode n2 = new SteinerNode(target.getId()); SteinerEdge e = new SteinerEdge(n1, link.getId(), n2, (float)weight.doubleValue()); if (link instanceof LabeledLink) { e.setModelIds(((LabeledLink)link).getModelIds()); } // getTopKGraph().get(n1).add(e); getTopKGraph().get(n2).add(e); // each node only stores its incoming links return true; } else return false; }
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 boolean removeLink(DefaultLink link) { if (super.removeLink(link)) { SteinerNode n1 = new SteinerNode(link.getSource().getId()); SteinerNode n2 = new SteinerNode(link.getTarget().getId()); SteinerEdge e = new SteinerEdge(n1, link.getId(), n2, (float)link.getWeight()); // getTopKGraph().get(n1).remove(e); getTopKGraph().get(n2).remove(e); return true; } else return false; }
this.graphBuilder = new GraphBuilder(ontologyManager, false); else this.graphBuilder = new GraphBuilderTopK(ontologyManager, false); this.nodeIdFactory = new NodeIdFactory();
public boolean addLink(Node source, Node target, DefaultLink link) { if (super.addLink(source, target, link)) { SteinerNode n1 = new SteinerNode(source.getId()); SteinerNode n2 = new SteinerNode(target.getId()); SteinerEdge e = new SteinerEdge(n1, link.getId(), n2, (float)link.getWeight()); if (link instanceof LabeledLink) { e.setModelIds(((LabeledLink)link).getModelIds()); e.setForced(((LabeledLink)link).getStatus() == LinkStatus.ForcedByUser); } // getTopKGraph().get(n1).add(e); getTopKGraph().get(n2).add(e); // each node only stores its incoming links return true; } else return false; }
public GraphBuilder getGraphBuilderClone() { GraphBuilder clonedGraphBuilder = null; if (this instanceof ModelLearningGraphSparse) { clonedGraphBuilder = new GraphBuilder(this.ontologyManager, this.getGraphBuilder().getGraph(), false); } else if (this instanceof ModelLearningGraphCompact) { clonedGraphBuilder = new GraphBuilderTopK(this.ontologyManager, this.getGraphBuilder().getGraph()); } return clonedGraphBuilder; }