# 同类范围与本轮补齐（2026-11-11）

本轮保持 ExampleLoom 的仓库、接口体系和示例驱动定位，按已核验来源比较功能范围。下表不表示这些系统彼此等价，也不以“MoonBit 重写”证明创新。

| 来源 | 已核验的范围 | 本项目已有能力与差距 | 本轮处理 |
| --- | --- | --- | --- |
| [microsoft/prose](https://github.com/microsoft/prose)，仓库样例 MIT；[官方教程](https://www.microsoft.com/en-us/research/project/prose-framework/tutorial/) | DSL、见证函数、排名与交互合成；公开基准还包含字符串转换、文本拆表和结构化提取 | 已有有限 DSL、输出引导搜索、条件/正则、表格结构、交互补样。没有通用的第三方 DSL 扩展接口，也不覆盖完整文档/HTML 提取体系 | 保持固定算子边界，未引入 SDK；不宣称全面替代 PROSE |
| [Foofah](https://github.com/umich-dbgroup/foofah)，MIT；[算子源码](https://github.com/umich-dbgroup/foofah/blob/970864cd53b4c774a3dbdf4589d207f57ec63208/foofah_libs/operators.py) | 从整表示例搜索拼接、拆分、填充、折叠、包装等程序 | 与本项目结构操作有实质交集。我们的严格拆列、已支持的谓词和组合见证仍未覆盖所有异构/不规则任务；46 道首候选失败未解决 | 原始 250 题完整保留，新功能前后同条件验证；没有移植其 Python 搜索实现 |
| [OpenRefine](https://github.com/OpenRefine/OpenRefine)，BSD-3-Clause；[排序文档](https://openrefine.org/docs/manual/sortview) | 多字段排序，文本、数值、日期、布尔及空值/错误位置；另有聚类、对账和多种导入导出 | 原有 22 类操作缺少真正的排序程序。其聚类、实体对账、跨表/外部数据能力也未覆盖 | 新增可学习且可保存的多字段稳定排序，支持文本及精确普通十进制。日期/布尔专用序、区域校对规则和空值位置策略未实现 |
| [MoonFrame](https://github.com/ihb2032/MoonFrame)，Apache-2.0 | 面向 MoonBit 的显式 DataFrame、表达式和表格计算 | 我们关注“示例到可重放程序”，不提供完整 DataFrame API 或通用跨表连接 | 保持独立实现，不引入其运行时；重叠的排序、分组、CSV 不能单独作为创新声明 |

## 本轮为何选择排序

目录、对账明细、按读数排列的长表都需要可复用的行序。此前管道只能沿算子自身规定的顺序输出，无法表达“地区升序、金额降序”这类独立规则。新增 `SortRows` 既可显式使用，也可从示范输入/目标自动推导；可与 Unpivot 等已有操作组合，仍在同一 MoonBit 核心、浏览器 Worker 和 CLI 中执行。

执行语义包括 1–8 个排序键、各键独立方向、Unicode 标量文本序、精确普通十进制数值序、全等时稳定保序、原始单元格拼写保留及有位置的错误。数值不经过浮点或 Int64 缩放，因此在支持的 256 字符输入范围内不会因表示方式丢失比较精度。数字语法不包括指数、分组符或隐式空值转换。

学习器只考虑训练表的完整行置换，按重复行出现次数追踪原始位置，利用前缀等值组内的目标单调性和稳定次序产生排序键。学习至多三个键，限制 32 个前缀、每状态两个排序见证，并将重放计入既有预算；这样控制新增候选对原有结构候选的挤占。信息不足时保留有限候选，依靠新批次比较与本人补充正确示范消歧。

## 已验证与未验证

- 14 项新核心回归使总数达到 122；覆盖负数、负零、不同小数长度、超过 Int64 的值、Unicode 字典序、重复键、稳定性、八键边界、全部训练对、三键学习与结构组合。
- 128 组参考由独立 Python `Decimal` 和稳定排序产生，未导入本项目解析/比较代码。三个业务流程包括新批次、按列名重绑定、保存重载与真实浏览器下载。[记录](evidence/sorting-v0.7.0.json)
- 完整外部任务对照没有提高首候选成绩，也没有回退。Foofah 与 SyGuS 已用于开发；没有运行这些成熟系统的同机速度横评，也没有客户部署证据。[基准及限制](BENCHMARKS.md)

上述来源为概念与语义参考，本轮排序实现没有复制或移植其源码。使用 Foofah 任务的许可关系沿用 `fixtures/foofah/README.md`。后续应按实际用户需求选择下一项能力，不能将成熟系统全部范围纳入当前申报承诺。
