/** * */ package preprocessing; import java.io.PrintWriter; import java.io.StringWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import org.apache.log4j.Logger; import outputter.search.TermSearcher; /** * @author Hong Updates */ public class OntologyMappingChecker4Ant { private Connection conn; private String sourcetable; private String targettable; private static String username="root"; private static String password="root"; private static final Logger LOGGER = Logger.getLogger(OntologyMappingChecker4Ant.class); /** * constructor */ public OntologyMappingChecker4Ant(String sourcetable, String targettable, String database) { this.sourcetable = sourcetable; this.targettable = targettable; try{ if(conn == null){ Class.forName("com.mysql.jdbc.Driver"); String URL = "jdbc:mysql://localhost/"+database+"?user="+username+"&password="+password; conn = DriverManager.getConnection(URL); } }catch(Exception e){ LOGGER.error("", e); } } /*compound terms to simple terms * */ public void normalize(){ try{ Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select structure, hao from "+this.sourcetable); while(rs.next()){ String structure = rs.getString("structure"); System.out.println(structure); String hao = rs.getString("hao"); String [] structs = structure.split("\\s+and\\s+"); String [] haos = hao.split("and"); for(int i = 0; i<structs.length; i++){ insert(structs[i].trim(), i<haos.length? haos[i].trim() : "xxx"); } } }catch(Exception e){ LOGGER.error("", e); } } private void insert(String structure, String hao) { try{ Statement stmt = conn.createStatement(); String q = "select structure, hao from "+this.targettable+" where structure='"+structure+"'"; ResultSet rs = stmt.executeQuery(q); if(rs.next()){ String hao1 = rs.getString("hao").trim(); if(hao1.indexOf(hao)<0){ stmt.execute("update "+this.targettable+" set hao='"+hao+","+hao1+"' where structure='"+structure+"'"); } }else{ stmt.execute("insert into "+this.targettable+"(structure, hao) values ('"+structure+"','"+hao+"')"); } }catch(Exception e){ LOGGER.error("", e); } } /** * @param args */ public static void main(String[] args) { String source = "anstructure2hao_original"; String target = "anstructure2hao_checked"; String database = "ontologymapping"; OntologyMappingChecker4Ant omca = new OntologyMappingChecker4Ant(source, target, database); omca.normalize(); } }