CoolFace
Datasetpublic

brandburner/wolfhall-s01-narrative-kg

Wolf Hall - Narrative Knowledge Graph A rich narrative knowledge graph extracted from Wolf Hall screenplays using the Fabula pipeline. Contains characters, locations, objects, organizations, events, themes, and conflict arcs with full participation semantics and Graph Gravity importance tiers. Dataset Overview Metric Value Source database wolfhall.s01 Type Season database Episodes 6 Total nodes 2,691 Total edges 9,242 Schema version 1.1.0… See the full description on the dataset page: https://huggingface.co/datasets/brandburner/wolfhall-s01-narrative-kg.

sourceHugging Facecc-by-sa-4.0updated 7mo agoView on Hugging Face
0likes52downloads
Dataset Card

Wolf Hall - Narrative Knowledge Graph

A rich narrative knowledge graph extracted from Wolf Hall screenplays using the Fabula pipeline. Contains characters, locations, objects, organizations, events, themes, and conflict arcs with full participation semantics and Graph Gravity importance tiers.

Dataset Overview

MetricValue
Source databasewolfhall.s01
TypeSeason database
Episodes6
Total nodes2,691
Total edges9,242
Schema version1.1.0
Exported2026-02-24

Entity Breakdown

TypeCount
Act18
Agent254
ConflictArc33
Episode6
Event514
Location259
Object322
Organization95
PlotBeat859
SceneBoundary330
Writer1

Graph Gravity Tiers

TierCountDescription
anchor21Main characters / key locations
planet144Recurring entities
asteroid765Minor / one-off entities

Relationship Types

AFFILIATED_WITH, BELONGS_TO_EPISODE, CALLBACK, CAUSAL, CHARACTER_CONTINUITY, CONTAINS_ACT, CONTAINS_BEAT, CONTAINS_SCENE, CREDITED_ON, EMOTIONAL_ECHO, ESCALATION, FORESHADOWING, INVOLVED_IN_ARC, INVOLVED_WITH, IN_EVENT, NARRATIVELY_FOLLOWS, OCCURS_IN, OWNS, PARTICIPATED_AS, PART_OF ... and 6 more

Files

FileDescription
nodes.parquetAll graph nodes with properties
edges.parquetAll relationships with properties
positions.parquet3D layout coordinates for visualization
meta.jsonDataset metadata and entity counts

Schema

Nodes (nodes.parquet)

ColumnTypeDescription
node_idstringUnique node identifier (UUID)
primary_labelstringNode type (Agent, Location, Event, etc.)
namestringDisplay name
descriptionstringFoundational description
tierstring (nullable)Graph Gravity tier: anchor / planet / asteroid
episode_countint (nullable)Number of distinct episodes entity appears in
first_episode_seqint (nullable)First appearance episode
last_episode_seqint (nullable)Last appearance episode
properties_jsonstringFull node properties as JSON

Edges (edges.parquet)

ColumnTypeDescription
source_node_idstringSource node UUID
target_node_idstringTarget node UUID
relationship_typestringRelationship type (e.g., PARTICIPATED_AS)
properties_jsonstringEdge properties as JSON

Positions (positions.parquet)

ColumnTypeDescription
node_idstringNode UUID
x, y, zfloat3D coordinates
sizefloatNode size (Graph Gravity weighted)
r, g, bintRGB color by entity type
communityintLouvain community index
tierstring (nullable)Graph Gravity tier

Usage

python
from datasets import load_dataset
import pandas as pd

# Load from HuggingFace
ds = load_dataset("brandburner/wolfhall-s01-narrative-kg")

# Or load parquet directly
nodes = pd.read_parquet("nodes.parquet")
edges = pd.read_parquet("edges.parquet")

# Filter to anchor characters
anchors = nodes[(nodes['primary_label'] == 'Agent') & (nodes['tier'] == 'anchor')]

# Build a NetworkX graph
import networkx as nx
G = nx.DiGraph()
for _, n in nodes.iterrows():
    G.add_node(n['node_id'], label=n['primary_label'], name=n['name'])
for _, e in edges.iterrows():
    G.add_edge(e['source_node_id'], e['target_node_id'], type=e['relationship_type'])

Citation

bibtex
@misc{fabula_wolfhall_s01,
  title = {Wolf Hall Narrative Knowledge Graph},
  author = {Fabula Pipeline},
  year = {2026},
  publisher = {HuggingFace},
  howpublished = {\url{https://huggingface.co/datasets/brandburner/wolfhall-s01-narrative-kg}}
}

License

CC BY-SA 4.0