taxamatch_rb
Taxamatch_Rb is a ruby implementation of Taxamatch algorithms developed by Tony Rees: www.cmar.csiro.au/datacentre/taxamatch.htm
The purpose of Taxamatch gem is to facilitate fuzzy comparison of two scientific name renderings to find out if they actually point to the same scientific name.
require 'taxamatch_rb'
tm = Taxamatch::Base.new
tm.taxamatch('Homo sapien', 'Homo sapiens') #returns true
tm.taxamatch('Homo sapiens Linnaeus', 'Hommo sapens (Linn. 1758)') #returns true
tm.taxamatch('Homo sapiens Mozzherin', 'Homo sapiens Linnaeus') #returns false
Taxamatch_Rb is compatible with ruby versions 1.8.7 and 1.9.1 and higher
Installation
sudo gem install dimus-taxamatch_rb --source http://gems.github.com
or
sudo gem sources -a http://gems.github.com #(you only have to do this once)
sudo gem install dimus-taxamatch_rb
Usage
require 'rubygems' #not needed for ruby > 1.9.1
require 'taxamatch_rb'
tm = Taxamatch::Base.new
-
compare full scientific names
tm.taxamatch('Hommo sapiens L.', 'Homo sapiens Linnaeus')
-
preparse names for the matching (necessary for large databases of scientific names)
p = Taxamatch::Atomizer.new parsed_name1 = p.parse('Monacanthus fronticinctus Günther 1867 sec. Eschmeyer 2004') parsed_name2 = p.parse('Monacanthus fronticinctus (Gunther, 1867)')
-
compare preparsed names
tm.taxamatch_preparsed(parsed_name1, parsed_name2)
-
compare genera
tm.match_genera('Monacanthus', 'MONOCANTUS')
-
compare species
tm.match_species('fronticinctus', 'frontecinctus')
-
compare authors and years
Taxamatch::Authmatch.authmatch(['Linnaeus'], ['L','Muller'], [1786], [1787])
You can find more examples in spec section of the code
Copyright
Copyright © 2009 Dmitry Mozzherin. See LICENSE for details.