001    /***************************************************************************/
002    /*  Copyright (C) 2010-2011, Sebastian Hellmann                            */
003    /*  Note: If you need parts of NLP2RDF in another licence due to licence   */
004    /*  incompatibility, please mail hellmann@informatik.uni-leipzig.de        */
005    /*                                                                         */
006    /*  This file is part of NLP2RDF.                                          */
007    /*                                                                         */
008    /*  NLP2RDF is free software; you can redistribute it and/or modify        */
009    /*  it under the terms of the GNU General Public License as published by   */
010    /*  the Free Software Foundation; either version 3 of the License, or      */
011    /*  (at your option) any later version.                                    */
012    /*                                                                         */
013    /*  NLP2RDF is distributed in the hope that it will be useful,             */
014    /*  but WITHOUT ANY WARRANTY; without even the implied warranty of         */
015    /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the           */
016    /*  GNU General Public License for more details.                           */
017    /*                                                                         */
018    /*  You should have received a copy of the GNU General Public License      */
019    /*  along with this program. If not, see <http://www.gnu.org/licenses/>.   */
020    /***************************************************************************/
021    
022    package org.nlp2rdf.implementation.opennlp;
023    
024    import com.hp.hpl.jena.ontology.OntModel;
025    import org.nlp2rdf.core.ErrorHandling;
026    import org.nlp2rdf.core.URIGenerator;
027    import org.nlp2rdf.core.util.URIGeneratorHelper;
028    import org.nlp2rdf.ontology.ClasspathLoader;
029    import org.nlp2rdf.ontology.olia.OLiAManager;
030    import org.nlp2rdf.webservice.NIFParameters;
031    import org.nlp2rdf.webservice.NIFServlet;
032    
033    /**
034     */
035    public class NIFOpenNLP extends NIFServlet {
036        private final OpenNLPWrapper openNLPWrapper;
037    
038        public NIFOpenNLP() {
039            this.openNLPWrapper = new OpenNLPWrapper(new OLiAManager(new ClasspathLoader()));
040        }
041    
042        @Override
043        public void execute(NIFParameters nifParameters, OntModel model) throws Exception {
044            if (nifParameters.inputWasText()) {
045                URIGenerator uriGenerator = URIGeneratorHelper.determineGenerator(nifParameters.getUriRecipe(), nifParameters.getContextLength());
046                openNLPWrapper.processText(nifParameters.getPrefix(), nifParameters.getInputAsText(), uriGenerator, model);
047            } else if (nifParameters.inputWasRDF()) {
048                ErrorHandling.createError(true, nifParameters.getPrefix(), "rdf as input is not implemented yet", model);
049            } else {
050                ErrorHandling.createError(true, nifParameters.getPrefix(), "Could not determine whether input was text or rdf", model);
051            }
052    
053    
054        }
055    }
056