Sorry the team are away on conference at the moment, so response is slow.
Evaluators are pluggable, so even if something isn't added "out of the
box" with the core product, there is no reason why it can't be put up in
an incubator project, say at google code, for people to download as a
jar and have it "just work". We can then let that incubate over time and
then include as default eventually.
Wolfgang, seems you have a lot of ideas. It's common for people to
create "personal" project areas on google code, where they upload
fragments of documents and code, as a sort of landing pad/scratch pad
for their ideas. That way everyone can go to one place to get access to
your ideas and code, and that make it easier for us to incubate, monitor
and include over time. Especially as sometimes the core team will move
slower than the productivity output of a community member, such as
yourself :)
The other aspect is to fix all of this at the MVEL level.
Mark
On 15/10/2010 13:33, Wolfgang Laun wrote:
As promised, here's my report on investigating Soundex and
related
algorithms.
(1) MVEL2 has an utility returning a "key" String from a "word"
String
that is close to what the Original Soundex algorithm is supposed to
return. Not being exactly the same doesn't matter much as long you
compare results from the same algorithm.
(2) The National Archives and Records Administration has issued a
modified Soundex algorithm, which is supposedly slightly better.
(3) Then, there is the New York State Identification and Intelligence
System (NYSIIS) Phonetic Encoder, which is reported to be 2.7% better
than Soundex.
(4) A modified version of NYSIIS has also been defined, for both of
them see
http://www.dropby.com/NYSIIS.html. (I have some doubts
whether this page reflects a correct implementation of the original
NYSIIS algorithm; e.g., "Bahr" returns "B", which can't be
correct.)
All of the above are only useful for English pronounciations of proper
names.
(5) For German, there is something called "Kölner Phonetik".
I have implemented (1), (2), (3) and (5) in a class
SoundsLikeEvaluatorDefinition implements EvaluatorDefinition,
implementing the operator soundsLike (note the capital 'L') in the
variants soundsLike or soundsLike[orig] for (1), soundsLike[us] for
(2), soundsLike[ny] for (3) and soundsLike[de] for (5).
All of this has been an interesting (for me) exercise, but I really
don't know whether any of this should go into Drools. (There is the
issue of fixing a NPE with the current implementation that calls the
MVEL2 code, though.)
It's up to you, Team, to vote on this; I can contribute the
aforementioned class, with "soundsLike" replaced by "soundslike" as a
replacement for the current implementation (not requiring the MVEL2
utility) with the option of using the various operator parameters.
Cheers
Wolfgang
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev