Back to the Synonyms finder tool
Install
The Synonyms finder tool is written in Python and is available as a standalone package without prerequisites.
Download the zip file. Take a look at the properties of the downloaded file. If the file is blocked as a standard security precaution by WIndows, check the unblock box.
Once unblocked, unzip the file at the location of your choice.
Launch
Launch the program from the file synonyms_finder.exe. The tool looks like this:

The Synonyms finder was created as a tool within a study on synonyms. It is not polished for general use. E.g. the three empty fields at the left are used only for internal purposes and can be neglected. If interested, the third of these fields gives some raw information about search results.
Usage
1. Enter words to start from:
There are three ways to enter words to start with:
- Manual input of words (one by one. Fill the word in the left top input field and push Add word)
- Input a list (.txt file, each line a separate word. (Use the From file button)
- Input a .csv file in the format of the synonyms tool. (Use the From file button). An example csv is available in the examples folder.
The words will appear in the main table.
2. Start the search for synonyms:
In short:
- Select rows to process
- Press one or more resource buttons
- Repeat for different rows or for different resources
All actions work on the selected rows only. Select one or more rows (by clicking the row number to select the full row).
Use one of the source buttons Wordnet Synonyms, DBPedia synonyms, Wikidata synonyms. The tools will connect to the given resource and search for synonyms. Use the LusTRE syn from suggestions button to look for synonyms in the vocabularies present in LusTRE (GEMET, AGRIVOC, EUROVOC, EARTh,...).
Results are added as new rows to the table. Results are added directly after the selected row, with a level (lvl column) 1 higher than the original row.
After executing a processing step, you can repeat new actions starting from the same selected rows but using another source button, or select different rows in the table and start from there.
Each executed processing step gets a task number in the results table (last column). You can remove all output from a specific task by entering the task number in the top right spinbox and press the Delete activity button. For the latest process you ran, you can directly use the Delete latest button.
3. Process the search results
The status field in the column indicates ‘V’ for results and ‘#’ for additional information. Using the Accept buttons, you can change the status of one or more selected rows. Using the invalidate button, you can indicate that an output of the process is not a valid result for you. Other options for the status field are:
status | description | comment |
---|---|---|
V | Valid | The default status for new results; not yet validated by the user |
# | Comment | This row contains information for the user |
-- | Invalidated | Row rejected by the user. Invalidated rows can be hidden |
SY | Synonym | This row contains a synonym or (close) matching concept |
SYX | Exact synonym | This row contains an exact match (stronger than SY) |
HE | Hypernym | This row contains a hypernym |
HO | Hyponym | This row contains a hyponym |
RE | Relation | This row is related to the input, but the relation is not synonym, hyponym or hypernym. |
IN | Input | This row is input for the process |
Be aware that these status values are set (and decided) by the user. The user can also fill in his own values, but only the values in the column are known by the tool, especially when saving/exporting the results.
You can also directly delete lines using the Delete rows button. Be aware that all the children of a deleted row will also be deleted.
The main information in the table is provided in the subj – pred – obj columns (subject – predicate – object). The "subject" is the source. The "predicate" indicates the relation, and the "object" provides the result. Subject and object can be a link to a concept in one of the resources, or it can be a literal string indicating a found term. If the object is a term, the row can be selected for a new processing iteration. If an object or subject is a link, it can be used to go to the web source of this link. To do the latter, click on the cell containing the link and use the link activation field at the bottom of the tool.
4. Save the results
The tool provides 3 save options:
- Save all: saves all rows in the table in CSV format. It can be used when the user wants to continue processing later.
- Save visible: The user can hide undecided rows (V), informational (#) and/or invalidated(--) rows. The save visible button saves only the rows visible in the table.
- Save as RDF: This saves the results in RDF format. For each input row (rows with status IN), an RDF description element is created based on the subject value of the IN-row. Rows validated by the user (status SY, SYX, HY, HO, HE, RE) are used to create RDF statements in relation to the original input value. If the object is a label, an altLabel or hiddenLabel is created. If the object is a concept, a skos relation is created. The following table is a guideline:
Status value | RDF output for concepts | RDF output for labels |
---|---|---|
IN | New description element | |
#, V, -- | No output | No output |
SYX | skos:exactMatch | skos:altLabel |
SY | skos:closeMatch | skos:altLabel |
HO | skos:narrowMatch | skos:hiddenLabel |
HE | skos:broadMatch | skos:hiddenLabel |
RE | skos:relatedMatch | skos:hiddenLabel |
Hyponym, hypernym and related labels are exported as hiddenLabel. As a result, search engines can use it, but a user interface will not show it as a valid synonym.
This tool is a proof of concept, and it is not extensively tested for errors. It is recommended to save your work regularly.