<?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>org.apache.uima.ruta.engine.RutaInternalTypeSystem</name>
  <description/>
  <version>1.0</version>
  <vendor/>
  <types>
    <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>
