Years ago, I was a member of the Z39.50 Implementers’ Group. We’d gather from all around the world, maybe 30 or 40 of us, and meet for several days to discuss and vote on possible extensions to this venerable (and still important) information retrieval standard.
A common item of business was approving a new diagnostic code. The BIB-1 diagnostic set is a set of several hundred numeric codes that can be used in Z39.50 to indicate conditions from the very general (#1, permanent system error; #3, unsupported search) to the very specific (#15, Record not authorized to be sent intersystem; #201, Proximity not supported with this attribute combination attribute; #1072, Query term includes characters that do not translate into the target character set). Often someone would bring to the table a request to add a new code that would be useful in their implementation.
The way this went was entirely dependent on how far through the meeting we were. If someone’s request for a new diagnostic came up on the morning of the first day, we could happily spend hours, and I do mean hours, arguing back and forth over whether it was truly necessary, or whether some existing BIB-1 diagnostic could be used in its place. (“Do we really need to add “Unsupported Attribute” when we already have #113, Unsupported attribute type type, and
#114, Unsupported Use attribute? Yes, because unsupported attributes may be of types that are not covered by diagnostics #114-123.”) It was touch and go whether any given proposal would be accepted or not.
On the other hand, the people who had been around the block a few times knew to schedule their request for the tail end of the meeting, when everyone was tired and ready to go home. Then the discussion would always go like this:
Chair: Bob wants to add a new diagnostic “Query is susceptible to misinterpretation under some rhetorical contexts”. Does anyone object
Chair: OK, we assign this number 3,456.
[Exeunt, pursued by a gnawing sense that we might not have done our job as conscientiously as we could have.]
The moral: introduce your proposal late in the day, when people are tired of debating.
So far, so twenty years ago. Flash forward to today, and I see that Congress is deciding right now whether to include the CLOUD Act in the must-pass government spending bill. CLOUD, by all accounts, is pretty bad: the ACLU characterises it as “would let bad foreign governments demand data from US companies without checks and balances”.
Now I’ve read enough about CLOUD to have a well-informed opinion of my own. For all I know, the ACLU is being hysterical, and the bill contains more good than bad. But what I am certain of is that something this important should get a proper debate, and be assessed on its merits. It should not get tacked on as amendment to an unrelated bill — let alone to a “must pass” budget bill.
There’s a lot about US politics that makes no sense to me. Heck, there’s a lot about UK politics that makes no sense to me. But this has to be up there with the weirdest perversions of political process. For BIB-1 diagnostics, OK — just shrug and pass ’em. For bills with the possibility of infringing a quarter of a billion people’s civil liberties? Not so much.
Seriously, America, why do you tolerate this?