Website: https://dkrasne.github.io/visualizing_intertextuality/
A project to visualize intertextuality in Latin poetry, using nodegoat and Observable Framework.
Any files not listed below are part of the Observable Framework setup or are solely for local testing purposes.
.
├─ src
│ ├─ data
│ │ ├─ nodegoat_data.json.py # a data loader written in Python
│ │ ├─ intxt_network_graph.json # NetworkX graph data (output by nodegoat_data.json.py)
│ │ ├─ intxts_full.json # all intertexts (output by nodegoat_data.json.py)
│ │ ├─ meters.json # information on Latin meters (output by nodegoat_data.json.py)
│ │ ├─ model_json_backup.json # backup of the nodegoat model structure in case API call fails (output by nodegoat_data.json.py)
│ │ ├─ nodegoat_tables.json # reformatted database tables from nodegoat (output by nodegoat_data.json.py)
│ │ ├─ objects_json_backup.json # backup of the nodegoat object data in case API call fails (output by nodegoat_data.json.py)
│ │ └─ sankey_data.json # intertexts formatted for sankey chart (output by nodegoat_data.json.py)
│ ├─ js
│ │ ├─ global_constants.js # a script for generating and exporting any constants used in multiple pages
│ │ └─ sankey_function.js # a customized version of the D3.js Sankey chart module
│ ├─ about.md # about the project
│ ├─ sankey.md # full diagram of intertexts (markdown and JavaScript)
│ └─ index.md # the home page (markdown and JavaScript)
├─ README.md # this page
└─ requirements.txt # Python environment configuration filemodel_json_backup.json and objects_json_backup.json always provide complete and up-to-date data from the nodegoat database.
For a full discussion of each part of this chart, see the project's About page.
flowchart TD;
data[Manual data collection from commentaries, articles, and other publications]
nodegoat["Manual data entry into nodegoat database (<a href="https://pratt.darcykrasne.com/Portfolio/viz_intxt/nodegoat_model_2025-6-15.png">see model diagram here</a>)"]
python["Python data loader <code>nodegoat_data.json.py</code> performs API call from nodegoat, transforms data, and produces multiple JSON files"]
file1([meters.json])
file2([nodegoat_tables.json])
file3([intxts_full.json])
file4([intxt_network_graph.json])
file5([sankey_data.json])
file6(["model_json_backup.json (backup nodegoat model)"])
file7(["objects_json_backup.json (backup nodegoat data)"])
file8(["nodegoat_data.json (complete reformatted nodegoat data)"])
load[markdown/JavaScript pages load transformed data]
scripts["JavaScript (Observable Plot and D3.js) transforms data into visualizations"]
viz_cell[Cell plot visualization]
viz_sankey[Sankey chart visualization]
data --> nodegoat --> python
python --> file1 --> load
python --> file2 --> load
python --> file3 --> load
python --> file4 --> load
python --> file5 --> load
python --> file6 --> load
python --> file7 --> load
python --> file8 --> load
load --> scripts
scripts --> viz_cell
scripts --> viz_sankey