目录 / 文档-技术白皮书 / 16-EFT.WP.Methods.Cleaning v1.0
一句话目标:将异构 D_raw 规范化为标准模式 SRef,为后续计量一致、时间与路径处理、契约审计与发布冻结提供统一、可审计的输入基座。
I. 范围与对象
- 适用数据
- 时间序列、路径参数化观测、事件日志、标量/向量/张量字段、环境与参考条件记录。
- 单源与多源合并、批量与流式入口,均以统一 SRef 模式落盘。
- 目标产物
产出 D_std(标准化数据)与 manifest.schema(模式与注册信息),并满足最小契约:unique(pk),non_decreasing(ts|ell),check_dim(expr) 待第4章完成,arrival_forms 占位待第6章完成。
II. 名词与变量(记忆锚点)
- 数据与键:D_raw,D_std,rid,pk,idx_k,schema_ver,TraceID。
- 时间与同步:tau_mono,ts,offset,skew,J,Delta_t。
- 路径与测度:gamma(ell),d ell,L_gamma = ( ∫_gamma 1 d ell )。
- 到达时口径:T_arr_form1 = ( 1 / c_ref ) * ( ∫ n_eff d ell ),T_arr_form2 = ( ∫ ( n_eff / c_ref ) d ell ),delta_form = | T_arr_form1 - T_arr_form2 |,tol_Tarr。
- 计量与单位:unit(x),dim(x),check_dim(expr),u(x),U = k * u_c。
- 质量与缺失:m ∈ {0,1},q_score ∈ [0,1],drift。
- 环境与修正:RefCond,corr_env(x; RefCond)。
III. 模式总则与命名规范
- 命名规则
- 全部使用小写 snake_case,仅 ASCII 字符;前缀按域分组:core.*,timing.*,path.*,arrival.*,env.*,qc.*,prov.*。
- 禁用歧义名与缩写歧义:t 不得代替 ts,n 不得代替 n_eff,T 不得代替 T_arr 或 T_fil 或 T_trans。
- 文本与公式
- 变量与表达统一反引号包裹;任何积分与除号表达加括号并显式测度与域。
- 单位与量纲字段必须存在:unit(field) 与 dim(field)。
- 版本与兼容
schema_ver 采用语义化版本;破坏性变更通过迁移脚本与别名映射保障向后兼容。
IV. SRef 标准模式与最小字段集
- core.keys
- prov.rid,core.pk,core.idx_k[],schema_ver。
- 契约:unique(pk),idx_k 为可复合与可选。
- timing.*
- timing.tau_mono,timing.ts,timing.offset,timing.skew,timing.J,timing.window = Delta_t。
- 契约:non_decreasing(tau_mono),ts = map_to_pub( tau_mono ; offset, skew, J )。
- path.*
- path.ell,path.param = gamma(ell),path.measure = d ell,path.L_gamma。
- 契约:non_decreasing(ell),L_gamma = ( ∫_gamma 1 d ell )。
- arrival.*(占位并保持可空,待第6章计算)
- arrival.c_ref,arrival.n_eff,arrival.T_arr_form1,arrival.T_arr_form2,arrival.delta_form,arrival.tol_Tarr。
- 契约(占位):delta_form ≤ tol_Tarr。
- env.*
- env.RefCond,env.site,env.device,env.mode。
- 规则:任一 corr_env(x; RefCond) 必须记录 RefCond。
- qc.*
- qc.m,qc.q_score,qc.drift,qc.flags[]。
- 规则:m = 1 表示缺失,coverage = 1 - mean(m)。
- prov.*
prov.hash = hash_sha256(blob),prov.signature,prov.issuer,prov.time,prov.TraceID。
V. 主键、外键与索引策略
- 主键构成
- 单主键:pk = {rid} 适用于单源无并发写入场景。
- 复合主键:pk = {source_id, ts} 或 pk = {source_id, ell},用于时间或路径驱动数据。
- 路径型建议:pk = {track_id, ell},保证 non_decreasing(ell)。
- 外键与参照
- fk(env.site) → sites(id),fk(env.device) → devices(id) 等由 registry 提供。
- 孤儿记录必须在绑定阶段拒绝或隔离。
- 索引
- 必选:index(ts) 或 index(ell),index(qc.q_score)。
- 选配:index(env.RefCond),index(arrival.delta_form)(方便后续一致性审计)。
VI. 类型与可空性约定
- 标量类型
- int64,float64,bool,string,bytes;时间统一 int64 或 string 的 ISO 表示,在标准化后落地为 int64 纳秒或毫秒一律声明。
- unit(field) 与 dim(field) 必填(对 bool/string 可置 unit = "-",dim = "-")。
- 可空性
- 缺失不以 null 表达,统一由 qc.m 标注;业务上必须缺省的字段以占位默认值并在 manifest 解释。
- arrival.* 允许在第3章结束时为可空,占位等待第6章计算。
VII. 别名兼容与标准化规则
- 别名映射(示例)
- 时间:timestamp|time|t → ts,mono_ts|logical_ts → tau_mono。
- 路径:s|arc_len → ell,path_len → L_gamma。
- 到达时:c|c0 → c_ref,neff|n_effective → n_eff。
- 质量:missing|mask → m,quality|score → q_score。
- 归一策略
- 名称归一:去除空格、大小写、非 ASCII,替换为 snake_case。
- 单位归一:仅记录单位与量纲,不做数值转换(数值转换留至第4章)。
- 值域校验:对枚举与布尔进行强制收敛,非法值进入隔离区。
VIII. 流程 M10-3(模式绑定与标准化)
- 入口注册与读取
读取 D_raw 与入口元数据,提取 schema_ver 与来源标签。 - 规范化命名
执行 standardize_names(ds, registry),应用别名映射与字段白名单,产出 D_std.tmp1。 - 键与索引构建
生成或校验 pk 与 idx_k,对 ts|ell 建必要索引,产出 D_std.tmp2。 - 基本契约与时/径单调检查
断言 unique(pk) 与 non_decreasing(ts|ell),失败进入隔离报告。 - 类型与可空性整理
统一基础类型与缺失表达,生成 qc.m 与 qc.flags[],产出 D_std.tmp3。 - 单位与量纲字段补全
为所有数值字段补全 unit(field) 与 dim(field),产出 D_std.tmp4(数值转换延后至第4章)。 - 到达时与环境占位
建立 arrival.* 与 env.* 占位字段,填入可用的 c_ref、RefCond,产出 D_std。 - 清单与注册
生成 manifest.schema 与 registry 引用,记录变更摘要与统计。
IX. 实现绑定 I10-3(接口与不变量)
- 接口原型
- standardize_names(ds, registry) -> ds'
- register_schema(ds, registry) -> (schema_id, report)
- validate_dataset(ds, rules) -> report
- 前置条件
ds 必须可迭代访问字段;registry 提供别名映射、键策略、外键表与允许字段表。 - 后置条件与不变量
- unique(pk) = true,non_decreasing(ts|ell) = true,fields(ds') ⊇ fields(SRef.minimal)。
- unit(field) 与 dim(field) 完整,arrival.* 与 env.* 占位存在。
- manifest.schema 含 schema_ver、registry_hash、rename_map、key_policy。
- 失败语义
- 命名冲突或关键字段缺失 → E_SCHEMA_MISSING;
- 主键不唯一 → E_PK_DUP;
- 单调性失败 → E_MONO_FAIL;
- 外键不匹配 → E_FK_FAIL;
- 类型非法 → E_TYPE_INVALID。
- 以上均要求生成隔离分支与详细 report。
X. 契约与断言(本章必过项)
- 结构契约
- exists(core.pk),exists(timing.tau_mono|timing.ts),exists(path.ell)(路径型数据)。
- fields(ds) ⊇ SRef.minimal。
- 键与时/径契约
unique(pk),non_decreasing(ts) 或 non_decreasing(ell)。 - 计量与单位契约(占位通过)
forall x ∈ numeric_fields: exists unit(x) ∧ exists dim(x)。 - 到达时与环境契约(占位通过)
exists(arrival.c_ref),exists(env.RefCond);arrival.delta_form 可空,待第6章完成后强制约束 delta_form ≤ tol_Tarr。
XI. 审计、统计与面板字段
- 统计概要
- n_rows,n_fields,dup_pk,mono_breaks(ts|ell),coverage = 1 - mean(qc.m)。
- alias_applied,unit_dim_filled,fk_failures。
- 面板与告警
- 面板必含:coverage,dup_pk,mono_breaks,fk_failures。
- 告警阈值建议:dup_pk = 0,mono_breaks = 0,fk_failures = 0,coverage ≥ q_min_coverage。
XII. 交叉引用
- 量纲一致与单位归一:见第4章。
- 时间轴与同步:见第5章。
- 路径与到达时计算:见第6章。
- 去重与参照完整性细化:见第9章。
- 契约与发布冻结:见第10章。
- 质量评分与审计:见第14章。
- 接口汇总:见附录A;契约库:见附录B;清单样例:见附录C。
小结
本章将输入统一收敛到 SRef,以命名、键、类型、单位/量纲字段与到达时/环境占位为核心产物,形成可审计、可扩展、可复用的标准输入层。自此,数据已具备进入第4–6章计量一致化、时间与路径一致化、到达时两口径计算的前提条件,并满足第9–10章契约与发布冻结的结构性要求。
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/