Hi folks, My main reason for writing this mailing list is to ask for help on a couple of things: 1. I've written and published the results of many elections as tabulated by my relatively new software for displaying election results, and I want some feedback on it. 2. There's a text format (called "Aggregated Ballot Information Format" or "ABIF") that I've helped create, and I'm hoping folks familiar with the devotee codebase would be willing to look at the format, and maybe even add ABIF support to devotee.
Way too many details follow.... --------------- My name is Rob Lanphier and I'm partly to blame for the Debian Project's switch to the Schulze method from "Concorde", the latter of which was the voting system Debian developers used until I pointed out that "Concorde" was probably "Condorcet", and that someone may have read an article I wrote for the Perl Journal, and misremembered the name. The aforementioned Perl Journal article: https://robla.net/1996/TPJ "Schulze" is a specific type of Condorcet-winner-compliant system, created by Markus Schulze, who helped Debian move to his system. "Copeland" is another Condorcet system that is a little easier to understand, and almost always picks the same winner as Schulze. I think Schulze is perfectly cromulent, so I'm not about to try getting you to switch. What I do want some feedback on is some software I wrote recently, and I'd like to discuss the possibility of the Debian community publishing its results in ABIF. I've cloned the Devotee repository, but I'm not sure I'm in a good position to wrap my head around the codebase. These days, I'm much more fluent in Python. I've been working on a Python library to tabulate elections, and I've been putting together a website to visualize elections. I've put in the data for all of the DPL elections here: https://abif.electorama.com/tag/debian The user interface for the "ABIF web tool" (awt) is a little janky, but it's pretty powerful. It's possible to get the Condorcet/pairwise winner for any election if one knows how to express the election in ABIF. What is ABIF (you may be asking)? ABIF is "Aggregated Ballot Image Format". It's a plain-text format that can be used to express pretty much any election that uses cardinal or ordinal ballots. Since Debian uses ordinal ballots, it seemed like I should make sure that abiftool.py can convert Debian election logs into ABIF. A particularly interesting Debian Project Leader result from a few years ago is this one: https://abif.electorama.com/id/DPL2003 Note that awt tabulates the DPL2003 results not only using Condorcet, but it also tabulates using "instant-runoff voting" (also known as "IRV" or "RCV" as it's called in the United States). What's interesting about the DPL2003 election is that Condorcet methods and IRV result in different results. Pretty much all of the other elections that the Debian community has had have resulted in the same Condorcet vs IRV winner. Election nerds (like me) find DPL2003 fascinating. Circling back to my main requests: 1. Is awt actually giving the correct result? Do y'all see any bugs? The source code for awt is all out there, and it's licensed under GPLv3. "awt" uses the "abiflib" library bundled with "abiftool.py", which is a powerful command line interface in front of abiflib, so if you'd like to run/debug abiflib locally, learning abiftool.py is probably the most helpful place to start. 2. Would anyone familiar with the devotee codebase be willing to add ABIF support to devotee? The format for ABIF is pretty simple to learn. I also want to mention that I've recently started a mailing list called the "election-software" mailing list, which can be found here: https://electowiki.org/wiki/Election-software_mailing_list I would be delighted if the devotee developers subscribed and posted to the election-software mailing list. Cheers! Rob