<?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>
        <featureDescription>
          <name>timestamp</name>
          <description/>
          <rangeTypeName>uima.cas.Long</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>
        <featureDescription>
          <name>inlinedConditionBlocks</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugInlinedBlock</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>
        <featureDescription>
          <name>inlinedActionBlocks</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugInlinedBlock</elementType>
          <multipleReferencesAllowed>false</multipleReferencesAllowed>
        </featureDescription>
      </features>
    </typeDescription>
    <typeDescription>
      <name>org.apache.uima.ruta.type.DebugInlinedBlock</name>
      <description/>
      <supertypeName>uima.cas.TOP</supertypeName>
      <features>
        <featureDescription>
          <name>element</name>
          <description/>
          <rangeTypeName>uima.cas.String</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>asCondition</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>matched</name>
          <description/>
          <rangeTypeName>uima.cas.Boolean</rangeTypeName>
        </featureDescription>
        <featureDescription>
          <name>inlinedRules</name>
          <description/>
          <rangeTypeName>uima.cas.FSArray</rangeTypeName>
          <elementType>org.apache.uima.ruta.type.DebugScriptApply</elementType>
          <multipleReferencesAllowed>false</multipleReferencesAllowed>
        </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>
