This is a semester-long project by Ayah Aboelela and Remy LeWinter for a graduate class on digital humanities. This project aims to highlight teacher-student (or narrator-receiver) networks between muhaddithat (female scholars and transmitters of hadith) within the first 4 centuries of Islamic history. Data for this is sourced from the Hadith Narrators Dataset on Kaggle.
Before running the app, we strongly recommend reading the User Guide for details on the relevant historical context, glossary of Arabic terms, user instructions, references and work cited, and other necessary background information for understanding and using the app.
Running the scripts for this project requires a Python environment with the following packages installed:
- python=3.8.8
- jupyter
- dash
- jupyter_dash
- dash_cytoscape
- plotly
- pandas
- networkx
- json
- python-graphviz
After downloading the repository, open the app.ipynb JupyterNotebook and run all cells. You should be directed to this link: http://127.0.0.1:8050/. Open this in your preferred web browser and the app should be displayed. Refer to the User Guide if you need navigation instructions.
Since this was only a semester-long project, we didn't have time to explore all possibile options for integrating in our app. Here is a list of things we might consider for the future:
- Including more muhaddithat, or women narrators, in the app. This would entail writing bios about them, selected hadiths they narrated, and generating and displaying their graphs.
- Adding more layouts and features that would be unique to individual subgraphs
- Making use of all the collected metadata on hadiths and bios. Currently, our hadith.json and bios.json files have extra metadata associated with each biography and hadith (including the hadith's narration chains, the narrators' places of stay, and others). This information is not integrated with the app currently, but can be done in the future.
- Deploying the app so that it is hosted on the web instead of requiring any downloads or installations
- Fixing the reset button: the reset button currently resets the zoom, but it orients the nodes and edges in different positions that make it harder to read. Re-selecting the desired narrator from the dropdown menu will reset the view normally, but the reset button is currently not fully functional.
- Some graphs appear to have nodes that are not traced back all the way to the Prophet, even though we tried to check for that when generating each of the subgraphs. In the future, this can be investigated more thoroughly to ensure the Prophet's node is the only one being displayed without a teacher.
- It is still hard to trace narration chains/connections in some of the larger graphs. Given more time, it may be possible to position and style the nodes differently so that connections between nodes can be more easily identified.