Re: [OVC-demo-team] Re: Reconciliation System GUI (was: Re: Ballot GUI)

From: David Mertz <voting-project_at_gnosis_dot_cx>
Date: Wed Feb 25 2004 - 11:59:59 CST

> Right. By serialize, I only mean write-to-disk. In thinking about the
> ballot
> format (and I'd like to hear David M.'s thoughts on this) for both the
> files
> scanned in and the files stored by the vote station, is there any real
> reason
> to have these be XML? If I can simply store the data structures
> themselves on
> disk (using Python's pickle facility), then it will be much easier to
> code
> comparison logic. Perhaps David's xmlpickle module would work for this.

The advantage I see to an XML format for ballot records is the
transparency it provides. Elections officers themselves will not want
to read the XML data, but it does not take much technical knowledge to
read XML (if the tags used are fairly descriptive). This circumvents a
concern that some inappropriate data (e.g. that compromises anonymity)
is hidden inside data structures/files.

The output of gnosis.xml.pickle is nominally XML, of course. But
reading it gives you a sense of the internal way the data is
manipulated, not the semantic content of a ballot as such. For
example, being able to read that some data is contained in a tuple is
not nearly as self-documenting as is explicitly indicating that it
represents a candidate name (by naming a tag appropriately).

Moreover, using a explicit XML format allows 3rd party components to be
substitutable--even ones written in languages other than Python. For
example, perhaps someone wants to create an interoperable voting
interface, other than the GUI and VII ones (maybe web-based, for
example). Or maybe someone just doesn't trust that our reconciliation
or tabulation components are correct--they can validate our results
using "clean room" versions.

FWIW, gnosis.xml.objectify makes it pretty darn painless to READ
arbitrary XML data structures into Python objects. But I quite
acknowledge that WRITING these structures requires planning as to the
specific elements and attributes needed (and their order, etc)... and
some loop/print/branch logic to do the concrete output.

All that said, I defer to Fred on the actual decision. Whatever he
says, I concur with.
==================================================================
= The content of this message, with the exception of any external
= quotations under fair use, are released to the Public Domain
==================================================================
Received on Thu Apr 1 02:40:20 2004

This archive was generated by hypermail 2.1.8 : Thu Apr 01 2004 - 02:40:36 CST