Mangle – a language for deductive database programming
9 months ago
- #database
- #datalog
- #programming-language
- Mangle是一种用于演绎数据库编程的语言,它扩展了Datalog的功能,增加了聚合、函数调用和可选类型检查等特性。
- 演绎数据库编程允许统一表示和查询来自多个数据源的信息,并能不受二元谓词限制地建模领域知识。
- Datalog是一种类似SQL的声明式语言,支持递归规则和程序结构化,这些特性都被Mangle继承并扩展。
- Mangle的扩展增强了实用性,但可能牺牲某些特性(如执行终止的保证)。
- 这个开源项目旨在让开发者更容易理解相关概念并促进实验,其实现基于Go语言库。
- 示例规则展示了如何查询存在漏洞的log4j版本及递归依赖检查。
- Mangle支持n元关系和结构化数据,这对需求工程和领域建模特别有用。
- 构建测试Mangle库需使用标准Go命令,若需重新生成解析器则要安装ANTLR工具。
- 项目欢迎外部贡献,代码审查流程参照TensorFlow的PR审核机制。