private void addProvenaceLinks(Alignment alignment, Label linkLabel, LiteralNode targetNode) {
String targetId = targetNode.getId();
Set<Node> internalNodes = alignment.getNodesByType(NodeType.InternalNode);
String edgeUri = linkLabel.getUri();
for(Node internalNode : internalNodes) {
String nodeId = internalNode.getId();
Set<LabeledLink> inLinks = alignment.getIncomingLinksInTree(nodeId);
Set<LabeledLink> outLinks = alignment.getOutgoingLinksInTree(nodeId);
if((inLinks != null && inLinks.size() > 0)
|| (outLinks != null && outLinks.size() > 0)) {
String linkId = LinkIdFactory.getLinkId(edgeUri, nodeId, targetId);
LabeledLink link = alignment.getLinkById(linkId);
if(link == null) {
link = alignment.addObjectPropertyLink(internalNode,
targetNode, linkLabel);
alignment.changeLinkStatus(linkId, LinkStatus.ForcedByUser);
link.setProvenance(true, false);
}
}
}
}