You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2013/03/26 11:29:16 UTC
svn commit: r1461050 - in /uima/sandbox/textmarker/trunk:
textmarker-core/src/main/java/org/apache/uima/textmarker/engine/
textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/
textmarker-core/src/test/java/org/apache/uima/textmarker/en...
Author: pkluegl
Date: Tue Mar 26 10:29:16 2013
New Revision: 1461050
URL: http://svn.apache.org/r1461050
Log:
UIMA-2745
- added TextMarker.apply(CAS, String)
- added mention in documentation
- added test
- renamed file due to typo
Added:
uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java
uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/TypePriorities.xml
- copied unchanged from r1442746, uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/TypePrioritites.xml
uima/sandbox/textmarker/trunk/textmarker-core/src/test/java/org/apache/uima/textmarker/engine/TextMarkerTest.java
uima/sandbox/textmarker/trunk/textmarker-core/src/test/resources/org/apache/uima/textmarker/TypePriorities.xml
Removed:
uima/sandbox/textmarker/trunk/textmarker-core/src/main/resources/org/apache/uima/textmarker/engine/TypePrioritites.xml
Modified:
uima/sandbox/textmarker/trunk/textmarker-docbook/src/docbook/tools.textmarker.overview.xml
Added: uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java?rev=1461050&view=auto
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java (added)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/main/java/org/apache/uima/textmarker/engine/TextMarker.java Tue Mar 26 10:29:16 2013
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.textmarker.engine;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineDescription;
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.resource.ResourceConfigurationException;
+import org.apache.uima.resource.ResourceInitializationException;
+import org.apache.uima.resource.ResourceManager;
+import org.apache.uima.resource.ResourceSpecifier;
+import org.apache.uima.util.FileUtils;
+import org.apache.uima.util.InvalidXMLException;
+import org.apache.uima.util.XMLInputSource;
+
+public class TextMarker {
+
+ public static void apply(CAS cas, String script) throws IOException, InvalidXMLException,
+ ResourceInitializationException, ResourceConfigurationException,
+ AnalysisEngineProcessException {
+ URL aedesc = TextMarkerEngine.class.getResource("BasicEngine.xml");
+ XMLInputSource inae = new XMLInputSource(aedesc);
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(inae);
+ ResourceManager resMgr = UIMAFramework.newDefaultResourceManager();
+ AnalysisEngineDescription aed = (AnalysisEngineDescription) specifier;
+
+// TypeSystemDescription basicTypeSystem = aed.getAnalysisEngineMetaData().getTypeSystem();
+// Collection<TypeSystemDescription> tsds = new ArrayList<TypeSystemDescription>();
+// tsds.add(basicTypeSystem);
+// TypeSystemDescription mergeTypeSystems = CasCreationUtils.mergeTypeSystems(tsds);
+// aed.getAnalysisEngineMetaData().setTypeSystem(mergeTypeSystems);
+// aed.resolveImports(resMgr);
+
+ AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(aed, resMgr, null);
+ File scriptFile = File.createTempFile("TextMarker", ".tm");
+ scriptFile.deleteOnExit();
+ if (!script.startsWith("PACKAGE")) {
+ script = "PACKAGE org.apache.uima.textmarker;\n" + script;
+ }
+ FileUtils.saveString2File(script, scriptFile);
+ ae.setConfigParameterValue(TextMarkerEngine.SCRIPT_PATHS, new String[] { scriptFile
+ .getParentFile().getAbsolutePath() });
+ String name = scriptFile.getName().substring(0, scriptFile.getName().length() - 3);
+ ae.setConfigParameterValue(TextMarkerEngine.MAIN_SCRIPT, name);
+ ae.reconfigure();
+ ae.process(cas);
+ scriptFile.delete();
+ ae.destroy();
+ }
+
+}
Added: uima/sandbox/textmarker/trunk/textmarker-core/src/test/java/org/apache/uima/textmarker/engine/TextMarkerTest.java
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/test/java/org/apache/uima/textmarker/engine/TextMarkerTest.java?rev=1461050&view=auto
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/test/java/org/apache/uima/textmarker/engine/TextMarkerTest.java (added)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/test/java/org/apache/uima/textmarker/engine/TextMarkerTest.java Tue Mar 26 10:29:16 2013
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.textmarker.engine;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URL;
+
+import org.apache.uima.UIMAFramework;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.FSIterator;
+import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.resource.metadata.FsIndexDescription;
+import org.apache.uima.resource.metadata.TypePriorities;
+import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.textmarker.TextMarkerTestUtils;
+import org.apache.uima.util.CasCreationUtils;
+import org.apache.uima.util.XMLInputSource;
+import org.junit.Test;
+
+public class TextMarkerTest {
+
+ @Test
+ public void test() throws Exception {
+ URL typePrioritiesUrl = TextMarkerTestUtils.class.getResource("TypePriorities.xml");
+ URL tsUrl = TextMarkerTestUtils.class.getResource("BasicTypeSystem.xml");
+ Object descriptor = UIMAFramework.getXMLParser().parse(new XMLInputSource(tsUrl));
+ TypeSystemDescription tsDesc = (TypeSystemDescription) descriptor;
+ tsDesc.addType("uima.textmarker.T1", "", "uima.tcas.Annotation");
+ tsDesc.addType("uima.textmarker.T2", "", "uima.tcas.Annotation");
+ tsDesc.addType("uima.textmarker.T3", "", "uima.tcas.Annotation");
+ tsDesc.resolveImports();
+ TypePriorities typePriorities = UIMAFramework.getXMLParser().parseTypePriorities(new XMLInputSource(typePrioritiesUrl));
+ CAS cas = CasCreationUtils.createCas(tsDesc, typePriorities, new FsIndexDescription[0]);
+
+ cas.setDocumentText("Some document.");
+
+ TextMarker.apply(cas, "CW{-> MARK(T1)} SW;");
+ AnnotationIndex<AnnotationFS> ai = null;
+ FSIterator<AnnotationFS> iterator = null;
+ ai = cas.getAnnotationIndex(cas.getTypeSystem().getType("uima.textmarker.T1"));
+ iterator = ai.iterator();
+ assertEquals(1, ai.size());
+ assertEquals("Some", iterator.next().getCoveredText());
+
+ TextMarker.apply(cas, "T1 SW{-> MARK(T2)};");
+ ai = cas.getAnnotationIndex(cas.getTypeSystem().getType("uima.textmarker.T2"));
+ iterator = ai.iterator();
+ assertEquals(1, ai.size());
+ assertEquals("document", iterator.next().getCoveredText());
+
+ TextMarker.apply(cas, "T1{-> MARK(T3,1,2,3)} T2 PERIOD;");
+ ai = cas.getAnnotationIndex(cas.getTypeSystem().getType("uima.textmarker.T3"));
+ iterator = ai.iterator();
+ assertEquals(1, ai.size());
+ assertEquals("Some document.", iterator.next().getCoveredText());
+
+
+ cas.release();
+ }
+}
Added: uima/sandbox/textmarker/trunk/textmarker-core/src/test/resources/org/apache/uima/textmarker/TypePriorities.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-core/src/test/resources/org/apache/uima/textmarker/TypePriorities.xml?rev=1461050&view=auto
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-core/src/test/resources/org/apache/uima/textmarker/TypePriorities.xml (added)
+++ uima/sandbox/textmarker/trunk/textmarker-core/src/test/resources/org/apache/uima/textmarker/TypePriorities.xml Tue Mar 26 10:29:16 2013
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<typePriorities xmlns="http://uima.apache.org/resourceSpecifier">
+<name>TypePrioritites</name>
+<description></description>
+<version>1.0</version>
+<vendor></vendor>
+
+ <priorityList>
+ <type>org.apache.uima.textmarker.type.TextMarkerFrame</type>
+ <type>uima.tcas.Annotation</type>
+ <type>org.apache.uima.textmarker.type.TextMarkerBasic</type>
+ </priorityList>
+
+
+</typePriorities>
+
Modified: uima/sandbox/textmarker/trunk/textmarker-docbook/src/docbook/tools.textmarker.overview.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/textmarker/trunk/textmarker-docbook/src/docbook/tools.textmarker.overview.xml?rev=1461050&r1=1461049&r2=1461050&view=diff
==============================================================================
--- uima/sandbox/textmarker/trunk/textmarker-docbook/src/docbook/tools.textmarker.overview.xml (original)
+++ uima/sandbox/textmarker/trunk/textmarker-docbook/src/docbook/tools.textmarker.overview.xml Tue Mar 26 10:29:16 2013
@@ -591,7 +591,11 @@ ae.reconfigure();
CAS cas = ae.newCAS();
cas.setDocumentText("This is my document.");
ae.process(cas);]]></programlisting>
-
+ <para>
+ There is also a convenience implementation for applying simple scripts, which do not introduce new types. The following java code
+ applies a simple rule <quote>T1 SW{-> MARK(T2)};</quote> on the given CAS. Note that the types need to be already defined in the type system of the CAS.
+ </para>
+ <programlisting><![CDATA[TextMarker.apply(cas, "T1 SW{-> MARK(T2)};");]]></programlisting>
</section>
<section id="ugr.tools.tm.ae.basic.parameter">
<title>Configuration Parameters</title>