Difference between revisions of "Similarity search mod"

From TNG_Wiki
Jump to navigation Jump to search
 
(31 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Languages}}
 
 
{{TNGmod
 
{{TNGmod
 
| mod_name        = Similarity search Mod
 
| mod_name        = Similarity search Mod
 
| mod_summary    = Adds similarity search on person/place names
 
| mod_summary    = Adds similarity search on person/place names
 +
| mod_validation  =
 +
| mod_last_update = 01 Jan 2023
 
| download_link  =
 
| download_link  =
[[Media:similarity-search-v11.0.2.0.zip|similarity-search-v11.0.2.0.zip]] for {{Tv1102}}<br />
+
[[Media:similarity-search-v14.0.0.0.zip|similarity-search-v14.0.0.0.zip]] for {{Tv140}}{{Tv1401}}<hr style="clear: both;"/>
[[Media:similarity_search_mod_v11.0.0.0.zip|similarity_search_mod_v11.0.0.0.zip]] for {{Tv110}}<br />
+
[[Media:similarity-search-v13.0.4.0.zip|similarity-search-v13.0.4.0.zip]] for {{Tv1304}}<hr style="clear: both;"/>
[[Media:similarity_search_mod_v10.1.2.1.zip|similarity_search_mod_v10.1.2.1.zip]] for {{Tv1012}}<br />  [[Media:similarity_search_mod_v10.1.2.0.zip|similarity_search_mod_v10.1.2.0.zip]] for {{Tv1012}}<br /> [[Media:similarity_search_mod_v10.1.0.0.zip|similarity_search_mod_v10.1.0.0.zip]] for {{Tv1010}}<br /> [[Media:similarity_search_mod_v10.0.0.2.zip|similarity_search_mod_v10.0.0.2.zip]] for {{Tv100}}<br />  [[Media:similarity_search_mod_v9.2.2.2.zip|similarity_search_mod_v9.2.2.2.zip]] for {{Tv92}}<br />
+
[[Media:similarity-search-v13.0.0.0.zip|similarity-search-v13.0.0.0.zip]] for {{Tv130}}<hr style="clear: both;"/>
 +
[[Media:similarity-search-v12.2.0.2.zip|similarity-search-v12.2.0.2.zip]] for {{Tv120}}<hr style="clear: both;"/>
 +
[[Media:similarity-search-v12.2.0.1.zip|similarity-search-v12.2.0.1.zip]] for {{Tv120}}<hr style="clear: both;"/>
 +
[[Media:similarity-search-v12.2.0.0.zip|similarity-search-v12.2.0.0.zip]] for {{Tv120}}<hr style="clear: both;"/>
 +
[[Media:similarity-search-v11.0.2.0.zip|similarity-search-v11.0.2.0.zip]] for {{Tv120}}<hr style="clear: both;"/>
 +
[[Media:similarity-search-v11.0.2.0.zip|similarity-search-v11.0.2.0.zip]] for {{Tv1102}}<hr style="clear: both;"/>
 +
[[Media:similarity_search_mod_v11.0.0.0.zip|similarity_search_mod_v11.0.0.0.zip]] for {{Tv110}}<hr style="clear: both;"/>
 +
[[Media:similarity_search_mod_v10.1.2.1.zip|similarity_search_mod_v10.1.2.1.zip]] for {{Tv1012}}<hr style="clear: both;"/>  [[Media:similarity_search_mod_v10.1.2.0.zip|similarity_search_mod_v10.1.2.0.zip]] for {{Tv1012}}<hr style="clear: both;"/> [[Media:similarity_search_mod_v10.1.0.0.zip|similarity_search_mod_v10.1.0.0.zip]] for {{Tv1010}}<hr style="clear: both;"/> [[Media:similarity_search_mod_v10.0.0.2.zip|similarity_search_mod_v10.0.0.2.zip]] for {{Tv100}}<hr style="clear: both;"/>  [[Media:similarity_search_mod_v9.2.2.2.zip|similarity_search_mod_v9.2.2.2.zip]] for {{Tv92}}  
 +
| download_stats =
 
| mod_author      = Rovian Veronez and Carlos A Heuser  
 
| mod_author      = Rovian Veronez and Carlos A Heuser  
 
| mod_url        = [[Similarity_search_mod|Similarity_search_Mod]] (This page)
 
| mod_url        = [[Similarity_search_mod|Similarity_search_Mod]] (This page)
 
| mod_support    = [[User:carheu|Carlos Heuser]]
 
| mod_support    = [[User:carheu|Carlos Heuser]]
 
| mod_contact    = [[User:carheu|Carlos Heuser]]
 
| mod_contact    = [[User:carheu|Carlos Heuser]]
| mod_version    = 9.2.2.2 for TNG V9.2.2<br />10.0.0.2 for TNG v10.0.0<br />10.1.2.1 for TNG v10.1.2<br />11.0.0.0 for TNG v11.0.0<br />11.0.2.0 for TNG v11.0.2<br />11.0.2.0 for TNG v12.0
+
| mod_version    = 9.2.2.2 for TNG V9.2.2<br />10.0.0.2 for TNG v10.0.0<br />10.1.2.1 for TNG v10.1.2<br />11.0.0.0 for TNG v11.0.0<br />11.0.2.0 for TNG v11.0.2<br />11.0.2.0 for TNG v12.0<br />12.2.0.2 for TNG v12.2<br />13.0.0.0 for TNG v13.0<br />13.0.4.0 for TNG v13.0.4
 +
<br />14.0.0.0 for TNG v14.0.1
 
| min_TNG_ver    = 9.2.2
 
| min_TNG_ver    = 9.2.2
| max_TNG_ver    = 12.0
+
| max_TNG_ver    = 14.0.1
| TNG_file_list  = genlib.php<br />js/selectutils.js<br />finditems.php<br />admin_setup.php<br />
+
| related_mods    =  
languages/English/cust_text.php<br />languages/English-UTF8/cust_text.php<br />languages/PortugueseBR/cust_text.php<br />languages/PortugueseBR_UTF8/cust_text.php<br />languages/German/cust_text.php<br />languages/German_UTF8/cust_text.php<br />
+
| notes          =  
languages/English/admintext.php<br />languages/English-UTF8/admintext.php<br />languages/PortugueseBR/admintext.php<br />languages/PortugueseBR_UTF8/admintext.php<br />languages/German/admintext.php<br />languages/German_UTF8/admintext.php<br />
+
}}{| style="margin-right:0.5 em;" align="right"  
| related_mods    = ...
 
| notes          = ...
 
}}
 
{| style="margin-right:0.5 em;" align="right"  
 
 
| __TOC__
 
| __TOC__
 
|}
 
|}
Line 26: Line 32:
 
== Warning - TNG database is modified ==
 
== Warning - TNG database is modified ==
  
<span style="color: red">This Mod changes the TNG database</span>. Triggers are added to existing tables and new tables are created. Read the installation and removal instructions carefully before installing the Mod.
+
<span style="color: red">This mod changes the TNG database</span>.  
As usual in cases like this, making a backup copy of your database previously to the Mod installation is highly recommended.
+
Triggers are added to existing tables and new tables are created.  
If you don't feel  comfortable with this, please don't use this Mod.
 
  
 +
The installation/removal of this Mod is done as usual by using the
 +
Mod Manager but requires some additional steps:
  
 +
* <span style="color: blue">Read the [[#Mod installation and database setup|Mod installation and database setup]] section carefully before installing the Mod</span>.
 +
* <span style="color: blue">Read the [[#Mod removal|Mod removal section]] carefully before removing the Mod</span>.
  
== Purpose of this Mod ==
+
If you don't feel  comfortable with these instructions, please don't use this Mod.
  
 +
Read the [[#Upgrade from previous versions]] section if you already use a previous version of the mod and are just upgrading.
  
 +
== Purpose of this mod ==
  
Names may change spelling over time. In my tree you will find
+
Names may change spelling over time. In my tree  
the same name spelled as Heuser, Heiser, Heusser and Heusers. The same may happen to place names. For example, a place that was  spelled Villa Izabella in the past, may be spelled Vila Isabela today.
+
the same name (Heuser) is spelled as Heuser, Heiser, Heusser and Heusers.  
  
Additionally, one can not expect that each TNG user searching for somebody in a tree
+
The same may happen to place names. For example, a place that was spelled Villa Izabella in the past may be spelled Vila Isabela today.
knows the exact name spelling that was used by the author of that tree.
 
  
 +
Additionally, one cannot expect that each TNG user searching for somebody in a tree
 +
knows the exact name spelling that is stored in the database.
 
When the exact spelling of a name is unknown, '''similarity search''' may help.
 
When the exact spelling of a name is unknown, '''similarity search''' may help.
  
TNG offers two alternatives of similarity search: Soundex and Metaphone.
+
TNG offers two alternatives of similarity search: Soundex and Metaphone,
However, they are not always useful.  
+
but they are not useful in some situations.  
 
Both are language dependent.
 
Both are language dependent.
 
Soundex reduces a word to just four characters and tends to output a large number of results. Metaphone tends to be very restrictive.
 
Soundex reduces a word to just four characters and tends to output a large number of results. Metaphone tends to be very restrictive.
  
This Mod introduces a novel way of searching for persons or places. The user simply provides one or two words of the name of the
+
The Similarity Search Mod offers an additional way of searching for persons or places. The user simply provides one or two words of the name of the
person/place being searched and TNG will display a list of names that contain words similar to the query.  
+
person/place being searched and TNG will display a list of names that contain words that are similar to the query.
 +
 
 +
== Using the Mod ==
  
 +
The Mod creates a new menu entry at Find >> Names (was Find >> Word Search in older versions of the Mod). By selecting this entry the user is taken to
 +
the query dialog that is depicted below.
  
== Using the Mod ==
+
Since v14 there is an additional way of opening the query dialog. This alternative is enabled by choosing the following options in General Setup >> Site Design and Definition:
 +
* Show Search Link: Yes
 +
* Show Link Destination: Quick Search
  
The Mod creates a new menu entry at Find >> Word Search. By selecting this entry the user is taken to
+
With these options, clicking the Search button in the TNG menu will also open the query dialog described below.
the search form that is depicted below.
 
  
 
[[File:Sim-search-screen.jpg]]
 
[[File:Sim-search-screen.jpg]]
  
To perform a search enter one or two words of the name you are searching for in the field. Results are displayed on-the-fly as the user enters some letters.
+
To search for a name enter one or two words in the query field. Results will be displayed on-the-fly as you enter some letters.
The result is presented in
+
The results are presented in
 
decreasing order of similarity.
 
decreasing order of similarity.
  
 
There are several options to control the search:
 
There are several options to control the search:
  
* There is a radio button to select between a person search and a place search.
+
* There is a radio button to select the type of search: person or place search.
* The Gedcom to be searched may be selected.
+
* A specific tree to be searched may be selected.
 
* There is a radio button that allows to specify the similarity precision (Exact, Very precise, Precise or Inaccurate).
 
* There is a radio button that allows to specify the similarity precision (Exact, Very precise, Precise or Inaccurate).
 
By clicking on a person/place name the user is taken to the corresponding page.
 
  
 
== How it works ==
 
== How it works ==
 
  
 
Each word in a person/place name is divided in a set of "grams" of size three. For example, "Smith" results in "Smi", "mit", "ith".  
 
Each word in a person/place name is divided in a set of "grams" of size three. For example, "Smith" results in "Smi", "mit", "ith".  
Line 88: Line 102:
 
== Mod installation and database setup ==
 
== Mod installation and database setup ==
  
The Mod is installed as usual with the Mod Manager:
+
As usual in cases like this, making a backup copy of your database previously to the Mod installation is highly recommended.
 +
 
 +
This section describes a fresh installation. If you are upgrading, please follow the instructions in the
 +
[[#Upgrade from previous versions]] section.
  
* If you are using an older version of the Mod, uninstall it first.
+
=== Installation ===
* Remove the Mod files from the TNG mods folder.
+
 
* Download the zip file containing the Mod files and unzip it in the TNG mods folder.
+
The mod is installed as usual with the Mod Manager:
* Install the Mod with the Manager.
+
 
 +
* Download the zip file containing the mod files and unzip it in the TNG mods folder.
 +
* Install the mod with the Manager.
 
* Clear the browser cache (required, <span style="color: red">do not forget!</span>)
 
* Clear the browser cache (required, <span style="color: red">do not forget!</span>)
  
<span style="color: red">Note:</span> After the Mod is installed the database must be prepared for use with the Mod. If you are reinstalling the Mod, you do not need to prepare the database again.
+
<span style="color: red">Note:</span> After the mod is installed the database must be prepared for use with the mod.
 +
 
 +
=== Database preparation ===
  
 
Go to Setup in the TNG Administration page (Info >> Administration >> Setup).
 
Go to Setup in the TNG Administration page (Info >> Administration >> Setup).
Line 109: Line 130:
 
This means that the database has not been prepared for the Mod.  
 
This means that the database has not been prepared for the Mod.  
  
In this page you may select up to three events that will be handled by the Mod. These should be events that contain
+
In this page you may select up to three events that will be handled by the mod. These should be events that contain
 
person names in the Detail field of the event. For example, I use the Alias event to store alternative names  
 
person names in the Detail field of the event. For example, I use the Alias event to store alternative names  
for a person and the Married name custom event to store a woman's married names.
+
for a person and the Married name custom event to store a woman's married name.
  
Hit the Prepare button and the database will be modified for use by the Mod.
+
Hit the Prepare button and the database will be modified for use by the mod.
  
 
After some time  the page below will be displayed.  Notice that if the database is large this process make take several minutes.
 
After some time  the page below will be displayed.  Notice that if the database is large this process make take several minutes.
I have a database with about 12,000 individuals and 1,500 places. For this database the process takes between one and five minutes
+
I have a database with about 12,000 individuals and 1,500 places. For this database the current version of the mod takes about 30 seconds to prepare the database.
depending on the server being used.
+
(previous versions required between one and five minutes for the preparation
 
+
depending on the server being used).
  
 
[[File:sim-search-prepare-finish.jpg]]
 
[[File:sim-search-prepare-finish.jpg]]
Line 124: Line 145:
 
If you go back to the setup, the page below will be displayed.
 
If you go back to the setup, the page below will be displayed.
 
Sentences like "Table prepared for people: tng_people" will be displayed, informing the the database is prepared for
 
Sentences like "Table prepared for people: tng_people" will be displayed, informing the the database is prepared for
use by the Mod.
+
use by the mod.
 
 
  
 
[[File:sim-search-after-prepare.jpg]]
 
[[File:sim-search-after-prepare.jpg]]
Line 131: Line 151:
 
== Upgrade from previous versions ==
 
== Upgrade from previous versions ==
  
If you are upgrading from version 10.0.0.2 to a more current version, the database remains the same.
+
=== From v12.2.0.0 or later ===
  
However, if you are upgrading from a version previous to 10.0.0.2 <span style="color: red">you will have to prepare your database again</span>. Follow this procedure:
+
If you are upgrading from the Mod version v12.2.0.0 or some later version of the Mod, you don't need to prepare the database again. Just follow the
* Go to Setup in the TNG Administration page (Info >> Administration >> Setup).
+
usual Mod Manager procedure: uninstall the old version, delete it from the mods folder and install the new version.
 +
 
 +
=== From v11.0.2.0 or older ===
 +
 
 +
However, if you are upgrading from version v11.0.2.0 or some previous version <span style="color: red">you must prepare your database again</span>,
 +
as the database structure in these older versions
 +
was different. If you are unsure of what version you were using just prepare the database again.
 +
 
 +
Follow this procedure:
 +
* Using the mod version you have installed, go to Setup in the TNG Administration page (Info >> Administration >> Setup).
 
* At the Setup page, you will find the tab called Similarity Mod.
 
* At the Setup page, you will find the tab called Similarity Mod.
* Click on this Tab. Click on the "Delete" button and confirm that you want to delete all tables.
+
* Click on this tab. Click on the "Delete" button and confirm that you want to delete all tables.
 
* After some time, a page will be displayed confirming that the tables have been deleted.
 
* After some time, a page will be displayed confirming that the tables have been deleted.
 
+
* Uninstall the old version of the mod and remove it from the mods folder.
You may perform this steps either by using an old Mod version or using the more recent (10.0.0.2 or higher) version.
+
* Install the new version as described in the installation instructions, including the database preparation described in the previous section.
 
 
After deleting the tables, prepare the database again as described in the previous section.
 
  
 
== Mod removal ==
 
== Mod removal ==
  
In order to remove the Mod, you must first delete the information stored by the mod in the database.
+
In order to remove the mod, you must first delete the information stored by the mod in the database.
  
Go to the Septup page of the Mod in the TNG Administration page (Info >> Administration >> Setup).
+
* Go to the Setup page of the mod in the TNG Administration page (Info >> Administration >> Setup). A page like the one above will be displayed. Hit the "Delete" button.
A page like the one above will be displayed. Hit the "Delete" button.
+
* Only after the Mod tables are deleted form the database, you may uninstall the mod as usual by using the Mod Manager.
  
After that you may uninstall the Mod as usual by using the Mod Manager.
+
<span style="color: red">'Be aware that if you don't follow the above steps</span>, triggers will be left in your database.
 
+
Should you subsequently delete the tables by other means,
<span style="color: red">'Be aware that if you don't follow the above steps</span>, triggers will be left in your database which will cause errors such as "Table 'tng.qgrams_grams' doesn't exist" should you subsequently delete the tables by other means. These can be hard to track down.
+
errors such as "Table 'tng.qgrams_grams' doesn't exist" will be displayed.
  
 
== Translations ==
 
== Translations ==
  
The Mod already contains translations to French, German and Brazilian Portuguese.
+
The mod already contains translations to Dutch, French, German and Brazilian Portuguese.
  
 
== Developer ==
 
== Developer ==
  
Mod developer is Rovian Veronez with changes by [[User:carheu|Carlos Heuser]].  French translation provided by André Morel
+
Mod developer is Rovian Veronez with changes by [[User:carheu|Carlos Heuser]].  French translation provided by André Morel. Dutch translation by Roel Jongman.
  
== Files changed ==
+
==Revision History==
 +
{| border="0" cellspacing="1" cellpadding="2" class="wikitable"
 +
|-
 +
! Mod Version
 +
! Date
 +
! Contents
  
* genlib.php
+
|- style="vertical-align:top;"
* js/selectutils.js
+
| 14.0.0.0
* finditems.php
+
| style="white-space: nowrap;"|01 Jan 2023
* admin_setup.php
+
|
* languages/English/cust_text.php
+
* Updated for TNGv14.0.0
* languages/English-UTF8/cust_text.php
+
* Query dialog may be opened by hitting the Search menu option (see Mod description)
* languages/PortugueseBR/cust_text.php
 
* languages/PortugueseBR_UTF8/cust_text.php
 
* languages/German/cust_text.php
 
* languages/German_UTF8/cust_text.php
 
* languages/English/admintext.php
 
* languages/English-UTF8/admintext.php
 
* languages/PortugueseBR/admintext.php
 
* languages/PortugueseBR_UTF8/admintext.php
 
* languages/German/admintext.php
 
* languages/German_UTF8/admintext.php
 
  
== Files added ==
+
|- style="vertical-align:top;"
 +
| 13.0.4.0
 +
| style="white-space: nowrap;"|10 Jun 2021
 +
|
 +
* Updated to TNGv13.0.4
  
* qgrams_admin_delete_database.php
+
|- style="vertical-align:top;"
* qgrams_admin_prepare_database.php
+
| style="white-space: nowrap;"|13.0.0.0
* qgrams_delete_tabledefs.php
+
| 21 Sep 2020
* qgrams_findplaces.php
+
|
* qgrams_findssform.php
+
* Updated to TNGv13.0
* qgrams_tabledefs.php
 
  
 +
|- style="vertical-align:top;"
 +
| 12.2.0.2
 +
| style="white-space: nowrap;"|04 Mar 2020
 +
|
 +
* Was not working with TNG installed in a subfolder (fixed)
  
 +
|- style="vertical-align:top;"
 +
| 12.2.0.1
 +
| style="white-space: nowrap;"|24 Feb 2020
 +
|
 +
* French translation included (thanks to Roel Jongman)
  
== Revision History ==
+
|- style="vertical-align:top;"
 +
| 12.2.0.0
 +
| style="white-space: nowrap;"|14 Jan 2020
 +
|
 +
* Names in events were being incorrectly updated(fixed)
 +
* Database preparation is much faster
 +
* People table updates are faster
  
{| border="1" cellspacing="5" cellpadding="2" width="100%" class="wikitable"
+
|- style="vertical-align:top;"
|-
+
| 11.0.2.0
! Version
+
| style="white-space: nowrap;"|28 Sep 2016
! Date
 
! Contents
 
|-
 
| v11.0.2.0
 
| 28 Sep 2016
 
 
|  
 
|  
 
* Updated for TNG v11.0.2
 
* Updated for TNG v11.0.2
|-
+
 
| v11.0.0.0
+
|- style="vertical-align:top;"
| 17 Mar 2016
+
| 11.0.0.0
 +
| style="white-space: nowrap;"|17 Mar 2016
 
|  
 
|  
 
* Updated for TNG v11.0
 
* Updated for TNG v11.0
|-
+
 
| v10.1.2.1
+
|- style="vertical-align:top;"
| 13 Mar 2016
+
| 10.1.2.1
 +
| style="white-space: nowrap;"|13 Mar 2016
 
|  
 
|  
 
* French translation included (thanks to André Morel)
 
* French translation included (thanks to André Morel)
|-
+
 
| v10.1.2.0
+
|- style="vertical-align:top;"
| 22 Jul 2015
+
| 10.1.2.0
 +
| style="white-space: nowrap;"|22 Jul 2015
 
|  
 
|  
 
* Tested for TNG v10.1.2
 
* Tested for TNG v10.1.2
 
* Minor error correction in css file: Mod was disabling the menu icon for sources
 
* Minor error correction in css file: Mod was disabling the menu icon for sources
|-
+
 
| v10.1.0.0
+
|- style="vertical-align:top;"
| 26 Jan 2015
+
| 10.1.0.0
 +
| style="white-space: nowrap;"|26 Jan 2015
 
|  
 
|  
 
* Updated for TNG V10.1
 
* Updated for TNG V10.1
|-
+
 
| v10.0.0.2
+
|- style="vertical-align:top;"
| 18 May 2014
+
| 10.0.0.2
 +
| style="white-space: nowrap;"|18 May 2014
 
|  
 
|  
 
* Previous versions allowed querying for max two words. In this version as many words as required may be entered as a query.
 
* Previous versions allowed querying for max two words. In this version as many words as required may be entered as a query.
 
* The name of the tree is displayed in the result.
 
* The name of the tree is displayed in the result.
|-
+
 
| v10.0.0.1
+
|- style="vertical-align:top;"
| 11 Mar 2014
+
| 10.0.0.1
 +
| style="white-space: nowrap;"|11 Mar 2014
 
|  
 
|  
 
* Database preparation works faster and uses less server memory.
 
* Database preparation works faster and uses less server memory.
Line 239: Line 281:
 
* Installations using TNG table names different from the default were not supported. Fixed.
 
* Installations using TNG table names different from the default were not supported. Fixed.
 
* Query results could contain spurious lines. Fixed
 
* Query results could contain spurious lines. Fixed
|-
+
 
| v10.0.0.0
+
|- style="vertical-align:top;"
| 13 Jan 2014
+
| 10.0.0.0
 +
| style="white-space: nowrap;"|13 Jan 2014
 
| Changed for compatibility with TNGv10
 
| Changed for compatibility with TNGv10
|-
+
 
| v9.2.2.2
+
|- style="vertical-align:top;"
| 13 Jan 2014
+
| 9.2.2.2
 +
| style="white-space: nowrap;"|13 Jan 2014
 
| Fixed a problem in Javascript that was causing conflicts with other mods. This will probably be the last update for TNGv9
 
| Fixed a problem in Javascript that was causing conflicts with other mods. This will probably be the last update for TNGv9
|-
+
 
| v9.2.2.1
+
|- style="vertical-align:top;"
| 15 Nov 2013
+
| 9.2.2.1
 +
| style="white-space: nowrap;"|15 Nov 2013
 
| Fixed the way event type names are displayed in the setup page. Changed the Search link to point to the Mod search form. Inserted a link in the Mod search form pointing to the regular TNG search form.
 
| Fixed the way event type names are displayed in the setup page. Changed the Search link to point to the Mod search form. Inserted a link in the Mod search form pointing to the regular TNG search form.
|-
+
 
| v9.2.2.0
+
|- style="vertical-align:top;"
| 29 Oct 2013
+
| 9.2.2.0
 +
| style="white-space: nowrap;"|29 Oct 2013
 
| Mod realease
 
| Mod realease
 
|}
 
|}
  
== Sites using this mod ==
+
==Sites using this mod==
If you download and install this mod, please add your TNG site to the table below.
+
If you download and install this mod, please add your TNG site to the table below:
  
 
{| border="0" cellspacing="1" cellpadding="2" class="wikitable"
 
{| border="0" cellspacing="1" cellpadding="2" class="wikitable"
Line 265: Line 311:
 
! User
 
! User
 
! Note
 
! Note
! Mod-Version/TNG-Version
+
! Mod-Version
 +
! TNG-Version
 
! User-language
 
! User-language
|-
+
 
| http://heuser.pro.br/
+
|- valign="top"
 +
| [https://gen-db.heuser.pro.br/ South Brazilian Family Trees]
 
| [[User:carheu|Carlos Heuser]]
 
| [[User:carheu|Carlos Heuser]]
 
| Developers site
 
| Developers site
| v9.2.2.0
+
| 14.0.0.0
 +
| 14.0.1
 
| English, German, Brazilian Portuguese
 
| English, German, Brazilian Portuguese
|-
+
 
 +
|- valign="top"
 +
| [http://racine-ad.fr/TNG/index.php Racine d'Alsace]
 +
| [[User:Louis42|J-Louis Valory]]
 +
| Private - T19
 +
| 12.2.0.2
 +
| 13.0
 +
| FR
 
|}
 
|}
  
[[Category:Mods for TNG v9]][[Category:Mods for TNG v10]][[Category:Mods for TNG v11]][[Category:Mods for TNG v12]]
+
[[Category:Mods for TNG v9]]
 +
[[Category:Mods for TNG v10]]
 +
[[Category:Mods for TNG v11]]
 +
[[Category:Mods for TNG v12]]
 +
[[Category:Mods for TNG v13]]
 +
[[Category:Mods for TNG v14]]

Latest revision as of 13:36, 7 March 2023

Similarity search Mod
Summary Adds similarity search on person/place names
Validation
Mod Updated 01 Jan 2023
Download link similarity-search-v14.0.0.0.zip for
TNG 14.0
TNG 14.0.1

similarity-search-v13.0.4.0.zip for

TNG 13.0.4

similarity-search-v13.0.0.0.zip for

TNG 13.0

similarity-search-v12.2.0.2.zip for

TNG 12.0

similarity-search-v12.2.0.1.zip for

TNG 12.0

similarity-search-v12.2.0.0.zip for

TNG 12.0

similarity-search-v11.0.2.0.zip for

TNG 12.0

similarity-search-v11.0.2.0.zip for

TNG 11.0.2

similarity_search_mod_v11.0.0.0.zip for

TNG 11.0

similarity_search_mod_v10.1.2.1.zip for

TNG 10.1.2

similarity_search_mod_v10.1.2.0.zip for
TNG 10.1.2

similarity_search_mod_v10.1.0.0.zip for
TNG 10.1.0

similarity_search_mod_v10.0.0.2.zip for
TNG 10.0

similarity_search_mod_v9.2.2.2.zip for
TNG 9.2
Download stats
Author(s) Rovian Veronez and Carlos A Heuser
Homepage Similarity_search_Mod (This page)
Mod Support Carlos Heuser
Contact Developer Carlos Heuser
Latest Mod 9.2.2.2 for TNG V9.2.2
10.0.0.2 for TNG v10.0.0
10.1.2.1 for TNG v10.1.2
11.0.0.0 for TNG v11.0.0
11.0.2.0 for TNG v11.0.2
11.0.2.0 for TNG v12.0
12.2.0.2 for TNG v12.2
13.0.0.0 for TNG v13.0
13.0.4.0 for TNG v13.0.4
14.0.0.0 for TNG v14.0.1
Min TNG V 9.2.2
Max TNG V 14.0.1
Files modified
{{{TNG_file_list}}}
Related Mods
Notes

Warning - TNG database is modified

This mod changes the TNG database. Triggers are added to existing tables and new tables are created.

The installation/removal of this Mod is done as usual by using the Mod Manager but requires some additional steps:

If you don't feel comfortable with these instructions, please don't use this Mod.

Read the #Upgrade from previous versions section if you already use a previous version of the mod and are just upgrading.

Purpose of this mod

Names may change spelling over time. In my tree the same name (Heuser) is spelled as Heuser, Heiser, Heusser and Heusers.

The same may happen to place names. For example, a place that was spelled Villa Izabella in the past may be spelled Vila Isabela today.

Additionally, one cannot expect that each TNG user searching for somebody in a tree knows the exact name spelling that is stored in the database. When the exact spelling of a name is unknown, similarity search may help.

TNG offers two alternatives of similarity search: Soundex and Metaphone, but they are not useful in some situations. Both are language dependent. Soundex reduces a word to just four characters and tends to output a large number of results. Metaphone tends to be very restrictive.

The Similarity Search Mod offers an additional way of searching for persons or places. The user simply provides one or two words of the name of the person/place being searched and TNG will display a list of names that contain words that are similar to the query.

Using the Mod

The Mod creates a new menu entry at Find >> Names (was Find >> Word Search in older versions of the Mod). By selecting this entry the user is taken to the query dialog that is depicted below.

Since v14 there is an additional way of opening the query dialog. This alternative is enabled by choosing the following options in General Setup >> Site Design and Definition:

  • Show Search Link: Yes
  • Show Link Destination: Quick Search

With these options, clicking the Search button in the TNG menu will also open the query dialog described below.

Sim-search-screen.jpg

To search for a name enter one or two words in the query field. Results will be displayed on-the-fly as you enter some letters. The results are presented in decreasing order of similarity.

There are several options to control the search:

  • There is a radio button to select the type of search: person or place search.
  • A specific tree to be searched may be selected.
  • There is a radio button that allows to specify the similarity precision (Exact, Very precise, Precise or Inaccurate).

How it works

Each word in a person/place name is divided in a set of "grams" of size three. For example, "Smith" results in "Smi", "mit", "ith". All this strings are stored in a database table, together with a pointer to the person/place it belongs to, as well as with the position of the gram in the name.

When a query is submitted to the Mod, each word in the query is divided in grams in the same way. The grams in the query are compared to those in the database. The mod will search for words that contain a similar set of grams at similar positions. Everything happens in SQL meaning that response time is very short. This approach has been tested in other applications (not TNG) and gives good results even with very large databases (tens of millions of words).

Mod installation and database setup

As usual in cases like this, making a backup copy of your database previously to the Mod installation is highly recommended.

This section describes a fresh installation. If you are upgrading, please follow the instructions in the #Upgrade from previous versions section.

Installation

The mod is installed as usual with the Mod Manager:

  • Download the zip file containing the mod files and unzip it in the TNG mods folder.
  • Install the mod with the Manager.
  • Clear the browser cache (required, do not forget!)

Note: After the mod is installed the database must be prepared for use with the mod.

Database preparation

Go to Setup in the TNG Administration page (Info >> Administration >> Setup).

At the Setup page, you will find a new tab called Similarity Mod.

Click on this Tab. A page like the one displayed below will be shown.

Sim-search-pre-prepare.jpg

This page contains sentences like "Table prepared for people: None". This means that the database has not been prepared for the Mod.

In this page you may select up to three events that will be handled by the mod. These should be events that contain person names in the Detail field of the event. For example, I use the Alias event to store alternative names for a person and the Married name custom event to store a woman's married name.

Hit the Prepare button and the database will be modified for use by the mod.

After some time the page below will be displayed. Notice that if the database is large this process make take several minutes. I have a database with about 12,000 individuals and 1,500 places. For this database the current version of the mod takes about 30 seconds to prepare the database. (previous versions required between one and five minutes for the preparation depending on the server being used).

Sim-search-prepare-finish.jpg

If you go back to the setup, the page below will be displayed. Sentences like "Table prepared for people: tng_people" will be displayed, informing the the database is prepared for use by the mod.

Sim-search-after-prepare.jpg

Upgrade from previous versions

From v12.2.0.0 or later

If you are upgrading from the Mod version v12.2.0.0 or some later version of the Mod, you don't need to prepare the database again. Just follow the usual Mod Manager procedure: uninstall the old version, delete it from the mods folder and install the new version.

From v11.0.2.0 or older

However, if you are upgrading from version v11.0.2.0 or some previous version you must prepare your database again, as the database structure in these older versions was different. If you are unsure of what version you were using just prepare the database again.

Follow this procedure:

  • Using the mod version you have installed, go to Setup in the TNG Administration page (Info >> Administration >> Setup).
  • At the Setup page, you will find the tab called Similarity Mod.
  • Click on this tab. Click on the "Delete" button and confirm that you want to delete all tables.
  • After some time, a page will be displayed confirming that the tables have been deleted.
  • Uninstall the old version of the mod and remove it from the mods folder.
  • Install the new version as described in the installation instructions, including the database preparation described in the previous section.

Mod removal

In order to remove the mod, you must first delete the information stored by the mod in the database.

  • Go to the Setup page of the mod in the TNG Administration page (Info >> Administration >> Setup). A page like the one above will be displayed. Hit the "Delete" button.
  • Only after the Mod tables are deleted form the database, you may uninstall the mod as usual by using the Mod Manager.

'Be aware that if you don't follow the above steps, triggers will be left in your database. Should you subsequently delete the tables by other means, errors such as "Table 'tng.qgrams_grams' doesn't exist" will be displayed.

Translations

The mod already contains translations to Dutch, French, German and Brazilian Portuguese.

Developer

Mod developer is Rovian Veronez with changes by Carlos Heuser. French translation provided by André Morel. Dutch translation by Roel Jongman.

Revision History

Mod Version Date Contents
14.0.0.0 01 Jan 2023
  • Updated for TNGv14.0.0
  • Query dialog may be opened by hitting the Search menu option (see Mod description)
13.0.4.0 10 Jun 2021
  • Updated to TNGv13.0.4
13.0.0.0 21 Sep 2020
  • Updated to TNGv13.0
12.2.0.2 04 Mar 2020
  • Was not working with TNG installed in a subfolder (fixed)
12.2.0.1 24 Feb 2020
  • French translation included (thanks to Roel Jongman)
12.2.0.0 14 Jan 2020
  • Names in events were being incorrectly updated(fixed)
  • Database preparation is much faster
  • People table updates are faster
11.0.2.0 28 Sep 2016
  • Updated for TNG v11.0.2
11.0.0.0 17 Mar 2016
  • Updated for TNG v11.0
10.1.2.1 13 Mar 2016
  • French translation included (thanks to André Morel)
10.1.2.0 22 Jul 2015
  • Tested for TNG v10.1.2
  • Minor error correction in css file: Mod was disabling the menu icon for sources
10.1.0.0 26 Jan 2015
  • Updated for TNG V10.1
10.0.0.2 18 May 2014
  • Previous versions allowed querying for max two words. In this version as many words as required may be entered as a query.
  • The name of the tree is displayed in the result.
10.0.0.1 11 Mar 2014
  • Database preparation works faster and uses less server memory.
  • For large databases, preparation was giving an error "table2 full". Fixed
  • Installations using TNG table names different from the default were not supported. Fixed.
  • Query results could contain spurious lines. Fixed
10.0.0.0 13 Jan 2014 Changed for compatibility with TNGv10
9.2.2.2 13 Jan 2014 Fixed a problem in Javascript that was causing conflicts with other mods. This will probably be the last update for TNGv9
9.2.2.1 15 Nov 2013 Fixed the way event type names are displayed in the setup page. Changed the Search link to point to the Mod search form. Inserted a link in the Mod search form pointing to the regular TNG search form.
9.2.2.0 29 Oct 2013 Mod realease

Sites using this mod

If you download and install this mod, please add your TNG site to the table below:

URL User Note Mod-Version TNG-Version User-language
South Brazilian Family Trees Carlos Heuser Developers site 14.0.0.0 14.0.1 English, German, Brazilian Portuguese
Racine d'Alsace J-Louis Valory Private - T19 12.2.0.2 13.0 FR