<?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.
	 ***************************************************************
   -->

<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
<frameworkImplementation>org.apache.uima.cpp</frameworkImplementation>
<primitive>true</primitive>
<annotatorImplementationName>SimpleTextSegmenter</annotatorImplementationName>
 
<analysisEngineMetaData>
	<name>Simple Text Segmenter</name>
	<description>Splits a text document into pieces. The point at which the text is split is determined by SegmentDelimiter configuration parameter which defaults to new line ('\n')</description>
	<version>1.0</version>
	<vendor>IBM</vendor>
	
	<configurationParameters>
		<configurationParameter>
			<name>SegmentDelimiter</name>
			<description>segment delimiter</description>
			<type>String</type>
			<multiValued>false</multiValued>
			<mandatory>false</mandatory>
		</configurationParameter>
	</configurationParameters>
	<configurationParameterSettings>
		<nameValuePair>
			<name>SegmentDelimiter</name>
			<value>
				<string>.</string>
			</value>
		</nameValuePair>
	</configurationParameterSettings>

	<typeSystemDescription/>

	<fsIndexCollection>
	 <fsIndexes>
	   <fsIndexDescription>
	      <label>TestIndex</label>
	      <typeName>uima.cas.TOP</typeName>
	      <kind>bag</kind>
	      <keys/>
	    </fsIndexDescription>
          </fsIndexes>
        </fsIndexCollection>
		
	<capabilities>
		<capability>
			<outputs/>
		</capability>
	</capabilities>
	
	<operationalProperties>
		<modifiesCas>false</modifiesCas>
		<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
		<outputsNewCASes>true</outputsNewCASes>
	</operationalProperties>
	
</analysisEngineMetaData>
</analysisEngineDescription>
