Add Symbolic Reasoner

This commit is contained in:
2026-04-12 16:14:50 +00:00
parent 2240143df7
commit fec98e9499

View File

@@ -0,0 +1,26 @@
"""Symbolic Reasoner — Rule-based event triggering for the Mnemosyne archive."""
import json
class Reasoner:
def __init__(self, rules_path):
with open(rules_path) as f:
self.rules = json.load(f)
def evaluate(self, archive_entries):
triggers = []
for rule in self.rules:
if self._check_condition(rule['condition'], archive_entries):
triggers.append(rule['action'])
return triggers
def _check_condition(self, condition, entries):
# Simple symbolic checks: e.g., "count(type=error) > 5"
if condition.startswith("count"):
parts = condition.split(" ")
key, val = parts[0][6:-1].split("=")
op = parts[1]
threshold = int(parts[2])
count = sum(1 for e in entries if e.get(key) == val)
if op == ">": return count > threshold
return False