<?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.java</frameworkImplementation>
  <primitive>true</primitive>
  <annotatorImplementationName>org.apache.uima.examples.cas.PersonTitleAnnotator</annotatorImplementationName>
  <analysisEngineMetaData>
    <name>Person Title Annotator</name>
    <description>An example annotator that discovers Person Titles in text and classifies them
    into three categories - Civilian (e.g. Mr.,Ms.), Military (e.g. Lt. Col.) , and 
    Government (e.g. Gov., Sen.).  This annotator can be configured to only look for 
    titles within existing annotations of a particular type (for example, Person Name 
    annotations).</description>
    <version>1.0</version>
    <vendor>The Apache Software Foundation</vendor>
    <configurationParameters>
      <configurationParameter>
        <name>CivilianTitles</name>
        <description>List of Civilian Titles to be annotated.</description>
        <type>String</type>
        <multiValued>true</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>
      <configurationParameter>
        <name>MilitaryTitles</name>
        <description>List of Military Titles to be annotated.</description>
        <type>String</type>
        <multiValued>true</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>
      <configurationParameter>
        <name>GovernmentTitles</name>
        <description>List of Government Titles to be annotated.</description>
        <type>String</type>
        <multiValued>true</multiValued>
        <mandatory>true</mandatory>
      </configurationParameter>
      <configurationParameter>
        <name>ContainingAnnotationType</name>
        <description>Annotation type within which to search for Person Titles.  If no value is specified,
        the entire document will be searched.</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
      </configurationParameter>
    </configurationParameters>
    <configurationParameterSettings>
      <nameValuePair>
        <name>CivilianTitles</name>
        <value>
          <array>
            <string>Mr.</string>
            <string>Ms.</string>
            <string>Mrs.</string>
            <string>Dr.</string>
          </array>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>MilitaryTitles</name>
        <value>
          <array>
            <string>Gen.</string>
            <string>Col.</string>
            <string>Maj.</string>
            <string>Capt.</string>
            <string>Lt. Gen.</string>
            <string>Lt Col.</string>
            <string>Lt.</string>
          </array>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>GovernmentTitles</name>
        <value>
          <array>
            <string>Vice President</string>
            <string>President</string>
            <string>Vice Pres.</string>
            <string>Pres.</string>
            <string>Governor</string>
            <string>Lt. Governor</string>
            <string>Gov.</string>
            <string>Lt. Gov.</string>
            <string>Senator</string>
            <string>Sen.</string>
          </array>
        </value>
      </nameValuePair>
    </configurationParameterSettings>
    <typeSystemDescription>
      <types>
        <typeDescription>
          <name>example.PersonTitle</name>
          <description>A Personal Title.</description>
          <supertypeName>uima.tcas.Annotation</supertypeName>
          <features>
            <featureDescription>
              <name>Kind</name>
              <description>The kind of title - Civilian, Military, or Government.</description>
              <rangeTypeName>example.PersonTitleKind</rangeTypeName>
            </featureDescription>
          </features>
        </typeDescription>
        <typeDescription>
          <name>example.PersonTitleKind</name>
          <description>A kind of person title - Civilian, Military, or Government.</description>
          <supertypeName>uima.cas.String</supertypeName>
          <allowedValues>
            <value>
              <string>Civilian</string>
              <description>Title of a person not in military or government service.</description>
            </value>
            <value>
              <string>Military</string>
              <description>Title of a person in the military.</description>
            </value>
            <value>
              <string>Government</string>
              <description>Title of a government official.</description>
            </value>
          </allowedValues>
        </typeDescription>
      </types>
    </typeSystemDescription>
    <capabilities>
      <capability>
        <inputs/>
        <outputs>
          <type>example.PersonTitle</type>
          <feature>example.PersonTitle:Kind</feature>
        </outputs>
        <languagesSupported>
          <language>en</language>
        </languagesSupported>
      </capability>
    </capabilities>
	<operationalProperties>
		<modifiesCas>true</modifiesCas>
		<multipleDeploymentAllowed>false</multipleDeploymentAllowed>
		<outputsNewCASes>false</outputsNewCASes>
	</operationalProperties>	  
  </analysisEngineMetaData>
</analysisEngineDescription>
