Skip to content

Electron 文件格式协议规范

概述

Electron 是 HeurAMS 软件项目使用的基于 JSON 的专有文件格式,用于存储记忆算法数据和调度信息。

本文档定义了 Electron v1 版本的文件结构和字段含义。

附上版本参照:

Electron 版本HeurAMS 版本说明
v1 (最新)0.4.0 - latest被最新版本使用,支持多种算法,完整的调度和状态管理

MIME 标识

使用的 MIME 标识符:

application/vnd.xyz.imwangzhiyu.heurams-electron.<版本(含 "v" 字母)>+json

例如

application/vnd.xyz.imwangzhiyu.heurams-electron.v1+json

文件结构

Electron 文件采用 JSON 格式,包含算法标识符和对应的算法数据。

根级结构

json
{
  "<算法标识符>": {
    "<算法参数>": <值>,
    ...
  },
  ...
}

支持的算法标识符

算法标识符说明支持版本
supermemo2SuperMemo 2 算法v1

SuperMemo2 算法字段

必需字段

字段类型说明默认值
efactorfloat易度系数 (E-Factor)2.5
reptint已经重复的次数0
intervalint下次间隔 (天数)1
next_dateint下次复习日期时间戳当前时间戳

可选字段

字段类型说明默认值
is_activatedint是否已激活 (0/1)0
last_modifyint最后修改时间戳当前时间戳
quality_historyarray[int]历史记忆质量记录[]
interval_historyarray[int]历史间隔记录[]

算法参数说明

SuperMemo2 参数

  • efactor (易度系数): 取值范围 1.3-2.5,值越高表示记忆越容易
  • interval (间隔): 下次复习的天数间隔
  • next_date: Unix 时间戳,表示下次复习的具体时间

状态管理

激活状态

  • is_activated = 0: 未激活,算法未开始运行
  • is_activated = 1: 已激活,算法正在运行

时间戳管理

所有时间戳均使用 Unix 时间戳格式(秒级精度)。

文件示例

SuperMemo2 算法示例

json
{
  "supermemo2": {
    "efactor": 2.5,
    "rept": 3,
    "interval": 7,
    "next_date": 1698765432,
    "is_activated": 1,
    "last_modify": 1698765432,
    "quality_history": [5, 4, 5],
    "interval_history": [1, 3, 7]
  }
}

算法迭代规则

SuperMemo2 迭代

  1. 用户提供记忆质量评分 (0-5)
  2. 根据质量评分更新易度系数 (EF)
  3. 计算新的复习间隔
  4. 更新下次复习日期

兼容性说明

  • 向后兼容: 新版本应能读取旧版本格式的文件
  • 向前兼容: 旧版本遇到未知字段时应忽略而不报错
  • 算法切换: 支持在同一文件中存储多个算法的数据,但同一时刻只有一个算法处于激活状态