001    package org.maltparser.parser;
002    
003    import org.maltparser.core.exception.MaltChainedException;
004    import org.maltparser.core.syntaxgraph.DependencyStructure;
005    import org.maltparser.parser.guide.OracleGuide;
006    /**
007     * @author Johan Hall
008     *
009     */
010    public abstract class Trainer extends Algorithm {
011            /**
012             * Creates a parser trainer
013             * 
014             * @param manager a reference to the single malt configuration
015             * @throws MaltChainedException
016             */
017            public Trainer(DependencyParserConfig manager) throws MaltChainedException {
018                    super(manager);
019            }
020            
021            /**
022             * Trains a parser using the gold-standard dependency graph and returns a parsed dependency graph
023             * 
024             * @param goldDependencyGraph a old-standard dependency graph
025             * @param parseDependencyGraph a empty dependency graph
026             * @return a parsed dependency graph
027             * @throws MaltChainedException
028             */
029            public abstract DependencyStructure parse(DependencyStructure goldDependencyGraph, DependencyStructure parseDependencyGraph) throws MaltChainedException;
030            /**
031             * Returns the oracle guide.
032             * 
033             * @return the oracle guide.
034             */
035            public abstract OracleGuide getOracleGuide();
036            public abstract void train() throws MaltChainedException;
037            
038    }