public boolean contains(DirectedWeightedMultigraph<Node, LabeledLink> graph) { if (graph == null || this.graphBuilder == null || this.graphBuilder.getGraph() == null) return false; Set<String> commonModelIds = null; LabeledLink matchedLink = null; boolean firstVisit = true; for (LabeledLink l : graph.edgeSet()) { matchedLink = this.graphBuilder.getIdToLinkMap().get(l.getId()); if (matchedLink == null) return false; if (firstVisit) { commonModelIds = matchedLink.getModelIds(); firstVisit = false; } else { if (commonModelIds == null || matchedLink.getModelIds() == null) return false; commonModelIds = Sets.intersection(matchedLink.getModelIds(), commonModelIds); if (commonModelIds.isEmpty()) // no intersection return false; } } return true; } }
public void updateCoherence(LabeledLink link) { if (link == null) return; if (interactiveMode) { if (link.getStatus() == LinkStatus.ForcedByUser) return; if (link.getTarget() instanceof ColumnNode) { ColumnNode cn = (ColumnNode)link.getTarget(); if (cn.getSemanticTypeStatus() == ColumnSemanticTypeStatus.UserAssigned) return; } } else { if (!(link.getTarget() instanceof InternalNode)) return; } this.itemsCount ++; if (link.getModelIds() == null || link.getModelIds().isEmpty()) return; updateCoherence(link.getModelIds()); }
writer.name("keyInfo").value(l.getKeyType().toString()); writer.name("modelIds"); if (!writeLinkAnnotations || l.getModelIds() == null) writer.value(nullStr); else writeModelIds(writer, l.getModelIds());
if (link.getModelIds() == null || link.getModelIds().isEmpty()) return; updateCoherence(link.getModelIds());
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; }
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); } }
if (labeledLink.getModelIds() != null) { this.modelIds.addAll(labeledLink.getModelIds()); this.numberOfModelLinks++;
List<AlignmentScore> alignmentScores = new LinkedList<>(); for (LabeledLink l : candidateLinks) { if (l.getModelIds() == null || l.getModelIds().isEmpty()) // ignore the links that are added by the user (not present in the known models) continue;
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); } }
LabeledLink l = this.graphBuilder.getIdToLinkMap().get(id); if (l != null) { int numOfPatterns = l.getModelIds().size(); this.graphBuilder.changeLinkWeight(l, ModelingParams.PATTERN_LINK_WEIGHT); l.getModelIds().add(indexedModelId); n1.getModelIds().add(indexedModelId); n2.getModelIds().add(indexedModelId); if (link.getModelIds() != null) link.getModelIds().clear(); link.getModelIds().add(indexedModelId);
List<AlignmentScore> alignmentScores = new LinkedList<>(); for (LabeledLink l : candidateLinks) { if (l.getModelIds() == null || l.getModelIds().isEmpty()) // ignore the links that are added by the user (not present in the known models) continue;
if (l != null) { this.graphBuilder.changeLinkWeight(l, ModelingParams.PATTERN_LINK_WEIGHT); l.getModelIds().add(modelId); n1.getModelIds().add(modelId); n2.getModelIds().add(modelId); if (link.getModelIds() != null) link.getModelIds().clear(); link.getModelIds().add(modelId);
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; }
((LabeledLink)link).getModelIds() != null && !((LabeledLink)link).getModelIds().isEmpty()) w = ModelingParams.PATTERN_LINK_WEIGHT;
LabeledLink l = this.graphBuilder.getIdToLinkMap().get(id); if (l != null) { int numOfPatterns = l.getModelIds().size(); if (weightSystem == PatternWeightSystem.OriginalWeights) { double currentW = l.getWeight(); this.graphBuilder.changeLinkWeight(l, ModelingParams.PATTERN_LINK_WEIGHT); l.getModelIds().add(modelId); n1.getModelIds().add(modelId); n2.getModelIds().add(modelId); if (link.getModelIds() != null) link.getModelIds().clear(); link.getModelIds().add(modelId);
newLink.setModelIds(new HashSet<>(this.getModelIds())); newLink.setKeyType(this.getKeyType()); newLink.setProvenance(this.isProvenance, this.isMainProvenanceLink);
link.getModelIds().add(modelId);
modelIds = ((LabeledLink)e).getModelIds();