UmlsSTYList.java :  » Natural-Language-Processing » Dragon-Toolkit » dragon » nlp » ontology » umls » Java Open Source

Java Open Source » Natural Language Processing » Dragon Toolkit 
Dragon Toolkit » dragon » nlp » ontology » umls » UmlsSTYList.java
package dragon.nlp.ontology.umls;

import dragon.util.SortedArray;
import dragon.util.FileUtil;
import java.sql.*;
import java.util.*;
import java.io.*;

/**
 * <p>List for storing UMLS semantic semantic types</p>
 * <p> </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: IST, Drexel University</p>
 * @author Davis Zhou
 * @version 1.0
 */

public class UmlsSTYList extends SortedArray {
  private static final long serialVersionUID = 1L;

  public static void main(String[] args){
        UmlsSTYList list;

        list=new UmlsSTYList("sir/semantictype.list");
        System.out.println(list.lookup("T028").getDescription());
    }

    public UmlsSTYList(String styFile) {
        loadSTYList(styFile);
    }

    public UmlsSTYList(Connection con) {
        loadSTYList(con);
    }


    public UmlsSTY styAt(int index){
        return (UmlsSTY)get(index);
    }

    public UmlsSTY lookup(String tui){
        int pos;

        pos=binarySearch(new UmlsSTY(0,tui,null,null,false));
        if(pos<0)
            return null;
        else
            return (UmlsSTY)get(pos);
    }

    public UmlsSTY lookup(UmlsSTY tui){
        int pos;

        pos=binarySearch(tui);
        if(pos<0)
            return null;
        else
            return (UmlsSTY)get(pos);
    }

    private boolean loadSTYList(String filename){
        BufferedReader br;
        String line;
        String[] arrField;
        int i, total;
        boolean isRelation;
        ArrayList list;
        UmlsSTY cur;

        try{
            br=FileUtil.getTextReader(filename);
            line=br.readLine();
            total=Integer.parseInt(line);
            list=new ArrayList(total);

            for(i=0;i<total;i++){
                line=br.readLine();
                arrField=line.split("\t");
                if(arrField[0].equals("STY"))
                    isRelation=false;
                else
                    isRelation=true;
                cur=new UmlsSTY(i,arrField[1],arrField[2],arrField[3],isRelation);
                list.add(cur);
            }
            br.close();
            Collections.sort(list);
            this.addAll(list);
            return true;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return false;
        }
    }

    public boolean loadSTYList(Connection con){
        String sql;
        Statement st;
        ResultSet rs;
        ArrayList list;
        UmlsSTY cur;
        int count;
        boolean isRelation;

        try{
            sql="select RT, UI, STYRL,STNRTN from SRDEF";
            st=con.createStatement();
            rs=st.executeQuery(sql);
            count=0;
            list=new ArrayList();

            while(rs.next())
            {
                if(rs.getString("RT").equalsIgnoreCase("STY"))
                    isRelation=false;
                else
                    isRelation=true;
                cur=new UmlsSTY(count,rs.getString("UI"),rs.getString("STYRL"),rs.getString("STNRTN"),isRelation);
                list.add(cur);
            }
            rs.close();
            st.close();
            Collections.sort(list);
            this.addAll(list);
            return true;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return false;
        }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.