How to Analyse Soninke Ajami Manuscripts

A workflow for the analysis of Soninke Ajami manuscripts using the open-source software Tropy

Soninke manuscript with Tropy selections

This post lays out the software and workflow solutions that I use for analysing Soninke Ajami manuscripts. Together, they may be helpful for other researchers working on digitized manuscripts, especially Ajami manuscripts.

My research focuses on the dialectal variation of Soninke—the first language of over two million people who are the descendants of the medieval West African empire known as Ghana—in Islamic manuscripts from private collections in Mali, Senegal and Mauritania.

The documents that I investigate are “Soninke” in two ways.

A Soninke Ajami manuscript with interlinear and marginal annotations in Soninke adjacent to the main Arabic text.

First, they were produced within the broader Soninke scholarly network that has nodes that stretch far beyond the Soninke heartland (See for instance Ogorodnikova (2017) and her recent workshop presentation for details on the Soninke scholarly network in multi-ethnic areas).

Second, they are written partially—either regularly between the main lines of an Arabic language text or sporadically in the margins—or fully in Soninke, such as in a poem that I analyzed in a recent workshop presentation.

Given that the manuscripts are handwritten and that (most often) the Soninke “text” is a series of annotations embedded within the context of a primarily Arabic language document, one of the crucial tasks is to extract the Soninke segments from the manuscripts for their systematic analysis.

For this purpose, I use Tropy—an open-source software designed for historians to sort and transcribe digital photos of documents and manuscripts—to identify, tag and export Ajami annotations.

Data Preparation with Tropy

Using Tropy, I am able to go from a digital photo of a manuscript’s page to a set of digital annotation units documenting each and every Soninke annotation in a way that facilitates further analysis and presentation of the entire implicit text in other formats.

To do this, I go through the following steps:

  1. Identification
  2. Tagging
  3. Transcription (Arabic script segments)
  4. Interpretation (Transliteration and Orthographic Representation)
  5. Translation


Identifying Ajami glosses in a manuscript is the very first task in the process. It consists of finding Ajami annotations and their corresponding Arabic words or phrases.

This task seems quite straightforward, since Ajami phrases end with a signal, indicating that they are Ajami annotations: the word عجم   (<ʿ jm> ‘not Arabic’) appearing at the end of each annotation in Soninke in many recent manuscripts I deal with.

However, in some manuscripts I observe sporadic Ajami annotations without any signal. For a general discussion about various techniques used by the scribes to signal Soninke Ajami elements, including other Ajami cultures (see Ogorodnikova (2017:118-127).

Generally, one can identify an Ajami annotation using one of the following criteria:

  • Presence of the signal, عجم  (<ʿ jm>)
  • Full vocalization (that is, the Arabic letters are fully marked with diacritics)
  • Careful handwriting (that is, letters appearing with less ambiguity)
  • The use of pointers (that is, a line between annotation and a source segment)
  • The direction of writing
  • Different ink


Tagging entails selecting the coordinates of an Ajami annotation within an image file of digital manuscript. The approach I use is to select both the Arabic word or phrase (depending on the case) and its corresponding annotation in Ajami. I also assign an identifying number to each selection based on the sequential ordering of the annotations, (i.e. ND_1 standing for the first annotation of the manuscript Mss_ND_01).

A screenshot from Tropy of a manuscript with Soninke annotations and their corresponding Arabic segments tagged via light blue selection squares


 Here, I transcribe the Ajami annotation into Latin script using a special set of conventions. More specifically, this transcription is meant to serve as graphemic representation of how Soninke Ajami is written.

A sample of the transcription stage. The top line is Soninke written in Arabic script and the bottom line is a Latin-based transcription.


Next, I interpret the graphemic representation into a phonemic one. The phonemic representation is based on the principles of Soninke’s standard Latin-based orthography as defined in Bakel, Senegal in 1995.

A sample of the interpretation stage. The top line is the graphemic representation resulting from the transliteration stage. The bottom line is my interpretation into a phonemic orthography representation.


Finally, I translate the interpretations of Soninke Ajami annotations into English.

At the end of these steps then, each digital annotation contains the following data:

  1. Coordinates (of the Soninke target segment and corresponding Arabic source segment within the digital manuscript)
  2. Arabic (typeset as originally written)
  3. Soninke Ajami (typeset as originally written)
  4. Soninke Ajami Transliterated (into Latin script)
  5. Soninke Interpreted (into a Latin-based orthography)
  6. English (translation of the Soninke)
A screenshot of Tropy with tagging and digital text strings representing a Soninke Ajami annotation

Data Extraction

After documenting all the annotations in the manuscript, I extract the data from Tropy into other formats appropriate for further analysis. (For specifics, see this technical note.) For my own research, I export the annotations from the manuscripts to a CSV and eventually a spreadsheet, organised into six columns:

  1. Annotation code
  2. Arabic word
  3. Ajami representation
  4. Transliteration
  5. Phonemic representation
  6. Translation.
A screenshot of Tropy annotation units extracted into a spreadsheet for further analysis


In this post I have discussed about the structured approach I use for the analysis of Soninke Ajami manuscripts with the open-source software, Tropy. The workflow is as follows:

  • Annotation identification
  • Tagging the annotation
  • Transcription of the Ajami annotation
  • Interpretation of the annotation
  • Translation into English
  • Data extraction from Tropy.

The final step is essential for analysis of the data. A workflow similar to this one that I use for Soninke Ajami Manuscripts may be applicable to other similar research projects.


Author: Djibril Dramé

Research Assistant interested in Mande Languages linguistic, especially Soninke-Bozo languages written in Arabic Script ( Universität Hamburg, Ajami Lab) E-mail: Office phone number: 9148

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.