// Knowledge pipeline for processing atomic facts using System; using System.Collections.Generic; using System.Linq; namespace AIBrain.Services { public class KnowledgePipeline { private List facts; public KnowledgePipeline() { facts = new List(); } public void AddFact(string fact) { if (!string.IsNullOrWhiteSpace(fact)) { facts.Add(fact.Trim()); } } public List GetFacts() { return new List(facts); } public int Count => facts.Count; public List SearchFacts(string query) { return facts.Where(f => f.Contains(query, StringComparison.OrdinalIgnoreCase)).ToList(); } public void ClearFacts() { facts.Clear(); } public Dictionary GetStatistics() { return new Dictionary { ["total_facts"] = facts.Count, ["unique_facts"] = new HashSet(facts).Count, ["avg_length"] = facts.Count > 0 ? facts.Average(f => f.Length) : 0 }; } } }