Re: Icon

David Quinn (
Tue, 18 Jul 95 12:09:16 BST

I, too, was pleased to find a query about ICON on the corpora list (from
Fanny Meunier):

> I would be very happy to hear about people who have used/are using the ICON
> programming language for NLP purposes. Comments, reactions, suggestions ...

We have been using Icon at BICC, in England, for writing corpus analysis
programs. We have found it very useful for the purpose. It has good string
handling facilities, and these are embedded within an innovative
programming language, complete with data structures, such as lists and
tables, that are good for symbolic processing.

I found it rather different from other languages (including Prolog), and
agree that it does take a lot of effort to get used to. I also agree that
it is rather simple, though only if this is a parallel with Prolog, for
example, where there isn't much syntax to learn, but there is a great deal
to the semantics of the language, and to getting the most out of it.

One source of surprises is that it is often very easy to get an incorrect
program past the compiler. Icon tends to find an (unintended) interpretation
of some sort for many an expression.

But to return to NLP. We have used Icon for corpus analysis programs
that need a lot of string processing. These include tokenisation,
simple morphological analysis, frequency counting, extraction of n-grams
(collocations), corpus indexing, concordance production, and mapping
between formats (such as writing and reading analysis files marked up in
SGML, and producing the required format for our system lexicon).

There's no reason why text analysis shouldn't be done in perl, or in C.
However, Icon provides a very helpful combination of string processing
capabilities included in a general-purpose programming language with
various interesting facilities, and it is free, compilable, and portable
to many platforms.

David Quinn

David Quinn
BICC Centre for Applications of Advanced IT [BICC CAIT]
Quantum House
Maylands Avenue
Hemel Hempstead
Herts Email :
HP2 4SJ Tel : (01442) 210 142
(United Kingdom) Fax : (01442) 210 101