[论文解读] SWISH: SWI-Prolog for Sharing
SWISH 是一个基于 SWI-Prolog 和网络技术的基于 Web 的协作式 Prolog 开发环境,支持实时代码编辑、查询执行和结果可视化。它可与 ClioPatria 和 TRILL 等系统集成,支持教育部署,并通过使用 Pengines 实现服务端执行的模块化客户端-服务器架构,实现共享的交互式 Prolog 编程。
Recently, we see a new type of interfaces for programmers based on web technology. For example, JSFiddle, IPython Notebook and R-studio. Web technology enables cloud-based solutions, embedding in tutorial web pages, atractive rendering of results, web-scale cooperative development, etc. This article describes SWISH, a web front-end for Prolog. A public website exposes SWI-Prolog using SWISH, which is used to run small Prolog programs for demonstration, experimentation and education. We connected SWISH to the ClioPatria semantic web toolkit, where it allows for collaborative development of programs and queries related to a dataset as well as performing maintenance tasks on the running server and we embedded SWISH in the Learn Prolog Now! online Prolog book.
研究动机与目标
- 创建一个基于 Web 的交互式 Prolog 开发环境,支持实时协作、教育和数据分析。
- 实现 Prolog 与网络教程、文档和数据探索工作流的无缝集成。
- 提供一个可扩展、安全且可扩展的平台,通过浏览器共享和执行 Prolog 程序。
- 通过将 Prolog 嵌入网页并支持多种用例(包括概率推理和语义网查询),扩展 Prolog 的可访问性。
- 为未来增强功能(如多文档编辑、完整模块编辑和基于 Markdown 的教程创作)奠定基础。
提出的方法
- 系统使用基于 JavaScript 的客户端,基于 jQuery、Bootstrap 和 RequireJS 构建,用于在浏览器中实现交互式编辑、查询输入和结果渲染。
- 服务端完全使用 SWI-Prolog 实现,结合 HTTP 服务器库和 Pengines 框架,通过 HTTP 远程执行 Prolog 查询。
- SWISH 集成了现有的 Prolog 库,用于语法高亮、代码补全、文档查找和交叉引用。
- 通过服务器管理的共享源代码仓库,支持源代码的共享和版本控制。
- 对于特定用例(如概率推理),系统通过修改客户端 JavaScript 代码扩展查询执行器,而无需更改核心服务端。
- 该架构支持嵌入网页(如 Learn Prolog Now!),并与语义网工具(如 ClioPatria 和 TRILL)集成。
实验结果
研究问题
- RQ1如何设计一个现代的基于 Web 的界面,以支持交互式、协作式的 Prolog 编程?
- RQ2Prolog 在多大程度上可以有效嵌入基于 Web 的教育材料和数据分析工作流中?
- RQ3如何通过 Pengines 安全且高效地通过 HTTP 暴露服务端 Prolog 执行?
- RQ4哪些架构模式能够实现 Prolog 与网络技术的无缝集成,以实现实时代码和结果共享?
- RQ5如何扩展 SWISH 以支持高级用例,如 RDF/OWL 推理和概率逻辑编程?
主要发现
- SWISH 通过浏览器界面成功实现了实时协作式 Prolog 编程,支持实时代码编辑、查询执行和结果可视化。
- 该系统已成功嵌入在线教材 Learn Prolog Now!,证明了其在教育场景中的实用性。
- SWISH 支持与 ClioPatria 集成,实现协作式数据探索和服务器维护,支持对 SPARQL 和 SQL 支持的数据集的共享访问。
- 通过仅修改客户端执行器逻辑,系统实现了对 cplint 和 TRILL 的概率 Prolog 程序执行,展示了其可扩展性。
- 尽管存在稳定性问题(如内存泄漏,需每周重启),系统仍保持可用性,对活跃用户的影响最小。
- 该架构支持未来增强功能,如完整模块编辑、多文档工作流和基于 Markdown 的教程创作。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。