[论文解读] MediaWiki Grammar Recovery
本文从基于PHP的MediaWiki解析器中全面恢复并逆向工程了MediaWiki语法,将原本零散、不一致且充满错误的语法片段转化为一份清晰、可操作的BNF格式二级语法。该成果实现了跨平台的可靠解析、验证、迁移与测试,未来计划扩展至记法标准化、歧义性解决及词法优化。
The paper describes in detail the recovery effort of one of the official MediaWiki grammars. Over two hundred grammar transformation steps are reported and annotated, leading to delivery of a level 2 grammar, semi-automatically extracted from a community created semi-formal text using at least five different syntactic notations, several non-enforced naming conventions, multiple misspellings, obsolete parsing technology idiosyncrasies and other problems commonly encountered in grammars that were not engineered properly. Having a quality grammar will allow to test and validate it further, without alienating the community with a separately developed grammar.
研究动机与目标
- 从先前零散且不一致的基于PHP的MediaWiki解析器中逆向工程并重构MediaWiki语法。
- 生成一份可用于解析、分析与转换MediaWiki内容的清晰、可操作的BNF格式语法。
- 通过提供可靠的语法基础,支持自动化Wiki迁移、静态验证与解析器兼容性测试。
- 为未来语法适应、记法标准化以及与Rascal和ANTLR等外部工具的集成铺平道路。
- 解决wiki标记语言(尤其是MediaWiki)缺乏可访问、正确且可维护语法的问题。
提出的方法
- 从MediaWiki解析器的原始PHP源码中恢复语法,其中包含多种记法的孤立片段。
- 识别并修正语法与语义错误,包括拼写错误、缺失的元符号及不一致的记法。
- 将恢复的语法转化为结构一致且正确运行的二级BNF语法。
- 保留并部分重新整合原始源码及HTML DTD中的词法定义与实体引用。
- 应用语法工程技巧,如语法适应、转换与验证,以确保语法的鲁棒性与可重用性。
- 使用形式化语法分析检测歧义与结构问题,未来工作计划予以解决。
实验结果
研究问题
- RQ1如何将从生产级解析器中提取的大型、零散且不一致的语法逆向工程为一致、可操作的形式化语法?
- RQ2当源文档不完整或错误时,哪些技术能有效恢复并验证语法?
- RQ3如何组织恢复的语法,以支持在不同Wiki平台上的解析、迁移、验证与测试?
- RQ4将过程式解析器实现转换为形式化、机器可处理的语法时,面临的主要挑战是什么?
- RQ5如何将语法恢复扩展至词法分析、实体处理,并与EBNF或ANTLR等外部形式化体系集成?
主要发现
- 恢复的语法是一份清晰、一致且可操作的二级BNF语法,适合与外部工具集成并进一步转换。
- 原始语法片段在记法上不一致,错误频发,几乎无法在未恢复的情况下使用。
- 恢复过程成功统一了分散的语法片段,并修正了语法与语义上的不一致。
- 词法定义与HTML实体引用得以保留并部分重构,为三级语法奠定了基础。
- 本项目证明,从生产级解析器代码中恢复语法是可行的,并可产出一份可用且可维护的语法,用于Wiki内容处理。
- 恢复的语法支持未来应用,如静态分析、解析器测试与跨平台Wiki迁移。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。