Synonyms finder - Get started

Back to the Synonyms finder tool


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. 

Windows file properties unblock
Security message in Windows file properties






Once unblocked, unzip the file at the location of your choice.


Launch the program from the file synonyms_finder.exe. The tool looks like this:

Synonyms tool
Synonyms finder "User interface"

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.


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 SynonymsDBPedia synonymsWikidata 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 values
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:
RDF output mapping
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.

Back to the Synonyms finder tool

Table of contents