Book logo xindy

A Flexible Indexing System

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xindy] alpha version 2.0b available

	Hello out there,

I've just pu a new alpha release on the Web-Server. It's available at

This release adds the capability of defining rule sets as discussed
some days ago.

The command 

  (define-rule-set "name"
	[ :inherit-from ("rule-set" "rule-set-2") ]
	:rules (<rule>...)

where each of the rules defined as follows:

  <rule> ::= ("pattern" "replacement" 
	      [:string|:bregexp|:egegexp] [:again])

It is similiar to a SORT-RULE command. A rule must not include the
:run parameter (this is supplied at instantiation time) and the
identifier SORT-RULE, since this scheme does only work for sort rules,
so we can omit it.
As an example :

   (define-rule-set "isolatin1-tolower"
     :inherit-from ("latin-tolower")
     :rules (("" "" :string :again)
             ("" "" :string :again)
             ("" "" :string :again)
             ("" "" :string :again)
             ("" "" :string :again)
             ("" "" :string :again)
             ("" "" :string :again)

Rule sets inherit rules from another rule set, if they do not have the
same pattern already. A list of parents is inherited successively, one
by one, preserving the order. Thus, in the resulting list of patterns
the ones that have been inherited the last appear at the end of the

At instantiation time we use

  (use-rule-set :run <phase>
		:rule-set (<rule-set>...)

such as 

  (use-rule-set :run 0
                :rule-set ("din5007" "isolatin1-tolower"))

  (use-rule-set :run 1
                :rule-set ("resolve-umlauts"

In the test phase I've implemented a full scheme for German, which is
now part of the library. Have a look at the modules

Which contains the complete rule sets and their instantiation. The
rule sets from rules/* may be valuable for the specification of a
complete rule set for French or other languages.

The changes implemented in the program affected the binary kits as

Any comments are welcome.


Roger Kehr
Computer Science Department         Darmstadt University of Technology