遇见数据集

brandburner/encanto-s01-narrative-kg

收藏
Hugging Face2026-05-27 更新2026-05-31 收录
官方服务:

资源简介:

--- license: cc-by-sa-4.0 task_categories: - graph-ml - text-generation tags: - narrative - knowledge-graph - screenplay - fabula - neo4j - graph-gravity size_categories: - 1K<n<10K --- # Encanto - Narrative Knowledge Graph A rich narrative knowledge graph extracted from *Encanto* screenplays using the [Fabula](https://fabula.productions) 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 | `encanto.s01` | | Type | Season database | | Episodes | 1 | | Total nodes | 605 | | Total edges | 1,746 | | Schema version | 1.1.0 | | Exported | 2026-05-27 | ### Entity Breakdown | Type | Count | |------|-------| | Act | 3 | | Agent | 50 | | ConflictArc | 11 | | Episode | 1 | | Event | 98 | | Location | 57 | | Object | 128 | | Organization | 3 | | PlotBeat | 183 | | SceneBoundary | 65 | | Theme | 4 | | Writer | 2 | ### Graph Gravity Tiers | Tier | Count | Description | |------|-------|-------------| | anchor | 0 | Main characters / key locations | | planet | 0 | Recurring entities | | asteroid | 238 | Minor / 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`, `EXEMPLIFIES_THEME`, `FORESHADOWING`, `INVOLVED_IN_ARC`, `INVOLVED_WITH`, `IN_EVENT`, `OCCURS_IN`, `PARTICIPATED_AS`, `PART_OF`, `PART_OF_ACT` ... and 5 more ## Related Datasets This is a **single-season** dataset containing entities and events as extracted from Season 1 screenplays. - **Megagraph** (all seasons unified): [brandburner/encanto-mega-narrative-kg](https://huggingface.co/datasets/brandburner/encanto-mega-narrative-kg) > **Note:** The megagraph is *not* a simple union of season datasets. Cross-season entities are reconciled through a Global Entity Registry (GER), receiving new canonical UUIDs and distilled descriptions. Graph Gravity tiers are recalculated across all episodes. Use individual season datasets for single-season analysis; use the megagraph for cross-season analysis. ## Files | File | Description | |------|-------------| | `nodes.parquet` | All graph nodes with properties | | `edges.parquet` | All relationships with properties | | `positions.parquet` | 3D layout coordinates for visualization | | `meta.json` | Dataset metadata and entity counts | ## Schema ### Nodes (`nodes.parquet`) | Column | Type | Description | |--------|------|-------------| | `node_id` | string | Unique node identifier (UUID) | | `primary_label` | string | Node type (Agent, Location, Event, etc.) | | `name` | string | Display name | | `description` | string | Foundational description | | `tier` | string (nullable) | Graph Gravity tier: anchor / planet / asteroid | | `episode_count` | int (nullable) | Number of distinct episodes entity appears in | | `first_episode_seq` | int (nullable) | First appearance episode | | `last_episode_seq` | int (nullable) | Last appearance episode | | `properties_json` | string | Full node properties as JSON | ### Edges (`edges.parquet`) | Column | Type | Description | |--------|------|-------------| | `source_node_id` | string | Source node UUID | | `target_node_id` | string | Target node UUID | | `relationship_type` | string | Relationship type (e.g., PARTICIPATED_AS) | | `properties_json` | string | Edge properties as JSON | ### Positions (`positions.parquet`) | Column | Type | Description | |--------|------|-------------| | `node_id` | string | Node UUID | | `x`, `y`, `z` | float | 3D coordinates | | `size` | float | Node size (Graph Gravity weighted) | | `r`, `g`, `b` | int | RGB color by entity type | | `community` | int | Louvain community index | | `tier` | string (nullable) | Graph Gravity tier | ## Usage ```python from datasets import load_dataset import pandas as pd # Load from HuggingFace ds = load_dataset("brandburner/encanto-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_encanto_s01, title = {Encanto Narrative Knowledge Graph}, author = {Fabula Pipeline}, year = {2026}, publisher = {HuggingFace}, howpublished = {\url{https://huggingface.co/datasets/brandburner/encanto-s01-narrative-kg}} } ``` ## License CC BY-SA 4.0

Encanto Narrative Knowledge Graph is a rich narrative knowledge graph extracted from Disneys Encanto screenplays using the Fabula pipeline. It contains characters, locations, objects, organizations, events, themes, and conflict arcs with full participation semantics and Graph Gravity importance tiers. The dataset includes 605 nodes and 1,746 edges, covering entity types such as 50 agents, 57 locations, 128 objects, 98 events, and relationship types like AFFILIATED_WITH, CAUSAL, and PARTICIPATED_AS. It is suitable for graph machine learning and text generation tasks, and can be used for narrative analysis, knowledge graph visualization, and story understanding applications.

提供机构:
brandburner
搜集汇总
数据集介绍
brandburner/encanto-s01-narrative-kg 数据集图片
构建方式
该数据集依托Fabula叙事分析管线,从《魔法满屋》第一季剧本中系统性地抽取叙事要素。管线以剧本原始文本为输入,经语义解析与实体识别,将角色、地点、物体、组织、事件、主题及冲突弧等叙事单元抽象为图节点,并以参与语义为纽带建立节点间的有向关系。全部实体经全局实体注册机制进行消歧与规范化,赋予唯一UUID与基础描述。最终导出为节点、边及三维布局坐标三份Parquet文件,并附元数据文件记录实体计数与图谱统计。
特点
图谱总计包含605个节点与1746条边,节点类型涵盖行为、代理人、冲突弧、事件、地点、物体、情节节拍、场景边界与主题等十二类,关系类型则包括隶属、因果、预示、情感回响、升级等二十四类。该数据集以Graph Gravity分层机制刻画实体的叙事重要性,虽当前分层结果以asteroid为主,但其架构支持锚点与行星层级的扩展。三维布局坐标与社区检测索引进一步为可视化与结构分析提供支撑。
使用方法
研究者可通过HuggingFace datasets库加载数据集,或直接读取Parquet文件以获取节点、边与坐标数据。典型用法包括:依据primary_label与tier字段筛选特定类型实体;利用source_node_id与target_node_id构建NetworkX有向图以进行图论分析;借助positions.parquet中的三维坐标与社区索引实现叙事网络的空间可视化。该单季数据集适用于单季叙事结构研究,跨季分析则需使用经全局实体注册协调后的megagraph数据集。
背景与挑战
背景概述
叙事学与计算语言学的交叉研究长期受限于缺乏结构化叙事表示资源,传统剧本分析多依赖人工编码,难以规模化捕捉角色互动、因果链条与主题映射。2026年,Fabula Pipeline团队发布encanto-s01-narrative-kg数据集,从《魔法满屋》第一季剧本中抽取605个节点与1746条边,涵盖角色、场景、事件、冲突弧及主题等12类实体,并引入Graph Gravity重要性分层与参与语义关系。该数据集为叙事知识图谱构建提供了首个单季基准,推动了图机器学习与文本生成在剧本理解中的融合,对自动化叙事分析具有奠基意义。
当前挑战
该数据集所应对的领域问题在于:如何从非结构化剧本中系统化地抽取叙事要素并保持因果与情感连贯性,这远超传统命名实体识别或关系抽取的范畴。构建过程中,团队面临多重挑战:需设计参与语义以区分角色在事件中的不同角色,如主动施事与被动受事;需从对白与舞台指示中辨识隐含的冲突弧与主题映射,而非显式标注;需在单季数据中处理Graph Gravity分层缺失锚点与行星级实体的问题,仅238个实体被归为小行星级;跨场景的实体共指消解与事件时序对齐亦增加图谱噪声。这些挑战制约了叙事知识图谱在跨季推理与生成任务中的直接应用。
常用场景
经典使用场景
在叙事分析与计算叙事学领域,该数据集最经典的使用场景是作为叙事知识图谱的基准资源,用以支撑故事结构解析与角色关系建模。研究者可借助其丰富的实体类型(如Agent、Event、PlotBeat)与关系语义(如CAUSAL、FORESHADOWING),对《魔法满屋》单季剧本进行细粒度叙事单元抽取与情节网络构建。通过加载nodes.parquet与edges.parquet,并结合positions.parquet提供的三维布局,可直观呈现叙事张力与冲突弧的演化轨迹,为叙事理解提供结构化视图。
衍生相关工作
该数据集衍生了一系列相关经典工作,其中最具代表性的是基于同一管道构建的跨季统一巨图数据集(encanto-mega-narrative-kg),通过全局实体注册表实现跨季实体对齐与重力层级重算。此外,围绕叙事知识图谱的自动抽取、图神经网络在情节预测中的应用以及基于图谱重力的角色重要性排序等研究,均以该数据集为实验基础,逐步形成了从单季分析到跨季融合的方法论演进脉络。
数据集最近研究
最新研究方向
叙事知识图谱作为计算叙事学与图机器学习交叉的前沿方向,正逐步从静态实体抽取转向深层语义关系建模。encanto-s01-narrative-kg凭借其精细的参与语义、情感回响、伏笔与因果等关系类型,为叙事理解中的长程依赖与情节推演提供了结构化基础。当前研究聚焦于利用图引力分层与社区发现算法,探索角色重要性动态演化与主题显化机制,进而服务于自动剧本生成、跨季实体对齐及叙事一致性校验。该数据集亦推动了基于知识图谱的预训练语言模型在故事理解与多模态叙事推理中的评估范式革新,对数字人文与智能创作领域具有显著的桥梁意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务