dependencyGraph.clear();
for (int index : source.getTokenIndices()) {
final DependencyNode gnode = source.getTokenNode(index);
final DependencyNode pnode = dependencyGraph.addTokenNode(gnode.getIndex());
for (SymbolTable table : gnode.getLabelTypes()) {
pnode.addLabel(table, gnode.getLabelSymbol(table));
}
if (gnode.hasHead()) {
final Edge s = gnode.getHeadEdge();
final Edge t = dependencyGraph.addDependencyEdge(s.getSource().getIndex(), s.getTarget().getIndex());