It seems like there's a fundamental distinction between systems where you control data entry (it's manually entered and you can refuse to accept data if it doesn't follow the rules, until the error is corrected) and systems where you are recording whatever you got.
In the latter case, it's often better to keep data for debugging purposes than drop it on the floor. The raw data may not conform to any particular schema, but perhaps you transform it or only use a subset of it for more advanced queries, and do something else with the rejects.
In older systems, this may be the difference between the paper form you got in the mail and what gets entered in the computer.
Refusing to accept input has implications for power relations. Who loses when data is rejected? Who gets a chance to fix it, and how hard do they try? What error messages are there and long does it take to retry?
In the latter case, it's often better to keep data for debugging purposes than drop it on the floor. The raw data may not conform to any particular schema, but perhaps you transform it or only use a subset of it for more advanced queries, and do something else with the rejects.
In older systems, this may be the difference between the paper form you got in the mail and what gets entered in the computer.
Refusing to accept input has implications for power relations. Who loses when data is rejected? Who gets a chance to fix it, and how hard do they try? What error messages are there and long does it take to retry?
Case study: vote by mail.