You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by to...@apache.org on 2010/02/14 15:36:56 UTC

svn commit: r910013 - in /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org: ./ apache/ apache/clerezza/ apache/clerezza/uima/ apache/clerezza/uima/utils/

Author: tommaso
Date: Sun Feb 14 14:36:55 2010
New Revision: 910013

URL: http://svn.apache.org/viewvc?rev=910013&view=rev
Log:
[CLEREZZA-124] - add AnalysisEngineProvider and UIMAExecutor to utilities

Added:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAExecutor.java

Added: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java?rev=910013&view=auto
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java (added)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/AEProvider.java Sun Feb 14 14:36:55 2010
@@ -0,0 +1,47 @@
+package org.apache.clerezza.uima.utils;
+
+
+import java.net.URL;
+
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.util.XMLInputSource;
+
+/**
+ * provide the AnalysisEngine using the default descriptor or using a custom descriptor (absolute)
+ * path
+ *
+ * @author tommaso
+ *
+ */
+public class AEProvider {
+
+  private static final String defaultXMLPath = "ExtServicesAE.xml";
+
+  public String getDefaultXMLPath() {
+    return defaultXMLPath;
+  }
+
+  public AnalysisEngine getDefaultAE() throws ResourceInitializationException {
+    return getAE(defaultXMLPath);    
+  }
+
+  public AnalysisEngine getAE(String filePath) throws ResourceInitializationException {
+    AnalysisEngine ae = null;
+    // get Resource Specifier from XML file
+    try {
+      URL url = this.getClass().getClassLoader().getResource(filePath);
+      XMLInputSource in = new XMLInputSource(url);
+      ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+
+      // create AE here
+      ae = UIMAFramework.produceAnalysisEngine(specifier);
+    } catch (Exception e) {
+      throw new ResourceInitializationException(e);
+    }
+
+    return ae;
+  }
+}
\ No newline at end of file

Added: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAExecutor.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAExecutor.java?rev=910013&view=auto
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAExecutor.java (added)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.uima/org.apache.clerezza.uima.utils/src/main/java/org/apache/clerezza/uima/utils/UIMAExecutor.java Sun Feb 14 14:36:55 2010
@@ -0,0 +1,51 @@
+package org.apache.clerezza.uima.utils;
+
+
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.jcas.JCas;
+import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.util.ProcessTrace;
+import org.apache.uima.util.ProcessTraceEvent;
+
+/**
+ * Executes a UIMA pipeline
+ *
+ * @author tommaso
+ *
+ */
+public class UIMAExecutor {
+
+  private transient final AEProvider aeProvider = new AEProvider();
+
+  public void analyzeDocument(String doc) throws AnalysisEngineProcessException {
+    analyzeDocument(doc, aeProvider.getDefaultXMLPath());
+  }
+
+  public void analyzeDocument(String doc, String xmlPath) throws AnalysisEngineProcessException {
+    try {
+      this.executeAE(aeProvider.getAE(xmlPath), doc);
+    } catch (ResourceInitializationException e) {
+      throw new AnalysisEngineProcessException(e);
+    }
+  }
+
+  private void executeAE(AnalysisEngine ae, String docText) throws AnalysisEngineProcessException {
+    try {
+      // create a JCas, given an Analysis Engine (ae)
+      JCas jcas = ae.newJCas();
+
+      // analyze a document
+      jcas.setDocumentText(docText);
+      ProcessTrace pt = ae.process(jcas);
+
+      //TODO debug results
+     
+      jcas.reset();
+    } catch (Exception e) {
+      throw new AnalysisEngineProcessException(e);
+    }
+
+  }
+
+}