<?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>InternalTypeSystem</name>
  <description/>
  <version>1.0</version>
  <vendor/>
  <types>
    <typeDescription>
      <name>org.apache.uima.ruta.type.RutaBasic</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
      <features>
        <featureDescription>
          <name>replacement</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.RutaOptional</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.RutaAnnotation</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
      <features>
        <featureDescription>
          <name>score</name>
          <description/>
          <rangeTypeName>uima.cas.Double</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>annotation</name>
          <description/>
          <rangeTypeName>uima.tcas.Annotation</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugRuleApply</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.DebugScriptApply</supertypeName>
      <features>
        <featureDescription>
          <name>applied</name>
          <description/>
          <rangeTypeName>uima.cas.Integer</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>tried</name>
          <description/>
          <rangeTypeName>uima.cas.Integer</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>rules</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugRuleMatch</elementType>
        </featureDescription>
        <featureDescription>
          <name>id</name>
          <description/>
          <rangeTypeName>uima.cas.Integer</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>script</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugRuleMatch</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.ProfiledAnnotation</supertypeName>
      <features>
        <featureDescription>
          <name>elements</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugRuleElementMatches</elementType>
        </featureDescription>
        <featureDescription>
          <name>matched</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>delegates</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugScriptApply</elementType>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugScriptApply</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.ProfiledAnnotation</supertypeName>
      <features>
        <featureDescription>
          <name>element</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugBlockApply</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.DebugRuleApply</supertypeName>
      <features>
        <featureDescription>
          <name>innerApply</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugScriptApply</elementType>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugRuleElementMatch</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.ProfiledAnnotation</supertypeName>
      <features>
        <featureDescription>
          <name>baseCondition</name>
          <description/>
          <rangeTypeName>org.apache.uima.ruta.type.DebugEvaluatedCondition</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>conditions</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugEvaluatedCondition</elementType>
        </featureDescription>
        <featureDescription>
          <name>elements</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugRuleElementMatches</elementType>
          <multipleReferencesAllowed>false</multipleReferencesAllowed>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugRuleElementMatches</name>
      <description/>
      <supertypeName>uima.cas.TOP</supertypeName>
      <features>
        <featureDescription>
          <name>matches</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugRuleElementMatch</elementType>
        </featureDescription>
        <featureDescription>
          <name>element</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>ruleAnchor</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.RutaColoring</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
      <features>
        <featureDescription>
          <name>bgColor</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>targetType</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>fgColor</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>selected</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugEvaluatedCondition</name>
      <description/>
      <supertypeName>uima.cas.TOP</supertypeName>
      <features>
        <featureDescription>
          <name>element</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>value</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>conditions</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugEvaluatedCondition</elementType>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugMatchedRuleMatch</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.DebugRuleMatch</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugFailedRuleMatch</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.DebugRuleMatch</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.FalsePositive</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.EvalAnnotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.EvalAnnotation</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
      <features>
        <featureDescription>
          <name>original</name>
          <description/>
          <rangeTypeName>uima.tcas.Annotation</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.FalseNegative</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.EvalAnnotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.ProfiledAnnotation</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
      <features>
        <featureDescription>
          <name>time</name>
          <description/>
          <rangeTypeName>uima.cas.Long</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.RutaFrame</name>
      <description/>
      <supertypeName>uima.tcas.Annotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.Statistics</name>
      <description/>
      <supertypeName>uima.cas.TOP</supertypeName>
      <features>
        <featureDescription>
          <name>name</name>
          <description/>
          <rangeTypeName>uima.cas.StringArray</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>total</name>
          <description/>
          <rangeTypeName>uima.cas.DoubleArray</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>amount</name>
          <description/>
          <rangeTypeName>uima.cas.IntegerArray</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>part</name>
          <description/>
          <rangeTypeName>uima.cas.DoubleArray</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.TruePositive</name>
      <description/>
      <supertypeName>org.apache.uima.ruta.type.EvalAnnotation</supertypeName>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugCreatedBy</name>
      <description/>
      <supertypeName>uima.cas.TOP</supertypeName>
      <features>
        <featureDescription>
          <name>rule</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>annotation</name>
          <description/>
          <rangeTypeName>uima.tcas.Annotation</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>script</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>id</name>
          <description/>
          <rangeTypeName>uima.cas.Integer</rangeTypeName>
        </featureDescription>
      </features>
    </typeDescription>
  </types>
</typeSystemDescription>
