Version 1 of #1736

Veritula implements a *recursive* epistemology. For a criticism to be outstanding, it can’t have any outstanding criticisms itself, and so on, in a deeply nested fashion.↵
↵
```ruby↵
def criticized? idea↵
  outstanding_criticisms(idea).any?↵
end↵
↵
def outstanding_criticisms idea↵
  criticisms(idea).filter { |c| outstanding_criticisms(c).none? }↵
end↵
↵
def criticisms idea↵
  children(idea).filter(&:criticism?)↵
end↵
```↵
↵
This approach is different from non-recursive epistemologies, which handle criticisms differently. For example, they might not consider deeply nested criticisms when determining whether an idea is currently criticized.

Veritula implements a recursive epistemology. For a criticism to be outstanding, it can’t have any outstanding criticisms itself, and so on, in a deeply nested fashion.

def criticized? idea
  outstanding_criticisms(idea).any?
end

def outstanding_criticisms idea
  criticisms(idea).filter { |c| outstanding_criticisms(c).none? }
end

def criticisms idea
  children(idea).filter(&:criticism?)
end

This approach is different from non-recursive epistemologies, which handle criticisms differently. For example, they might not consider deeply nested criticisms when determining whether an idea is currently criticized.

#1736 · Dennis Hackethal · 17 days ago