
Hello out there,
I've just pu a new alpha release on the Web-Server. It's available at
http://www.iti.informatik.tu-darmstadt.de/xindy/alpha/
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
list.
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"
"resolve-sharp-s"
"isolatin1-tolower"
))
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
http://www.iti.informatik.tu-darmstadt.de/xindy/modules/
lang/german/rules.xdy
din5007m.xdy
rules/isolatin1-tolower.xdy
latin-tolower.xdy
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
well.
Any comments are welcome.
Cheers,
--Roger
--
======================================================================
Roger Kehr kehr@iti.informatik.tu-darmstadt.de
Computer Science Department Darmstadt University of Technology