A simple path for delegation
David MENTRE <dmentre <at> linux-france.org>
2006-12-31 17:08:06 GMT
I thought about the delegation system of demexp and I think I'll try to
implement a simple scheme, following Jérémy's original idea: implement
a kind of vote Vote_as("delegate_name") in each question.
This scheme has several advantages:
* it is simple: for each question, it is easy to compute the weight of
each delegate and the vote result;
* it does not rely on classification. While the client will certainly
use the classification to compute to which delegate one should
delegate a given question, the delegation system itself is orthogonal
to the classification system, allowing to change one without disturbing
* it allows transitive delegation while not having its complexity. As
the expression of delegation is only done at the terminal node of the
delegation graph, any conflict (e.g. same participant voting and
delegating the same question) can be solve at the question stage
itself, with simple rules (a vote of a participant cancels his
* it pushes all the complexity of delegation computation to the
client, which makes the scheme more scalable.
One potential big disadvantage: its computational cost. For each
question, we have as votes as participants (delegating or not). The cost
of changing a delegation for a participant might be important. We will
see if this really an issue.
Probable XDR API (q_id is a question id):
* delegate(cookie, delegate_id, q_id array)
* undelegate(cookie, q_id array)
* get_my_delegation(cookie, q_id array) |-> array of (q_id, delegate)
* get_delegate_vote(cookie, q_id array) |-> array of (q_id, vote)
The API is designed so that several questions can be
delegated/undelegated at once, so as to reduce network latency overhead.
Feel free to comment if you see drawbacks in such a scheme.
Happy new year and best wishes,
GPG/PGP key: A3AD7A2A David MENTRE <dmentre <at> linux-france.org>
5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A