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 © 2009 Dmitry Mozzherin. See LICENSE for details.