001 /*
002 * Represents the Propbank itself, and reads in the file prop-all.idx.
003 */
004
005 package edu.upenn.cis.propbank_shen;
006
007 import java.io.*;
008 import java.util.*;
009
010 /**
011 * This class encapsulates the actual Propbank annotation file as modified
012 * by Libin Shen.
013 *
014 * @author Lucas Champollion
015 */
016 public class Propbank extends HashMap {
017
018
019 /**
020 * Creates a new instance of Propbank, using the default location
021 * as indicated in (@link PBConfig}.
022 */
023 public Propbank() {
024
025 this(PBConfig.PropBankFile());
026
027 }
028
029 /**
030 * Creates a new instance of Propbank from the file location indicated
031 * (e.g. <code>"/usr/local/propbank/prop-all.idx"</code>).
032 * @param location a path to Libin Shen's Propbank file
033 */
034 public Propbank(String location) {
035 try {
036
037 BufferedReader br = new BufferedReader(new FileReader(location));
038
039 String s;
040 Annotation current;
041 PASLoc currentLocation;
042 System.out.print("Reading in Propbank...");
043 int counter=0;
044 while (br.ready()) {
045 counter++;
046 s = br.readLine();
047 current = new Annotation(s);
048 currentLocation = current.getPASLoc();
049 this.put(currentLocation, current);
050 }
051 System.out.println("done. ("+counter+" entries)");
052 } catch (FileNotFoundException ex) {
053 ex.printStackTrace();
054 } catch (IOException ex) {
055 ex.printStackTrace();
056 } catch (CorruptDataException ex) {
057 ex.printStackTrace();
058 }
059
060 if (this.isEmpty()) throw new RuntimeException();
061
062 }
063
064 }