<?xml version="1.0" encoding="UTF-8"?> | |
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" | |
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"[ | |
<!ENTITY imgroot "images/tools/tools.ruta/" > | |
<!ENTITY % uimaents SYSTEM "../../target/docbook-shared/entities.ent" > | |
%uimaents; | |
]> | |
<!-- | |
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. | |
--> | |
<section id="ugr.tools.ruta.language.actions"> | |
<title>Actions</title> | |
<section id="ugr.tools.ruta.language.actions.add"> | |
<title>ADD</title> | |
<para> | |
The ADD action adds all the elements of the passed | |
RutaExpressions to a given list. For example, this expressions | |
could be a string, an integer variable or a list. For a | |
complete overview on UIMA Ruta expressions see | |
<xref linkend='ugr.tools.ruta.language.expressions' />. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ADD(ListVariable,(RutaExpression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->ADD(list, var)};]]></programlisting> | |
</para> | |
<para> | |
In this example, the variable 'var' is added to the list | |
'list'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.addfiltertype"> | |
<title>ADDFILTERTYPE</title> | |
<para> | |
The ADDFILTERTYPE action adds its arguments to the list of filtered types, | |
which restrict the visibility of the rules. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ADDFILTERTYPE(TypeExpression(,TypeExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->ADDFILTERTYPE(CW)};]]></programlisting> | |
</para> | |
<para> | |
After applying this rule, capitalized words are invisible additionally to the previously filtered types. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.addretaintype"> | |
<title>ADDRETAINTYPE</title> | |
<para> | |
The ADDFILTERTYPE action adds its arguments to the list of retained types, | |
which extend the visibility of the rules. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ADDRETAINTYPE(TypeExpression(,TypeExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->ADDRETAINTYPE(MARKUP)};]]></programlisting> | |
</para> | |
<para> | |
After applying this rule, markup is visible additionally to the previously retained types. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.assign"> | |
<title>ASSIGN</title> | |
<para> | |
The ASSIGN action assigns the value of the passed expression to | |
a variable of the same type. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ASSIGN(BooleanVariable,BooleanExpression)]]></programlisting> | |
</para> | |
<para> | |
<programlisting><![CDATA[ASSIGN(NumberVariable,NumberExpression)]]></programlisting> | |
</para> | |
<para> | |
<programlisting><![CDATA[ASSIGN(StringVariable,StringExpression)]]></programlisting> | |
</para> | |
<para> | |
<programlisting><![CDATA[ASSIGN(TypeVariable,TypeExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->ASSIGN(amount, (amount/2))};]]></programlisting> | |
</para> | |
<para> | |
In this example, the value of the variable 'amount' is divided in half. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.call"> | |
<title>CALL</title> | |
<para> | |
The CALL action initiates the execution of a different script | |
file or script block. Currently, only complete script files are | |
supported. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[CALL(DifferentFile)]]></programlisting> | |
</para> | |
<para> | |
<programlisting><![CDATA[CALL(Block)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->CALL(NamedEntities)};]]></programlisting> | |
</para> | |
<para> | |
Here, a script 'NamedEntities' for named entity recognition is | |
executed. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.clear"> | |
<title>CLEAR</title> | |
<para> | |
The CLEAR action removes all elements of the given list. If the list was initialized as it was declared, | |
then it is reset to its initial value. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[CLEAR(ListVariable)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->CLEAR(SomeList)};]]></programlisting> | |
</para> | |
<para> | |
This rule clears the list 'SomeList'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.color"> | |
<title>COLOR</title> | |
<para> | |
The COLOR action sets the color of an annotation type in the | |
modified view, if the rule has fired. The background color is passed as | |
the second parameter. The font color can be changed by passing a | |
further color as a third parameter. The supported colors are: black, silver, gray, | |
white, maroon, red, purple, fuchsia, green, lime, olive, yellow, | |
navy, blue, aqua, lightblue, lightgreen, orange, pink, salmon, cyan, | |
violet, tan, brown, white and mediumpurple. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[COLOR(TypeExpression,StringExpression(, StringExpression | |
(, BooleanExpression)?)?)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->COLOR(Headline, "red", "green", true)};]]></programlisting> | |
</para> | |
<para> | |
This rule colors all Headline annotations in the modified view. | |
Thereby, the background color is set to red, font color is set to green | |
and all 'Headline' annotations are selected when opening the | |
modified view. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.configure"> | |
<title>CONFIGURE</title> | |
<para> | |
The CONFIGURE action can be used to configure the analysis | |
engine of the given namespace (first parameter). The parameters that | |
should be configured with corresponding values are passed as | |
name-value | |
pairs. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[CONFIGURE(AnalysisEngine(,StringExpression = Expression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ENGINE utils.HtmlAnnotator; | |
Document{->CONFIGURE(HtmlAnnotator, "onlyContent" = false)};]]></programlisting> | |
</para> | |
<para> | |
The former rule changes the value of configuration parameter <quote>onlyContent</quote> | |
to false and reconfigure the analysis engine. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.create"> | |
<title>CREATE</title> | |
<para> | |
The CREATE action is similar to the MARK action. It also | |
annotates the matched text fragments with a type annotation, but | |
additionally assigns values to a chosen subset of the type's feature | |
elements. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[CREATE(TypeExpression(,NumberExpression)* | |
(,StringExpression = Expression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Paragraph{COUNT(ANY,0,10000,cnt)->CREATE(Headline,"size" = cnt)};]]></programlisting> | |
</para> | |
<para> | |
This rule counts the number of tokens of type ANY in a | |
Paragraph annotation and assigns the counted value to the int | |
variable 'cnt'. If the counted number is between 0 and 10000, a | |
Headline annotation is created for this Paragraph. Moreover, the | |
feature named 'size' of Headline is set to the value of 'cnt'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.del"> | |
<title>DEL</title> | |
<para> | |
The DEL action deletes the matched text fragments in the | |
modified | |
view. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[DEL]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Name{->DEL};]]></programlisting> | |
</para> | |
<para> | |
This rule deletes all text fragments that are annotated with a | |
Name annotation. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.dynamicanchoring"> | |
<title>DYNAMICANCHORING</title> | |
<para> | |
The DYNAMICANCHORING action turns dynamic anchoring on or off | |
(first parameter) and assigns the anchoring parameters penalty | |
(second parameter) and factor (third parameter). | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[DYNAMICANCHORING(BooleanExpression | |
(,NumberExpression(,NumberExpression)?)?)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->DYNAMICANCHORING(true)};]]></programlisting> | |
</para> | |
<para> | |
The above mentioned example activates dynamic anchoring. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.exec"> | |
<title>EXEC</title> | |
<para> | |
The EXEC action initiates the execution of a different script | |
file or analysis engine on the complete input document, independent from | |
the matched text and the current filtering settings. If the imported component (DifferentFile) | |
refers to another script file, it is applied on a new representation of the document: | |
the complete text of the original CAS with the default filtering | |
settings of the UIMA Ruta analysis engine. If it refers to an | |
external analysis engine, then it is applied on the complete document. | |
The optional, first argument is is a string expression, which specifies the view the component should be applied on. | |
The optional, third argument is a list of types, which should be reindexed by Ruta (not UIMA itself). | |
</para> | |
<note> | |
<para> | |
Annotations created by the external analysis engine are not accessible for UIMA Ruta rules in the same script. | |
The types of these annotations need to be provided in the second argument in order to be visible to the Ruta rules. | |
</para> | |
</note> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[EXEC((StringExpression,)? DifferentFile(, TypeListExpression)?)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[ENGINE NamedEntities; | |
Document{->EXEC(NamedEntities, {Person, Location})};]]></programlisting> | |
</para> | |
<para> | |
Here, an analysis engine for named entity recognition is | |
executed once on the complete document and the annotations of the types Person and Location (and all subtypes) | |
are reindexed in UIMA Ruta. Without this list of types, the annotations are added to the CAS, but cannot be accessed by Ruta rules. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.fill"> | |
<title>FILL</title> | |
<para> | |
The FILL action fills a chosen subset of the given type's | |
feature elements. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[FILL(TypeExpression(,StringExpression = Expression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Headline{COUNT(ANY,0,10000,tokenCount) | |
->FILL(Headline,"size" = tokenCount)};]]></programlisting> | |
</para> | |
<para> | |
Here, the number of tokens within an Headline annotation is | |
counted and stored in variable 'tokenCount'. If the number of tokens | |
is within the interval [0;10000], the FILL action fills the | |
Headline's feature 'size' with the value of 'tokenCount'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.filtertype"> | |
<title>FILTERTYPE</title> | |
<para> | |
This action filters the given types of annotations. They are now | |
ignored by rules. Expressions are not yet supported. | |
This action is related to RETAINTYPE (see <xref linkend='ugr.tools.ruta.language.actions.retaintype' />). | |
</para> | |
<note> | |
<para> | |
The visibility of types is calculated using three lists: | |
A list <quote>default</quote> for the initially filtered types, | |
which is specified in the configuration parameters of the analysis engine, the list <quote>filtered</quote>, which is | |
specified by the FILTERTYPE action, and the list <quote>retained</quote>, which is specified by the RETAINTYPE action. | |
For determining the actual visibility of types, list <quote>filtered</quote> is added to list <quote>default</quote> | |
and then all elements of list <quote>retained</quote> are removed. The annotations of the types in the resulting list are not visible. | |
Please note that the actions FILTERTYPE and RETAINTYPE replace all elements of the respective lists and that RETAINTYPE | |
overrides FILTERTYPE. | |
</para> | |
</note> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[FILTERTYPE((TypeExpression(,TypeExpression)*))?]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->FILTERTYPE(SW)};]]></programlisting> | |
</para> | |
<para> | |
This rule filters all small written words in the input | |
document. They are further ignored by every rule. | |
</para> | |
<para> | |
<programlisting><![CDATA[Document{->FILTERTYPE};]]></programlisting> | |
</para> | |
<para> | |
Here, the the action (without parentheses) specifies that no additional types should be filtered. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.gather"> | |
<title>GATHER</title> | |
<para> | |
This action creates a complex structure: an annotation with | |
features. The optionally passed indexes (NumberExpressions after the | |
TypeExpression) can be used to create an annotation that spans the | |
matched information of several rule elements. The features are | |
collected using the indexes of the rule elements of the complete | |
rule. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[GATHER(TypeExpression(,NumberExpression)* | |
(,StringExpression = NumberExpression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[DECLARE Annotation A; | |
DECLARE Annotation B; | |
DECLARE Annotation C(Annotation a, Annotation b); | |
W{REGEXP("A")->MARK(A)}; | |
W{REGEXP("B")->MARK(B)}; | |
A B{-> GATHER(C, 1, 2, "a" = 1, "b" = 2)};]]></programlisting> | |
</para> | |
<para> | |
Two annotations A and B are declared and annotated. The last | |
rule creates an annotation C spanning the elements A (index 1 since | |
it is the first rule element) and B (index 2) with its features 'a' | |
set to annotation A (again index 1) and 'b' set to annotation B | |
(again index 2). | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.get"> | |
<title>GET</title> | |
<para> | |
The GET action retrieves an element of the given list dependent on a | |
given strategy. | |
<table frame='all'> | |
<title>Currently supported strategies</title> | |
<tgroup cols='2' align='left' colsep='0.5' rowsep='0.5'> | |
<thead> | |
<row> | |
<entry>Strategy</entry> | |
<entry>Functionality</entry> | |
</row> | |
</thead> | |
<tbody> | |
<row> | |
<entry>dominant</entry> | |
<entry>finds the most occurring element</entry> | |
</row> | |
</tbody> | |
</tgroup> | |
</table> | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[GET(ListExpression, Variable, StringExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->GET(list, var, "dominant")};]]></programlisting> | |
</para> | |
<para> | |
In this example, the element of the list 'list' that occurs | |
most is stored in the variable 'var'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.getfeature"> | |
<title>GETFEATURE</title> | |
<para> | |
The GETFEATURE action stores the value of the matched | |
annotation's feature (first paramter) in the given variable (second | |
parameter). | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[GETFEATURE(StringExpression, Variable)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->GETFEATURE("language", stringVar)};]]></programlisting> | |
</para> | |
<para> | |
In this example, variable 'stringVar' will contain the value of | |
the feature 'language'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.getlist"> | |
<title>GETLIST</title> | |
<para> | |
This action retrieves a list of types dependent on a given strategy. | |
<table frame='all'> | |
<title>Currently supported strategies</title> | |
<tgroup cols='2' align='left' colsep='0.5' rowsep='0.5'> | |
<thead> | |
<row> | |
<entry>Strategy</entry> | |
<entry>Functionality</entry> | |
</row> | |
</thead> | |
<tbody> | |
<row> | |
<entry>Types</entry> | |
<entry>get all types within the matched annotation</entry> | |
</row> | |
<row> | |
<entry>Types:End</entry> | |
<entry>get all types that end at the same offset as the matched | |
annotation | |
</entry> | |
</row> | |
<row> | |
<entry>Types:Begin</entry> | |
<entry>get all types that start at the same offset as the | |
matched | |
annotation | |
</entry> | |
</row> | |
</tbody> | |
</tgroup> | |
</table> | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[GETLIST(ListVariable, StringExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->GETLIST(list, "Types")};]]></programlisting> | |
</para> | |
<para> | |
Here, a list of all types within the document is created and | |
assigned to list variable 'list'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.greedyanchoring"> | |
<title>GREEDYANCHORING</title> | |
<para> | |
The GREEDYANCHORING action turns greedy anchoring on or off. | |
If the first parameter is set to true, then start positions already matched by the same rule element will be ignored. This situation | |
occurs mostly for rules that start with a quantifier. The second optional parameter activates greedy acnhoring for the complete rule. | |
Later rule matches are only possible after previous matches. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[GREEDYANCHORING(BooleanExpression(,BooleanExpression)?)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->GREEDYANCHORING(true, true)}; | |
ANY+; | |
CW CW;]]></programlisting> | |
</para> | |
<para> | |
The above mentioned example activates dynamic anchoring and the second rule will then only match once | |
since the next positions, e.g., the second token, are already covered by the first attempt. | |
The third rule will not match on capitalized word that have benn already considered by previous matches of the rule. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.log"> | |
<title>LOG</title> | |
<para> | |
The LOG action writes a log message. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[LOG(StringExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->LOG("processed")};]]></programlisting> | |
</para> | |
<para> | |
This rule writes a log message with the string "processed". | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.mark"> | |
<title>MARK</title> | |
<para> | |
The MARK action is the most important action in the UIMA Ruta | |
system. It creates a new annotation of the given type. The optionally | |
passed indexes (NumberExpressions after the TypeExpression) can be | |
used to create an annotation that spanns the matched information of | |
several rule elements. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARK(TypeExpression(,NumberExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Freeline Paragraph{->MARK(ParagraphAfterFreeline,1,2)};]]></programlisting> | |
</para> | |
<para> | |
This rule matches on a free line followed by a Paragraph | |
annotation and annotates both in a single ParagraphAfterFreeline | |
annotation. The two numerical expressions at the end of the mark | |
action state that the matched text of the first and the second rule | |
elements are joined to create the boundaries of the new annotation. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.markfast"> | |
<title>MARKFAST</title> | |
<para> | |
The MARKFAST action creates annotations of the given type (first | |
parameter), if an element of the passed list (second parameter) occurs | |
within the window of the matched annotation. Thereby, the created | |
annotation does not cover the whole matched annotation. Instead, it | |
only covers the text of the found occurence. The third parameter is | |
optional. It defines, whether the MARKFAST action should ignore the case, | |
whereby its default value is false. The optional fourth parameter | |
specifies a character threshold for the ignorence of the case. It is | |
only relevant, if the ignore-case value is set to true. The last | |
parameter is set to true by default and specifies whether whitespaces | |
in the entries of the dictionary should be ignored. For more | |
information on lists see | |
<xref linkend='ugr.tools.ruta.language.declarations.ressource' />. | |
Additionally to external word lists, string lists variables can be | |
used. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKFAST(TypeExpression,ListExpression(,BooleanExpression | |
(,NumberExpression,(BooleanExpression)?)?)?)]]></programlisting> | |
<programlisting><![CDATA[MARKFAST(TypeExpression,StringListExpression(,BooleanExpression | |
(,NumberExpression,(BooleanExpression)?)?)?)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[WORDLIST FirstNameList = 'FirstNames.txt'; | |
DECLARE FirstName; | |
Document{-> MARKFAST(FirstName, FirstNameList, true, 2)};]]></programlisting> | |
</para> | |
<para> | |
This rule annotates all first names listed in the list | |
'FirstNameList' within the document and ignores the case, if the | |
length of the word | |
is greater than 2. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.markfirst"> | |
<title>MARKFIRST</title> | |
<para> | |
The MARKFIRST action annotates the first token (basic annotation) of the matched | |
annotation with the given type. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKFIRST(TypeExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->MARKFIRST(First)};]]></programlisting> | |
</para> | |
<para> | |
This rule annotates the first token of the document with the | |
annotation First. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.marklast"> | |
<title>MARKLAST</title> | |
<para> | |
The MARKLAST action annotates the last token of the matched | |
annotation with the given type. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKLAST(TypeExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->MARKLAST(Last)};]]></programlisting> | |
</para> | |
<para> | |
This rule annotates the last token of the document with the | |
annotation Last. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.markonce"> | |
<title>MARKONCE</title> | |
<para> | |
The MARKONCE action has the same functionality as the MARK | |
action, but creates a new annotation only, | |
if each part of the matched annotation is not yet part of the given type. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKONCE(NumberExpression,TypeExpression(,NumberExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Freeline Paragraph{->MARKONCE(ParagraphAfterFreeline,1,2)};]]></programlisting> | |
</para> | |
<para> | |
This rule matches on a free line followed by a Paragraph and | |
annotates both in a single ParagraphAfterFreeline annotation, if no part | |
is not already annotated with ParagraphAfterFreeline annotation. The | |
two numerical expressions at the end of the MARKONCE action state | |
that the matched text of the first and the second rule elements are | |
joined to create the boundaries of the new annotation. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.markscore"> | |
<title>MARKSCORE</title> | |
<para> | |
The MARKSCORE action is similar to the MARK action. It also creates a | |
new annotation of the given type, but only if it is not yet existing. | |
The optionally passed indexes (parameters after the TypeExpression) | |
can be used to create an annotation that spanns the matched | |
information of several rule elements. Additionally, a score value | |
(first parameter) is added to the heuristic score value of the | |
annotation. For more information on heuristic scores see | |
<xref linkend='ugr.tools.ruta.language.score' /> | |
. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKSCORE(NumberExpression,TypeExpression(,NumberExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Freeline Paragraph{->MARKSCORE(10,ParagraphAfterFreeline,1,2)};]]></programlisting> | |
</para> | |
<para> | |
This rule matches on a free line followed by a paragraph and | |
annotates both in a single ParagraphAfterFreeline annotation. The | |
two number expressions at the end of the mark action indicate that | |
the matched text of the first and the second rule elements are | |
joined to create the boundaries of the new annotation. Additionally, | |
the score '10' is added to the heuristic threshold of this | |
annotation. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.marktable"> | |
<title>MARKTABLE</title> | |
<para> | |
The MARKTABLE action creates annotations of the given type (first | |
parameter), if an element of the given column (second parameter) of a | |
passed table (third parameter) occures within the window of the | |
matched annotation. Thereby, the created annotation does not cover the | |
whole matched annotation. Instead, it only covers the text of the | |
found occurence. Optionally the MARKTABLE action is able to assign | |
entries of the given table to features of the created annotation. | |
For | |
more information on tables see | |
<xref linkend='ugr.tools.ruta.language.declarations.ressource' />. Additionally, several configuration parameters are possible. (See example.) | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MARKTABLE(TypeExpression, NumberExpression, TableExpression | |
(,BooleanExpression, NumberExpression, | |
StringExpression, NumberExpression)? | |
(,StringExpression = NumberExpression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[WORDTABLE TestTable = 'TestTable.csv'; | |
DECLARE Annotation Struct(STRING first); | |
Document{-> MARKTABLE(Struct, 1, TestTable, | |
true, 4, ".,-", 2, "first" = 2)};]]></programlisting> | |
</para> | |
<para> | |
In this example, the whole document is searched for all | |
occurences of the entries of the first column of the given table | |
'TestTable'. For each occurence, an annotation of the type Struct is | |
created and its feature 'first' is filled with the entry of the | |
second column. Moreover, the case of the word is ignored if the | |
length of the word exceeds 4. Additionally, the chars '.', ',' and | |
'-' are ignored, but maximally two of them. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.matchedtext"> | |
<title>MATCHEDTEXT</title> | |
<para> | |
The MATCHEDTEXT action saves the text of the matched annotation | |
in a passed String variable. The optionally passed indexes can be | |
used to match the text of several rule elements. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MATCHEDTEXT(StringVariable(,NumberExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Headline Paragraph{->MATCHEDTEXT(stringVariable,1,2)};]]></programlisting> | |
</para> | |
<para> | |
The text covered by the Headline (rule element 1) and the | |
Paragraph (rule element 2) annotation is saved in variable | |
'stringVariable'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.merge"> | |
<title>MERGE</title> | |
<para> | |
The MERGE action merges a number of given lists. The first | |
parameter defines, if the merge is done as intersection (false) or as | |
union (true). The second parameter is the list variable that will | |
contain the result. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[MERGE(BooleanExpression, ListVariable, ListExpression, (ListExpression)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->MERGE(false, listVar, list1, list2, list3)};]]></programlisting> | |
</para> | |
<para> | |
The elements that occur in all three lists will be placed in | |
the list 'listVar'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.remove"> | |
<title>REMOVE</title> | |
<para> | |
The REMOVE action removes lists or single values from a given | |
list. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[REMOVE(ListVariable,(Argument)+)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->REMOVE(list, var)};]]></programlisting> | |
</para> | |
<para> | |
In this example, the variable 'var' is removed from the list | |
'list'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.removeduplicate"> | |
<title>REMOVEDUPLICATE</title> | |
<para> | |
This action removes all duplicates within a given list. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[REMOVEDUPLICATE(ListVariable)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->REMOVEDUPLICATE(list)};]]></programlisting> | |
</para> | |
<para> | |
Here, all duplicates within the list 'list' are removed. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.removefiltertype"> | |
<title>REMOVEFILTERTYPE</title> | |
<para> | |
The REMOVEFILTERTYPE action removes its arguments from the list of filtered types, | |
which restrict the visibility of the rules. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[REMOVEFILTERTYPE(TypeExpression(,TypeExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->REMOVEFILTERTYPE(W)};]]></programlisting> | |
</para> | |
<para> | |
After applying this rule, words are possibly visible again depending on the current filtering settings. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.removeretaintype"> | |
<title>REMOVERETAINTYPE</title> | |
<para> | |
The REMOVEFILTERTYPE action removes its arguments from the list of retained types, | |
which extend the visibility of the rules. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[REMOVERETAINTYPE(TypeExpression(,TypeExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->REMOVERETAINTYPE(W)};]]></programlisting> | |
</para> | |
<para> | |
After applying this rule, words are possibly not visible anymore depending on the current filtering settings. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.replace"> | |
<title>REPLACE</title> | |
<para> | |
The REPLACE action replaces the text of all matched annotations with | |
the given StringExpression. It remembers the modification for the | |
matched annotations and shows them in the modified view (see | |
<xref linkend='ugr.tools.ruta.language.modification' />). | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[REPLACE(StringExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[FirstName{->REPLACE("first name")};]]></programlisting> | |
</para> | |
<para> | |
This rule replaces all first names with the string 'first | |
name'. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.retaintype"> | |
<title>RETAINTYPE</title> | |
<para> | |
The RETAINTYPE action retains the given types. This means that they | |
are now not ignored by rules. This action is related to | |
FILTERTYPE (see <xref linkend='ugr.tools.ruta.language.actions.filtertype' />). | |
</para> | |
<note> | |
<para> | |
The visibility of types is calculated using three lists: | |
A list <quote>default</quote> for the initially filtered types, | |
which is specified in the configuration parameters of the analysis engine, the list <quote>filtered</quote>, which is | |
specified by the FILTERTYPE action, and the list <quote>retained</quote>, which is specified by the RETAINTYPE action. | |
For determining the actual visibility of types, list <quote>filtered</quote> is added to list <quote>default</quote> | |
and then all elements of list <quote>retained</quote> are removed. The annotations of the types in the resulting list are not visible. | |
Please note that the actions FILTERTYPE and RETAINTYPE replace all elements of the respective lists and that RETAINTYPE | |
overrides FILTERTYPE. | |
</para> | |
</note> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[RETAINTYPE((TypeExpression(,TypeExpression)*))?]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->RETAINTYPE(SPACE)};]]></programlisting> | |
</para> | |
<para> | |
Here, all spaces are retained and can be matched by rules. | |
</para> | |
<para> | |
<programlisting><![CDATA[Document{->RETAINTYPE};]]></programlisting> | |
</para> | |
<para> | |
Here, the the action (without parentheses) specifies that no types should be retained. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.setfeature"> | |
<title>SETFEATURE</title> | |
<para> | |
The SETFEATURE action sets the value of a feature of the | |
matched | |
complex structure. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[SETFEATURE(StringExpression,Expression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->SETFEATURE("language","en")};]]></programlisting> | |
</para> | |
<para> | |
Here, the feature 'language' of the input document is set to | |
English. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.shift"> | |
<title>SHIFT</title> | |
<para> | |
The SHIFT action can be used to change the offsets of an annotation. The optional number expressions, | |
which point the rule elements of the rule, specify the new offsets of the annotation. The annotations that | |
will be modified have to start or end at the match of the rule element of the action. This means that the action | |
has to be placed at a matching condition, which will be used to specify the annotations to be changed. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[SHIFT(TypeExpression(,NumberExpression)*)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Author{-> SHIFT(Author,1,2)} PM;]]></programlisting> | |
</para> | |
<para> | |
In this example, an annotation of the type <quote>Author</quote> is expanded | |
in order to cover the following punctation mark. | |
</para> | |
<para> | |
<programlisting><![CDATA[W{STARTSWITH(FS) -> SHIFT(FS, 1, 2)} W+ MARKUP;]]></programlisting> | |
</para> | |
<para> | |
In this example, an annotation of the type <quote>FS</quote> that consists mostly of words | |
is shrinked by removing the last MARKUP annotation. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.transfer"> | |
<title>TRANSFER</title> | |
<para> | |
The TRANSFER action creates a new feature structure and adds all | |
compatible features of the matched annotation. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[TRANSFER(TypeExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->TRANSFER(LanguageStorage)};]]></programlisting> | |
</para> | |
<para> | |
Here, a new feature structure <quote>LanguageStorage</quote> is created and | |
the compatible features of the Document annotation are copied. E.g., | |
if LanguageStorage defined a feature named 'language', then the | |
feature value of the Document annotation is copied. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.trie"> | |
<title>TRIE</title> | |
<para> | |
The TRIE action uses an external multi tree word list to | |
annotate the matched annotation and provides several configuration | |
parameters. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[TRIE((String = (TypeExpression|{TypeExpression,StringExpression,Expression}))+, | |
ListExpression,BooleanExpression,NumberExpression, | |
BooleanExpression,NumberExpression,StringExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Document{->TRIE("FirstNames.txt" = FirstName, "Companies.txt" = Company, | |
'Dictionary.mtwl', true, 4, false, 0, ".,-/")};]]></programlisting> | |
</para> | |
<para> | |
Here, the dictionary 'Dictionary.mtwl' that contains word lists | |
for first names and companies is used to annotate the document. The | |
words previously contained in the file 'FirstNames.txt' are | |
annotated with the type FirstName and the words in the file | |
'Companies.txt' with the type Company. The case of the word is | |
ignored, if the length of the word exceeds 4. The edit distance is | |
deactivated. The cost of an edit operation can currently not be | |
configured by an argument. The last argument additionally defines | |
several chars that will be ignored. | |
</para> | |
<para> | |
<programlisting><![CDATA[Document{->TRIE("FirstNames.txt" = {A, "a", "first"}, "LastNames.txt" = {B, "b", true}, | |
"CompleteNames.txt" = {C, "c", 6}, | |
list1, true, 4, false, 0, ":")};]]></programlisting> | |
</para> | |
<para> | |
Here, the dictionary 'list1' is applied on the document. Matches originated in dictionary 'FirstNames.txt' | |
result in annotations of type A wheras their features 'a' are set to 'first'. The other two dictionaries | |
create annotations of type 'B' and 'C' for the corresponding dictionaries with a boolean feature value | |
and a integer feature value. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.trim"> | |
<title>TRIM</title> | |
<para> | |
The TRIM action changes the offsets on the matched annotations by removing annotations, whose | |
types are specified by the given parameters. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[TRIE(TypeExpression ( , TypeExpression)*)]]></programlisting> | |
<programlisting><![CDATA[TRIE(TypeListExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Keyword{-> TRIM(SPACE)};]]></programlisting> | |
</para> | |
<para> | |
This rule removes all spaces at the beginning and at the end of Keyword annotations and | |
thus changes the offsets of the matched annotations. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.unmark"> | |
<title>UNMARK</title> | |
<para> | |
The UNMARK action removes the annotation of the given type | |
overlapping the matched annotation. There are two additional configurations: If additional | |
indexes are given, then the span of the specified rule elements are applied, similar the the MARK action. | |
If instead a boolean is given as an additional argument, then all annotations of the given type are removed | |
that start at the matched position. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[UNMARK(TypeExpression)]]></programlisting> | |
<programlisting><![CDATA[UNMARK(TypeExpression (,NumberExpression)*)]]></programlisting> | |
<programlisting><![CDATA[UNMARK(TypeExpression, BooleanExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Headline{->UNMARK(Headline)};]]></programlisting> | |
</para> | |
<para> | |
Here, the Headline annotation is removed. | |
</para> | |
<para> | |
<programlisting><![CDATA[CW ANY+? QUESTION{->UNMARK(Headline,1,3)};]]></programlisting> | |
</para> | |
<para> | |
Here, all Headline annotations are removed that start with a capitalized word and end with a question mark. | |
</para> | |
<para> | |
<programlisting><![CDATA[CW{->UNMARK(Headline,true)};]]></programlisting> | |
</para> | |
<para> | |
Here, all Headline annotations are removed that start with a capitalized word. | |
</para> | |
</section> | |
</section> | |
<section id="ugr.tools.ruta.language.actions.unmarkall"> | |
<title>UNMARKALL</title> | |
<para> | |
The UNMARKALL action removes all the annotations of the given | |
type and all of its descendants overlapping the matched annotation, | |
except the annotation is of at least one type in the passed list. | |
</para> | |
<section> | |
<title> | |
<emphasis role="bold">Definition:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[UNMARKALL(TypeExpression, TypeListExpression)]]></programlisting> | |
</para> | |
</section> | |
<section> | |
<title> | |
<emphasis role="bold">Example:</emphasis> | |
</title> | |
<para> | |
<programlisting><![CDATA[Annotation{->UNMARKALL(Annotation, {Headline})};]]></programlisting> | |
</para> | |
<para> | |
Here, all annotations except from headlines are removed. | |
</para> | |
</section> | |
</section> | |
</section> |