[xquery-talk] String similarity function in XQuery?

Andrew Welch andrew.j.welch at gmail.com
Thu Jun 14 23:24:52 PDT 2007


On 6/14/07, Andrew Welch <andrew.j.welch at gmail.com> wrote:
> On 6/14/07, David Sewell <dsewell at virginia.edu> wrote:
> > Does anyone have an XQuery function that calculates the similarity of
> > two strings? I'm thinking of something along the lines of the Perl
> > String::Similarity module:
>
> If 1 per character length difference, plus 1 per character in the
> shorter string when compared to the character in the longer string is
> sufficient, then this XPath does that:
>
> abs(count($str1) - count($str2)) +
> sum(for $x in 1 to min((count($str1), count($str2))) return
>   if ($str1[$x] ne $str2[$x]) then 1 else ())

....oops I was writing this in XSLT and had $str1 and $str2 defined as

<xsl:variable name="str1" select="string-to-codepoints('kitten')"/>
<xsl:variable name="str2" select="string-to-codepoints('sitting')"/>	

...so the XPath would need to be modified accordingly.


More information about the talk mailing list