<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<!--
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.
-->
<book lang="en">
  <title>Apache UIMA&#8482; Ruta Guide and Reference</title>
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="common_book_info.xml"/>
    
  <toc/>
  
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tools.ruta.overview.xml"/>
  
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tools.ruta.language.xml"/>
  
  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="tools.ruta.workbench.xml"/>
  
</book>
