Open markusvoelter opened 6 years ago
Some considerations:
Some additional points:
Result Publication
"can join after 'seal'" should probably be "can join until 'seal'"
"Number of Options", "Procedure" and "Abstention Handling" can be generalized as follows:
DataType
Consensus
DataType
to the single element of Type DataType
, which is the result of the decisionExamples:
consensus(set<bool> votes): bool = votes.count(true) >= votes.count(false)
consensus(set<Enum> votes): Enum = votes.select{|it| (it, votes.count(it)) }.max{ |it| it.second }.first
consensus(set<integer> votes): integer = votes.sum() / votes.size() # works also for float
# everybody has 2 votes and every element with more that 25% is in
consensus(set<set<string>> votes): set<string> = let valid = votes.where{ |it| it.size() == 2 }, all = valid.inject(union) in
all.where{ |e| valid.count{ |it| e in it } >= (valid.size() / 4) }
Build a feature model of the domain of decisions and design a DSL around it. A starting point are the following points mentioned by @chriseth