package edu.unc.ils.mrc.hive.converter.tgn; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class TGNReader { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { TGNThesaurus thesaurus = new TGNThesaurus(); /* * Pref Labels and Alternative Labels */ File file = new File("/home/hive/TGN/TERM.out"); FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis); BufferedReader br = new BufferedReader(isr); String line = br.readLine(); while (line != null) { String[] elements = line.split("\t"); String key = elements[10]; if (elements[7].equals("P") && thesaurus.contains(key)) { TGNRecord record = thesaurus.getRecord(key); record.setPreferredTerm(elements[11]); } else if (elements[7].equals("V") && thesaurus.contains(key)) { TGNRecord record = thesaurus.getRecord(key); record.setAltTerm(elements[11]); } else if (elements[7].equals("P") && !thesaurus.contains(key)) { TGNRecord record = new TGNRecord(key); record.setPreferredTerm(elements[11]); thesaurus.setRecord(record); } else if (elements[7].equals("V") && !thesaurus.contains(key)) { TGNRecord record = new TGNRecord(key); record.setAltTerm(elements[11]); thesaurus.setRecord(record); } line = br.readLine(); } br.close(); isr.close(); fis.close(); /* * Scope Notes */ File fileS= new File("/home/hive/TGN/SUBJECT.out"); FileInputStream fisS = new FileInputStream(fileS); InputStreamReader isrS = new InputStreamReader(fisS); BufferedReader brS = new BufferedReader(isrS); line = brS.readLine(); while (line != null) { String[] elements = line.split("\t"); String key = elements[8]; TGNRecord r = thesaurus.getRecord(key); r.setScopeNote(elements[5]); line = brS.readLine(); } brS.close(); isrS.close(); fisS.close(); /* * Hierarchical Relationships */ File fileH= new File("/home/hive/TGN/SUBJECT_RELS.out"); FileInputStream fisH = new FileInputStream(fileH); InputStreamReader isrH = new InputStreamReader(fisH); BufferedReader brH = new BufferedReader(isrH); line = brH.readLine(); while (line != null) { String[] elements = line.split("\t"); String parentKey = elements[6]; String childKey = elements[7]; TGNRecord parent = thesaurus.getRecord(parentKey); TGNRecord child = thesaurus.getRecord(childKey); parent.setNarrowerTerms(childKey); child.setBroderTerms(parentKey); line = brH.readLine(); } brH.close(); isrH.close(); fisH.close(); /* * Related Terms */ File fileR = new File("/home/hive/TGN/ASSOCIATIVE_RELS.out"); FileInputStream fisR = new FileInputStream(fileR); InputStreamReader isrR = new InputStreamReader(fisR); BufferedReader brR = new BufferedReader(isrR); line = brR.readLine(); while (line != null) { String[] elements = line.split("\t"); String aKey = elements[5]; String bKey = elements[6]; TGNRecord record = thesaurus.getRecord(aKey); record.setRelatedTerms(bKey); line = brR.readLine(); } brR.close(); isrR.close(); fisR.close(); /* * Print in standard output */ // for (String s : thesaurus.getKeySet()) { // TGNRecord re = thesaurus.getRecord(s); // if (re.getRelatedTerms().size() > 0) { // System.out.println("URI: " + re.getUri()); // System.out.println("PREFERRED TERM: " + re.getPreferredTerm()); // System.out.println("\t ALTERNATIVE TERM: " // + re.getAltTerm().toString()); // System.out.println("\t BROADER TERMS: " // + re.getBroderTerms().toString()); // System.out.println("\t NARROWER TERMS: " // + re.getNarrowerTerms().toString()); // System.out.println("\t RELATED TERMS: " // + re.getRelatedTerms().toString()); // System.out.println("\t SCOPE NOTE: " + re.getScopeNote()); // } // } thesaurus.printSKOSThesaurus("/home/hive/tgn.rdf"); } }