Hello,

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[1].

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
   the other;

 * 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
   delegation);

 * 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,
d.

Footnotes: 
[1]  http://demexp.org/en/doku.php?id=delegation#a_delegated_vote_per_question

-- 
GPG/PGP key: A3AD7A2A David MENTRE <[EMAIL PROTECTED]>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A


_______________________________________________
Demexp-dev mailing list
Demexp-dev@nongnu.org
http://lists.nongnu.org/mailman/listinfo/demexp-dev

Répondre à