-
Notifications
You must be signed in to change notification settings - Fork 1
Meeting Notes
ion-oset edited this page May 28, 2021
·
1 revision
Attendees: Clifford Wulfman, Ion Y
- There's a deliberate barrier between the ballot generation and the ballot scanning processes. A scanner shouldn't be expected to understand PDFs or read any attributes from them. Metadata needed by the scanner will come from outside of PDF.
- CVRs are usable for our purposes as the output of the scanner, but they could also be used after ballot selection on a mobile or desktop device to help shape the generation of a printed ballot.
- CVRs don't track ballot layout, but they do track a ballot's logical structure (in the ContestSelection and CVRContestSelections. This could be used in combination with a relatively small amount of geometric data to identify locations on a ballot generated by a mobile app that match a user's selection.
- Ballot Studio has PDF layout code that generates actual ballots. It can produce the geometry of the bubbles / voter mark locations. It doesn't export all the other geometry but it does have it if it was needed.
Attributes of CVR records worth noting:
- CVRs track both possible range of choices in contests, candidates et al (as defined in Election records and their sub-elements (Contest, Candidate, etc.), and the actual choices made by the voter (in CVR records and their sub-elements). This allows verification that a cast vote matches an election by manual examination if necessary.
- CVRs track state through multiple stages of the ballot lifecycle (in CVRSnapshots).
- Schemas are available in both JSON and XML. Tools to validate CVRs against both are readily available. The generic schema validation tools appear limited to structural validation: they aren't cross-checking that state such as IDs or selections is consistent between the definitions and the cast votes. But they can be used to make tools that do.
Other notes, for future reference:
- We went over the contents of the repository (it's not quite ready-to-run -- but it's almost there.)
- We're using JSON CVRs for communication between devices. If it's beneficial to generate XML versions that's possible too (e.g. because an existing toolchain for producing PDFs from XML). The one complication is keeping any tools we add on top of the schemas for validation synchronized on both formats.
- We discussed the utility of transforming a set of fields from a much smaller record into a CVR. This could be done with XSLT for XML and JQ for JSON.
Ion: Putting up the repository of tools and docs.
Cliff: Review it with an eye to what the mobile developers need.
Repositories:
-
Ballot Studio: https://github.com/TrustTheVote-Project/BallotStudio
-
NIST-SP-103: https://github.com/usnistgov/CastVoteRecords
Has the full spec. It also has the schemas and example records.