Mangle is a programming language developed by Google for deductive database programming, serving as an advanced extension of Datalog. It is designed to unify and query data from multiple sources in a structured, declarative way while allowing developers to model complex relationships and domain knowledge beyond binary predicates. Mangle enhances traditional Datalog by introducing features such as aggregation, function calls, and optional type-checking, which make it more practical for modern data-intensive applications. Unlike SQL, Mangle’s declarative syntax naturally supports recursion and modular program structure, making it suitable for representing hierarchical or interconnected datasets like dependency graphs or knowledge graphs. The project’s implementation is provided as a Go library, enabling developers to embed Mangle directly into their applications or services, such as database-like gRPC systems.
Features
- Extends Datalog with aggregation, function calls, and type-checking
- Supports recursive and modular rule definitions for complex queries
- Enables uniform querying across multiple heterogeneous data sources
- Represents both binary and n-ary relationships for rich domain modeling
- Implemented as a Go library for easy application embedding
- Provides tooling for building, testing, and extending via ANTLR-based parsing