code: public Map<KamEdge, List<Statement>>
              evidence(Collection<KamEdge> edges) throws SQLException {
          if (edges == null) throw new IllegalArgumentException("edges is null");
  
          PreparedStatement ps;
          ResultSet rs = null;
          Map<KamEdge, List<Statement>> results = new HashMap<KamEdge, List<Statement>>();
          try {
              for (KamEdge edge : edges) {
                  if (edge == null) continue;
  
                  List<Statement> evidence = new ArrayList<Statement>();
                  ps = getPreparedStatement(SQL);
                  ps.setInt(1, edge.getId());
                  rs = ps.executeQuery();
                  int id = -1;
                  Statement stmt = null;
                  Map<String, String> citation = new HashMap<String, String>();
                  while (rs.next()) {
                      int next = rs.getInt(1);
                      if (next != id ) {
                          if (id != -1) {
                              // iterating a different statement,
                              // save previous
                              if (stmt != null) {
                                  if (!citation.isEmpty()) {
                                      stmt.getAnnotationGroup().setCitation(fromMap(citation));
                                  }
  
                                  evidence.add(stmt);
                                  citation.clear();
                              }
                          }
                          id = next;
  
                          stmt = BELParser.parseStatement(rs.getString(2));
                          if (stmt == null) continue;
                      }
  
                      String name = rs.getString(3);
                      String value = rs.getString(4);
                      if (name != null)
                          directAnnotation(name, value, stmt, citation);
                  }
  
                  // add set of rows for last statement
                  if (stmt != null) {
                      if (!citation.isEmpty())
                          stmt.getAnnotationGroup().setCitation(fromMap(citation));
                      evidence.add(stmt);
                      citation.clear();
                  }
                  close(rs);
  
                  results.put(edge, evidence);
              }
              return results;
          } finally {
              close(rs);
          }
      }
docs: {@inheritDoc}