package org.gcube.data.analysis.nlphub.nlp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.log4j.Logger; import org.gcube.data.analysis.nlphub.legacy.Constants; import org.gcube.data.analysis.nlphub.legacy.JsonManager; import org.gcube.data.analysis.nlphub.legacy.NlpHubException; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.xml.sax.InputSource; public class NLpLanguageRecognizer { private HttpServletResponse response; private Logger logger = Logger.getLogger(NLpLanguageRecognizer.class.getSimpleName()); private String sentence, publicLink; public final static String RECOGNIZER_ID = "org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.LANGUAGE_RECOGNIZER"; private String dataMiner = null; public NLpLanguageRecognizer(String service, String token, String sentence) { this.sentence = sentence; response = null; } public NLpLanguageRecognizer(String dataMiner, String service, String token, String sentence, String publicLink, HttpServletResponse response) { this.sentence = sentence; this.response = response; this.publicLink = publicLink; this.dataMiner = dataMiner; } public static void run(String dataMiner, String sentence, String token, String publicLink, HttpServletResponse response) throws NlpHubException { try { if(dataMiner == null) dataMiner = Constants.DATAMINER_URL; else dataMiner = "http://" + dataMiner; String urlService = dataMiner + "/wps/WebProcessingService?request=Execute&service=WPS&Version=1.0.0"; urlService += "&gcube-token=" + token; urlService += "&lang=en-US"; urlService += "&Identifier=" + RECOGNIZER_ID; urlService += "&DataInputs=sentence=" + URLEncoder.encode(sentence, "UTF-8"); URL url = new URL(urlService); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //connection.setRequestProperty(Constants.TOKEN_PARAMETER, super.getToken()); connection.setDoInput(true); connection.setDoOutput(true); connection.setUseCaches(false); connection.setRequestMethod("GET"); BufferedReader r = new BufferedReader(new InputStreamReader(connection.getInputStream())); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(r)); doc.getDocumentElement().normalize(); NodeList nListData = doc.getElementsByTagName("d4science:Data"); NodeList nListDesc = doc.getElementsByTagName("d4science:Description"); int len = nListData.getLength(); for(int i=0; i