The Nubian Dictionary (Python Project)

[ ryn0f1sh ]
6 min readJan 27, 2021
Nubian Pyramids of The Meroe Empire

Hello Friends,
Today’s post is not about hacking in the “breaking” sense of the word, its more about “making”. As you know from my PyNoob blog, I am up-skilling my python programming skills. One way that has been helping me is working on this passion project. The Nubian Dictionary. It is available in our [bini-tek]\ \ GitHub page.

// What is the Nubian Dictionary Project?
In simple terms, it is a digitized version of a physical Nubian Dictionary.
My coding partner 50DD & I came across a PDF of a scanned book, which was created by the lexicographer Mr. Youssef Sumbagh. It was very exciting to get our hands on this. You see, the Nubian language is in danger, not many people still speak it, and of course most of the Nubian lands were drowned when Egypt built the High Dam back in the 60’s. And with talks now of another dam to be built close to that region, it may wipe out what is left of the land, and its history.

Since the language was mainly taught orally, I was very excited to find it in written format. The dictionary has an English side (which is the part that we used) and it has an Arabic side. At the moment, via this project, you can search the English side (i.e. if you type in the word “Arm” in English you will get “Kew” for its Nubian counterpart), hopefully in future versions of the program we would incorporate the Arabic transliteration, and maybe one day using the actual Nubian characters.

// How to use it?
Currently the only way we have is to run the program locally on your machine.

Download Zip File from GitHub

Option 1: Downloading the Zip folder
-Visit our GitHub page.
-Click the “Code” button.
-Click the “Download Zip” button.
-Once its downloaded, extract the folder (Right Click, Extract All).
-Go into the folder, Double click “The Nubian Dictionary.exe”.

Option 2: Clone the Repo
If you’re a coder, you can also simply clone that repo from that same area.
You are also more then welcome to fork the repo if you think you might want to help make it better. All the source code and files needed are included.

// What are the files in the GitHup Repo?
There are 5 files in the repository when you clone or download it to your local machine:
One Executable File. (The Program).
One Python File. (The Source Code).
Three Text Files. (The Source Files).

The Three Text Files.
[nd-days.txt, nd-numbers.txt, nd-wordsearch.txt]

This is where all the information is held, if you open up these files you will see the information in plain text. “nd” is of course short for “Nubian dictionary”.
1. nd-days: Has the days of the week.
2. nd-numbers: Has the numbers 1–20.
3. nd-wordsearch: Is the dictionary in text form, the English words and their Nubian counterparts.

With the nd-wordsearch file, you may see two Nubian words next to the English words, that is because this dictionary provided us with 2 different dialects of the Nubian language, the Kinzeeya — Dungulaweea (K-D) & the Fadeega — Mahaseeya (F-M). Sometimes the words are the same in both dialects, sometimes only one dialect would have a translation, that’s where you will see “N/A” for “Not Available” in the section that doesn’t.
Yes all this will be displayed to you when you use the actual program, it will provide you with the 2 dialects and let you know if the word is “N/A”.

The Python File.
[nd_final.py]

This is the full python source code of the program, if you are a programmer, then you would be able to simply run this in your favorite IDE and modify the code as you see fit.
Note: You will need to make sure that the 3 text files mentioned above are in the same folder as this file in order for it to run properly.

The Executable File.
[The Nubian Dictionary.exe]

This is the working program, no compiling needed, you simply double click it, give it a minute to find the text files and you can start searching for words.
I wanted to make sure to include a file for our non-programmer folk, since this whole project is mainly to provide the general public access to the language.
Note: You will need to make sure that the 3 text files mentioned above are in the same folder as this file in order for it to run properly.

// How did we make it?
We used the Python (3) programming language, 50DD and I are fans of the language, and it was the easiest one for us to learn as we coded. Our attempts at using the actual PDF as the main source for the program was difficult, we found that the program actually ran a lot smoother if we used a basic text file, also the scans were not very clear at times, and there was a lot of other information that the program would have had to go threw to get to the dictionary section of the PDF file.
We ended up writing a little tool we called the PTE (PDF Text Extractor), you can download it from this repo if you like.
The PTE basically reads through the whole PDF and neatly extracted the ASCII (English) text and saved it to basic text file. We then had to go into the text file and clean it up manually, because the scans were not very clear at times so it would misread letters.
After cleaning the text file up, and a few quick tests, we were up and running.

Also to make life a bit easier for the user, the main menu does give you options for some quick references. There is one that gives you the names of the days of the week, and one that gives you the numbers from One to Twenty.

With laser focus, working on it once a week (because we still have day jobs) it took us about 5 months to get this version up and running. The best way to think about it, is that the program it self reads and searches the text files that we have accompanying it to give you the result you need.

Yes you can easily open up the text file and search it manually as well if you like, and any changes you make to the text file, will be reflected in the results you get in the program. But that’s the whole point, if there is a correction in a spelling, or an addition that needs to be made, we want you to be able to do so. The whole point of the project is to collaborate with those who are more knowledgeable then us to help make it better for everyone.

// Who is this Dictionary for?
Well, Everyone. If you are a linguist, a Nubiologist, or just someone who is interested about learning the language of a beautiful culture that is still here but sadly slowly fading away. If your a programmer wanting to work on a side project, if your just a fan of Nubia or Python, literally everyone.

// Future Plans.
I am the first to admit that the program is not perfect, but it is functional. Since it is a passion project, I’m sure that improvements will be made to future versions. We are also hoping that the project becomes a catalyst for other programmers and academics to help improve it. Currently it’s a simple black window with white text, but I’m hoping as the project progresses and gains momentum, we would add a GUI (Graphical User Interface), and possibly create a Web App version of the dictionary for general internet users.

// What is [bini-tek]\ \ ?
bini-tek is the company name that my coding partner and I use for these projects. We will be learning, making, and sharing more passion projects with the planet in the future, and hopefully improve on them as we improve our selves.

// Conclusion
There you go.
Our passion project The Nubian Dictionary is finally out there for the world to see (and hopefully use). I apologize for the very long post, but as you can see, there was a lot to cover and we are very excited about releasing this project to world, and hope you get to use it, share it, and improve it if you can.

I hope that was helpful.
Go (ethically) Hack The Planet…or Digitize It.
[R/F]

--

--

[ ryn0f1sh ]

Sudanese / Blogger / Pen Tester / Python Charmer / Machine Learner / Lover Of Outer Space / Coffee Drinker (https://www.buymeacoffee.com/execodeable)