You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2013/09/20 15:54:26 UTC

svn commit: r1525003 [2/3] - in /uima/site/trunk/uima-website: docs/ docs/d/ruta-2.1.0/ docs/d/ruta-2.1.0/issuesFixed/ docs/d/ruta-2.1.0/issuesFixed/css/ docs/d/ruta-2.1.0/issuesFixed/images/ docs/d/ruta-2.1.0/issuesFixed/images/logos/ docs/d/ruta-curr...

Modified: uima/site/trunk/uima-website/docs/d/ruta-current/tools.ruta.book.html
URL: http://svn.apache.org/viewvc/uima/site/trunk/uima-website/docs/d/ruta-current/tools.ruta.book.html?rev=1525003&r1=1525002&r2=1525003&view=diff
==============================================================================
--- uima/site/trunk/uima-website/docs/d/ruta-current/tools.ruta.book.html (original)
+++ uima/site/trunk/uima-website/docs/d/ruta-current/tools.ruta.book.html Fri Sep 20 13:54:25 2013
@@ -1,8 +1,8 @@
 <html><head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-   <title>Apache UIMA Ruta Guide and Reference</title><link rel="stylesheet" type="text/css" href="css/stylesheet-html.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" title="Apache UIMA Ruta Guide and Reference" id="d5e1"><div xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div><h1 class="title">Apache UIMA Ruta Guide and Reference</h1></div><div><div class="authorgroup">
+   <title>Apache UIMA&#8482; Ruta Guide and Reference</title><link rel="stylesheet" type="text/css" href="css/stylesheet-html.css"><meta name="generator" content="DocBook XSL-NS Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="book" title="Apache UIMA&#8482; Ruta Guide and Reference" id="d5e1"><div xmlns:d="http://docbook.org/ns/docbook" class="titlepage"><div><div><h1 class="title">Apache UIMA&#8482; Ruta Guide and Reference</h1></div><div><div class="authorgroup">
       <h3 class="corpauthor">Written and maintained by the Apache UIMA Development Community</h3>
-    </div></div><div><p class="releaseinfo">Version 2.0.1</p></div><div><p class="copyright">Copyright &copy; 2006, 2013 The Apache Software Foundation</p></div><div><div class="legalnotice" title="Legal Notice"><a name="d5e8"></a>
+    </div></div><div><p class="releaseinfo">Version 2.1.0</p></div><div><p class="copyright">Copyright &copy; 2006, 2013 The Apache Software Foundation</p></div><div><div class="legalnotice" title="Legal Notice"><a name="d5e8"></a>
       <p> </p>
       <p title="License and Disclaimer">
         <b>License and Disclaimer.&nbsp;</b>
@@ -35,10 +35,10 @@
         the trademark or service mark.
         
       </p>
-    </div></div><div><p class="pubdate">May, 2013</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#ugr.tools.ruta.overview">1. Apache UIMA Ruta Overview</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.overview.intro">1.1. What is Apache UIMA Ruta?</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.gettingstarted">1.2. Getting started</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.coreconcepts">1.3. Core Concepts</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.examples">1.4. Learning by Example</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae">1.5. UIMA Analysis Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.ae.basic">1.5.1. Ruta Engine</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.annotationwriter">1.5.2. Annotation Writer</a></span></dt><d
 t><span class="section"><a href="#ugr.tools.ruta.ae.plaintext">1.5.3. Plain Text Annotator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.modifier">1.5.4. Modifier</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.html">1.5.5. HTML Annotator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.htmlconverter">1.5.6. HTML Converter</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.stylemap">1.5.7. Style Map Creator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.xmi">1.5.8. XMI Writer</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tools.ruta.language.language">2. Apache UIMA Ruta Language</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.syntax">2.1. Syntax</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.seeding">2.2. Basic annotations and tokens</a></span></dt><dt><span class="section"><a href="#ugr.to
 ols.ruta.language.quantifier">2.3. Quantifiers</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.sg">2.3.1. * Star Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.sr">2.3.2. *? Star Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.pg">2.3.3. + Plus Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.pr">2.3.4. +? Plus Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.qg">2.3.5. ? Question Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.qr">2.3.6. ?? Question Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.mmg">2.3.7. [x,y] Min Max Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.mmr">2.3.8. [x,y]? Min Max Reluctant</a></span></dt
 ></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations">2.4. Declarations</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.type">2.4.1. Types</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.variable">2.4.2. Variables</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.ressource">2.4.3. Resources</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.scripts">2.4.4. Scripts</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.components">2.4.5. Components</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions">2.5. Expressions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.type">2.5.1. Type Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.exp
 ressions.number">2.5.2. Number Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.string">2.5.3. String Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.boolean">2.5.4. Boolean Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.lists">2.5.5. List Expressions</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions">2.6. Conditions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.after">2.6.1. AFTER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.and">2.6.2. AND</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.before">2.6.3. BEFORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.contains">2.6.4. CONTAINS</a></span></dt><dt><span class="section"><a
  href="#ugr.tools.ruta.language.conditions.contextcount">2.6.5. CONTEXTCOUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.count">2.6.6. COUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.currentcount">2.6.7. CURRENTCOUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.endswith">2.6.8. ENDSWITH</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.feature">2.6.9. FEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.if">2.6.10. IF</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.inlist">2.6.11. INLIST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.is">2.6.12. IS</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.last">2.6.13. LAST</a></span></dt><dt><span class="section"><a href="#ugr.t
 ools.ruta.language.conditions.mofn">2.6.14. MOFN</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.near">2.6.15. NEAR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.not">2.6.16. NOT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.or">2.6.17. OR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.parse">2.6.18. PARSE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.partof">2.6.19. PARTOF</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.partofneq">2.6.20. PARTOFNEQ</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.position">2.6.21. POSITION</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.regexp">2.6.22. REGEXP</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.
 score">2.6.23. SCORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.size">2.6.24. SIZE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.startswith">2.6.25. STARTSWITH</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.totalcount">2.6.26. TOTALCOUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.vote">2.6.27. VOTE</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.actions">2.7. Actions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.add">2.7.1. ADD</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.addfiltertype">2.7.2. ADDFILTERTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.addretaintype">2.7.3. ADDRETAINTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actio
 ns.assign">2.7.4. ASSIGN</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.call">2.7.5. CALL</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.clear">2.7.6. CLEAR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.color">2.7.7. COLOR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.configure">2.7.8. CONFIGURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.create">2.7.9. CREATE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.del">2.7.10. DEL</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.dynamicanchoring">2.7.11. DYNAMICANCHORING</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.exec">2.7.12. EXEC</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.fill">2.7.13. FILL</a></span></dt><dt>
 <span class="section"><a href="#ugr.tools.ruta.language.actions.filtertype">2.7.14. FILTERTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.gather">2.7.15. GATHER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.get">2.7.16. GET</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.getfeature">2.7.17. GETFEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.getlist">2.7.18. GETLIST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.log">2.7.19. LOG</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.mark">2.7.20. MARK</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.markfast">2.7.21. MARKFAST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.marklast">2.7.22. MARKLAST</a></span></dt><dt><span class="section"><a href="#u
 gr.tools.ruta.language.actions.markonce">2.7.23. MARKONCE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.markscore">2.7.24. MARKSCORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.marktable">2.7.25. MARKTABLE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.matchedtext">2.7.26. MATCHEDTEXT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.merge">2.7.27. MERGE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.remove">2.7.28. REMOVE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removeduplicate">2.7.29. REMOVEDUPLICATE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removefiltertype">2.7.30. REMOVEFILTERTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removeretaintype">2.7.31. REMOVERETAINTYPE</a></span></d
 t><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.replace">2.7.32. REPLACE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.retaintype">2.7.33. RETAINTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.setfeature">2.7.34. SETFEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.shift">2.7.35. SHIFT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.transfer">2.7.36. TRANSFER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.trie">2.7.37. TRIE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.trim">2.7.38. TRIM</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.unmark">2.7.39. UNMARK</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.unmarkall">2.7.40. UNMARKALL</a></span></dt></dl></dd><dt><span cla
 ss="section"><a href="#ugr.tools.ruta.language.filtering">2.8. Robust extraction using filtering</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks">2.9. Blocks</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.condition">2.9.1. Conditioned statements</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.foreach">2.9.2. 
+    </div></div><div><p class="pubdate">September, 2013</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#ugr.tools.ruta.overview">1. Apache UIMA Ruta Overview</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.overview.intro">1.1. What is Apache UIMA Ruta?</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.gettingstarted">1.2. Getting started</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.coreconcepts">1.3. Core Concepts</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.overview.examples">1.4. Learning by Example</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae">1.5. UIMA Analysis Engines</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.ae.basic">1.5.1. Ruta Engine</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.annotationwriter">1.5.2. Annotation Writer</a></span><
 /dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.plaintext">1.5.3. Plain Text Annotator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.modifier">1.5.4. Modifier</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.html">1.5.5. HTML Annotator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.htmlconverter">1.5.6. HTML Converter</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.stylemap">1.5.7. Style Map Creator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.cutter">1.5.8. Cutter</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.view">1.5.9. View Writer</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.xmi">1.5.10. XMI Writer</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.integration">1.6. Integrating Ruta in an existing UIMA Annotator</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.ae.in
 tegration.mvn">1.6.1. Adding Ruta to our Annotator</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.ae.integration.loading">1.6.2. Developing Ruta rules and applying them from inside Java code</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#ugr.tools.ruta.language.language">2. Apache UIMA Ruta Language</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.syntax">2.1. Syntax</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.anchoring">2.2. Rule elements and their matching order</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.seeding">2.3. Basic annotations and tokens</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier">2.4. Quantifiers</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.sg">2.4.1. * Star Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quan
 tifier.sr">2.4.2. *? Star Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.pg">2.4.3. + Plus Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.pr">2.4.4. +? Plus Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.qg">2.4.5. ? Question Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.qr">2.4.6. ?? Question Reluctant</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.mmg">2.4.7. [x,y] Min Max Greedy</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.quantifier.mmr">2.4.8. [x,y]? Min Max Reluctant</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations">2.5. Declarations</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.type">2.5.1. Types</a></span></dt><dt><span cl
 ass="section"><a href="#ugr.tools.ruta.language.declarations.variable">2.5.2. Variables</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.ressource">2.5.3. Resources</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.scripts">2.5.4. Scripts</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.declarations.components">2.5.5. Components</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions">2.6. Expressions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.type">2.6.1. Type Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.number">2.6.2. Number Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.string">2.6.3. String Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expres
 sions.boolean">2.6.4. Boolean Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.lists">2.6.5. List Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.expressions.features">2.6.6. Feature Expressions</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions">2.7. Conditions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.after">2.7.1. AFTER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.and">2.7.2. AND</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.before">2.7.3. BEFORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.contains">2.7.4. CONTAINS</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.contextcount">2.7.5. CONTEXTCOUNT</a></span></dt><dt><span class="section"><a 
 href="#ugr.tools.ruta.language.conditions.count">2.7.6. COUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.currentcount">2.7.7. CURRENTCOUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.endswith">2.7.8. ENDSWITH</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.feature">2.7.9. FEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.if">2.7.10. IF</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.inlist">2.7.11. INLIST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.is">2.7.12. IS</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.last">2.7.13. LAST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.mofn">2.7.14. MOFN</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.langua
 ge.conditions.near">2.7.15. NEAR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.not">2.7.16. NOT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.or">2.7.17. OR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.parse">2.7.18. PARSE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.partof">2.7.19. PARTOF</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.partofneq">2.7.20. PARTOFNEQ</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.position">2.7.21. POSITION</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.regexp">2.7.22. REGEXP</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.score">2.7.23. SCORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.size">2.7.24. 
 SIZE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.startswith">2.7.25. STARTSWITH</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.totalcount">2.7.26. TOTALCOUNT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.conditions.vote">2.7.27. VOTE</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.actions">2.8. Actions</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.add">2.8.1. ADD</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.addfiltertype">2.8.2. ADDFILTERTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.addretaintype">2.8.3. ADDRETAINTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.assign">2.8.4. ASSIGN</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.call">2.8.5. 
 CALL</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.clear">2.8.6. CLEAR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.color">2.8.7. COLOR</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.configure">2.8.8. CONFIGURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.create">2.8.9. CREATE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.del">2.8.10. DEL</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.dynamicanchoring">2.8.11. DYNAMICANCHORING</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.exec">2.8.12. EXEC</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.fill">2.8.13. FILL</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.filtertype">2.8.14. FILTERTYPE</a></span></dt><dt><span c
 lass="section"><a href="#ugr.tools.ruta.language.actions.gather">2.8.15. GATHER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.get">2.8.16. GET</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.getfeature">2.8.17. GETFEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.getlist">2.8.18. GETLIST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.log">2.8.19. LOG</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.mark">2.8.20. MARK</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.markfast">2.8.21. MARKFAST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.markfirst">2.8.22. MARKFIRST</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.marklast">2.8.23. MARKLAST</a></span></dt><dt><span class="section"><a href="#ugr.tools.
 ruta.language.actions.markonce">2.8.24. MARKONCE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.markscore">2.8.25. MARKSCORE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.marktable">2.8.26. MARKTABLE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.matchedtext">2.8.27. MATCHEDTEXT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.merge">2.8.28. MERGE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.remove">2.8.29. REMOVE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removeduplicate">2.8.30. REMOVEDUPLICATE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removefiltertype">2.8.31. REMOVEFILTERTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.removeretaintype">2.8.32. REMOVERETAINTYPE</a></span></dt><dt><sp
 an class="section"><a href="#ugr.tools.ruta.language.actions.replace">2.8.33. REPLACE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.retaintype">2.8.34. RETAINTYPE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.setfeature">2.8.35. SETFEATURE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.shift">2.8.36. SHIFT</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.transfer">2.8.37. TRANSFER</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.trie">2.8.38. TRIE</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.trim">2.8.39. TRIM</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.unmark">2.8.40. UNMARK</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.actions.unmarkall">2.8.41. UNMARKALL</a></span></dt></dl></dd><dt><span class="secti
 on"><a href="#ugr.tools.ruta.language.filtering">2.9. Robust extraction using filtering</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks">2.10. Blocks</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.condition">2.10.1. Conditioned statements</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.foreach">2.10.2. 
         <span class="quote">&#8220;<span class="quote">Foreach</span>&#8221;</span>
         -Loops
-      </a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.procedure">2.9.3. Procedures</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.score">2.10. Heuristic extraction using scoring rules</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.modification">2.11. Modification</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.external_resources">2.12. External resources</a></span></dt><dd><dl><dt><span class="section"><a href="#d5e2130">2.12.1. WORDLISTs</a></span></dt><dt><span class="section"><a href="#d5e2150">2.12.2. WORDTABLEs</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.regexprule">2.13. Simple Rules based on Regular Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.extensions">2.14. Language Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tools.ruta.workbench">3.
  Apache UIMA Ruta Workbench</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.install">3.1. Installation</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.overview">3.2. UIMA Ruta Workbench Overview</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.projects">3.3. UIMA Ruta Projects</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.projects.create_projects">3.3.1. UIMA Ruta create project wizard</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_perspective">3.4. UIMA Ruta Perspective</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_perspective.annotation_browser">3.4.1. Annotation Browser</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_perspective.selection">3.4.2. Selection</a></span></dt></dl></dd
 ><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective">3.5. Explain Perspective</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.applied_rules">3.5.1. Applied Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.matched_and_failed_rules">3.5.2. Matched Rules and Failed Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.rule_elements">3.5.3. Rule Elements</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.covering_rules">3.5.4. Covering Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.rule_list">3.5.5. Rule List</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.created_by">3.5.6. Created By</a></span></dt><d
 t><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.statistics">3.5.7. Statistics</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_query">3.6. Query View</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.testing">3.7. Testing</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.testing.usage">3.7.1. Usage</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.testing.evaluators">3.7.2. Evaluators</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.textruler">3.8. TextRuler</a></span></dt><dd><dl><dt><span class="section"><a href="#ugr.tools.ruta.textruler.learner">3.8.1. Available Learners</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.create_dictionaries">3.9. Creation of Tree Word Lists</a></span></dt><dt><spa
 n class="section"><a href="#ugr.tools.ruta.workbench.apply">3.10. Apply a UIMA Ruta script to a folder</a></span></dt></dl></dd></dl></div>
+      </a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.blocks.procedure">2.10.3. Procedures</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.inlined">2.11. Inlined rules</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.score">2.12. Heuristic extraction using scoring rules</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.modification">2.13. Modification</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.external_resources">2.14. External resources</a></span></dt><dd><dl><dt><span class="section"><a href="#d5e2309">2.14.1. WORDLISTs</a></span></dt><dt><span class="section"><a href="#d5e2329">2.14.2. WORDTABLEs</a></span></dt></dl></dd><dt><span class="section"><a href="#ugr.tools.ruta.language.regexprule">2.15. Simple Rules based on Regular Expressions</a></span></dt><dt><span class="section"><a href="#ugr.tools.ruta.language.extensions">2.16. Lang
 uage Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a href="#ugr.tools.ruta.workbench">3. Apache UIMA Ruta Workbench</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.install">3.1. Installation</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.overview">3.2. UIMA Ruta Workbench Overview</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.projects">3.3. UIMA Ruta Projects</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.projects.create_projects">3.3.1. UIMA Ruta create project wizard</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_perspective">3.4. UIMA Ruta Perspective</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_perspective.annotation_browser">3.4.1. Annotation Browser</a></span></dt><dt><span class="section"><a href
 ="#section.ugr.tools.ruta.workbench.ruta_perspective.selection">3.4.2. Selection</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective">3.5. UIMA Ruta Explain Perspective</a></span></dt><dd><dl><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.applied_rules">3.5.1. Applied Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.matched_and_failed_rules">3.5.2. Matched Rules and Failed Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.rule_elements">3.5.3. Rule Elements</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.covering_rules">3.5.4. Covering Rules</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.rule_list">3.5.5. Rule List</a></span></dt><dt><span class="sect
 ion"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.created_by">3.5.6. Created By</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.explain_perspective.statistics">3.5.7. Statistics</a></span></dt></dl></dd><dt><span class="section"><a href="#section.tools.ruta.workbench.cde">3.6. UIMA Ruta CDE perspective</a></span></dt><dd><dl><dt><span class="section"><a href="#section.tools.ruta.workbench.cde.documents">3.6.1. CDE Documents view</a></span></dt><dt><span class="section"><a href="#section.tools.ruta.workbench.cde.constraints">3.6.2. CDE Constraints view</a></span></dt><dt><span class="section"><a href="#section.tools.ruta.workbench.cde.result">3.6.3. CDE Result view</a></span></dt></dl></dd><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.ruta_query">3.7. Ruta Query View</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.testing">3.8. Testing</a></span></dt><dd><dl><dt><span clas
 s="section"><a href="#section.ugr.tools.ruta.workbench.testing.usage">3.8.1. Usage</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.testing.evaluators">3.8.2. Evaluators</a></span></dt></dl></dd><dt><span class="section"><a href="#section.tools.ruta.workbench.textruler">3.9. TextRuler</a></span></dt><dd><dl><dt><span class="section"><a href="#section.tools.ruta.workbench.textruler.learner">3.9.1. Included rule learning algorithms</a></span></dt><dt><span class="section"><a href="#section.tools.ruta.workbench.textruler.ui">3.9.2. The TextRuler view</a></span></dt><dt><span class="section"><a href="#section.tools.ruta.workbench.textruler.example">3.9.3. Example</a></span></dt></dl></dd><dt><span class="section"><a href="#section.tools.ruta.workbench.check">3.10. Check Annotations view</a></span></dt><dt><span class="section"><a href="#section.ugr.tools.ruta.workbench.create_dictionaries">3.11. Creation of Tree Word Lists</a></span></dt><dt><span clas
 s="section"><a href="#ugr.tools.ruta.workbench.apply">3.12. Apply a UIMA Ruta script to a folder</a></span></dt></dl></dd></dl></div>
   
   
     
@@ -90,8 +90,8 @@
       UIMA Ruta rules can also be applied on CAS without using the UIMA Ruta Workbench. 
       <a class="xref" href="#ugr.tools.ruta.ae.basic.apply" title="1.5.1.1.&nbsp;Apply UIMA Ruta Analysis Engine in plain Java">Section&nbsp;1.5.1.1, &#8220;Apply UIMA Ruta Analysis Engine in plain Java&#8221;</a> contains examples how to execute UIMA Ruta rules in plain java.
       A good way to get started with UIMA Ruta is to play around with an exemplary UIMA Ruta project, e.g., 
-      <code class="uri">https://svn.apache.org/repos/asf/uima/sandbox/ruta/trunk/example-projects/ExampleProject</code>. This UIMA Ruta project 
-      contains some simple rules for processing citation metadata.
+      <span class="quote">&#8220;<span class="quote">ExampleProject</span>&#8221;</span> in the example-projects of the UIMA Ruta source release.
+      This UIMA Ruta project contains some simple rules for processing citation metadata.
     </p>  
     <p>    
       <a class="xref" href="#ugr.tools.ruta.language.language" title="Chapter&nbsp;2.&nbsp;Apache UIMA Ruta Language">Chapter&nbsp;2, <i>Apache UIMA Ruta Language</i></a> and <a class="xref" href="#ugr.tools.ruta.workbench" title="Chapter&nbsp;3.&nbsp;Apache UIMA Ruta Workbench">Chapter&nbsp;3, <i>Apache UIMA Ruta Workbench</i></a> provide 
@@ -172,14 +172,10 @@
       is given <a class="link" href="#section.ugr.tools.ruta.workbench.install" title="3.1.&nbsp;Installation">here</a>. The following examples make use of the 
       annotations added by the default seeding of the UIMA Ruta Analysis Engine. Their meaning is explained along with the examples. 
     </p>
-    <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
-      The examples in this section are not valid script files as they are missing at least a package declaration. 
-      In order to obtain a valid script file, please ensure that all used types are imported or declared and 
-      that a package declaration like <span class="quote">&#8220;<span class="quote">PACKAGE uima.ruta.example;</span>&#8221;</span> is added in the first line of the script.
-    </p></div>
     <p>
       The first example consists of a declaration of a type followed by a simple rule. Type declarations always start with the keyword 
       <span class="quote">&#8220;<span class="quote">DECLARE</span>&#8221;</span> followed by the short name of the new type. The namespace of the type is equal to the package declaration of the script file.
+      If there is no package declaration, then the types declared in the script file have no namespace.
       There is also the possibility to create more complex types with features or specific parent types, but this will be neglected for now.
       In the example, a simple annotation type with the short name <span class="quote">&#8220;<span class="quote">Animal</span>&#8221;</span> is defined.
       After the declaration of the type, a rule with one rule element is given. 
@@ -202,6 +198,19 @@ W{REGEXP("dog") -&gt; MARK(Animal)};</pr
     </p>
     
     <p>
+      There is also the possibility to add implicit actions and conditions, which have no explicit name, but consist only of an expression.
+      In the part of the conditions, boolean expressions and feature match expression can be applied, and in the part of the actions,
+      type expressions and feature assignment expression can be added. The following example contains one implicit condition and one implicit action.
+      The additional condition is a boolean expression (boolean variable), which is set to <span class="quote">&#8220;<span class="quote">true</span>&#8221;</span>, and therefore is always fulfills the condition.
+      The <span class="quote">&#8220;<span class="quote">MARK</span>&#8221;</span> action was replaced by a type expression, which refer to the type <span class="quote">&#8220;<span class="quote">Animal</span>&#8221;</span>. The following rule shows, therefore,
+      the same behavior as the rule in the last example.
+    </p>
+    
+    <pre class="programlisting">DECLARE Animal;
+BOOLEAN active = true;
+W{REGEXP("dog"), active -&gt; Animal};</pre>
+    
+    <p>
       There is also a special kind of rules, which follow a different syntax and semantic, and enables a simplified creation of annotations based on regular expression.
       The following rule, for example, creates an <span class="quote">&#8220;<span class="quote">Animal</span>&#8221;</span> annotation for each occurrence of <span class="quote">&#8220;<span class="quote">dog</span>&#8221;</span> or <span class="quote">&#8220;<span class="quote">cat</span>&#8221;</span>.
     </p>
@@ -255,6 +264,17 @@ Document{-&gt; MARKFAST(Animal, AnimalsL
     <pre class="programlisting">(Animal (COMMA | SEMICOLON))+{-&gt; MARK(AnimalEnum,1,2)} Animal;</pre>
 
     <p>
+      There two more special symbols that can be used to link rule elements. If the symbol <span class="quote">&#8220;<span class="quote">|</span>&#8221;</span> is replaced by the
+      symbol <span class="quote">&#8220;<span class="quote">&amp;</span>&#8221;</span> in the last example, then the token after the animal need to be a comma and a semicolon, which is of course not possible.
+      Another symbol with a special meaning is <span class="quote">&#8220;<span class="quote">%</span>&#8221;</span>, which cannot only be used within a composed rule element (parentheses).
+      This symbol can be interpreted as a global <span class="quote">&#8220;<span class="quote">and</span>&#8221;</span>: It links several rules, which only fire, if all rules have successfully matched. 
+      In the following example, an annotation of the type <span class="quote">&#8220;<span class="quote">FoundIt</span>&#8221;</span> is created, if the document contains two periods in a row and two commas in a row:
+    </p>
+    
+    <pre class="programlisting">PERIOD PERIOD % COMMA COMMA{-&gt; FoundIt};</pre>
+
+
+    <p>
       There is a <span class="quote">&#8220;<span class="quote">wild card</span>&#8221;</span> rule element, which can be used to skip some text or annotations until the next rule element is able to match.
     </p>
     
@@ -263,7 +283,7 @@ PERIOD #{-&gt; MARK(Sentence)} PERIOD;</
     
     <p>
       This rule annotates everything between two <span class="quote">&#8220;<span class="quote">PERIOD</span>&#8221;</span> annotations with the type <span class="quote">&#8220;<span class="quote">Sentence</span>&#8221;</span>. Please note that the resulting 
-      annotations are probably invisible, if they start or end with an filtered type.
+      annotations is automatically trimmed using the current filtering settings.
     </p>
 
     <p>
@@ -390,7 +410,7 @@ STRING moneyCurrency;
 NUM{PARSE(moneyAmount)} SPECIAL{REGEXP("&#8364;") -&gt; MATCHEDTEXT(moneyCurrency),
     CREATE(MoneyAmount, 1, 2, "amount" = moneyAmount,
         "currency" = moneyCurrency)};</pre>
-
+    
     <p>
       First, a new annotation with the name <span class="quote">&#8220;<span class="quote">MoneyAmount</span>&#8221;</span> and two features are defined, one string feature and one integer feature.
       Then, two UIMA Ruta variables are declared, one integer variable and one string variable. The rule matches on a number, whose value is stored 
@@ -400,6 +420,18 @@ NUM{PARSE(moneyAmount)} SPECIAL{REGEXP("
     </p>
 
     <p>
+      Using feature expression for conditions and action, can reduce the complexity of a rule. The first rule in the following example set the value of the feature
+      <span class="quote">&#8220;<span class="quote">currency</span>&#8221;</span> of the annotation of the type <span class="quote">&#8220;<span class="quote">MoneyAmount</span>&#8221;</span> to <span class="quote">&#8220;<span class="quote">Euro</span>&#8221;</span>, if it was <span class="quote">&#8220;<span class="quote">&#8364;</span>&#8221;</span> before.
+      The second rule creates an annotation of the type <span class="quote">&#8220;<span class="quote">LessThan</span>&#8221;</span> for all annotations of the type <span class="quote">&#8220;<span class="quote">MoneyAmount</span>&#8221;</span>, 
+      if their amount is less than 100 and the currency is <span class="quote">&#8220;<span class="quote">Euro</span>&#8221;</span>. 
+    </p>
+    
+    <pre class="programlisting">DECLARE LessThan;
+MoneyAmount.currency=="&#8364;"{-&gt; MoneyAmount.currency="Euro"};
+MoneyAmount{(MoneyAmount.amount&lt;=100), 
+    MoneyAmount.currency=="Euro" -&gt; LessThan};</pre>
+
+    <p>
       UIMA Ruta script files with many rules can quickly confuse the reader. The UIMA Ruta language, therefore, allows to import other script files in order to increase
       the modularity of a project or to create rule libraries. The next example imports the rules together with all known types of another script file 
       and executes that script file.
@@ -436,7 +468,7 @@ Person{PARTOF(Organization) -&gt; UNMARK
       only with matching rules. The UIMA Ruta language provides the BLOCK element for some of these use cases. 
       The UIMA Ruta BLOCK element starts with the keyword <span class="quote">&#8220;<span class="quote">BLOCK</span>&#8221;</span> followed by its name in parentheses. The name of a block has two purposes:
       On the one hand, it is easier to distinguish the block, if they have different names, e.g., in the 
-      <a class="link" href="#section.ugr.tools.ruta.workbench.explain_perspective" title="3.5.&nbsp;Explain Perspective">explain perspective</a> of the UIMA Ruta Workbench. On the other hand,
+      <a class="link" href="#section.ugr.tools.ruta.workbench.explain_perspective" title="3.5.&nbsp;UIMA Ruta Explain Perspective">explain perspective</a> of the UIMA Ruta Workbench. On the other hand,
       the name can be used to execute this block using the CALL action. Hereby, it is possible to access only specific sets of rules of other script files, 
       or to implement a recursive call of rules. After the name of the block, a single rule element is given, which has curly parentheses, 
       even if no conditions or actions are specified. Then, the body of the block is framed by curly brackets.
@@ -467,13 +499,34 @@ BLOCK(ForEach) Sentence{} {
 </pre>
     
     <p>
-      Here, the rule in the block statement is performed for each occurence of an annotation of the type <span class="quote">&#8220;<span class="quote">Sentence</span>&#8221;</span>. 
+      Here, the rule in the block statement is performed for each occurrence of an annotation of the type <span class="quote">&#8220;<span class="quote">Sentence</span>&#8221;</span>. 
       The rule within the block matches on the complete document, which is the current sentence in the context of the block statement. 
       As a consequence, this example creates an annotation of the type <span class="quote">&#8220;<span class="quote">SentenceWithNoLeadingNP</span>&#8221;</span> for each sentence 
       that does not start with a NP annotation.
     </p>
 
     <p>
+      There are two more language constructs (<span class="quote">&#8220;<span class="quote">-&gt;</span>&#8221;</span> and <span class="quote">&#8220;<span class="quote">&lt;-</span>&#8221;</span>) that allow to apply rules within a certain context. These rules are added to an arbitrary rule element 
+      and are called inlined rules. The first example interprets the inlined rules as actions. They are executed if the surrounding rule was able to match, 
+      which makes this one very similar to the block statement.
+    </p>
+
+    <pre class="programlisting">DECLARE SentenceWithNoLeadingNP;
+Sentence{}-&gt;{
+    Document{-STARTSWITH(NP) -&gt; SentenceWithNoLeadingNP};
+};
+</pre>
+
+    <p>
+      The second one (<span class="quote">&#8220;<span class="quote">&lt;-</span>&#8221;</span>) interprets the inlined rules as conditions. The surrounding rule can only match if at least one inlined rule was successfully applied.
+      In the following example, a sentence is annotated with the type SentenceWithNPNP, if there are two successive NP annotations within this sentence.
+    </p>
+    <pre class="programlisting">DECLARE SentenceWithNPNP;
+Sentence{-&gt; SentenceWithNPNP}&lt;-{
+    NP NP;
+};
+</pre>
+    <p>
       Let us take a closer look on what exactly the UIMA Ruta rules match. The following rule matches on a word followed by another word:
     </p>
     <pre class="programlisting">W W;</pre>
@@ -481,7 +534,7 @@ BLOCK(ForEach) Sentence{} {
     <p>
       To be more precise, this rule matches on all documents like <span class="quote">&#8220;<span class="quote">Apache UIMA</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">Apache     UIMA</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">ApacheUIMA</span>&#8221;</span>,
       <span class="quote">&#8220;<span class="quote">Apache &lt;b&gt;UIMA&lt;/b&gt;</span>&#8221;</span>. There are two main reasons for this: First of all, it depends on how the available annotations are defined. The default seeder
-      for the inital annotations creates an annotation for all characters until an upper case character occurs. Thus, the string <span class="quote">&#8220;<span class="quote">ApacheUIMA</span>&#8221;</span> consists of 
+      for the initial annotations creates an annotation for all characters until an upper case character occurs. Thus, the string <span class="quote">&#8220;<span class="quote">ApacheUIMA</span>&#8221;</span> consists of 
       two tokens.
       However, more important, the UIMA Ruta language provides a concept of visibility of the annotations. By default, all annotations of the types 
       <span class="quote">&#8220;<span class="quote">SPACE</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">NBSP</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">BREAK</span>&#8221;</span> and <span class="quote">&#8220;<span class="quote">MARKUP</span>&#8221;</span> (whitespace and XML elements) are filtered and not visible. This holds of course for
@@ -532,10 +585,23 @@ Document{-&gt; EXEC(Modifier)};
     The descriptor needs to be located in the folder specified by the parameter <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.descriptorPaths" title="descriptorPaths">descriptorPaths</a>.
     The first rule deletes all text covered by annotations of the type <span class="quote">&#8220;<span class="quote">Date</span>&#8221;</span>. The second rule replaces the text of all annotations of the type <span class="quote">&#8220;<span class="quote">MoneyAmount</span>&#8221;</span> 
     with the string <span class="quote">&#8220;<span class="quote">&lt;MoneyAmount/&gt;</span>&#8221;</span>. The third rule remembers to set the background color of text in Headline annotation to green. The last rule
-    finally performs all of these changes in an additonal view called <span class="quote">&#8220;<span class="quote">modified</span>&#8221;</span>, which is specified in the configuration parameters of the analysis engine.
-    <a class="xref" href="#ugr.tools.ruta.ae.modifier" title="1.5.4.&nbsp;Modifier">Section&nbsp;1.5.4, &#8220;Modifier&#8221;</a> and <a class="xref" href="#ugr.tools.ruta.language.modification" title="2.11.&nbsp;Modification">Section&nbsp;2.11, &#8220;Modification&#8221;</a> provide a more detailed description.
+    finally performs all of these changes in an additional view called <span class="quote">&#8220;<span class="quote">modified</span>&#8221;</span>, which is specified in the configuration parameters of the analysis engine.
+    <a class="xref" href="#ugr.tools.ruta.ae.modifier" title="1.5.4.&nbsp;Modifier">Section&nbsp;1.5.4, &#8220;Modifier&#8221;</a> and <a class="xref" href="#ugr.tools.ruta.language.modification" title="2.13.&nbsp;Modification">Section&nbsp;2.13, &#8220;Modification&#8221;</a> provide a more detailed description.
   </p>
-
+  
+  <p>
+    In the last example, a descriptor file was loaded in order to import and apply an external analysis engine. Analysis engines can also be loaded using uimaFIT, 
+    whereas the given class name has to be present in the classpath. In the UIMA Ruta Workbench, you can add a dependency to a java project, which contains the 
+    implementation, to the UIMA Ruta project. If the UIMA Ruta script is applied in a UIMA Pipeline, then the configuration parameter 
+    <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.additionalUimafitEngines" title="additionalUimafitEngines">additionalUimafitEngines</a> has to list the class of the analysis engine. 
+    The following example loads an analysis engine without an descriptor and applies it on the document. The additional list of types states that
+    the annotations of those types created by the analysis engine should be available to the following Ruta rules.
+    
+  </p>
+      <pre class="programlisting">UIMAFIT my.package.impl.MyAnalysisEngine;
+Document{-&gt; EXEC(MyAnalysisEngine, {MyType1, MyType2})};
+</pre>
+  
   </div>
   
   <div class="section" title="1.5.&nbsp;UIMA Analysis Engines"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tools.ruta.ae">1.5.&nbsp;UIMA Analysis Engines</h2></div></div></div>
@@ -632,9 +698,9 @@ ae.process(cas);</pre>
           <a class="xref" href="#table.ugr.tools.ruta.ae.parameter" title="Table&nbsp;1.1.&nbsp;Configuration parameters of the UIMA Ruta Analysis Engine">Table&nbsp;1.1, &#8220;Configuration parameters of the UIMA Ruta Analysis Engine   &#8221;</a>. Afterwards, all parameters are described in detail with examples.
         </p>
         <p>
-          To change the value of any configuration parameter within a UIMA Ruta script, the CONFIGURE action (see <a class="xref" href="#ugr.tools.ruta.language.actions.configure" title="2.7.8.&nbsp;CONFIGURE">Section&nbsp;2.7.8, &#8220;CONFIGURE&#8221;</a>)
+          To change the value of any configuration parameter within a UIMA Ruta script, the CONFIGURE action (see <a class="xref" href="#ugr.tools.ruta.language.actions.configure" title="2.8.8.&nbsp;CONFIGURE">Section&nbsp;2.8.8, &#8220;CONFIGURE&#8221;</a>)
           can be used. For changing behaviour of <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.dynamicAnchoring" title="dynamicAnchoring">dynamicAnchoring</a> the DYNAMICANCHORING action 
-          (see <a class="xref" href="#ugr.tools.ruta.language.actions.dynamicanchoring" title="2.7.11.&nbsp;DYNAMICANCHORING">Section&nbsp;2.7.11, &#8220;DYNAMICANCHORING&#8221;</a>) is recommended.
+          (see <a class="xref" href="#ugr.tools.ruta.language.actions.dynamicanchoring" title="2.8.11.&nbsp;DYNAMICANCHORING">Section&nbsp;2.8.11, &#8220;DYNAMICANCHORING&#8221;</a>) is recommended.
         </p>
         <p>
           </p><div class="table"><a name="table.ugr.tools.ruta.ae.parameter"></a><p class="title"><b>Table&nbsp;1.1.&nbsp;Configuration parameters of the UIMA Ruta Analysis Engine   </b></p><div class="table-contents">
@@ -666,6 +732,10 @@ ae.process(cas);</pre>
                   </td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">List of names with complete namespace of additional analysis engines, which
                     can be called by UIMA Ruta rules.
                   </td><td style="border-bottom: 0.5pt solid black; ">Multi String</td></tr><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">
+                    <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.additionalUimafitEngines" title="additionalUimafitEngines">additionalUimafitEngines</a>
+                  </td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">List of class names with complete namespace of additional uimaFIT analysis engines, which
+                    can be called by UIMA Ruta rules.
+                  </td><td style="border-bottom: 0.5pt solid black; ">Multi String</td></tr><tr><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">
                     <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.additionalEngineLoaders" title="additionalEngineLoaders">additionalEngineLoaders</a>
                   </td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">List of class names of implementations that are able to perform additional
                     task when loading external analysis engines.
@@ -707,7 +777,7 @@ ae.process(cas);</pre>
                     <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.statistics" title="statistics">statistics</a>
                   </td><td style="border-right: 0.5pt solid black; border-bottom: 0.5pt solid black; ">Option to add statistics of conditions and actions to the CAS.</td><td style="border-bottom: 0.5pt solid black; ">Single Boolean</td></tr><tr><td style="border-right: 0.5pt solid black; ">
                     <a class="link" href="#ugr.tools.ruta.ae.basic.parameter.createdBy" title="createdBy">createdBy</a>
-                  </td><td style="border-right: 0.5pt solid black; ">Option to add additional information, which rule created a annotation.
+                  </td><td style="border-right: 0.5pt solid black; ">Option to add additional information, which rule created an annotation.
                   </td><td style="">Single Boolean</td></tr></tbody></table>
           </div></div><p><br class="table-break">
         </p>
@@ -784,6 +854,14 @@ ae.process(cas);</pre>
             additional analysis engines.
           </p>
         </div>
+        <div class="section" title="additionalUimafitEngines"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.basic.parameter.additionalUimafitEngines">additionalUimafitEngines</h5></div></div></div>
+          
+          <p>
+            This parameter contains a list of additional analysis engines, which can be executed by the UIMA Ruta rules. The single values
+            are given by the name of the implementation with the complete namespace and have to be present int he classpath of the application.
+            An example for one value of the parameter is "org.apache.uima.ruta.engine.HtmlAnnotator", which points to the "HtmlAnnotator" class.
+          </p>
+        </div>
         <div class="section" title="additionalExtensions"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.basic.parameter.additionalExtensions">additionalExtensions</h5></div></div></div>
           
           <p>
@@ -814,15 +892,15 @@ ae.process(cas);</pre>
           <p>
             This parameter specifies a list of types, which are filtered by default when executing a script file. Using the default values of this parameter,
             whitespaces, line breaks and markup elements are not visible to Ruta rules. The visibility of annotations and, therefore, the covered text can be changed
-            using the actions <a class="link" href="#ugr.tools.ruta.language.actions.filtertype" title="2.7.14.&nbsp;FILTERTYPE">FILTERTYPE</a> and 
-            <a class="link" href="#ugr.tools.ruta.language.actions.retaintype" title="2.7.33.&nbsp;RETAINTYPE">RETAINTYPE</a>.
+            using the actions <a class="link" href="#ugr.tools.ruta.language.actions.filtertype" title="2.8.14.&nbsp;FILTERTYPE">FILTERTYPE</a> and 
+            <a class="link" href="#ugr.tools.ruta.language.actions.retaintype" title="2.8.34.&nbsp;RETAINTYPE">RETAINTYPE</a>.
           </p>
         </div>
         <div class="section" title="removeBasics"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.basic.parameter.removeBasics">removeBasics</h5></div></div></div>
           
           <p>
             This parameter specifies whether the inference annotations created by the analysis engine should be removed after processing the CAS.
-            The default value is set to false.
+            The default value is set to true.
           </p>
         </div>
         <div class="section" title="dynamicAnchoring"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.basic.parameter.dynamicAnchoring">dynamicAnchoring</h5></div></div></div>
@@ -845,7 +923,7 @@ ae.process(cas);</pre>
           
           <p>
             This parameter specifies whether a different inference strategy for composed rule elements should be applied. This option is only necessary 
-            when the composed rule element is expected to match very often, e.g., a rule element like (ANY ANY).
+            when the composed rule element is expected to match very often, e.g., a rule element like (ANY ANY)+.
             The default value of this parameter is set to false.
           </p>
         </div>
@@ -860,7 +938,7 @@ ae.process(cas);</pre>
         <div class="section" title="debugWithMatches"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.basic.parameter.debugWithMatches">debugWithMatches</h5></div></div></div>
           
           <p>
-            This parameter specificies whether the match information (covered text) of the rules should be stored in the CAS.
+            This parameter specifies whether the match information (covered text) of the rules should be stored in the CAS.
             The default value of this parameter is set to false.
           </p>
         </div>
@@ -912,8 +990,10 @@ ae.process(cas);</pre>
           <p>
             This string parameter specifies the absolute path of the resulting file named <span class="quote">&#8220;<span class="quote">output.txt</span>&#8221;</span>. However, if an annotation of the 
             type <span class="quote">&#8220;<span class="quote">org.apache.uima.examples.SourceDocumentInformation</span>&#8221;</span> is given, then the value of this parameter is interpreted to be relative
-            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. The UIMA Ruta Workbench automatically adds
-            the SourceDocumentInformation annotation when the user launches a script file. The default value of this parameter is <span class="quote">&#8220;<span class="quote">/../output/</span>&#8221;</span>.
+            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. If this functionality is activated in the preferences, 
+            then the UIMA Ruta Workbench adds
+            the SourceDocumentInformation annotation when the user launches a script file.
+             The default value of this parameter is <span class="quote">&#8220;<span class="quote">/../output/</span>&#8221;</span>.
           </p>
         </div>
         <div class="section" title="Encoding"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.annotationwriter.parameter.encoding">Encoding</h5></div></div></div>
@@ -969,8 +1049,10 @@ ae.process(cas);</pre>
           <p>
             This optional string parameter specifies the absolute path of the resulting file named <span class="quote">&#8220;<span class="quote">output.modified.html</span>&#8221;</span>. However, if an annotation of the 
             type <span class="quote">&#8220;<span class="quote">org.apache.uima.examples.SourceDocumentInformation</span>&#8221;</span> is given, then the value of this parameter is interpreted to be relative
-            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. The UIMA Ruta Workbench automatically adds
-            the SourceDocumentInformation annotation when the user launches a script file. The default value of this parameter is empty. 
+            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. If this functionality is activated in the preferences, 
+            then the UIMA Ruta Workbench adds
+            the SourceDocumentInformation annotation when the user launches a script file.
+            The default value of this parameter is empty. 
             In this case no additional html file will be created.
           </p>
         </div>
@@ -1088,7 +1170,7 @@ ae.process(cas);</pre>
       <p>
         This Analysis Engine can be utilized to create style map information, which is needed by the Modifier Analysis Engine in order to create
         highlightings for some annotations.
-        Style map information can be created using the <a class="link" href="#ugr.tools.ruta.language.actions.color" title="2.7.7.&nbsp;COLOR">COLOR</a> action.
+        Style map information can be created using the <a class="link" href="#ugr.tools.ruta.language.actions.color" title="2.8.7.&nbsp;COLOR">COLOR</a> action.
         A descriptor file for this Analysis Engine is located in the folder <span class="quote">&#8220;<span class="quote">descriptor/utils</span>&#8221;</span> of a UIMA Ruta project.
       </p>
       <div class="section" title="1.5.7.1.&nbsp;Configuration Parameters"><div class="titlepage"><div><div><h4 class="title" id="ugr.tools.ruta.ae.stylemap.parameter">1.5.7.1.&nbsp;Configuration Parameters</h4></div></div></div>
@@ -1110,14 +1192,78 @@ ae.process(cas);</pre>
         </div>
       </div>
     </div>
-    <div class="section" title="1.5.8.&nbsp;XMI Writer"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.xmi">1.5.8.&nbsp;XMI Writer</h3></div></div></div>
+    <div class="section" title="1.5.8.&nbsp;Cutter"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.cutter">1.5.8.&nbsp;Cutter</h3></div></div></div>
+      
+      <p>
+        This Analysis Engine is able to cut the document of the CAS. Only the text covered by annotations of the specified type will be retained and all other parts of the documents will be removed.
+        The offsets of annotations in the index will be updated, but not feature structures nested as feature values.
+      </p>
+      <div class="section" title="1.5.8.1.&nbsp;Configuration Parameters"><div class="titlepage"><div><div><h4 class="title" id="ugr.tools.ruta.ae.cutter.parameter">1.5.8.1.&nbsp;Configuration Parameters</h4></div></div></div>
+        
+        <p>
+        </p>
+        <div class="section" title="keep"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.cutter.parameter.keep">keep</h5></div></div></div>
+          
+          <p>
+            This string parameter specifies the complete name of a type. Only the text covered by annotations of this type will be retained and all other parts of the documents will be removed.
+          </p>
+        </div>
+        <div class="section" title="inputView"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.cutter.parameter.inputView">inputView</h5></div></div></div>
+          
+          <p>
+            The name of the view that should be processed.
+          </p>
+        </div>
+        <div class="section" title="outputView"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.cutter.parameter.outputView">outputView</h5></div></div></div>
+          
+          <p>
+            The name of the view, which will contain the modified CAS. 
+          </p>
+        </div>
+      </div>
+    </div>
+    <div class="section" title="1.5.9.&nbsp;View Writer"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.view">1.5.9.&nbsp;View Writer</h3></div></div></div>
+      
+      <p>
+        This Analysis Engine is able to serialize the processed CAS to an XMI file whereas the the source and destination view can be specified 
+        A descriptor file for this Analysis Engine is located in the folder <span class="quote">&#8220;<span class="quote">descriptor/utils</span>&#8221;</span> of a UIMA Ruta project.
+      </p>
+      <div class="section" title="1.5.9.1.&nbsp;Configuration Parameters"><div class="titlepage"><div><div><h4 class="title" id="ugr.tools.ruta.ae.view.parameter">1.5.9.1.&nbsp;Configuration Parameters</h4></div></div></div>
+        
+        <p>
+        </p>
+        <div class="section" title="output"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.view.parameter.output">output</h5></div></div></div>
+          
+          <p>
+            This string parameter specifies the absolute path of the resulting file named <span class="quote">&#8220;<span class="quote">output.xmi</span>&#8221;</span>. However, if an annotation of the 
+            type <span class="quote">&#8220;<span class="quote">org.apache.uima.examples.SourceDocumentInformation</span>&#8221;</span> is given, then the value of this parameter is interpreted to be relative
+            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. If this functionality is activated in the preferences, 
+            then the UIMA Ruta Workbench adds
+            the SourceDocumentInformation annotation when the user launches a script file.
+          </p>
+        </div>
+        <div class="section" title="inputView"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.view.parameter.inputView">inputView</h5></div></div></div>
+          
+          <p>
+            The name of the view that should be stored in a file.
+          </p>
+        </div>
+        <div class="section" title="outputView"><div class="titlepage"><div><div><h5 class="title" id="ugr.tools.ruta.ae.view.parameter.outputView">outputView</h5></div></div></div>
+          
+          <p>
+            The name, which should be used, to store the view in the file. 
+          </p>
+        </div>
+      </div>
+    </div>
+    <div class="section" title="1.5.10.&nbsp;XMI Writer"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.xmi">1.5.10.&nbsp;XMI Writer</h3></div></div></div>
       
       <p>
         This Analysis Engine is able to serialize the processed CAS to an XMI file. One use case for the XMI Writer is, for example, a rule-based sort,
         which stores the processed XMI files in different folder, dependent on the execution of the rules, e.g., whether a pattern of annotations occurs or not.
         A descriptor file for this Analysis Engine is located in the folder <span class="quote">&#8220;<span class="quote">descriptor/utils</span>&#8221;</span> of a UIMA Ruta project.
       </p>
-      <div class="section" title="1.5.8.1.&nbsp;Configuration Parameters"><div class="titlepage"><div><div><h4 class="title" id="ugr.tools.ruta.ae.xmi.parameter">1.5.8.1.&nbsp;Configuration Parameters</h4></div></div></div>
+      <div class="section" title="1.5.10.1.&nbsp;Configuration Parameters"><div class="titlepage"><div><div><h4 class="title" id="ugr.tools.ruta.ae.xmi.parameter">1.5.10.1.&nbsp;Configuration Parameters</h4></div></div></div>
         
         <p>
         </p>
@@ -1126,7 +1272,8 @@ ae.process(cas);</pre>
           <p>
             This string parameter specifies the absolute path of the resulting file named <span class="quote">&#8220;<span class="quote">output.xmi</span>&#8221;</span>. However, if an annotation of the 
             type <span class="quote">&#8220;<span class="quote">org.apache.uima.examples.SourceDocumentInformation</span>&#8221;</span> is given, then the value of this parameter is interpreted to be relative
-            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. The UIMA Ruta Workbench automatically adds
+            to the URI stored in the annotation and the name of the file will be adapted to the name of the source file. If this functionality is activated in the preferences, 
+            then the UIMA Ruta Workbench adds
             the SourceDocumentInformation annotation when the user launches a script file.
             The default value is <span class="quote">&#8220;<span class="quote">/../output/</span>&#8221;</span>
           </p>
@@ -1135,6 +1282,84 @@ ae.process(cas);</pre>
     </div>
     
   </div>
+	<div class="section" title="1.6.&nbsp;Integrating Ruta in an existing UIMA Annotator"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tools.ruta.integration">1.6.&nbsp;Integrating Ruta in an existing UIMA Annotator</h2></div></div></div>
+		
+		<p>This section provides a walk-through tutorial on integrating 
+		Ruta in an existing UIMA annotator. In our artificial example 
+		we will use Ruta rules to post-process the output of a 
+		Part-of-Speech tagger. The POS tagger is a UIMA annotator that iterates over sentences 
+		and tokens and updates the posTag field of each Token with a part of 
+		speech. For example, given this text...</p>
+<pre class="programlisting">The quick brown fox receives many bets.
+The fox places many bets.
+The fox gets up early.
+The rabbit made up this story.</pre>
+		<p>...it assigns the posTag JJ (adjective) to the token "brown" , the posTag NN (common noun) to the 
+		token "fox" and the tag VBZ (verb, 3rd person 
+		singular present) to the token "receives" in the first sentence.</p>
+		<p>We have noticed that the tagger sometimens fails to disambiguate NNS (common noun plural) and 
+		VBZ tags, as in the second sentence. The word "up" also seems to confuse the tagger, 
+		which always assigns it an RB (adverb) tag, even when it is a particle (RP) following a verb, as in
+		the third and fourth sentences:</p>
+<pre class="programlisting">The|DT quick|JJ brown|JJ fox|NN receives|VBZ many|JJ bets|NNS .|.
+The|DT fox|NN places|NNS many|JJ bets|NNS .|.
+The|DT fox|NN gets|VBZ up|RB early|RB .|.
+The|DT rabbit|NN made|VBD up|RB this|DT story|NN .|.</pre>
+		<p>Let's imagine that after applying every possible approach 
+		available in the POS tagging literature, our tagger still generates 
+		these and some other errors. We decide to write a few Ruta 
+		rules to post-process the output of the tagger.</p>
+		<div class="section" title="1.6.1.&nbsp;Adding Ruta to our Annotator"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.integration.mvn">1.6.1.&nbsp;Adding Ruta to our Annotator</h3></div></div></div>
+			
+			<p>The POS tagger is being developed as a Maven-based project. 
+			Since Ruta maven artifacts are available on Maven Central, we 
+			add the following dependency to the project's pom.xml. The functionalities described in this section 
+			require a version of Ruta equal to or greater than 2.1.0.</p>
+			<pre class="programlisting">&lt;dependency&gt;
+	&lt;groupId&gt;org.apache.uima&lt;/groupId&gt;
+	&lt;artifactId&gt;ruta-core&lt;/artifactId&gt;
+	&lt;version&gt;[2.0.2,)&lt;/version&gt;
+&lt;/dependency&gt;</pre>
+                <p>We  also take care that the Ruta basic typesystem is loaded when our annotator is initialized. The Ruta typesystem descriptors are available from ruta-core/src/main/resources/org/apache/uima/ruta/engine/</p>
+		</div>
+		<div class="section" title="1.6.2.&nbsp;Developing Ruta rules and applying them from inside Java code"><div class="titlepage"><div><div><h3 class="title" id="ugr.tools.ruta.ae.integration.loading">1.6.2.&nbsp;Developing Ruta rules and applying them from inside Java code</h3></div></div></div>
+			
+			<p>We are now ready to write some rules. The ones we develop for fixing the two errors look like this:</p>
+<pre class="programlisting">Token.posTag =="NN" Token.posTag=="NNS"{-&gt; Token.posTag="VBZ"}
+    Token.posTag=="JJ";
+Token{REGEXP(Token.posTag, "VB(.?)")} 
+    Token.posTag=="RB"{REGEXP("up")-&gt; Token.posTag="RP"};  </pre>
+                        <p>That is, we change a Token's NNS tag to VBZ, if it is surrounded by a Token tagged as NN and a Token tagged as JJ. We also change an RB tag for an "up" token to RP, if "up" is preceded by any verbal tag (VB, VBZ, etc.) matched with the help of the <a class="link" href="#ugr.tools.ruta.language.conditions.regexp" title="2.7.22.&nbsp;REGEXP">REGEXP</a> condition. 
+			</p>
+			<p>We test our rules in the Ruta Workbench and see that they 
+			indeed fix most of our problems. We save those and some more rules in a text file  
+			src/main/resources/ruta.txt.</p>
+			<p>We declare the file with our rules as an external resource and we load it during initialization. 
+			Here's a way to do it using uimaFIT:</p>
+<pre class="programlisting">/**
+ * Ruta rules for post-processing the tagger's output
+ */
+public static final String RUTA_RULES_PARA = "RutaRules";
+ExternalResource(key = RUTA_RULES_PARA, mandatory=false)
+...
+File rutaRulesF = new File((String) 
+    aContext.getConfigParameterValue(RUTA_RULES_PARA));
+</pre>
+			<p>After our CAS has been populated with posTag annotations from 
+			the main algorithm, we post-process the CAS using 
+			Ruta.apply():</p>
+<pre class="programlisting">String rutaRules = org.apache.commons.io.FileUtils.readFileToString(
+    rutaRulesF, "UTF-8");
+Ruta.apply(cas,  rutaRules);		
+</pre>
+			<p>We are now happy to see that the final output of our annotator now 
+			looks much better:</p>
+			<pre class="programlisting">The|DT quick|JJ brown|JJ fox|NN receives|VBZ many|JJ bets|NNS .|.
+The|DT fox|NN places|VBZ many|JJ bets|NNS .|.
+The|DT fox|NN gets|VBZ up|RP early|RB .|.
+The|DT rabbit|NN made|VBD up|RP this|DT story|NN .|.</pre>
+		</div>
+	</div>
 </div>
   
   <div class="chapter" title="Chapter&nbsp;2.&nbsp;Apache UIMA Ruta Language" id="ugr.tools.ruta.language.language"><div class="titlepage"><div><div><h2 class="title">Chapter&nbsp;2.&nbsp;Apache UIMA Ruta Language</h2></div></div></div>
@@ -1154,10 +1379,10 @@ ae.process(cas);</pre>
     Structure: The overall structure of a UIMA Ruta
     script is defined by
     the following syntax.
-    </p><pre class="programlisting">Script              -&gt; PackageDeclaration GlobalStatements Statements
+    </p><pre class="programlisting">Script              -&gt; PackageDeclaration? GlobalStatements Statements
 PackageDeclaration  -&gt; "PACKAGE" DottedIdentifier ";"
 GlobalStatments     -&gt; GlobalStatement*   
-GlobalStatment      -&gt; ("TYPESYSTEM" | "SCRIPT" | "ENGINE") 
+GlobalStatment      -&gt; ("TYPESYSTEM" | "SCRIPT" | "ENGINE" | "UIMAFIT") 
                        DottedIdentifier2 ";"
 Statements          -&gt; Statement*
 Statement           -&gt; Declaration | VariableDeclaration 
@@ -1211,27 +1436,27 @@ BlockDeclaration    -&gt; "BLOCK" "(" Id
                                                        "{" Statements "}"</pre><p>
 
     Syntax of statements and rule elements:
-    </p><pre class="programlisting">SimpleStatement        -&gt; RuleElements ";" | RegExpRule ";"
+    </p><pre class="programlisting">SimpleStatement        -&gt; SimpleRule | RegExpRule | ConjunctRules
+SimpleRule             -&gt; RuleElements ";"
 RegExpRule             -&gt; StringExpression "-&gt;" GroupAssignment 
-                          ("," GroupAssignment)*
+                          ("," GroupAssignment)* ";"
+ConjunctRules          -&gt; RuleElements ("%" RuleElements)+ ";"
 GroupAssignment        -&gt; TypeExpression 
                         | NumberEpxression "=" TypeExpression
 RuleElements           -&gt; RuleElement+
 RuleElement            -&gt; RuleElementType | RuleElementLiteral
-                        | RuleElementComposed | RuleElementDisjunctive
-                        | RuleElementWildCard
-RuleElementType        -&gt;  TypeExpression QuantifierPart?
-                                         ("{" Conditions?  Actions? "}")?
-RuleElementWithCA      -&gt;  TypeExpression QuantifierPart?
-                                            "{" Conditions?  Actions? "}"
-RuleElementLiteral     -&gt;  SimpleStringExpression QuantifierPart?
-                                          ("{" Conditions?  Actions? "}")?
-RuleElementComposed    -&gt; "(" RuleElements ")" QuantifierPart?
-                                          ("{" Conditions?  Actions? "}")?
-RuleElementDisjunctive -&gt; "(" (TypeExpression | SimpleStringExpression)
-                        ("|" (TypeExpression | SimpleStringExpression) )+
-                        (")" QuantifierPart? "{" Conditions?  Actions? }")?
-RuleElementWildCard    -&gt; "#"("{" Conditions?  Actions? }")?
+                        | RuleElementComposed | RuleElementWildCard
+RuleElementType        -&gt;  TypeExpression OptionalRuleElementPart
+RuleElementWithCA      -&gt;  TypeExpression OptionalRuleElementPart
+RuleElementLiteral     -&gt;  SimpleStringExpression OptionalRuleElementPart
+RuleElementComposed    -&gt; "(" RuleElement ("&amp;" RuleElement)+ ")"
+                          | "(" RuleElement ("|" RuleElement)+ ")"
+                          | "(" RuleElements ")"
+                          OptionalRuleElementPart
+OptionalRuleElementPart-&gt; QuantifierPart? ("{" Conditions?  Actions? "}")?
+                          InlinedRules?
+InlinedRules           -&gt; ( "&lt;-" | "-&gt;" ) "{" SimpleStatement+ "}"
+RuleElementWildCard    -&gt; "#"("{" Conditions?  Actions? }")? InlinedRules?
 QuantifierPart         -&gt; "*" | "*?" | "+" | "+?" | "?" | "??"
                         | "[" NumberExpression "," NumberExpression "]"
                         | "[" NumberExpression "," NumberExpression "]?"
@@ -1240,13 +1465,23 @@ Actions                -&gt; "-&gt;" Act
 </pre><p>
     Since each condition and each action has its own syntax, conditions
     and actions are described in their own section. For conditions see
-    <a class="xref" href="#ugr.tools.ruta.language.conditions" title="2.6.&nbsp;Conditions">Section&nbsp;2.6, &#8220;Conditions&#8221;</a>
+    <a class="xref" href="#ugr.tools.ruta.language.conditions" title="2.7.&nbsp;Conditions">Section&nbsp;2.7, &#8220;Conditions&#8221;</a>
     , for actions see
-    <a class="xref" href="#ugr.tools.ruta.language.actions" title="2.7.&nbsp;Actions">Section&nbsp;2.7, &#8220;Actions&#8221;</a>.
+    <a class="xref" href="#ugr.tools.ruta.language.actions" title="2.8.&nbsp;Actions">Section&nbsp;2.8, &#8220;Actions&#8221;</a>.
     The syntax of expressions is explained in
-    <a class="xref" href="#ugr.tools.ruta.language.expressions" title="2.5.&nbsp;Expressions">Section&nbsp;2.5, &#8220;Expressions&#8221;</a>.
+    <a class="xref" href="#ugr.tools.ruta.language.expressions" title="2.6.&nbsp;Expressions">Section&nbsp;2.6, &#8220;Expressions&#8221;</a>.
   </p>
   <p>
+    It is also possible to use specific expression as implicit conditions or action additionally to the set of available conditions and actions.
+        </p><pre class="programlisting">Condition -&gt; BooleanExpression | FeatureMatchExpression
+Action    -&gt; TypeExpression | FeatureAssignmentExpression 
+</pre><p>
+  
+
+  </p>
+  
+  
+  <p>
     Identifier:
     </p><pre class="programlisting">DottedIdentifier    -&gt;  Identifier ("." Identifier)*
 DottedIdentifier2   -&gt;  Identifier (("."|"-") Identifier)*
@@ -1254,8 +1489,82 @@ Identifier          -&gt;  letter (lette
 </pre><p>
   </p>
 </div>
-
-  <div class="section" title="2.2.&nbsp;Basic annotations and tokens"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tools.ruta.language.seeding">2.2.&nbsp;Basic annotations and tokens</h2></div></div></div>
+  <div class="section" title="2.2.&nbsp;Rule elements and their matching order"><div class="titlepage"><div><div><h2 class="title" style="clear: both" id="ugr.tools.ruta.language.anchoring">2.2.&nbsp;Rule elements and their matching order</h2></div></div></div>
+  
+  <p>
+    If not specified otherwise, then the UIMA Ruta rules normally start the matching 
+    process with their first rule element. The first rule element searches for possible positions for its matching
+    condition and then will advise the next rule element to continue the matching process.
+    For that reason, writing rules that contain a first rule element with an optional quantifier is discouraged 
+    and will result in ignoring the optional attribute of the quantifier.
+  </p>
+  <p>
+    The starting rule element can also be manually specified by adding <span class="quote">&#8220;<span class="quote">@</span>&#8221;</span> directly in front of the matching condition.
+    In the following example, the rule first searches for capitalized words (CW) and then checks whether 
+    there is a period in front of the matched word.
+    </p><pre class="programlisting">PERIOD @CW;</pre><p>
+    This functionality can also be used for rules that start with an optional rule element by manually specifying a later
+    rule element to start the matching process.
+  </p>
+  <p>
+    The choice of the starting rule element can greatly influence the performance speed of the rule execution. 
+    This circumstance is illustrated with the following example that contains two rules, whereas already an annotation 
+    of the type <span class="quote">&#8220;<span class="quote">LastToken</span>&#8221;</span> was added to the last token of the document:
+    </p><pre class="programlisting">ANY LastToken;
+ANY @LastToken;</pre><p>
+    The first rule matches on each token of the document and checks whether the next annotation is the last token of the document.
+    This will result in many index operations because all tokens of the document are considered. 
+    The second rule, however, matches on the last token and then checks if there is any token in front of it. This
+    rule, therefore, considers only one token. 
+  </p>
+  <p>
+    The UIMA Ruta language provides also a concept for automatically selecting the starting rule element called dynamic anchoring.
+    Here, a simple heuristic concerning the position of the rule element and the involved types is applied in order to identify
+    the favorable rule element. This functionality can be activated in the <a class="link" href="#ugr.tools.ruta.ae.basic.parameter" title="1.5.1.2.&nbsp;Configuration Parameters">configuration parameters</a> of the analysis engine or 
+    directly in the script file with the <a class="link" href="#ugr.tools.ruta.language.actions.dynamicanchoring" title="2.8.11.&nbsp;DYNAMICANCHORING">DYNAMICANCHORING</a> action. 
+  </p>
+  
+  <p>
+    A list of rule elements normally specifies a sequential pattern. The rule is able to match if the first rule element successfully matches 
+    and then the following rule element at the position after the match of the first rule element, and so on. There are three language constructs that break up that
+    sequential matching: <span class="quote">&#8220;<span class="quote">&amp;</span>&#8221;</span>, <span class="quote">&#8220;<span class="quote">|</span>&#8221;</span> and <span class="quote">&#8220;<span class="quote">%</span>&#8221;</span>. A composed rule element where all inner rule elements are linked by the symbol <span class="quote">&#8220;<span class="quote">&amp;</span>&#8221;</span>
+    matches only if all inner rule elements successfully match at the given position. A composed rule element with inner rule elements linked by the 
+    symbol <span class="quote">&#8220;<span class="quote">|</span>&#8221;</span> matches if one of the inner rule element successfully matches. These composed rule elements therefore specify a conjunction (<span class="quote">&#8220;<span class="quote">and</span>&#8221;</span>) 
+    and a disjunction (<span class="quote">&#8220;<span class="quote">or</span>&#8221;</span>) of its rule element at the given position. The symbol <span class="quote">&#8220;<span class="quote">%</span>&#8221;</span> specifies a different use case.
+    Here, rules themselves are linked and they are only able to fire if each one of the linked rules successfully matched. In contrast to <span class="quote">&#8220;<span class="quote">&amp;</span>&#8221;</span>, 
+    this linkage of rule elements does not introduce constraints for the matched positions. In the following, a few examples of these three language constructs are given.
+  </p>
+  <pre class="programlisting">(Token.posTag=="DET" &amp; Lemma.value=="the");</pre>
+  <p>

[... 3265 lines stripped ...]