Data Model Overview
The Wellespring Project's database is built on a graph data model, implemented in Neo4j. Unlike a traditional relational database—where data are stored in fixed tables linked through foreign keys—the graph model organizes information as nodes (entities) and relationships (connections between those entities). This approach allows Wellespring to represent not only what data exist, but also how those data are interrelated: who or what connects to whom, and along what pathways of meaning, influence, and reference.
Why a Graph Model?
The cultural and linguistic materials at the heart of this project—songs, lyrics, artists, emotions, concepts, and public reactions—form an inherently interconnected web. Each lyric line can express multiple emotions, allude to events or ideas, echo or contrast other lines, and evoke themes that resonate across different songs and performances. These relationships are not simple one-to-one or hierarchical structures; they are complex, many-to-many, and often dynamic.
A relational model (the kind used in spreadsheets or SQL databases) forces such complexity into rigid table structures: rows, columns, and foreign keys. While this approach works well for standardized data—such as inventories or accounting records—it struggles with the rich, overlapping networks that characterize creative and interpretive work. For example:
- A single lyric line may connect simultaneously to multiple songs (quotations, reprises), emotions (joy, irony, melancholy), and abstract concepts (faith, alienation, protest).
- A song may inspire countless online reactions, each expressing nuanced stances and emotional tones.
- A "theme" such as working-class struggle might link across dozens of songs and reactions, evolving through new interpretations.
Representing this kind of semantic and interpretive richness in a relational model would require complex join tables, nested queries, and repetitive data duplication—quickly becoming difficult to query, visualize, and maintain.
By contrast, in a property-graph model such as Neo4j's:
- Each entity (a node) directly connects to the entities it relates to via relationships, stored as first-class data.
- Both nodes and relationships can have properties (key–value pairs) that describe their characteristics—e.g., a lyric line's text, or a relationship's order within a song.
- Traversing the network is intuitive: queries follow natural connections ("find all songs that evoke anger and mention war").
The resulting structure is both machine-readable and visually interpretable, supporting analysis, visualization, and narrative insight.
Structure of the Wellespring Graph
At its core, the Wellespring graph connects three interlocking domains:
- Creative Works – nodes such as Song, SongSection, LyricLine, Recording, and Album capture the compositional, structural, and performative dimensions of Jesse Welles' music.
- Agents and Entities – nodes such as Person, Artist, Organization, Account, and Platform represent creators, collaborators, and participants in the wider cultural ecosystem.
- Interpretive Layers – nodes such as Emotion, Theme, Concept, Event, Place, and Reaction capture how meaning, emotion, and audience response emerge from and surround those works.
These domains are linked through relationships that express analytical and interpretive logic:
- :HAS_SECTION and :HAS_LINE encode the internal structure of songs.
- :EXPRESSES connects lyric lines or reactions to emotional states derived from natural-language processing (NLP) or human interpretation.
- :ALLUDES_TO, :MENTIONS, and :INSPIRED_BY record explicit or inferred references to external ideas, events, or people.
- :DATA_DERIVED_IN links any node whose data result from computational analysis back to the specific ModelRun that produced it, ensuring transparency and reproducibility.
Each relationship has its own direction, cardinality, and properties, documented in the following section. Together, these relationships form a richly structured network that allows for both micro-level and macro-level analysis—whether exploring how a single line resonates with broader themes or tracing how public sentiment evolves across online reactions.
Advantages for Research and Teaching
The graph structure offers distinctive advantages for Wellespring's research and pedagogical aims:
- Flexibility: new node or relationship types can be added without restructuring existing tables or breaking joins.
- Semantic clarity: each edge type encodes a clear interpretive or analytical meaning, encouraging transparent reasoning.
- Computational richness: graph algorithms (e.g., centrality, community detection, similarity) and machine-learning integrations can reveal hidden patterns of influence, emotion, or theme.
- Pedagogical transparency: students can visually explore how songs, lyrics, and cultural references interconnect, reinforcing digital-humanities concepts of data modeling, ontology, and interpretation.
- Provenance and reproducibility: each derived value links back to its generating ModelRun, allowing every analytical step to be traced and verified.
Summary
In short, the Wellespring Project adopts a graph database model because it mirrors the very structure of the phenomena it seeks to study: a network of creative expression and cultural meaning. Rather than flattening these relationships into static tables, Neo4j allows the project to preserve, query, and visualize the dynamic web of connections that define Jesse Welles' lyrical world—and, by extension, to teach and model how digital tools can illuminate the humanities.