<?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.
	 ***************************************************************
   -->
   
<typeSystemDescription  xmlns="http://uima.apache.org/resourceSpecifier">
	<name>WikinewsTypeSystem</name>
	<description>Wikinews Sample Type System Definition</description>
	<vendor>The Apache Software Foundation</vendor>
	<version>1.0</version>
	<types>
		<typeDescription>
			<name>org.apache.opennlp.annotations.Headline</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.SubHeadline</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.Paragraph</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.Sentence</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.Token</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.Person</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.Organization</name>
			<description></description>
			<supertypeName>uima.tcas.Annotation</supertypeName>
		</typeDescription>

		<typeDescription>
			<name>org.apache.opennlp.annotations.WikiLink</name>
			<supertypeName>uima.tcas.Annotation</supertypeName>
			<features>
				<featureDescription>
					<name>link</name>
					<description></description>
					<rangeTypeName>uima.cas.String</rangeTypeName>
				</featureDescription>
			</features>
		</typeDescription>
		<typeDescription>
			<name>bumblebee.annotations.AnnotationStatus</name>
			<supertypeName>uima.tcas.Annotation</supertypeName>
			<features>
				<featureDescription>
					<name>sentence</name>
					<rangeTypeName>uima.cas.Boolean</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>token</name>
					<rangeTypeName>uima.cas.Boolean</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>person</name>
					<rangeTypeName>uima.cas.Boolean</rangeTypeName>
				</featureDescription>
				<featureDescription>
					<name>organization</name>
					<rangeTypeName>uima.cas.Boolean</rangeTypeName>
				</featureDescription>
			</features>
		</typeDescription>		
	</types>
</typeSystemDescription>