I want to use https://code.google.com/p/heideltime/ in a java project. This code "fits into the UIMA pipeline", which I donโt understand at all. UIMA looks like it is designed to solve many problems that I donโt have, so I would like to get the minimum amount of UIMA needed to run this code.
Is there a simple example of how I can run a simple UIMA program?
I added
<dependency> <groupId>org.uimafit</groupId> <artifactId>uimafit</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.uima</groupId> <artifactId>uimaj-core</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.uima</groupId> <artifactId>uimaj-tools</artifactId> <version>2.4.0</version> </dependency>
for my pom.xml, but for some reason maven still won't compile this:
import org.apache.uima.jcas.JCas; import org.apache.uima.util.Level; import org.uimafit.component.JCasAnnotator_ImplBase; import org.uimafit.descriptor.ConfigurationParameter; import org.uimafit.descriptor.TypeCapability; import org.uimafit.examples.tutorial.type.RoomNumber; public class RoomNumberAnnotatorPipeline { public static void main(String[] args) throws Exception { String text = "The meeting was moved from Yorktown 01-144 to Hawthorne 1S-W33."; TypeSystemDescription tsd = createTypeSystemDescription( "org.uimafit.examples.tutorial.type.RoomNumber"); JCas jCas = createJCas(tsd);

Are UIMA dependencies more significant than a typical java library? Is it not enough to just pull out UIMA from Maven Central and start using their classes in my existing code?
ok, I somehow got this work example (I have no idea what it is, and I'm still confused why it didn't work before). I still cannot use heideltime:
package org.ryan; import static org.uimafit.factory.AnalysisEngineFactory.createPrimitive; import static org.uimafit.factory.JCasFactory.createJCas; import static org.uimafit.factory.TypeSystemDescriptionFactory.createTypeSystemDescription; import static org.uimafit.util.JCasUtil.select; import org.apache.uima.UIMAException; import org.apache.uima.analysis_engine.AnalysisEngine; import org.apache.uima.jcas.JCas; import org.apache.uima.resource.metadata.TypeSystemDescription; import org.uimafit.examples.tutorial.ex1.RoomNumberAnnotator; import org.uimafit.examples.tutorial.type.RoomNumber; public class UIMAWTF { public static void main( String[] args ) throws UIMAException { String text = "The meeting was moved from Yorktown 01-144 to Hawthorne 1S-W33. Today is May 5, 2013."; TypeSystemDescription tsd = createTypeSystemDescription("org.uimafit.examples.tutorial.type.RoomNumber"); JCas jCas = createJCas(tsd); jCas.setDocumentText(text); AnalysisEngine analysisEngine = createPrimitive(RoomNumberAnnotator.class, tsd); analysisEngine.process(jCas); for (RoomNumber roomNumber : select(jCas, RoomNumber.class)) { System.out.println(roomNumber.getCoveredText() + "\tbuilding = " + roomNumber.getBuilding()); } } }
edit Now try:
HeidelTimeStandalone hts_sci = new HeidelTimeStandalone(Language.ENGLISH, DocumentType.NEWS, OutputType.TIMEML);//, configPath); dates = hts_sci.process("19-Nov-2013", new Date(2012,01,05), new TimeMLResultFormatter()); System.out.println(dates);
Receiving:
Jul 3, 2013 2:02:41 PM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize INFO: HeidelTimeStandalone initialized with language english Jul 3, 2013 2:02:41 PM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone readConfigFile INFO: trying to read in file config.props java.lang.NullPointerException at java.io.Reader.<init>(Reader.java:61) at java.io.InputStreamReader.<init>(InputStreamReader.java:55) at de.unihd.dbs.uima.annotator.heideltime.resources.GenericResourceManager.readResourcesFromDirectory(GenericResourceManager.java:45) at de.unihd.dbs.uima.annotator.heideltime.resources.NormalizationManager.<init>(NormalizationManager.java:58) at de.unihd.dbs.uima.annotator.heideltime.resources.NormalizationManager.getInstance(NormalizationManager.java:73) at de.unihd.dbs.uima.annotator.heideltime.HeidelTime.initialize(HeidelTime.java:143) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.initialize(HeidelTimeStandalone.java:153) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.<init>(HeidelTimeStandalone.java:128) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.<init>(HeidelTimeStandalone.java:112) at com.hrl.issl.osi.date.LocalHeidelTime.main(LocalHeidelTime.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297) at java.lang.Thread.run(Thread.java:662) Jul 3, 2013 2:02:41 PM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize WARNING: HeidelTime could not be initialized java.lang.NullPointerException at org.apache.uima.util.XMLInputSource.<init>(XMLInputSource.java:118) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.initialize(HeidelTimeStandalone.java:163) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.<init>(HeidelTimeStandalone.java:128) at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.<init>(HeidelTimeStandalone.java:112) at com.hrl.issl.osi.date.LocalHeidelTime.main(LocalHeidelTime.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297) at java.lang.Thread.run(Thread.java:662) Jul 3, 2013 2:02:41 PM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize WARNING: JCas factory could not be initialized