You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by jo...@apache.org on 2009/07/24 10:58:55 UTC
svn commit: r797373 [1/8] - in /incubator/uima/sandbox/trunk/Lucas: ./
docbook/ docbook/LuceneCASConsumerUserGuide/
docbook/LuceneCASConsumerUserGuide/images/
src/main/java/org/apache/uima/lucas/consumer/
src/main/java/org/apache/uima/lucas/indexer/ sr...
Author: joern
Date: Fri Jul 24 08:58:52 2009
New Revision: 797373
URL: http://svn.apache.org/viewvc?rev=797373&view=rev
Log:
UIMA-1299
Added:
incubator/uima/sandbox/trunk/Lucas/build_documentation.xml
incubator/uima/sandbox/trunk/Lucas/docbook/
incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/
incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/LuceneCASConsumerUserGuide.xml
incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/images/
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/AnnotationTokenStreamBuildingException.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FieldBuildingException.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FilterBuildingException.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/IndexWriterProvider.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/IndexWriterProviderImpl.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/AdditionFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/AdditionFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/ConcatFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/ConcatFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/DefaultFilterFactoryRegistry.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/HypernymFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/HypernymFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/InvalidTokenSourceException.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/LowerCaseFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/PositionFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/ReplaceFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/SnowballFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/SplitterFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/StopwordFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/TokenFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/UniqueFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/UpperCaseFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/UpperCaseFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/AnnotationDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/AnnotationMapper.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/ElementMapper.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FeatureDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FeatureMapper.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FieldDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FieldMapper.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FilterDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/FilterMapper.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/Locateable.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/mapping/MappingFileReader.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/MapFileReaderFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/MultimapFileReaderFactory.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/PlainFileReaderFactory.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/DummyTokenFilterFactory.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/IndexWriterProviderImplTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/AdditionFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/AdditionFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/ConcatFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/ConcatFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/DefaultFilterFactoryRegistryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/HypernymFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/HypernymFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/LowerCaseFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/PositionFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/ReplaceFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/SnowballFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/SplitterFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/StopwordFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/UniqueFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/UppercaseFilterFactoryTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/UppercaseFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/mapping/
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/mapping/MappingFileReaderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/resources/IndexWriter.properties
incubator/uima/sandbox/trunk/Lucas/src/test/resources/MappingFileReaderTest.xml
Removed:
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/AnnotationDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FeatureDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FieldDescription.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/IndexMappingFileReader.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/AdditionTokenFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/HypernymTokenFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/UpperCaseTokenFilter.java
incubator/uima/sandbox/trunk/Lucas/src/site/
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/IndexMappingFileReaderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/AdditionTokenFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/HypernymTokenFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/UppercaseTokenFilterTest.java
Modified:
incubator/uima/sandbox/trunk/Lucas/pom.xml
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/consumer/LuceneCASIndexer.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/AnnotationTokenStreamBuilder.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/DocumentBuilder.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FieldBuilder.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/FilterBuilder.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/Tokenizer.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/AnnotationTokenStream.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/ReplaceFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/SplitterFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/TokenStreamConcatenator.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/TokenStreamMerger.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/analysis/UniqueFilter.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/MapFileReader.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/MultimapFileReader.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/PlainFileReader.java
incubator/uima/sandbox/trunk/Lucas/src/main/java/org/apache/uima/lucas/indexer/util/TokenStreamStringConcatenator.java
incubator/uima/sandbox/trunk/Lucas/src/main/resources/LuceneCASIndexer.xml
incubator/uima/sandbox/trunk/Lucas/src/main/resources/lucas.xsd
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/consumer/LuceneCASIndexerTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/AnnotationTokenStreamBuilderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/DocumentBuilderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/FieldBuilderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/FilterBuilderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/TokenizerTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/AnnotationTokenStreamTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/PositionFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/ReplaceFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/SplitterFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/TokenStreamConcatenatorTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/TokenStreamMergerTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/analysis/UniqueFilterTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/test/util/CollectionTokenStream.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/test/util/DummyTokenStream.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/test/util/MockCollectionReader.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/Annotation1.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/Annotation1_Type.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/FeatureStructure1.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/FeatureStructure1_Type.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/FeatureStructure2.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/types/test/FeatureStructure2_Type.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/util/MapFileReaderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/util/MultimapFileReaderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/util/PlainFileReaderTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/java/org/apache/uima/lucas/indexer/util/TokenStreamStringConcatenatorTest.java
incubator/uima/sandbox/trunk/Lucas/src/test/resources/AnnotationTokenStreamTestDummyCollectionReader.xml
incubator/uima/sandbox/trunk/Lucas/src/test/resources/AnnotationTokenStreamTestTypeSystem.xml
incubator/uima/sandbox/trunk/Lucas/src/test/resources/lucas.xml
incubator/uima/sandbox/trunk/Lucas/src/test/resources/lucas.xsd
Added: incubator/uima/sandbox/trunk/Lucas/build_documentation.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/Lucas/build_documentation.xml?rev=797373&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/Lucas/build_documentation.xml (added)
+++ incubator/uima/sandbox/trunk/Lucas/build_documentation.xml Fri Jul 24 08:58:52 2009
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<!-- set the basedir value to point to the top level of the project -->
+
+<project name="Apache UIMA Lucene CAS Consumer Documentation" default="all" basedir=".">
+
+ <property name="book_name" value="LuceneCASConsumerUserGuide"/>
+
+ <import file="${basedir}/../SandboxDocs/sandbox_build.xml"/>
+
+</project>
Added: incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/LuceneCASConsumerUserGuide.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/LuceneCASConsumerUserGuide.xml?rev=797373&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/LuceneCASConsumerUserGuide.xml (added)
+++ incubator/uima/sandbox/trunk/Lucas/docbook/LuceneCASConsumerUserGuide/LuceneCASConsumerUserGuide.xml Fri Jul 24 08:58:52 2009
@@ -0,0 +1,1479 @@
+<?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.
+-->
+
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY imgroot "./images/" >
+<!ENTITY % xinclude SYSTEM "../../../uima-docbook-tool/xinclude.mod">
+ %xinclude;
+]>
+
+<book lang="en">
+
+ <title>
+ Apache UIMA Lucene CAS Indexer Documentation
+ </title>
+
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+ href="../../../SandboxDocs/src/docbook/book_info.xml" />
+
+ <preface>
+ <title>Introduction</title>
+ <para>
+ The Lucene CAS Indexer (Lucas) is a UIMA CAS consumer that
+ stores CAS
+ data in a Lucene index. Lucas allows to exploit the results
+ of
+ collection
+ processing for information retrieval purposes in a fast
+ and flexible way.
+
+ The consumer transforms annotation objects from
+ annotation indexes into
+ Lucene token objects and creates token streams
+ from them. Token
+ streams can
+ be further processed by token filters
+ before they are stored into a
+ certain
+ field of a index document.
+
+ The
+ mapping between UIMA annotations and Lucene tokens and token
+ filtering is configurable
+ by a xml file, whereas the index writer is
+ configured by a properties
+ file.
+ </para>
+ <para>
+ To use Lucas, at first a mapping file must be created. You have
+ to
+ decide
+ which annotation types should be present in the index and
+ how
+ your
+ index layout should look like, or more precisely, which
+ fields
+ should
+ be
+ contained in the index. Optionally you can add token
+ filters
+ for
+ further
+ processing. Its also possible to deploy your own
+ token
+ filters.
+ </para>
+ <para>
+ Lucas can run in multiple deployment scenarios where different
+ instances share
+ one index writer. This shared index writer instance is
+ configured via a properties file
+ and managed by the resource manager.
+ </para>
+ </preface>
+
+ <chapter id="sandbox.luceneCasConsumer.mapping">
+ <title>Mapping Configuration</title>
+ <para>
+ This chapter discusses the mapping between UIMA annotations and Lucene tokens in detail.
+ </para>
+ <section id="sandbox.luceneCasConsumer.mapping.tokenSources">
+ <title>Token Sources</title>
+ <para>
+ The mapping file describes the structure and contents of the
+ generated Lucene index. Each CAS
+ in a collection is mapped to a
+ Lucene document. A Lucene document
+ consists of fields, whereas a CAS
+ contains multiple annotation
+ indexes on different sofas. An
+ annotation object can mark a text,
+ can hold feature values or
+ reference
+ other feature structures. For instance,
+ an annotation
+ created by an entity mapper
+ marks a text area and may
+ additionally
+ contain a identifier for the mapped entity.
+ For this reason Lucas
+ knows
+ three different
+ sources of Lucene token values:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The covered text of a annotation object.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ One or more feature values of a annotation object.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ One or more feature values of a feature structure directly
+ or
+ indirectly referenced
+ by an annotation object.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ If a feature has multiple values, that means it references a FSArray
+ instance, then one token is generated for each value. In the same
+ manner tokens are generated from each feature value, if more then
+ one
+ feature is provided. Alternatively, you can provide a
+ <emphasis>featureValueDelimiterString
+ </emphasis>
+ which is used to concatenate different feature values
+ from one
+ annotation object to generate only one token.
+ Each generated
+ Lucene
+ token has the same offset as the source annotation feature
+ structure.
+ </para>
+ <section id="sandbox.luceneCasConsumer.mapping.types.coveredText">
+ <title>Covered Text</title>
+ <para>
+ As mentioned before represents the covered text of annotation
+ objects one
+ possible source for Lucene token values. The following
+ example creates a
+ index with one
+ <emphasis>title</emphasis>
+ field which contains
+ covered texts from all
+ token annotations which
+ are stored in the
+ <emphasis>title</emphasis>
+ sofa.
+ <programlisting><![CDATA[<fields>
+ <field name=âtitleâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtitleâ type=âde.julielab.types.Tokenâ/>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.types.feature">
+ <title>Feature Values</title>
+ <para>
+ The feature values of annotation objects are another source
+ for
+ token values. Consider the example below.
+ <programlisting><![CDATA[<fields>
+ <field name=âcellsâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ The field
+ <emphasis>cells</emphasis>
+ contains a token stream generated from the
+ annotation index of type
+ <emphasis>de.julielab.types.Cell</emphasis>
+ . Each generated
+ token will contain the value of the feature
+ <emphasis>specificType</emphasis>
+ of the
+ enclosing
+ annotation object.
+ </para>
+ <para>
+ The next example illustrates how multiple feature values can be
+ combined by using a
+ <emphasis>featureValueDelimiterString
+ </emphasis>
+ . If no
+ <emphasis>featureValueDelimiterString
+ </emphasis>
+ is provided,
+ a single token is generated from
+ each feature value.
+ <programlisting><![CDATA[<fields>
+ <field name=âauthorsâ index=ânoâ stored="yes">
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Authorâ
+ featureValueDelimiterString=", ">
+ <features>
+ <feature name=âforenameâ/>
+ <feature name=âsurenameâ/>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.types.featureStructures">
+ <title>Feature Values of referenced Feature Structures
+ </title>
+ <para>
+ Since annotation objects may reference other feature
+ structures, it
+ may be desirable to use these feature structures as
+ source for
+ Lucene token values.
+ To achieve this, we utilize feature
+ paths to
+ address these feature structures.
+ Consider the example
+ below.
+ </para>
+
+ <beginpage />
+ <para>
+ <programlisting><![CDATA[<fields>
+ <field name=âcitiesâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Authorâ
+ featurePath="affiliation.address">
+ <features>
+ <feature name=âcityâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ </para>
+ <para>
+ The type
+ <emphasis>de.julielab.types.Author
+ </emphasis>
+ has a feature
+ <emphasis>affiliation</emphasis>
+ which points to a
+ <emphasis>affiliation</emphasis>
+ feature structure.
+ This
+ <emphasis>affiliation</emphasis>
+ feature structure in turn has a feature
+ <emphasis>address</emphasis>
+ which references a
+ <emphasis>address</emphasis>
+ feature structure. This
+ path of
+ references is expressed as
+ the feature
+ path
+ <emphasis>affiliation.address</emphasis>
+ .
+ A feature path consists of feature names
+ separated by a ".". Please
+ consider that the
+ <emphasis>city</emphasis>
+ feature is a feature of
+ the "address"
+ feature structure and not of
+ the
+ <emphasis>author</emphasis>
+ annotation object.
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.types.supportedFeatureTypes">
+ <title>Supported feature types
+ </title>
+ <para>
+ At the moment not all feature types are supported. Only this
+ feature types are
+ currently supported:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>String</para>
+ </listitem>
+ <listitem>
+ <para>String Array</para>
+ </listitem>
+ <listitem>
+ <para>Number Types: Double, Float, Long, Integer, Short
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ Consider that you need to provide a number format string if
+ you
+ want to use
+ number types.
+ </para>
+ </section>
+
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.alignment">
+ <title>Token Stream Alignment</title>
+ <para>
+ In the examples above all defined Lucene fields contain only one
+ annotation based
+ token stream. There are a couple of reasons for the
+ fact that the simple mapping
+ of each annotation index to separate
+ Lucene fields is not a optimal
+ strategy.
+ One practical reason is that
+ the lucene highlighting will not work for
+ scenarios
+ where more than
+ one annotation type are involved.
+ Additionally, the tf-idf weighting
+ of terms does not work probably
+ if
+ annotations are separated from real
+ text.
+ Lucas is able to merge token streams and align them according
+ to their
+ token offsets.
+ The resulting merged token stream is then
+ stored in a
+ field.
+ The next example demonstrates this merging feature.
+ <programlisting><![CDATA[<fields>
+ <field name=âtextâ index=âyesâ merge=âtrueâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Tokenâ/>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ Consider the merge attribute of the field tag. It causes the
+ alignment of the two
+ token streams generated from the
+ <emphasis>de.julielab.types.Token</emphasis>
+ and
+ <emphasis>de.julielab.types.Cell</emphasis>
+ annotations. If
+ this
+ attribute is set
+ to false or it is left, then the
+ annotation
+ token
+ streams were concatenated.
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.tokenfilters">
+ <title>
+ Token Filters
+ </title>
+ <para>
+ Token filters are the Lucene approach to enable operations on
+ token streams. In typical Lucene applications token filters
+ are
+ combined with a tokenizer to build analyzers. In a typical Lucas
+ application the tokenization is already given by annotation indexes.
+ Lucas allows to apply token filters to certain annotation token
+ streams or
+ to the merged or concatenated field token stream as whole.
+ The following
+ example demonstrates how token filters are defined in
+ the mapping file.
+ </para>
+ <programlisting><![CDATA[<fields>
+ <field name=âtextâ index=âyesâ merge=âtrueâ>
+ <filters>
+ <filter name="lowercase"/>
+ </filters>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Tokenâ>
+ <filters>
+ <filter name="stopwords"
+ filePath="resources/stopwords.txt"/>
+ </filters>
+ </annotation>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ <para>
+ The lowercase token filter is applied to the complete field
+ content and
+ the stopword
+ filter is only applied to the annotation
+ token stream which is
+ generated from the de.julielab.types.Token
+ annotation index. Both filters are
+ predefined filters which are
+ included in the Lucas distribution. A
+ reference of all
+ predefined
+ token filters is covered in <xref linkend="sandbox.luceneCasConsumer.mapping.reference"/>.
+ </para>
+ <section id="sandbox.luceneCasConsumer.mapping.tokenfilters.selfdefined">
+ <title>
+ Deploying your own Token Filters
+ </title>
+ <para>
+ For scenarios where the built in token filters where not
+ sufficient,
+ you can
+ provide your own token filters. Simple token
+ filters which don't need
+ any further parameterization, need to have
+ a public constructor, which
+ takes a
+ token stream as the only
+ parameter. The next example shows how a such a
+ token
+ filter is
+ referenced in the mapping file.
+ </para>
+ <programlisting><![CDATA[<fields>
+ <field name=âtextâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <filters>
+ <filter className="org.example.MyFilter"/>
+ </filters>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ <para>
+ The attribute
+ <emphasis>className</emphasis>
+ must reference the canonical class
+ name of
+ the the filter.
+ In cases
+ where the token filter has
+ parameters we need to provide a
+ factory
+ for it.
+ This factory must
+ implement the
+ <emphasis>org.apache.uima.indexer.analysis.TokenFilterFactory
+ </emphasis>
+ interface. This interface defines a method createTokenFilter which
+ takes a
+ token
+ stream and a java.util.Properties object as parameters.
+ The properties
+ object will
+ include all attribute names as keys and
+ their values which are
+ additionally defined
+ in the filter tag.
+ Consider the example below for a demonstration.
+ </para>
+ <programlisting><![CDATA[<fields>
+ <field name=âtextâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <filters>
+ <filter factoryClassName="org.example.MyTokenFilterFactory"
+ parameter1="value1" parameter2="value2"/>
+ </filters>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ <para>
+ In the example above the token filter factory is new
+ instantiated for
+ every
+ occurrence in the mapping file. In scenarios
+ where token filters use large
+ resources,
+ this will be a waste of
+ memory and time. To reuse a factory instance
+ we need to provide a
+ name and a reuse attribute.
+ The example below demonstrate how we can
+ reuse a factory
+ instance.
+ </para>
+ <programlisting><![CDATA[<fields>
+ <field name=âtextâ index=âyesâ>
+ <annotations>
+ <annotation sofa=âtextâ type=âde.julielab.types.Cellâ>
+ <filters>
+ <filter factoryClassName="org.example.MyTokenFilterFactory"
+ name="myFactory" reuse="true"
+ myResourceFilePath="pathToResource"/>
+ </filters>
+ <features>
+ <feature name=âspecificTypeâ>
+ </features>
+ </annotation>
+ </annotations>
+ <field>
+</fields>]]></programlisting>
+ </section>
+ </section>
+ </chapter>
+ <chapter id="sandbox.luceneCasConsumer.mapping.reference">
+ <title>Mapping File Reference</title>
+ <para>
+ After introducing the basic concepts and functions this
+ chapter
+ offers a complete reference of the mapping
+ file elements.
+ </para>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.structure">
+ <title>Mapping File Structure</title>
+ <para>
+ The raw mapping file structure is sketched below.
+ </para>
+ <programlisting><![CDATA[<fields>
+ <field ..>
+ <filters>
+ <filter ../>
+ ...
+ </filters>
+
+ <annotations>
+ <annotation ..>
+ <filters>
+ <filter ../>
+ ...
+ </filters>
+ <features>
+ <feature ..>
+ ...
+ </features>
+ </annotation>
+ ...
+ </annotations>
+ <field>
+ ...
+</fields>]]></programlisting>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.elements">
+ <title>Mapping File Elements</title>
+ <para>
+ This section describes the mapping file
+ elements and their
+ attributes.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>fields element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ fields container element
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>field+</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>field element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ describes a Lucene
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.html">field</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>filters?, annotations</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <table>
+ <title>field element attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>name</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ the name of the
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.html">field</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>index</entry>
+ <entry>yes|no|no_norms|no_tf|no_norms_tf
+ </entry>
+ <entry>no</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.Index.html">Field.Index</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>termVector</entry>
+ <entry>no|positions|offsets|positions_offsets
+ </entry>
+ <entry>no</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.TermVector.html">Field.TermVector</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>stored</entry>
+ <entry>yes|no|compress</entry>
+ <entry>no</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/document/Field.Store">Field.Store</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>merge</entry>
+ <entry>boolean</entry>
+ <entry>false</entry>
+ <entry>no</entry>
+ <entry>If this attribute is set to true, all contained
+ annotation token streams are merged according to their
+ offset.
+ The tokens position increment are adopted in the
+ case
+ of
+ overlapping.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>filters element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ container element for filters
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>filter+</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>filter element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Describes a
+ <ulink
+ url="http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/analysis/TokenFilter.html">token filter</ulink>
+ instance.
+ Token filters can either be predefined or
+ self-provided.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <table>
+ <title>filter element attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>name</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ the name to reference either a predefined filter (see
+ predefined filter reference)
+ or a reused filter
+ </entry>
+ </row>
+ <row>
+ <entry>className</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ The canonical class name of a token filter. the token
+ filter class must provide a
+ single argument constructor which
+ takes the token stream as parameter.
+ </entry>
+ </row>
+ <row>
+ <entry>factoryClassName</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ The canonical class name of a token filter factory.
+ the
+ token filter factory class must
+ implement the
+ org.apache.uima.indexer.analysis.TokenFilterFactory. See
+ <xref linkend="sandbox.luceneCasConsumer.mapping.tokenfilters"/> for
+ a example.
+ </entry>
+ </row>
+ <row>
+ <entry>reuse</entry>
+ <entry>boolean</entry>
+ <entry>-</entry>
+ <entry>false</entry>
+ <entry>
+ Enables token filter factory reuse. This makes sense
+ if a
+ token
+ filter use resources which should be cached.
+ Because token
+ filters
+ where referenced by their names, you
+ need also to provide
+ a name.
+ </entry>
+ </row>
+ <row>
+ <entry>*</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>-</entry>
+ <entry>
+ Filters may have their own parameter attributes which
+ are
+ explained
+ in the <xref linkend="sandbox.luceneCasConsumer.mapping.reference"/>..
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>annotations element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ container element for annotations
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>annotation+</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>annotation element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Describes a token stream which is generated from a CAS
+ annotation index.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>features?</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <table>
+ <title>annotation element attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>type</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The canonical type name. E.g. "uima.cas.Annotation"
+ </entry>
+ </row>
+ <row>
+ <entry>sofa</entry>
+ <entry>string</entry>
+ <entry>InitialView</entry>
+ <entry>yes</entry>
+ <entry>
+ Determines from which sofa the annotation index is
+ taken
+ </entry>
+ </row>
+ <row>
+ <entry>featurePath</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ Allows to address feature structures which are
+ associated
+ with the annotation object. Features are separated
+ by
+ a ".".
+ </entry>
+ </row>
+ <row>
+ <entry>tokenizer</entry>
+ <entry>cas|white_space|standard
+ </entry>
+ <entry>cas</entry>
+ <entry>no</entry>
+ <entry>
+ Determines which tokenization is used. "cas" uses the
+ tokenization given
+ by the contained annotation token streams,
+ "standard" uses the
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/analysis/standard/StandardTokenizer.html">standard tokenizer</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>featureValueDelimiterString
+ </entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ If this parameter is provided all feature values of
+ the
+ targeted
+ feature structure are concatenated and delimited
+ by this
+ string.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>features element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Container element for features.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ contains:
+ <code>feature+</code>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>feature element</emphasis>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Describes a certain feature of the addressed feature
+ structure. Values of this features serve as token
+ source.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <table>
+ <title>feature element attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>name</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The feature name.
+ </entry>
+ </row>
+ <row>
+ <entry>numberFormat</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ Allows to convert number features to strings. See
+ <ulink
+ url="http://java.sun.com/javase/6/docs/api/java/text/DecimalFormat.html">DecimalNumberFormat</ulink>
+ .
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.filters">
+ <title>
+ Filters Reference
+ </title>
+ <para>Lucas comes with a couple of predefined token filters.
+ This section provides a complete
+ reference for this filters.</para>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.addition">
+ <title>
+ Addition Filter
+ </title>
+ <para>Adds suffixes or prefixes to tokens.</para>
+ <programlisting><![CDATA[<filter name="addition" prefix="PRE_"/>]]></programlisting>
+ <para>
+ <table>
+ <title>addition filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>prefix</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ A pefix which is added to the front of each token.
+ </entry>
+ </row>
+ <row>
+ <entry>postfix</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ A post which is added to the end of each token.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.hypernyms">
+ <title>
+ Hypernyms Filter
+ </title>
+ <para>Adds hypernyms of a token with the same offset and
+ position increment 0.</para>
+ <programlisting><![CDATA[<filter name="hypernyms" filePath="/path/to/myFile.txt"/>]]></programlisting>
+ <para>
+ <table>
+ <title>hypernym filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>filePath</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The hypernym file path. Each line of the file contains one
+ token
+ with its hypernyms.
+ The file must have the following format:
+ <code>TOKEN_TEXT=HYPERNYM1|HYPERNYM2|..
+ </code>
+ .
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.position">
+ <title>
+ Position Filter
+ </title>
+ <para>Allows to select only the first or the last token of a
+ token stream, all other tokens are discarded.</para>
+ <programlisting><![CDATA[<filter name="position" position="last"/>]]></programlisting>
+ <para>
+ <table>
+ <title>position filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>position</entry>
+ <entry>first|last</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ If position is set to first the only the the first token
+ of the underlying token stream is returned,
+ all other tokens are
+ discarded. Otherwise, if position is set to last, only the last
+ token is returned.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.replace">
+ <title>
+ Replace Filter
+ </title>
+ <para>Allows to replace token texts.</para>
+ <programlisting><![CDATA[<filter name="replace" filePath="/path/to/myFile.txt"/>]]></programlisting>
+ <para>
+ <table>
+ <title>replace filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>filePath</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The token text replacement file path. Each line consists of
+ the
+ original token text and
+ the replacement and must have the
+ following format:
+ <code>
+ TOKEN_TEXT=REPLACEMENT_TEXT
+ </code>
+ .
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.snowball">
+ <title>
+ Snowball Filter
+ </title>
+ <para>
+ Integration of the
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/analysis/snowball/SnowballFilter.html">Lucene snowball filter</ulink>
+ </para>
+ <programlisting><![CDATA[<filter name="snowball" stemmerName="German"/>]]></programlisting>
+ <para>
+ <table>
+ <title>snowball filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>stemmerName</entry>
+ <entry>snowball stemmer names.</entry>
+ <entry>English</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/analysis/snowball/SnowballFilter.html">snowball filter documentation</ulink>
+ .
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.splitter">
+ <title>
+ Splitter Filter
+ </title>
+ <para>Splits tokens at a certain string.</para>
+ <programlisting><![CDATA[<filter name="splitter" splitString=","/>]]></programlisting>
+ <para>
+ <table>
+ <title>splitter filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>splitString</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The string on which tokens are split.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.filters.concat">
+ <title>
+ Concatenate Filter
+ </title>
+ <para>Concatenates token texts with a certain delimiter
+ string.</para>
+ <programlisting><![CDATA[<filter name="concatenate" concatString=";"/>]]></programlisting>
+ <para>
+ <table>
+ <title>concatenate filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>concatString</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>yes</entry>
+ <entry>
+ The string with which token texts are concatenated.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.stopwords">
+ <title>
+ Stopword Filter
+ </title>
+ <para>
+ Integration of the
+ <ulink
+ url="http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/analysis/StopFilter.html">Lucene stop filter</ulink>
+ </para>
+ <programlisting><![CDATA[<filter name="stopwords" filePath="/path/to/myStopwords.txt"/>]]></programlisting>
+ <para>
+ <table>
+ <title>stopword filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>filePath</entry>
+ <entry>string</entry>
+ <entry>-</entry>
+ <entry>no</entry>
+ <entry>
+ The stopword file path. Each line of the file contains a
+ single stopword.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.filters.unique">
+ <title>
+ Unique Filter
+ </title>
+ <para>Filters tokens with the same token text. The resulting
+ token stream contains only tokens with unique texts.</para>
+ <programlisting><![CDATA[<filter name="unique"/>]]></programlisting>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.uppercase">
+ <title>
+ Upper Case Filter
+ </title>
+ <para>Turns the text of each token into upper case.</para>
+ <programlisting><![CDATA[<filter name="uppercase"/>]]></programlisting>
+ </section>
+ <section
+ id="sandbox.luceneCasConsumer.mapping.reference.filters.lowercase">
+ <title>
+ Lower Case Filter
+ </title>
+ <para>Turns the text of each token into lower case.</para>
+ <programlisting><![CDATA[<filter name="lowercase"/>]]></programlisting>
+ </section>
+ <section id="sandbox.luceneCasConsumer.mapping.reference.filters.uea">
+ <title>
+ UEA Stemmer Filter
+ </title>
+ <para>
+ Integration of the
+ <ulink
+ url="http://www.uea.ac.uk/cmp/research/graphicsvisionspeech/speech/WordStemming">UEA lite stemmer</ulink>
+ .
+ </para>
+ <programlisting><![CDATA[<filter name="uea-stemmer" maxWordLength="30" maxAcronymLength="15"/>]]></programlisting>
+ <para>
+ <table>
+ <title>UEA stemmer filter attributes</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>name</entry>
+ <entry>allowed values</entry>
+ <entry>default value</entry>
+ <entry>mandatory</entry>
+ <entry>description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>maxWordLength</entry>
+ <entry>integer</entry>
+ <entry>20</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://www.uea.ac.uk/cmp/research/graphicsvisionspeech/speech/WordStemming">UEA lite stemmer documentation</ulink>
+ </entry>
+ </row>
+ <row>
+ <entry>maxAcronymLength</entry>
+ <entry>integer</entry>
+ <entry>8</entry>
+ <entry>no</entry>
+ <entry>
+ See
+ <ulink
+ url="http://www.uea.ac.uk/cmp/research/graphicsvisionspeech/speech/WordStemming">UEA lite stemmer documentation</ulink>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ </section>
+ </section>
+ </chapter>
+ <chapter id="sandbox.luceneCasConsumer.indexwriter">
+ <title>Index Writer Configuration</title>
+ <para>
+ The index writer used by Lucas can be configured separately. To allow Lucas to run in
+ multiple deployment scenarios, different Lucas instances can share one index writer
+ instance. This is handled by the resource manager. To configure the resource manager and
+ the index writer properly, the Lucas descriptor contains a resource binding <code>
+ indexWriterProvider</code>. A IndexWriterProvider creates a index writer from a properties
+ file. The file path and name of this properties file must be set in the <code>LucasIndexWriterProvider</code> resource
+ section of the descriptor.
+ </para>
+ <para>
+ The properties file can contain the following properties.
+ <itemizedlist>
+ <listitem>
+ <para>
+ <code>indexPath</code> - the path to the index directory
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>RAMBufferSize</code> - (number value), see <ulink url="http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/index/IndexWriter.html#setRAMBufferSizeMB(double)">IndexWriter.ramBufferSize</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>useCompoundFileFormat</code> - (boolean value), see <ulink url="http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/index/IndexWriter.html#setUseCompoundFile(boolean)">IndexWriter.useCompoundFormat</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>maxFieldLength</code> - (boolean value), see <ulink url="http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/index/IndexWriter.html#setMaxFieldLength(int)">IndexWriter.maxFieldLength</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <code>uniqueIndex</code> - (boolean value), if set to <code>true</code>, host name and process identifier are added to the index name. (Only tested on linux systems)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </chapter>
+ <chapter id="sandbox.luceneCasConsumer.descriptor">
+ <title>Descriptor Parameters
+ </title>
+ <para>
+ Because Lucas is configured by the mapping file, the descriptor has only one parameter:
+ <itemizedlist>
+ <listitem>
+ <para><code>mappingFile</code> - the file path to the mapping file.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </chapter>
+</book>
\ No newline at end of file
Modified: incubator/uima/sandbox/trunk/Lucas/pom.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/Lucas/pom.xml?rev=797373&r1=797372&r2=797373&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/Lucas/pom.xml (original)
+++ incubator/uima/sandbox/trunk/Lucas/pom.xml Fri Jul 24 08:58:52 2009
@@ -1,19 +1,22 @@
<?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.
+ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -22,16 +25,10 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.uima</groupId>
<artifactId>lucas</artifactId>
- <name>Apache Lucas Lucene Indexer</name>
- <version>2.3.0.incubating-SNAPSHOT</version> <!-- this comment is a flag for changeVersion -->
-
+ <name>Apache UIMA - Lucene CAS Indexer</name>
+ <version>2.3.0-incubating-SNAPSHOT</version>
+ <description>Writes information contained in CAS objects to fields of a Lucene search index; mapping is done in a mapping file.</description>
<url>http://incubator.apache.org/uima</url>
- <description>Writes information contained in CAS objects to fields of a Lucene search index; mapping is done in a mapping file.</description>
-
- <properties>
- <componentId>LuceneCASIndexer</componentId>
- </properties>
-
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
@@ -39,165 +36,186 @@
<distribution>repo</distribution>
</license>
</licenses>
-
+ <scm>
+ <url>http://svn.apache.org/viewvc/incubator/uima</url>
+ </scm>
+ <properties>
+ <componentId>LuceneCASIndexer</componentId>
+ </properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
-
<source>1.5</source>
<target>1.5</target>
</configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
-
- <executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>jar</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ <execution>
+ <id>test-jar</id>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <!-- Copy the dependencies to the lib folder for the PEAR to copy -->
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <stripVersion>true</stripVersion>
+ <outputDirectory>${basedir}/lib</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <includeScope>runtime</includeScope>
+ <excludeScope>test</excludeScope>
+ <excludeArtifactIds>uimaj-core</excludeArtifactIds>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <!-- Clean the libraries after packaging -->
+ <execution>
+ <id>CleanLib</id>
+ <phase>clean</phase>
+ <configuration>
+ <tasks>
+ <delete dir="lib" deleteOnExit="true" quiet="true"
+ failOnError="false">
+ <fileset dir="lib" includes="*.jar" />
+ </delete>
+ <delete dir="doc" deleteOnExit="true" quiet="true"
+ failOnError="false">
+ <fileset dir="doc" />
+ </delete>
+ <delete dir="desc" deleteOnExit="true" quiet="true"
+ failOnError="false">
+ <fileset dir="desc" />
+ </delete>
+ <delete dir="resources" deleteOnExit="true" quiet="true"
+ failOnError="false">
+ <fileset dir="resources" />
+ </delete>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>BuildDownloadSite</id>
+ <phase>site</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${project.build.directory}/site/downloads" />
+ <copy todir="${project.build.directory}/site/downloads">
+ <fileset dir="${basedir}/src/main/resources/" />
+ <fileset dir="${project.build.directory}/" includes="*.jar" />
+ <fileset dir="${project.build.directory}/" includes="*.pear" />
+ </copy>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+
+ <execution>
+ <id>BuildPearDirectories</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <mkdir dir="${basedir}/desc" />
+ <copy file="${basedir}/src/main/resources/${componentId}.xml"
+ todir="${basedir}/desc/" />
+ <mkdir dir="${basedir}/doc" />
+ <!--
+ <copy todir="${basedir}/doc"> <fileset
+ dir="${project.build.directory}/site/"/> </copy>
+ -->
+ <copy todir="${basedir}/doc/downloads">
+ <fileset dir="${basedir}/src/main/resources/" />
+ </copy>
+ <mkdir dir="${basedir}/resources" />
+ <copy todir="${basedir}/resources">
+ <fileset dir="${basedir}/src/test/resources/" />
+ </copy>
+ <replace file="${basedir}/desc/${componentId}.xml"
+ token="src/test/" value="" />
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
<execution>
- <id>jar</id>
- <goals>
- <goal>jar</goal>
- </goals>
<phase>package</phase>
- </execution>
- <execution>
-
- <id>test-jar</id>
- <goals>
- <goal>test-jar</goal>
- </goals>
- <phase>package</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
-
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <!-- Copy the dependencies to the lib folder for the PEAR to copy -->
- <execution>
- <id>copy-dependencies</id>
- <phase>package</phase>
-
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <stripVersion>true</stripVersion>
- <outputDirectory>${basedir}/lib</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
-
- <overWriteSnapshots>true</overWriteSnapshots>
- <includeScope>runtime</includeScope>
- <excludeScope>test</excludeScope>
- <excludeArtifactIds>uimaj-core</excludeArtifactIds>
- </configuration>
- </execution>
- </executions>
-
- </plugin>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <!-- Clean the libraries after packaging -->
- <execution>
- <id>CleanLib</id>
- <phase>clean</phase>
-
<configuration>
<tasks>
- <delete dir="lib" deleteOnExit="true" quiet="true"
- failOnError="false">
- <fileset dir="lib" includes="*.jar" />
- </delete>
- <delete dir="doc" deleteOnExit="true" quiet="true"
- failOnError="false">
- <fileset dir="doc" />
- </delete>
- <delete dir="desc" deleteOnExit="true" quiet="true"
- failOnError="false">
-
- <fileset dir="desc" />
- </delete>
- <delete dir="resources" deleteOnExit="true" quiet="true"
- failOnError="false">
- <fileset dir="resources" />
- </delete>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
-
- </goals>
- </execution>
- <execution>
- <id>BuildDownloadSite</id>
- <phase>site</phase>
- <configuration>
- <tasks>
- <mkdir dir="${project.build.directory}/site/downloads" />
-
- <copy todir="${project.build.directory}/site/downloads">
- <fileset dir="${basedir}/src/main/resources/" />
- <fileset dir="${project.build.directory}/" includes="*.jar" />
- <fileset dir="${project.build.directory}/" includes="*.pear" />
- </copy>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
-
- </goals>
- </execution>
-
- <execution>
- <id>BuildPearDirectories</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <mkdir dir="${basedir}/desc" />
-
- <copy file="${basedir}/src/main/resources/${componentId}.xml"
- todir="${basedir}/desc/" />
- <mkdir dir="${basedir}/doc" />
- <copy todir="${basedir}/doc">
- <fileset dir="${project.build.directory}/site/" />
- </copy>
- <copy todir="${basedir}/doc/downloads">
- <fileset dir="${basedir}/src/main/resources/" />
- </copy>
- <mkdir dir="${basedir}/resources" />
- <copy todir="${basedir}/resources">
- <fileset dir="${basedir}/src/test/resources/" />
-
- </copy>
- <replace file="${basedir}/desc/${componentId}.xml"
- token="src/test/" value="" />
- </tasks>
+ <ant antfile="build_documentation.xml" target="copyDocs" />
+ </tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
- </execution>
- </executions>
- </plugin>
-
- <!--
- plugin> <groupId>org.apache.uima</groupId>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.uima</groupId>
<artifactId>PearPackagingMavenPlugin</artifactId>
- <extensions>true</extensions> <executions> <execution>
- <phase>package</phase> <configuration> <classpath>
- $main_root/lib/cglib-nodep-2.1_3.jar;$main_root/lib/google-collect-snapshot-20080530.jar;$main_root/lib/log4j-1.2.14.jar;$main_root/lib/lucene-core-2.4.0.jar;$main_root/lib/lucene-snowball-2.4.0.jar
- </classpath> <mainComponentDesc> desc/${componentId}.xml
- </mainComponentDesc> <componentId> ${componentId} </componentId>
- </configuration> <goals> <goal>package</goal> </goals> </execution>
- </executions> </plugin
- -->
+ <version>2.3.0-incubating-SNAPSHOT</version>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <configuration>
+ <classpath>
+ <!-- PEAR file component classpath settings -->
+ $main_root/lib/cglib-nodep-2.1_3.jar;$main_root/lib/google-collect-snapshot-20080530.jar;$main_root/lib/log4j-1.2.14.jar;$main_root/lib/lucene-core-2.4.0.jar;$main_root/lib/lucene-snowball-2.4.0.jar
+ </classpath>
+
+ <mainComponentDesc>
+ <!-- PEAR file main component descriptor -->
+ desc/${componentId}.xml
+ </mainComponentDesc>
+
+ <componentId>
+ <!-- PEAR file component ID -->
+ ${componentId}
+ </componentId>
+ </configuration>
+ <goals>
+ <goal>package</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
@@ -205,7 +223,6 @@
<configuration>
<source>1.5</source>
<target>1.5</target>
-
</configuration>
</plugin>
@@ -215,7 +232,6 @@
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
-
<version>2.4.0</version>
</dependency>
<dependency>
@@ -223,7 +239,6 @@
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
-
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-snowball</artifactId>
@@ -232,25 +247,34 @@
<dependency>
<groupId>org.apache.uima</groupId>
<artifactId>uimaj-core</artifactId>
- <version>2.2.2-incubating</version>
+ <version>2.2.2-incubating</version>
<scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymockclassextension</artifactId>
- <version>2.4</version>
- <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymockclassextension</artifactId>
+ <version>2.4</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.google.code.google-collections</groupId>
- <artifactId>google-collect</artifactId>
- <version>snapshot-20080530</version>
- </dependency>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.google-collections</groupId>
+ <artifactId>google-collect</artifactId>
+ <version>snapshot-20080530</version>
+ </dependency>
</dependencies>
+
+ <distributionManagement>
+ <repository>
+ <id>login</id>
+ <url>scp://login.coling.uni-jena.de/var/lib/maven/coling</url>
+ </repository>
+ </distributionManagement>
+
</project>
+