Frequently asked questions#
Q. What's the problem with the HTML visualization of the CEV plugin? It just won't work.
A. The CEV HTML plugin depends on the XPCom plugin and the XULRunner plugin that both cause often problems. In some configurations the plugins in the installation instruction should be replaced by different versions. If you are developing the TextMarker system itself, then the mozilla inferfaces are often hidden in the XPCom plugin in the dependencies. The fastest way to solve this problem is to create a fetcher plugin in your workspace only containing the Mozilla interfaces (and of course exporting the packages and changing the dependencies in the CEV HTML plugin to the new XPCom plugin). The CEV plugin and its plain text tab should work just fine.
Q. How can I use my TextMarker rules outside of Eclipse?
A. The TextMarker system is completely built upon UIMA. If you execute a TextMarker script using the TextMarker Eclipse plugins, the workbench simply loads and creates an analysis engine using the generated descriptor in the descriptor folder (and package folder). Therefore, in order to use your TextMarker rules outside of Eclipse, all you need to do is to add the TextMarker classes/jars to your classpath and proceed as usual within the UIMA framework.
There are two projects needed to run the TextMarker analysis engine:
de.uniwue.dltk.textmarker.antlr: This project is simply provides the necessary AntLR classes for parsing the TextMarker rules. AntLR 3.1.3 is required. de.uniwue.tm.textmarker.engine: This project contains the implementation of the generic TextMarker analysis engine and of course all classes for the interpretation and execution of the TextMarker rules.
Both projects are Eclipse plugin projects, but you can always add them to non Eclipse applications.
The following code snippet demonstrates a simple way to use a TextMarker analysis engine:
File specFile = new File("pathToMyWorkspace/MyProject/descriptor/my/package/MyScriptEngine.xml"); XMLInputSource in = new XMLInputSource(specFile); ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in); // for import by name... set the datapath in the ResourceManager AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier); CAS cas = ae.newCAS(); cas.setDocumentText("This is my document."); ae.process(cas); // do something with the cas object...
Q. My rules are distributed in different rule files. After changing something in a rule file, my main rule file that calls the changed rule file is broken and can't be executed. What went wrong?
A. If the builder resolves the imported type system when creating the descriptors, then the type system of the main rule file will not be updated when a new type is added to the changed rule file. The simplest way to solve this problem is to clean your TextMarker project and rebuild all rule files (Menu->Project->Clean...)