family-reunion 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/family-reunion.gemspec +2 -2
- data/lib/family-reunion/exact_matcher.rb +3 -3
- data/lib/family-reunion/fuzzy_matcher.rb +2 -2
- data/lib/family-reunion/matcher_helper.rb +2 -2
- data/lib/family-reunion/nomatch_organizer.rb +2 -2
- data/spec/fixtures/matched_merges.json +1 -1
- data/spec/fuzzy_matcher_spec.rb +1 -1
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
data/family-reunion.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{family-reunion}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dmitry Mozzherin", "David Shorthouse"]
|
12
|
-
s.date = %q{2011-06-
|
12
|
+
s.date = %q{2011-06-16}
|
13
13
|
s.description = %q{An algorithm to merge related nodes of two taxonomic hierarchies with synonym information}
|
14
14
|
s.email = %q{dmozzherin@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -31,7 +31,7 @@ class FamilyReunion
|
|
31
31
|
path = @fr.primary_node.valid_names_hash[name][:path]
|
32
32
|
path_ids = @fr.primary_node.valid_names_hash[name][:path_ids]
|
33
33
|
secondary_id = @fr.secondary_node.valid_names_hash[name][:id].to_s.to_sym
|
34
|
-
@fr.merges[primary_id] = {:matches => {secondary_id => {:
|
34
|
+
@fr.merges[primary_id] = {:matches => {secondary_id => {:merge_type => :exact_valid_to_valid, :path => path, :path_ids => path_ids }}, :nonmatches => {}}
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -47,10 +47,10 @@ class FamilyReunion
|
|
47
47
|
@fr.primary_synonyms_set & @fr.secondary_synonyms_set
|
48
48
|
end
|
49
49
|
|
50
|
-
def add_synonym_matches(match_set,
|
50
|
+
def add_synonym_matches(match_set, merge_type)
|
51
51
|
match_set.each do |name|
|
52
52
|
primary_ids, secondary_ids = get_valid_name_ids(name)
|
53
|
-
secondary_id_matches = format_secondary_id_for_merge(secondary_ids,
|
53
|
+
secondary_id_matches = format_secondary_id_for_merge(secondary_ids, merge_type)
|
54
54
|
primary_ids.each do |primary_id|
|
55
55
|
add_record_to_merges(primary_id, secondary_id_matches)
|
56
56
|
end
|
@@ -44,11 +44,11 @@ class FamilyReunion
|
|
44
44
|
|
45
45
|
private
|
46
46
|
|
47
|
-
def add_matches(matched_nodes,
|
47
|
+
def add_matches(matched_nodes, merge_type)
|
48
48
|
matched_nodes.each do |primary_node, secondary_nodes|
|
49
49
|
primary_id = primary_node[:id].to_s.to_sym
|
50
50
|
secondary_ids = secondary_nodes.map { |n| n[:id].to_s.to_sym }
|
51
|
-
secondary_id_matches = format_secondary_id_for_merge(secondary_ids,
|
51
|
+
secondary_id_matches = format_secondary_id_for_merge(secondary_ids, merge_type)
|
52
52
|
add_record_to_merges(primary_id, secondary_id_matches)
|
53
53
|
end
|
54
54
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
class FamilyReunion
|
2
2
|
module MatcherHelper
|
3
3
|
private
|
4
|
-
def format_secondary_id_for_merge(secondary_ids,
|
4
|
+
def format_secondary_id_for_merge(secondary_ids, merge_type)
|
5
5
|
secondary_ids.inject({}) do |res, i|
|
6
6
|
raise "Secondary id is not a symbol" unless i.is_a?(Symbol)
|
7
7
|
path = @fr.secondary_node.ids_hash[i][:path]
|
8
8
|
path_ids = @fr.secondary_node.ids_hash[i][:path_ids]
|
9
|
-
res[i] = {:
|
9
|
+
res[i] = {:merge_type => merge_type, :path => path, :path_ids => path_ids} unless res.has_key?(i)
|
10
10
|
res
|
11
11
|
end
|
12
12
|
end
|
@@ -51,9 +51,9 @@ class FamilyReunion
|
|
51
51
|
path = @fr.secondary_node.ids_hash[secondary_node_id][:path]
|
52
52
|
path_ids = @fr.secondary_node.ids_hash[secondary_node_id][:path_ids]
|
53
53
|
if @fr.merges.has_key?(primary_node_id) #never happens?
|
54
|
-
@fr.merges[primary_node_id][:nonmatches][secondary_node_id] = { :
|
54
|
+
@fr.merges[primary_node_id][:nonmatches][secondary_node_id] = { :merge_type => "new", :path => path, :path_ids => path_ids }
|
55
55
|
else
|
56
|
-
@fr.merges[primary_node_id] = { :matches => {}, :nonmatches => {secondary_node_id => { :
|
56
|
+
@fr.merges[primary_node_id] = { :matches => {}, :nonmatches => {secondary_node_id => { :merge_type => nil, :path => path, :path_ids => path_ids } } }
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -1 +1 @@
|
|
1
|
-
{"invasiveants:tid:1394":{"matches":{"hex10349843":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus floridanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1394"]}},"nonmatches":{}},"invasiveants:tid:1395":{"matches":{"hex10349884":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus herculeanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1395"]},"hex10357986":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica atra"],"path_ids":["hex100521","hex1023020","hex10357986"]}},"nonmatches":{}},"invasiveants:tid:1397":{"matches":{"hex10349957":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus sexguttatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1397"]},"hex10357927":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficeps"],"path_ids":["hex100521","hex1023020","hex10357927"]},"hex10357934":{"match_type":"fuzzy_synonym_to_synonym","path":["Formicidae","Formica","Formica lavateri"],"path_ids":["hex100521","hex1023020","hex10357934"]}},"nonmatches":{}},"invasiveants:tid:1396":{"matches":{"hex10349938":{"match_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus planatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1396"]}},"nonmatches":{}},"invasiveants:tid:1401":{"matches":{"hex10806368":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla minutior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1401"]}},"nonmatches":{}},"invasiveants:tid:1402":{"matches":{"hex10355636":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla nuda"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1402"]}},"nonmatches":{}},"invasiveants:tid:1404":{"matches":{"hex10355627":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla venustula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1404"]}},"nonmatches":{}},"invasiveants:tid:1405":{"matches":{"hex10355629":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla wroughtonii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1405"]},"hex10355612":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla longispina"],"path_ids":["hex100521","hex1022909","hex10355612"]}},"nonmatches":{}},"invasiveants:tid:1400":{"matches":{"hex10355607":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla mauritanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1400"]},"hex10355632":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla ectopia"],"path_ids":["hex100521","hex1022909","hex10355632"]}},"nonmatches":{}},"invasiveants:tid:1399":{"matches":{"hex10355641":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla emeryi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1399"]}},"nonmatches":{}},"invasiveants:tid:1482":{"matches":{"hex10356583":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis richteri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1482"]}},"nonmatches":{}},"invasiveants:tid:1480":{"matches":{"hex10356717":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis geminata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1480"]}},"nonmatches":{}},"invasiveants:tid:1484":{"matches":{"hex10356627":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis xyloni"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1484"]}},"nonmatches":{}},"invasiveants:tid:1483":{"matches":{"hex10356575":{"match_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis texana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1483"]}},"nonmatches":{}},"invasiveants:tid:1499":{"matches":{"hex10355947":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caespitum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1499"]},"hex10356042":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Tetramorium","Tetramorium jiangxiense"],"path_ids":["hex100521","hex1022945","hex10356042"]},"hex10357973":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica fusca"],"path_ids":["hex100521","hex1023020","hex10357973"]}},"nonmatches":{}},"invasiveants:tid:1501":{"matches":{"hex10356046":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium insolens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1501"]}},"nonmatches":{}},"invasiveants:tid:1502":{"matches":{"hex10355966":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium lanuginosum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1502"]}},"nonmatches":{}},"invasiveants:tid:1503":{"matches":{"hex10356075":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium pacificum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1503"]}},"nonmatches":{}},"invasiveants:tid:1504":{"matches":{"hex10356159":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium simillimum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1504"]}},"nonmatches":{}},"invasiveants:tid:1498":{"matches":{"hex10356327":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium bicarinatum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1498"]}},"nonmatches":{}},"invasiveants:tid:1505":{"matches":{"hex10356104":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium tsushimae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1505"]}},"nonmatches":{}},"invasiveants:tid:1500":{"matches":{"hex10356252":{"match_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caldarium"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1500"]}},"nonmatches":{}},"invasiveants:tid:1508":{"matches":{"hex10349086":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis gracilipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1508"]}},"nonmatches":{}},"invasiveants:tid:1387":{"matches":{"hex10349098":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis custodiens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1387"]}},"nonmatches":{}},"invasiveants:tid:1413":{"matches":{"hex10358078":{"match_type":"exact_valid_to_valid","path":["Formicidae","Formica","Formica truncorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1412","invasiveants:tid:1413"]}},"nonmatches":{}},"invasiveants:tid:1421":{"matches":{"hex10352185":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius alienus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1421"]}},"nonmatches":{}},"invasiveants:tid:1423":{"matches":{"hex10352110":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius niger"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1423"]}},"nonmatches":{}},"invasiveants:tid:1422":{"matches":{"hex10352102":{"match_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius flavus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1422"]},"hex10357976":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficornis"],"path_ids":["hex100521","hex1023020","hex10357976"]}},"nonmatches":{}},"invasiveants:tid:1507":{"matches":{"hex10355716":{"match_type":"exact_valid_to_valid","path":["Formicidae","Wasmannia","Wasmannia auropunctata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1506","invasiveants:tid:1507"]}},"nonmatches":{}},"invasiveants:tid:1456":{"matches":{"hex10353897":{"match_type":"exact_valid_to_valid","path":["Formicidae","Paratrechina","Paratrechina longicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1455","invasiveants:tid:1456"]},"hex10357874":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica vagans"],"path_ids":["hex100521","hex1023020","hex10357874"]}},"nonmatches":{}},"invasiveants:tid:1494":{"matches":{"hex10353166":{"match_type":"exact_valid_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex albipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1493","invasiveants:tid:1494"]}},"nonmatches":{}},"invasiveants:tid:1426":{"matches":{"hex10357236":{"match_type":"exact_valid_to_valid","path":["Formicidae","Linepithema","Linepithema humile"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1425","invasiveants:tid:1426"]}},"nonmatches":{}},"invasiveants:tid:1445":{"matches":{"hex10355173":{"match_type":"exact_valid_to_valid","path":["Formicidae","Ochetellus","Ochetellus glaber"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1444","invasiveants:tid:1445"]}},"nonmatches":{}},"invasiveants:tid:1409":{"matches":{"hex10351128":{"match_type":"exact_valid_to_valid","path":["Formicidae","Cyphomyrmex","Cyphomyrmex rimosus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1408","invasiveants:tid:1409"]}},"nonmatches":{}},"invasiveants:tid:1486":{"matches":{"hex10770947":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys emmae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1486"]}},"nonmatches":{}},"invasiveants:tid:1489":{"matches":{"hex10353034":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys silvestrii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1489"]}},"nonmatches":{}},"invasiveants:tid:1487":{"matches":{"hex10353124":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys lanuginosa"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1487"]}},"nonmatches":{}},"invasiveants:tid:1488":{"matches":{"hex10353022":{"match_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys rogeri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1488"]}},"nonmatches":{}},"invasiveants:tid:1450":{"matches":{"hex10354823":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla luteipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1450"]}},"nonmatches":{}},"invasiveants:tid:1454":{"matches":{"hex10354888":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla stigma"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1454"]}},"nonmatches":{}},"invasiveants:tid:1451":{"matches":{"hex10354795":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla obscurans"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1451"]}},"nonmatches":{}},"invasiveants:tid:1449":{"matches":{"hex10354968":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla chinensis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1449"]}},"nonmatches":{}},"invasiveants:tid:1385":{"matches":{"hex10348989":{"match_type":"exact_valid_to_valid","path":["Formicidae","Anochetus","Anochetus mayri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1384","invasiveants:tid:1385"]}},"nonmatches":{}},"invasiveants:tid:1463":{"matches":{"hex10354276":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole moerens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1463"]}},"nonmatches":{}},"invasiveants:tid:1462":{"matches":{"hex10354255":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole micula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1462"]}},"nonmatches":{}},"invasiveants:tid:1465":{"matches":{"hex10354524":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole oceanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1465"]}},"nonmatches":{}},"invasiveants:tid:1460":{"matches":{"hex10354508":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole flavens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1460"]},"hex10354647":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole greggi"],"path_ids":["hex100521","hex1022881","hex10354647"]}},"nonmatches":{}},"invasiveants:tid:1466":{"matches":{"hex10354676":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole teneriffana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1466"]}},"nonmatches":{}},"invasiveants:tid:1458":{"matches":{"hex10354638":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole anastasii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1458"]}},"nonmatches":{}},"invasiveants:tid:1461":{"matches":{"hex10354215":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole megacephala"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1461"]},"hex10354233":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole perpusilla"],"path_ids":["hex100521","hex1022881","hex10354233"]}},"nonmatches":{}},"invasiveants:tid:1459":{"matches":{"hex10354345":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole fervens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1459"]},"hex10354584":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole amia"],"path_ids":["hex100521","hex1022881","hex10354584"]}},"nonmatches":{}},"invasiveants:tid:1472":{"matches":{"hex10358401":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pseudomyrmex","Pseudomyrmex gracilis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1471","invasiveants:tid:1472"]}},"nonmatches":{}},"invasiveants:tid:1447":{"matches":{"hex10355198":{"match_type":"exact_valid_to_valid","path":["Formicidae","Odontomachus","Odontomachus ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1446","invasiveants:tid:1447"]}},"nonmatches":{}},"invasiveants:tid:1468":{"matches":{"hex10354059":{"match_type":"exact_valid_to_valid","path":["Formicidae","Plagiolepis","Plagiolepis alluaudi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1467","invasiveants:tid:1468"]}},"nonmatches":{}},"invasiveants:tid:1419":{"matches":{"hex10357434":{"match_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera punctatissima"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1419"]}},"nonmatches":{}},"invasiveants:tid:1418":{"matches":{"hex10357430":{"match_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera opaciceps"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1418"]}},"nonmatches":{}},"invasiveants:tid:1415":{"matches":{"hex10358491":{"match_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys porcata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1415"]}},"nonmatches":{}},"invasiveants:tid:1416":{"matches":{"hex10358551":{"match_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys triangularis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1416"]}},"nonmatches":{}},"invasiveants:tid:1392":{"matches":{"hex10351300":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex patagonicus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1392"]}},"nonmatches":{}},"invasiveants:tid:1389":{"matches":{"hex10351289":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex brevicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1389"]}},"nonmatches":{}},"invasiveants:tid:1391":{"matches":{"hex10351309":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex obscurior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1391"]}},"nonmatches":{}},"invasiveants:tid:1390":{"matches":{"hex10351285":{"match_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex minutus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1390"]}},"nonmatches":{}},"invasiveants:tid:1475":{"matches":{"hex10357837":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica gundlachi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1475"]}},"nonmatches":{}},"invasiveants:tid:1478":{"matches":{"hex10357759":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica membranifera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1478"]}},"nonmatches":{}},"invasiveants:tid:1476":{"matches":{"hex10357766":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica hexamera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1476"]}},"nonmatches":{}},"invasiveants:tid:1477":{"matches":{"hex10357857":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica margaritae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1477"]}},"nonmatches":{}},"invasiveants:tid:1474":{"matches":{"hex10357716":{"match_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica eggersi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1474"]}},"nonmatches":{}},"invasiveants:tid:1436":{"matches":{"hex10358305":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica rubra"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1436"]}},"nonmatches":{}},"invasiveants:tid:1437":{"matches":{"hex10358173":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1437"]}},"nonmatches":{}},"invasiveants:tid:1430":{"matches":{"hex10352512":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium floricola"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1430"]}},"nonmatches":{}},"invasiveants:tid:1431":{"matches":{"hex10352415":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium pharaonis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1431"]}},"nonmatches":{}},"invasiveants:tid:1428":{"matches":{"hex10352498":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium destructor"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1428"]}},"nonmatches":{}},"invasiveants:tid:1429":{"matches":{"hex10352402":{"match_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium ebeninum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1429"]}},"nonmatches":{}},"invasiveants:tid:1434":{"matches":{"hex10351578":{"match_type":"exact_valid_to_valid","path":["Formicidae","Myrmelachista","Myrmelachista ramulorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1433","invasiveants:tid:1434"]}},"nonmatches":{}},"invasiveants:tid:1470":{"matches":{"hex10358678":{"match_type":"exact_valid_to_valid","path":["Formicidae","Prionopelta","Prionopelta antillana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1469","invasiveants:tid:1470"]}},"nonmatches":{}},"invasiveants:tid:1411":{"matches":{"hex10352902":{"match_type":"exact_valid_to_valid","path":["Formicidae","Eurhopalothrix","Eurhopalothrix floridana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1410","invasiveants:tid:1411"]}},"nonmatches":{}},"invasiveants:tid:1481":{"matches":{"hex10356720":{"match_type":"exact_valid_to_synonym","path":["Formicidae","Solenopsis","Solenopsis wagneri"],"path_ids":["hex100521","hex1022959","hex10356720"]}},"nonmatches":{}},"invasiveants:tid:1491":{"matches":{"hex10358019":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica nana"],"path_ids":["hex100521","hex1023020","hex10358019"]}},"nonmatches":{}},"invasiveants:tid:1492":{"matches":{"hex10358021":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica gracilis"],"path_ids":["hex100521","hex1023020","hex10358021"]}},"nonmatches":{}},"invasiveants:tid:1496":{"matches":{"hex10353188":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex foreli"],"path_ids":["hex100521","hex1022839","hex10353188"]},"hex10353182":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex primroseae"],"path_ids":["hex100521","hex1022839","hex10353182"]},"hex10353170":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex brevicornis"],"path_ids":["hex100521","hex1022839","hex10353170"]},"hex10353199":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex atrichosus"],"path_ids":["hex100521","hex1022839","hex10353199"]}},"nonmatches":{}},"invasiveants:tid:1407":{"matches":{"hex10349533":{"match_type":"exact_synonym_to_valid","path":["Formicidae","Crematogaster","Crematogaster agnita"],"path_ids":["hex100521","hex1022726","hex10349533"]},"hex10758181":{"match_type":"fuzzy_valid_to_synonym","path":["Formicidae","Trapeziopelta","Trapeziopelta diadela"],"path_ids":["hex100521","hex1057748","hex10758181"]},"hex10758108":{"match_type":"fuzzy_synonym_to_valid","path":["Formicidae","Nothosphinctus","Nothosphinctus silaceus"],"path_ids":["hex100521","hex1057733","hex10758108"]}},"nonmatches":{}},"invasiveants:tid:1453":{"matches":{"hex10354887":{"match_type":"fuzzy_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla solitaria"],"path_ids":["hex100521","hex1022882","hex10354887"]}},"nonmatches":{}}}
|
1
|
+
{"invasiveants:tid:1394":{"matches":{"hex10349843":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus floridanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1394"]}},"nonmatches":{}},"invasiveants:tid:1395":{"matches":{"hex10349884":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus herculeanus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1395"]},"hex10357986":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica atra"],"path_ids":["hex100521","hex1023020","hex10357986"]}},"nonmatches":{}},"invasiveants:tid:1397":{"matches":{"hex10349957":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus sexguttatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1397"]},"hex10357927":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficeps"],"path_ids":["hex100521","hex1023020","hex10357927"]},"hex10357934":{"merge_type":"fuzzy_synonym_to_synonym","path":["Formicidae","Formica","Formica lavateri"],"path_ids":["hex100521","hex1023020","hex10357934"]}},"nonmatches":{}},"invasiveants:tid:1396":{"matches":{"hex10349938":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Camponotus","Camponotus planatus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1393","invasiveants:tid:1396"]}},"nonmatches":{}},"invasiveants:tid:1401":{"matches":{"hex10806368":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla minutior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1401"]}},"nonmatches":{}},"invasiveants:tid:1402":{"matches":{"hex10355636":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla nuda"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1402"]}},"nonmatches":{}},"invasiveants:tid:1404":{"matches":{"hex10355627":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla venustula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1404"]}},"nonmatches":{}},"invasiveants:tid:1405":{"matches":{"hex10355629":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla wroughtonii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1405"]},"hex10355612":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla longispina"],"path_ids":["hex100521","hex1022909","hex10355612"]}},"nonmatches":{}},"invasiveants:tid:1400":{"matches":{"hex10355607":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla mauritanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1400"]},"hex10355632":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla ectopia"],"path_ids":["hex100521","hex1022909","hex10355632"]}},"nonmatches":{}},"invasiveants:tid:1399":{"matches":{"hex10355641":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cardiocondyla","Cardiocondyla emeryi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1398","invasiveants:tid:1399"]}},"nonmatches":{}},"invasiveants:tid:1482":{"matches":{"hex10356583":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis richteri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1482"]}},"nonmatches":{}},"invasiveants:tid:1480":{"matches":{"hex10356717":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis geminata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1480"]}},"nonmatches":{}},"invasiveants:tid:1484":{"matches":{"hex10356627":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis xyloni"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1484"]}},"nonmatches":{}},"invasiveants:tid:1483":{"matches":{"hex10356575":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Solenopsis","Solenopsis texana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1479","invasiveants:tid:1483"]}},"nonmatches":{}},"invasiveants:tid:1499":{"matches":{"hex10355947":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caespitum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1499"]},"hex10356042":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Tetramorium","Tetramorium jiangxiense"],"path_ids":["hex100521","hex1022945","hex10356042"]},"hex10357973":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica fusca"],"path_ids":["hex100521","hex1023020","hex10357973"]}},"nonmatches":{}},"invasiveants:tid:1501":{"matches":{"hex10356046":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium insolens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1501"]}},"nonmatches":{}},"invasiveants:tid:1502":{"matches":{"hex10355966":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium lanuginosum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1502"]}},"nonmatches":{}},"invasiveants:tid:1503":{"matches":{"hex10356075":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium pacificum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1503"]}},"nonmatches":{}},"invasiveants:tid:1504":{"matches":{"hex10356159":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium simillimum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1504"]}},"nonmatches":{}},"invasiveants:tid:1498":{"matches":{"hex10356327":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium bicarinatum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1498"]}},"nonmatches":{}},"invasiveants:tid:1505":{"matches":{"hex10356104":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium tsushimae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1505"]}},"nonmatches":{}},"invasiveants:tid:1500":{"matches":{"hex10356252":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Tetramorium","Tetramorium caldarium"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1497","invasiveants:tid:1500"]}},"nonmatches":{}},"invasiveants:tid:1508":{"matches":{"hex10349086":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis gracilipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1508"]}},"nonmatches":{}},"invasiveants:tid:1387":{"matches":{"hex10349098":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Anoplolepis","Anoplolepis custodiens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1386","invasiveants:tid:1387"]}},"nonmatches":{}},"invasiveants:tid:1413":{"matches":{"hex10358078":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Formica","Formica truncorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1412","invasiveants:tid:1413"]}},"nonmatches":{}},"invasiveants:tid:1421":{"matches":{"hex10352185":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius alienus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1421"]}},"nonmatches":{}},"invasiveants:tid:1423":{"matches":{"hex10352110":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius niger"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1423"]}},"nonmatches":{}},"invasiveants:tid:1422":{"matches":{"hex10352102":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Lasius","Lasius flavus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1420","invasiveants:tid:1422"]},"hex10357976":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica ruficornis"],"path_ids":["hex100521","hex1023020","hex10357976"]}},"nonmatches":{}},"invasiveants:tid:1507":{"matches":{"hex10355716":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Wasmannia","Wasmannia auropunctata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1506","invasiveants:tid:1507"]}},"nonmatches":{}},"invasiveants:tid:1456":{"matches":{"hex10353897":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Paratrechina","Paratrechina longicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1455","invasiveants:tid:1456"]},"hex10357874":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica vagans"],"path_ids":["hex100521","hex1023020","hex10357874"]}},"nonmatches":{}},"invasiveants:tid:1494":{"matches":{"hex10353166":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex albipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1493","invasiveants:tid:1494"]}},"nonmatches":{}},"invasiveants:tid:1426":{"matches":{"hex10357236":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Linepithema","Linepithema humile"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1425","invasiveants:tid:1426"]}},"nonmatches":{}},"invasiveants:tid:1445":{"matches":{"hex10355173":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Ochetellus","Ochetellus glaber"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1444","invasiveants:tid:1445"]}},"nonmatches":{}},"invasiveants:tid:1409":{"matches":{"hex10351128":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Cyphomyrmex","Cyphomyrmex rimosus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1408","invasiveants:tid:1409"]}},"nonmatches":{}},"invasiveants:tid:1486":{"matches":{"hex10770947":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys emmae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1486"]}},"nonmatches":{}},"invasiveants:tid:1489":{"matches":{"hex10353034":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys silvestrii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1489"]}},"nonmatches":{}},"invasiveants:tid:1487":{"matches":{"hex10353124":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys lanuginosa"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1487"]}},"nonmatches":{}},"invasiveants:tid:1488":{"matches":{"hex10353022":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Strumigenys","Strumigenys rogeri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1485","invasiveants:tid:1488"]}},"nonmatches":{}},"invasiveants:tid:1450":{"matches":{"hex10354823":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla luteipes"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1450"]}},"nonmatches":{}},"invasiveants:tid:1454":{"matches":{"hex10354888":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla stigma"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1454"]}},"nonmatches":{}},"invasiveants:tid:1451":{"matches":{"hex10354795":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla obscurans"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1451"]}},"nonmatches":{}},"invasiveants:tid:1449":{"matches":{"hex10354968":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla chinensis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1448","invasiveants:tid:1449"]}},"nonmatches":{}},"invasiveants:tid:1385":{"matches":{"hex10348989":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Anochetus","Anochetus mayri"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1384","invasiveants:tid:1385"]}},"nonmatches":{}},"invasiveants:tid:1463":{"matches":{"hex10354276":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole moerens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1463"]}},"nonmatches":{}},"invasiveants:tid:1462":{"matches":{"hex10354255":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole micula"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1462"]}},"nonmatches":{}},"invasiveants:tid:1465":{"matches":{"hex10354524":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole oceanica"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1465"]}},"nonmatches":{}},"invasiveants:tid:1460":{"matches":{"hex10354508":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole flavens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1460"]},"hex10354647":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole greggi"],"path_ids":["hex100521","hex1022881","hex10354647"]}},"nonmatches":{}},"invasiveants:tid:1466":{"matches":{"hex10354676":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole teneriffana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1466"]}},"nonmatches":{}},"invasiveants:tid:1458":{"matches":{"hex10354638":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole anastasii"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1458"]}},"nonmatches":{}},"invasiveants:tid:1461":{"matches":{"hex10354215":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole megacephala"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1461"]},"hex10354233":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole perpusilla"],"path_ids":["hex100521","hex1022881","hex10354233"]}},"nonmatches":{}},"invasiveants:tid:1459":{"matches":{"hex10354345":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pheidole","Pheidole fervens"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1457","invasiveants:tid:1459"]},"hex10354584":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Pheidole","Pheidole amia"],"path_ids":["hex100521","hex1022881","hex10354584"]}},"nonmatches":{}},"invasiveants:tid:1472":{"matches":{"hex10358401":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pseudomyrmex","Pseudomyrmex gracilis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1471","invasiveants:tid:1472"]}},"nonmatches":{}},"invasiveants:tid:1447":{"matches":{"hex10355198":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Odontomachus","Odontomachus ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1446","invasiveants:tid:1447"]}},"nonmatches":{}},"invasiveants:tid:1468":{"matches":{"hex10354059":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Plagiolepis","Plagiolepis alluaudi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1467","invasiveants:tid:1468"]}},"nonmatches":{}},"invasiveants:tid:1419":{"matches":{"hex10357434":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera punctatissima"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1419"]}},"nonmatches":{}},"invasiveants:tid:1418":{"matches":{"hex10357430":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Hypoponera","Hypoponera opaciceps"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1417","invasiveants:tid:1418"]}},"nonmatches":{}},"invasiveants:tid:1415":{"matches":{"hex10358491":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys porcata"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1415"]}},"nonmatches":{}},"invasiveants:tid:1416":{"matches":{"hex10358551":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Gnamptogenys","Gnamptogenys triangularis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1414","invasiveants:tid:1416"]}},"nonmatches":{}},"invasiveants:tid:1392":{"matches":{"hex10351300":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex patagonicus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1392"]}},"nonmatches":{}},"invasiveants:tid:1389":{"matches":{"hex10351289":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex brevicornis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1389"]}},"nonmatches":{}},"invasiveants:tid:1391":{"matches":{"hex10351309":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex obscurior"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1391"]}},"nonmatches":{}},"invasiveants:tid:1390":{"matches":{"hex10351285":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Brachymyrmex","Brachymyrmex minutus"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1388","invasiveants:tid:1390"]}},"nonmatches":{}},"invasiveants:tid:1475":{"matches":{"hex10357837":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica gundlachi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1475"]}},"nonmatches":{}},"invasiveants:tid:1478":{"matches":{"hex10357759":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica membranifera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1478"]}},"nonmatches":{}},"invasiveants:tid:1476":{"matches":{"hex10357766":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica hexamera"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1476"]}},"nonmatches":{}},"invasiveants:tid:1477":{"matches":{"hex10357857":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica margaritae"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1477"]}},"nonmatches":{}},"invasiveants:tid:1474":{"matches":{"hex10357716":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Pyramica","Pyramica eggersi"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1473","invasiveants:tid:1474"]}},"nonmatches":{}},"invasiveants:tid:1436":{"matches":{"hex10358305":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica rubra"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1436"]}},"nonmatches":{}},"invasiveants:tid:1437":{"matches":{"hex10358173":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Myrmica","Myrmica ruginodis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1435","invasiveants:tid:1437"]}},"nonmatches":{}},"invasiveants:tid:1430":{"matches":{"hex10352512":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium floricola"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1430"]}},"nonmatches":{}},"invasiveants:tid:1431":{"matches":{"hex10352415":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium pharaonis"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1431"]}},"nonmatches":{}},"invasiveants:tid:1428":{"matches":{"hex10352498":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium destructor"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1428"]}},"nonmatches":{}},"invasiveants:tid:1429":{"matches":{"hex10352402":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Monomorium","Monomorium ebeninum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1427","invasiveants:tid:1429"]}},"nonmatches":{}},"invasiveants:tid:1434":{"matches":{"hex10351578":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Myrmelachista","Myrmelachista ramulorum"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1433","invasiveants:tid:1434"]}},"nonmatches":{}},"invasiveants:tid:1470":{"matches":{"hex10358678":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Prionopelta","Prionopelta antillana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1469","invasiveants:tid:1470"]}},"nonmatches":{}},"invasiveants:tid:1411":{"matches":{"hex10352902":{"merge_type":"exact_valid_to_valid","path":["Formicidae","Eurhopalothrix","Eurhopalothrix floridana"],"path_ids":["invasiveants:tid:1381","invasiveants:tid:1410","invasiveants:tid:1411"]}},"nonmatches":{}},"invasiveants:tid:1481":{"matches":{"hex10356720":{"merge_type":"exact_valid_to_synonym","path":["Formicidae","Solenopsis","Solenopsis wagneri"],"path_ids":["hex100521","hex1022959","hex10356720"]}},"nonmatches":{}},"invasiveants:tid:1491":{"matches":{"hex10358019":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica nana"],"path_ids":["hex100521","hex1023020","hex10358019"]}},"nonmatches":{}},"invasiveants:tid:1492":{"matches":{"hex10358021":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Formica","Formica gracilis"],"path_ids":["hex100521","hex1023020","hex10358021"]}},"nonmatches":{}},"invasiveants:tid:1496":{"matches":{"hex10353188":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex foreli"],"path_ids":["hex100521","hex1022839","hex10353188"]},"hex10353182":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex primroseae"],"path_ids":["hex100521","hex1022839","hex10353182"]},"hex10353170":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex brevicornis"],"path_ids":["hex100521","hex1022839","hex10353170"]},"hex10353199":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Technomyrmex","Technomyrmex atrichosus"],"path_ids":["hex100521","hex1022839","hex10353199"]}},"nonmatches":{}},"invasiveants:tid:1407":{"matches":{"hex10349533":{"merge_type":"exact_synonym_to_valid","path":["Formicidae","Crematogaster","Crematogaster agnita"],"path_ids":["hex100521","hex1022726","hex10349533"]},"hex10758181":{"merge_type":"fuzzy_valid_to_synonym","path":["Formicidae","Trapeziopelta","Trapeziopelta diadela"],"path_ids":["hex100521","hex1057748","hex10758181"]},"hex10758108":{"merge_type":"fuzzy_synonym_to_valid","path":["Formicidae","Nothosphinctus","Nothosphinctus silaceus"],"path_ids":["hex100521","hex1057733","hex10758108"]}},"nonmatches":{}},"invasiveants:tid:1453":{"matches":{"hex10354887":{"merge_type":"fuzzy_valid_to_valid","path":["Formicidae","Pachycondyla","Pachycondyla solitaria"],"path_ids":["hex100521","hex1022882","hex10354887"]}},"nonmatches":{}}}
|
data/spec/fuzzy_matcher_spec.rb
CHANGED
@@ -26,7 +26,7 @@ describe FamilyReunion::FuzzyMatcher do
|
|
26
26
|
it "should be able to add matches to merges object" do
|
27
27
|
@fr.stubs(:merges => {})
|
28
28
|
@fm.merge
|
29
|
-
@fr.merges.should == {:"invasiveants:tid:1453"=>{:matches=>{:hex10354887=>{:
|
29
|
+
@fr.merges.should == {:"invasiveants:tid:1453"=>{:matches=>{:hex10354887=>{:merge_type=>:fuzzy_valid_to_valid, :path=>["Formicidae", "Pachycondyla", "Pachycondyla solitaria"], :path_ids=>["hex100521", "hex1022882", "hex10354887"]}}, :nonmatches=>{}}, :"invasiveants:tid:1407"=>{:matches=>{:hex10758181=>{:merge_type=>:fuzzy_valid_to_synonym, :path=>["Formicidae", "Trapeziopelta", "Trapeziopelta diadela"], :path_ids=>["hex100521", "hex1057748", "hex10758181"]}, :hex10758108=>{:merge_type=>:fuzzy_synonym_to_valid, :path=>["Formicidae", "Nothosphinctus", "Nothosphinctus silaceus"], :path_ids=>["hex100521", "hex1057733", "hex10758108"]}}, :nonmatches=>{}}, :"invasiveants:tid:1397"=>{:matches=>{:hex10357934=>{:merge_type=>:fuzzy_synonym_to_synonym, :path=>["Formicidae", "Formica", "Formica lavateri"], :path_ids=>["hex100521", "hex1023020", "hex10357934"]}}, :nonmatches=>{}}}
|
30
30
|
end
|
31
31
|
|
32
32
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 7
|
9
|
+
version: 0.1.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Dmitry Mozzherin
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-16 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -233,7 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
234
234
|
- - ">="
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
hash:
|
236
|
+
hash: -1909949291295368264
|
237
237
|
segments:
|
238
238
|
- 0
|
239
239
|
version: "0"
|