package shef.nlp.supple.prolog; import java.io.File; import gate.creole.ExecutionException; /** * This abstract class allows for the easy changing of the * Prolog implementation being used to host the parser. * If you wish to use a different Prolog implementation * than those we support simply extend this class so as to * communicate with the Prolog system of your choice. **/ public abstract class Prolog { /** * Allows for the parser to be initialized from a file. * This is called by GATE passing the user specified file. * The file could by the compiled parser or a config file * which you then use to find the parser code etc. Really * the choice of how you init Prolog and load the parser * is up to you. * @param f the parser file used to init the parser. * @return true of the parser is correctly initialised, * false otherwise **/ public boolean init(File f) { return true; } /** * This method should simply pass the input file to the * parser, parse the text storring the result in the * output file. * @param in the file containing the initial chart which * the parser will run over. * @param out the file containing the output of the parser. * @param debugMode whether the parser should output * debugging information. * @throws ExecutionException if a problem occurs during parsing. **/ public abstract void parse(File in, File out, boolean debugMode) throws ExecutionException; }