Revision: 13668
http://gate.svn.sourceforge.net/gate/?rev=13668&view=rev
Author: kalina
Date: 2011-04-13 21:34:24 +0000 (Wed, 13 Apr 2011)
Log Message:
-----------
finished the book I think
Modified Paths:
--------------
userguide/trunk/ant-tasks.tex
userguide/trunk/api.tex
userguide/trunk/gazetteers.tex
userguide/trunk/japeimpl.tex
userguide/trunk/misc-creole.tex
userguide/trunk/tao_main.tex
userguide/trunk/uima.tex
Modified: userguide/trunk/ant-tasks.tex
===================================================================
--- userguide/trunk/ant-tasks.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/ant-tasks.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -16,6 +16,7 @@
\verb|<typedef>| (where \verb|${gate.home}| is the location of your GATE
installation):
+\begin{small}
\begin{verbatim}
<typedef resource="gate/util/ant/antlib.xml">
<classpath>
@@ -24,6 +25,7 @@
</classpath>
</typedef>
\end{verbatim}
+\end{small}
If you have problems with library conflicts you should be able to reduce the
JAR files included from the lib directory to just jdom, xstream and jaxen.
@@ -60,6 +62,7 @@
This Ant task is the underlying driver for the `Export for GATECloud.net'
option
described in Section~\ref{sec:developer:export}. Export for GATECloud.net
does the
equivalent of:
+\begin{small}
\begin{verbatim}
<packagegapp src="sourceFile.gapp"
destfile="{tempdir}/application.xgapp"
@@ -67,6 +70,7 @@
copyResourceDirs="yes"
onUnresolved="recover" />
\end{verbatim}
+\end{small}
followed by packaging the temporary directory into a zip file. These options
are explained in detail below.
@@ -76,11 +80,13 @@
In many cases, the following simple invocation will do what you want:
+\begin{small}
\begin{verbatim}
<packagegapp src="original.xgapp"
gatehome="/path/to/GATE"
destfile="package/target.xgapp" />
\end{verbatim}
+\end{small}
Note that the parent directory of the \texttt{destfile} (in this case
\texttt{package}) must already exist. It will not be created automatically.
@@ -169,10 +175,12 @@
relevant when using the \texttt{copyResourceDirs} option described below.
Example:
+\begin{small}
\begin{verbatim}
<packagegapp src="original.xgapp" destfile="package/target.xgapp"
onUnresolved="recover" />
\end{verbatim}
+\end{small}
\subsubsect[sec:ant:packagegapp:hints]{Providing Mapping Hints}
@@ -183,12 +191,14 @@
\texttt{plugins/MyPlugin/\emph{X}} relative to the output GAPP file. You can
specify your own hints which will be used the same way.
+\begin{small}
\begin{verbatim}
<packagegapp src="original.xgapp" destfile="package/target.xgapp">
<hint from="${user.home}/my-app-v1" to="resources/my-app" />
<hint from="/share/data/bigfiles" absolute="yes" />
</packagegapp>
\end{verbatim}
+\end{small}
In this example, \verb|~/my-app-v1/grammar/main.jape| would be mapped to the
location \verb|resources/my-app/grammar/main.jape| (as always, relative to the
@@ -222,10 +232,12 @@
could apply to the same resource file, the one defined first is used. For
example, given the hints
+\begin{small}
\begin{verbatim}
<hint from="${gate.home}/plugins/ANNIE/resources/tokeniser" to="tokeniser" />
<hint from="${gate.home}/plugins/ANNIE/resources" to="annie" />
\end{verbatim}
+\end{small}
the resource \texttt{plugins/ANNIE/resources/tokeniser/DefaultTokeniser.rules}
would be mapped into the \texttt{tokeniser} directory, but if the hints were
@@ -234,10 +246,12 @@
files, as the order in which hints from a single property file are applied is
not specified. Given
+\begin{small}
\begin{verbatim}
<hint file="file1.proeprties" />
<hint file="file2.properties" />
\end{verbatim}
+\end{small}
the relative precedence of two hints from file1 is not fixed, but it is the
case that all hints in file1 will be applied before those in file2.
@@ -248,10 +262,12 @@
into the target directory. In most cases this is OK but it may be the case
that your plugins contain many extraneous resources that are not used by your
application. In this case you can specify \verb|copyPlugins="no"|:
+\begin{small}
\begin{verbatim}
<packagegapp src="original.xgapp" destfile="package/target.xgapp"
copyPlugins="no" />
\end{verbatim}
+\end{small}
In this mode, the packager task will copy only the following files from each
plugin:
@@ -296,6 +312,7 @@
The \verb|<extraresourcespath>| allows you to specify specific extra files
that should be included in the package:
+\begin{small}
\begin{verbatim}
<packagegapp src="original.xgapp" destfile="package/target.xgapp">
<extraresourcespath>
@@ -304,6 +321,7 @@
</extraresourcespath>
</packagegapp>
\end{verbatim}
+\end{small}
As the name suggests, this is a
\htlink{http://ant.apache.org/manual/using.html\#path}{path-like structure} and
@@ -321,6 +339,7 @@
You can also refer to a path defined elsewhere in the usual way:
+\begin{small}
\begin{verbatim}
<path id="extra.files">
...
@@ -330,6 +349,7 @@
<extraresourcespath refid="extra.files" />
</packagegapp>
\end{verbatim}
+\end{small}
Resources declared in the \texttt{extraresourcespath} and directories included
using \verb|copyResourceDirs| are treated exactly the same as resources that
@@ -358,11 +378,13 @@
The typical usage of this task (taken from the GATE build.xml) is:
+\begin{small}
\begin{verbatim}
<expandcreoles todir="build/plugins" gatehome="${basedir}">
<fileset dir="plugins" includes="*/creole.xml" />
</expandcreoles>
\end{verbatim}
+\end{small}
This will initialise GATE with the given GATE\_HOME directory, then read each
file from the nested fileset, parse it as a creole.xml, expand it from any
Modified: userguide/trunk/api.tex
===================================================================
--- userguide/trunk/api.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/api.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -1798,7 +1798,7 @@
CommonsPoolTargetSource class. These allow you, for example, to configure a
pool that dynamically grows and shrinks as necessary, releasing objects that
have been idle for a set amount of time. See the
-\htlink{http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/aop/target/CommonsPoolTargetSource.html}%
+\htlink{http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/aop/target\-/CommonsPoolTargetSource.html}%
{JavaDoc documentation of CommonsPoolTargetSource} (and the documentation for
Apache commons-pool) for full details.
Modified: userguide/trunk/gazetteers.tex
===================================================================
--- userguide/trunk/gazetteers.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/gazetteers.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -678,7 +678,7 @@
first tokenises each linguistic term, then assigns part-of-speech and lemma
information to each token.
-\clearpage
+%\clearpage
\begin{figure}
\begin{center}
\includegraphics[width=12cm]{ontoRootGaz.png} \ \
Modified: userguide/trunk/japeimpl.tex
===================================================================
--- userguide/trunk/japeimpl.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/japeimpl.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -15,6 +15,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% qqqqqqqqqqqqqqqqqqqqqqqqq %%%%
+\ifprintedbook
+\else
\begin{quote}
The annual Diagram prize for the oddest book title of the year has
been awarded to Gerard Forlin's Butterworths Corporate
@@ -42,6 +44,7 @@
{\it Manslaughter Service kills off competition in battle of strange titles},
Emma Yates, The Guardian, November 30, 2001.
\end{quote}
+\fi
%%%% qqqqqqqqqqqqqqqqqqqqqqqqq %%%%
@@ -145,7 +148,7 @@
% ConsumeBlock ::=
% Java code
\begin{figure}
-{\nsmall
+{\scriptsize
\begin{verbatim}
MultiPhaseTransducer ::=
( <multiphase> <ident> )?
Modified: userguide/trunk/misc-creole.tex
===================================================================
--- userguide/trunk/misc-creole.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/misc-creole.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -15,6 +15,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nnormalsize
%%%% qqqqqqqqqqqqqqqqqqqqqqqqq %%%%
+\ifprintedbook
+\else
\begin{quote}
For the previous reader was none other than myself. I had already
read this book long ago.
@@ -48,6 +50,7 @@
{\it Three Stories and a Reflection}, Patrick Suskind, 1995 (pp. 82, 86).
\end{quote}
%%%% qqqqqqqqqqqqqqqqqqqqqqqqq %%%%
+\fi
This \chapthing\ describes additional CREOLE resources which do not form part
of
ANNIE, and have not been covered in previous \chapthings.
@@ -162,27 +165,27 @@
\begin{itemize}
\item{Initialization Parameters}
\begin{itemize}
- \item preProcessURL: The URL of a JAPE grammar that should be run over
each document before
+ \item \textbf{preProcessURL}: The URL of a JAPE grammar that should be
run over each document before
running the tagger.
- \item postProcessURL: The URL of a JAPE grammar that should be run over
each document after
+ \item \textbf{postProcessURL}: The URL of a JAPE grammar that should be
run over each document after
running the tagger. This can be used, for example, to add chunk
annotations using IOB
tags output by the tagger and stored as features on Token annotations.
\end{itemize}
\item{Runtime Parameters}
\begin{itemize}
- \item debug: if set to \texttt{true} then a whole heap of useful
information will be printed to the
+ \item \textbf{debug}: if set to \texttt{true} then a whole heap of
useful information will be printed to the
messages tab as the tagger runs. Defaults to \texttt{false}.
- \item encoding: this must be set to the encoding that the tagger expects
the input/output files
+ \item \textbf{encoding}: this must be set to the encoding that the
tagger expects the input/output files
to use. If this is incorrectly set is highly likely that either the
tagger will fail or
the results will be meaningless. Defaults to \texttt{ISO-8859-1} as
this seems to be the most
commonly required encoding.
- \item failOnUnmappableCharacter: What to do if a character is
encountered in the document which
+ \item \textbf{failOnUnmappableCharacter}: What to do if a character is
encountered in the document which
cannot be represented in the selected encoding. If the parameter is
\texttt{true} (the default),
unmappable characters cause the wrapper to throw an exception and
fail. If set to \texttt{false},
unmappable characters are replaced by question marks when the
document is passed to the tagger.
This is useful if your documents are largely OK but contain the odd
character from outside the
Latin-1 range.
- \item inputTemplate: template string describing how to build the line of
input for the tagger
+ \item \textbf{inputTemplate}: template string describing how to build
the line of input for the tagger
corresponding to a single annotation. The template contains
placeholders of the form
\verb|${feature}| which will be replaced by the value of the
corresponding feature from the
annotation. The default template is \verb|${string}|, which simply
passes the string feature of
@@ -192,29 +195,29 @@
If a particular annotation does not have one of the specified
features, the corresponding slot
in the template will be left blank (i.e.\ replaced by an empty
string). It is only an error
if a particular annotation contains \emph{none} of the features
specified by the template.
- \item regex: this should be a Java regular expression that matches a
single line in the output from the tagger.
+ \item \textbf{regex}: this should be a Java regular expression that
matches a single line in the output from the tagger.
Capturing groups should be used to define the sections of the
expression which match the useful output.
- \item featureMapping: this is a mapping from feature name to capturing
group in the regular expression. Each
+ \item \textbf{featureMapping}: this is a mapping from feature name to
capturing group in the regular expression. Each
feature will be added to the output annotations with a value equal to
the specified capturing group. For example,
the TreeTagger uses a regular expression \texttt{(.+)\textbackslash
t(.+)\textbackslash t(.+)} to capture the three column output. This is
then combined with the feature mapping \texttt{\{string=1,
category=2, lemma=3\}} to add the appropriate
feature/values to the output annotations.
- \item inputASName: the name of the annotation set which should be used
for input. If not specified the default
+ \item \textbf{inputASName}: the name of the annotation set which should
be used for input. If not specified the default
(i.e.\ un-named) annotation set will be used.
- \item inputAnnotationType: the name of the annotation used as input to
the tagger. This will usually be Token. Note that the
+ \item \textbf{inputAnnotationType}: the name of the annotation used as
input to the tagger. This will usually be Token. Note that the
input annotations must contain a \texttt{string} feature which will
be used as input to the tagger. Tokens usually have this
feature but if, for example, you wish to use Sentence as the input
annotation then you will need to add the \texttt{string}
feature. JAPE grammars for doing this are provided in
plugins/Tagger\_Framework/resources.
- \item outputASName: the name of the annotation set which should be used
for output. If not specified the default
+ \item \textbf{outputASName}: the name of the annotation set which should
be used for output. If not specified the default
(i.e.\ un-named) annotation set will be used.
- \item outputAnnotationType: the name of the annotation to be provided as
output. This is usually Token.
- \item taggerBinary: a URL indicating the location of the external
tagger. This is usually a shell script
+ \item \textbf{outputAnnotationType}: the name of the annotation to be
provided as output. This is usually Token.
+ \item \textbf{taggerBinary}: a URL indicating the location of the
external tagger. This is usually a shell script
which may perform extra processing before executing the tagger. The
plugins/Tagger\_Framework/resources directory
contains example scripts (where needed) for the supported taggers.
These scripts may need editing (for example,
to set the installation directory of the tagger) before they can be
used.
- \item taggerDir: the directory from which the tagger must be executed.
This can be left unspecified.
- \item taggerFlags: an ordered set of flags that should be passed to the
tagger as command line options
- \item updateAnnotations: If set to \texttt{true} then the plugin will
attempt to update existing output annotations. This can fail
+ \item \textbf{taggerDir}: the directory from which the tagger must be
executed. This can be left unspecified.
+ \item \textbf{taggerFlags}: an ordered set of flags that should be
passed to the tagger as command line options
+ \item \textbf{updateAnnotations}: If set to \texttt{true} then the
plugin will attempt to update existing output annotations. This can fail
if the output from the tagger and the existing annotations are
created differently (i.e.\ the tagger does its own tokenization).
Setting this option to \texttt{false} will make the plugin create new
output annotations, removing any existing ones, to prevent
the two sets getting out of sync. This is also useful when the tagger
is domain specific and may do a better job than GATE. For example,
@@ -243,9 +246,11 @@
\texttt{build.properties} (see Section \ref{sec:gettingstarted:sysprop}, and
note the extra backslash before each backslash and colon in the path):
+\begin{small}
\begin{verbatim}
run.shell.path: C\:\\cygwin\\bin\\sh.exe
\end{verbatim}
+\end{small}
Similarly, for Perl or Python scripts you should install a suitable interpreter
and set \texttt{shell.path} to point to that.
@@ -289,11 +294,13 @@
Note that you must set the paths in these command files to point to
the location where you installed the TreeTagger:
\begin{quote}
+ \begin{small}
\begin{verbatim}
BIN=/usr/local/durmtools/TreeTagger/bin
CMD=/usr/local/durmtools/TreeTagger/cmd
LIB=/usr/local/durmtools/TreeTagger/lib
\end{verbatim}
+\end{small}
\end{quote}
The Tagger Framework will run the TreeTagger on any platform that
supports the TreeTagger tool, including Linux, Mac OS X and Windows,
@@ -415,6 +422,7 @@
\begin{figure}
\centering
+\begin{small}
\begin{verbatim}
<config>
<description>Basic Example</description>
@@ -447,6 +455,7 @@
<digitGroupingSymbol>,</digitGroupingSymbol>
</config>
\end{verbatim}
+\end{small}
\caption{Example Numbers Tagger Config File}
\label{fig:numbers:example}
\end{figure}
@@ -727,7 +736,7 @@
Abner does support training of models on other data, but this functionality is
not, however, supported by the GATE wrapper.
-For further details please refer to the Abner documentation at
+For further details please refer to the Abner documentation at\linebreak
\htlinkplain{http://pages.cs.wisc.edu/~bsettles/abner/}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -762,6 +771,7 @@
The stemmers are based on the Porter stemmer for English \cite{Porter80}, with
rules implemented in Snowball e.g.
+\begin{small}
\begin{verbatim}
define Step_1a as
( [substring] among (
@@ -770,6 +780,7 @@
'ss' () 's' (delete)
)
\end{verbatim}
+\end{small}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\sect[sec:parsers:morpher]{GATE Morphological Analyzer}
@@ -1175,7 +1186,7 @@
Figure \ref{fig:ir1} shows the results from running a query against an
indexed corpus in GATE.
-\clearpage
+%\clearpage
%
\begin{figure}[htbp]
\begin{center}
Modified: userguide/trunk/tao_main.tex
===================================================================
--- userguide/trunk/tao_main.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/tao_main.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -66,7 +66,7 @@
\usepackage[
pdftex,
pdfborder=0, %comment to get boxes around links
- pdftitle={Developing Language Processing Components with GATE Version 6 (a
User Guide)},
+ pdftitle={Text Processing with GATE (Version 6)},
pdfauthor={
Hamish Cunningham
Diana Maynard
@@ -622,7 +622,7 @@
\ifprintedbook
\renewcommand{\htlink}[2]{{#2}\footnote{{\tt #1}}}
- \renewcommand{\htlinkplain}[1]{\protect{\tt #1}}
+ \renewcommand{\htlinkplain}[1]{\protect{\begin{small}\tt #1 \end{small}}}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -654,14 +654,14 @@
\input{parsers} %final for book
\input{machine-learning} %final for book
\input{alignment} %final for book
-\input{uima}
-\input{misc-creole}
+\input{uima} %final for book
+\input{misc-creole} %final for book
\ifprintedbook
\smartpart[part:family]{The GATE Family: Cloud, MIMIR, Teamware}
-\input{cloud}
-\input{teamware}
-\input{mimir}
+\input{cloud} %final for book
+\input{teamware} %final for book
+\input{mimir} %final for book
\fi
@@ -672,17 +672,17 @@
\ifprintedbook
\else
- \input{changes}
+ \input{changes} %final for book
\fi
-\input{plugin-name-map}
+\input{plugin-name-map} %final for book
\ifprintedbook
\else
- \input{design}
+ \input{design} %final for book
\fi
-\input{japeimpl}
+\input{japeimpl} %final for book
\input{ant-tasks}
\ifprintedbook
Modified: userguide/trunk/uima.tex
===================================================================
--- userguide/trunk/uima.tex 2011-04-13 15:41:13 UTC (rev 13667)
+++ userguide/trunk/uima.tex 2011-04-13 21:34:24 UTC (rev 13668)
@@ -85,6 +85,7 @@
annotations which have been added, updated and removed by the AE are
transferred back to the GATE document.
\begin{figure}
+\begin{small}
\begin{verbatim}
<uimaGateMapping>
<inputs>
@@ -116,6 +117,7 @@
</outputs>
</uimaGateMapping>
\end{verbatim}
+\end{small}
\caption{Structure of a mapping descriptor for an AE in GATE}
\label{fig:mappingFile}
\end{figure}
@@ -125,6 +127,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Each input definition takes the following form:
+\begin{small}
\begin{verbatim}
<uimaAnnotation type="uima.Type" gateType="GATEType" indexed="true|false">
<feature name="..." kind="string|int|float|fs">
@@ -133,6 +136,7 @@
...
</uimaAnnotation>
\end{verbatim}
+\end{small}
%
When a document is processed, this will create one UIMA annotation of type
\texttt{uima.Type} in the CAS for each GATE annotation of type
@@ -205,6 +209,7 @@
\end{description}
The definition elements for these three types all take the same form:
+\begin{small}
\begin{verbatim}
<gateAnnotation type="GATEType" uimaType="uima.Type">
<feature name="featureName">
@@ -213,6 +218,7 @@
...
</gateAnnotation>
\end{verbatim}
+\end{small}
%
For \texttt{added} annotations, this has the mirror-image effect to the input
definition -- for each UIMA annotation of the given type, create a GATE
@@ -245,6 +251,7 @@
Feature names in \texttt{uimaFSFeatureValue} must be qualified with their type
name, as the feature may have been defined on a supertype of the feature's own
type, rather than the type itself. For example, consider the following:
+\begin{small}
\begin{verbatim}
<gateAnnotation type="Entity" uimaType="com.example.Entity">
<feature name="type">
@@ -255,6 +262,7 @@
</feature>
</gateAnnotation>
\end{verbatim}
+\end{small}
For \texttt{updated} annotations, there must have been an input definition with
\texttt{indexed="true"} with the same GATE and UIMA types. In this case, for
@@ -282,6 +290,7 @@
do not need to agree, so long as a mapping between them can be defined.
%
\begin{figure}
+\begin{small}
\begin{verbatim}
<uimaGateMapping>
<inputs>
@@ -303,6 +312,7 @@
</outputs>
</uimaGateMapping>
\end{verbatim}
+\end{small}
\caption{An example mapping descriptor}
\label{fig:UIMAInGATE:example}
\end{figure}
@@ -359,12 +369,14 @@
GATE classloader. The easiest way to achieve this is to put the JAR file or
files in a new directory, and create a \texttt{creole.xml} file in the same
directory to reference the JARs:
+\begin{small}
\begin{verbatim}
<CREOLE-DIRECTORY>
<JAR>my-annotator.jar</JAR>
<JAR>classes-it-uses.jar</JAR>
</CREOLE-DIRECTORY>
\end{verbatim}
+\end{small}
%
This directory should then be loaded in GATE as a CREOLE plugin. Note that,
due to the complex mechanics of classloaders in Java, putting your JARs in
@@ -400,6 +412,7 @@
annotations into the default set and \texttt{com.example.html.Anchor}
annotations to `\texttt{a}' tags in the `Original markups' set.
%
+\begin{small}
\begin{verbatim}
<inputs>
<gateAnnotation type="Person" uimaType="com.example.Person">
@@ -416,6 +429,7 @@
</gateAnnotation>
</inputs>
\end{verbatim}
+\end{small}
Figure \ref{fig:GATEInUIMA:example} shows a
mapping descriptor for an application that takes tokens and sentences produced
@@ -427,6 +441,7 @@
\texttt{indexed="true"} as the POS feature must be copied back from GATE.
%
\begin{figure}
+\begin{small}
\begin{verbatim}
<uimaGateMapping>
<inputs>
@@ -448,6 +463,7 @@
</outputs>
</uimaGateMapping>
\end{verbatim}
+\end{small}
\caption{An example mapping descriptor for the GATE POS tagger}
\label{fig:GATEInUIMA:example}
\end{figure}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve
application availability and disaster protection. Learn more about boosting
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs