This whole thing shades into another space I think a lot about, which is error handling in programming languages and systems.
Some parts of the stack I described above really seem to fall under “error handling”—what do you do if you can’t reach component A from component B? Others seem to fall under “data representation”—If you poll someone who they’re voting for, and they say “I’m not voting”, or “I don’t know”, or “fuck you”, or “je ne parle pas Anglais”, what do you write down on the form (and which of those cases do you want to distinguish versus merge?) But the two are closely related.
This whole thing shades into another space I think a lot about, which is error handling in programming languages and systems.
Some parts of the stack I described above really seem to fall under “error handling”—what do you do if you can’t reach component A from component B? Others seem to fall under “data representation”—If you poll someone who they’re voting for, and they say “I’m not voting”, or “I don’t know”, or “fuck you”, or “je ne parle pas Anglais”, what do you write down on the form (and which of those cases do you want to distinguish versus merge?) But the two are closely related.