# oracle-samples/clara-rules

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/oracle-samples-clara-rules).**

1,231 stars · 114 forks · Clojure · Apache-2.0

## Links

- GitHub: https://github.com/oracle-samples/clara-rules
- Homepage: http://www.clara-rules.org
- awesome-repositories: https://awesome-repositories.com/repository/oracle-samples-clara-rules.md

## Description

Clara Rules is a declarative logic programming library and business rules management system designed for Clojure and Java applications. It functions as a forward-chaining inference engine that evaluates business logic by matching data patterns against defined rules, allowing developers to derive new information and trigger automated actions based on the current state of a fact set.

The engine utilizes a directed acyclic graph for pattern matching, which enables efficient evaluation across complex rule sets. It incorporates a truth maintenance system that tracks dependencies between facts and conclusions, ensuring that derived data is automatically retracted when underlying information changes. To support complex reasoning, the system includes accumulator-based fact aggregation, which processes collections of data through functional reduction operators.

The framework provides interoperability with host-language data models, allowing standard Java beans or records to be mapped directly into the engine for processing. It also includes diagnostic tools that provide transparency into the evaluation process by generating explanations for why specific rules were activated.

## Tags

### Artificial Intelligence & ML

- [Forward Chaining Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/forward-chaining-engines.md) — Implements a forward-chaining inference engine that automatically derives new conclusions from fact updates.

### Operating Systems & Systems Programming

- [Truth Maintenance Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/truth-maintenance-systems.md) — Tracks dependencies between facts and conclusions to automatically remove derived data when underlying facts change. ([source](http://www.clara-rules.org/))

### Software Engineering & Architecture

- [Inference Rule Engines](https://awesome-repositories.com/f/software-engineering-architecture/inference-rule-engines.md) — Propagates data changes and triggers side effects automatically by evaluating rules against updated fact sets. ([source](https://github.com/oracle-samples/clara-rules/tree/main/src))
- [Rete Algorithm Implementations](https://awesome-repositories.com/f/software-engineering-architecture/rete-algorithm-implementations.md) — Utilizes the Rete algorithm to efficiently match facts against complex rule conditions using a directed acyclic graph.
- [Business Rule Evaluation](https://awesome-repositories.com/f/software-engineering-architecture/business-rule-evaluation.md) — Executes predefined logic policies against input data to evaluate business conditions and derive new information. ([source](https://github.com/oracle-samples/clara-rules#readme))
- [Logical Dependency Tracking](https://awesome-repositories.com/f/software-engineering-architecture/dependency-maintenance/logical-dependency-tracking.md) — Ensures derived data is automatically removed when underlying information changes by tracking logical dependencies.
- [Accumulators](https://awesome-repositories.com/f/software-engineering-architecture/fact-based-matching/accumulators.md) — Provides functional accumulators to aggregate and process collections of facts for complex logical reasoning.

### System Administration & Monitoring

- [Declarative Business Rule Modeling](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/rule-based-alerting-engines/alerting-rule-validators/declarative-business-rule-modeling.md) — Uses a declarative domain-specific language to define business logic as data structures.

### Business & Productivity Software

- [Business Process Automation](https://awesome-repositories.com/f/business-productivity-software/business-process-automation.md) — Automates business logic execution by triggering actions whenever specific data patterns are detected.
- [Business Rule Engines](https://awesome-repositories.com/f/business-productivity-software/business-rule-engines.md) — Allows users to define declarative business logic that triggers actions based on detected data patterns. ([source](https://github.com/oracle-samples/clara-rules/blob/main/README.md))

### Development Tools & Productivity

- [Fact-Based Rule Triggering](https://awesome-repositories.com/f/development-tools-productivity/fact-based-rule-triggering.md) — Calculates results across groups of related data points using accumulators to perform logical reasoning. ([source](http://www.clara-rules.org/))

### Programming Languages & Runtimes

- [Declarative Logic Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/declarative-logic-frameworks.md) — Derives conclusions and manages complex state dependencies through automated rule evaluation and fact propagation.
- [Forward-Chaining Rule Engines](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/jvm-languages/clojure/forward-chaining-rule-engines.md) — Provides a declarative logic framework for evaluating business rules and maintaining logical truth in Clojure.
