This is a rant. This is a rant of the Caveat Lector Brain-All-’Splody Broadcast System. This is only a rant.
You know, I got into this business partly so I could do standards work again. I’m starting to change my mind about that. I don’t think librarians should be let anywhere near standards work. THEY DO STUPID STUFF. That’s all there is to it. If I get let near a standard, my MLS apparently means that my IQ will drop into my Munros, and I will do stupid stuff too.
So, yeah, my homegrown COinS aren’t being picked up in Zotero. I start delving into OpenURL to figure out why. I shortly begin to wish I’d never been born. OpenURL is a right mess. If anybody’s written “OpenURL for Dummies,” please send me a copy.
Per the OpenURL spec, you can emit metadata as XML or plain-text key/value combos (called KEVs for no reason I can imagine except to create one more stupid unnecessary acronym). Groovy. Plain-text please. Now you can put in some stuff starting with ctx_ to tell the resolver something about your context object. COinS tells you exactly what should be put in, so this is also groovy.
The lack of examples in the OpenURL spec is deeply ungroovy, not to say stupid. Some of us work from life rather than EBNF. I’m just sayin’.
Now we get to stuff that starts with rft, and the stupidity comes thick and fast. Stupidity #1: some things start with rft_, and other things start with rft., and on first glance it’s the diametrical opposite of clear or obvious what that’s about. Examples? Piffle. We’re NISO. We don’t do examples.
Stupidity #2, The Big Kahuna: KEVs. Guess what OpenURL will let you describe with them? Books, yeah. Journals and pieces thereof. Dissertations. Patents.
And that’s all.
I hated my tribe the instant I figured that out. I hated them with a fiery hate that only escaped being deathless because hell, I have to work with these people. When, when, when is it going to dawn on my tribe that the world of information does not stop at bloody print?
Let’s review what I’m doing this for, shall we? I want to embed COinS, which are little OpenURLs in a pretty <span> tag, in item pages (and eventually item listings) in the institutional repository I run.
Which contains books. Also journals and journal articles. Also images. Also audio recordings. Also videos. Also websites. Also grey-lit. Also other stuff.
I could describe all this in XML, because there’s an XML OAI-DC metadata format for OpenURL. But I can’t use XML in COinS; the whole point of COinS is to boil an OpenURL down into a nice mostly-invisible string in a web page. Find wall. Beat head against same. Wonder if I shouldn’t have just gone with unAPI in the first place.
Hate my tribe. Hate them for even asking why nobody uses library standards in the larger world, when “brain-dead inflexibility in practice” is one obvious and compelling reason, and “incomprehensibility” is another. Sure, it’s theoretically possible to design KEVs for anything. Just nobody’s done it, you see. Was there one single non-librarian on the OpenURL committee? Anybody, to feed them real-world-outside-library use cases?
There’s an out. Sort of. There’s a couple of outs. Sort of. Out one: The KEV guidelines say that it’s okay to use book KEVs for things that ain’t books. This? Is stupid. I really really hate the idea of intentionally creating metadata that tells lies. A better out would have been to create a KEV up-front for, you know, things that ain’t books.
Out two: There’s also a “trial use” KEV format for plain old Dublin Core. So I go back to my code and somewhat less than patiently retool it to use the book KEV format for books, the journal KEV format for articles and article-like things, and the trial-use-DC format for everything else.
Sounds good, right? Because DSpace is all about the Dublin Core metadata. Not so fast, grasshopper. I said “plain old” Dublin Core. Meaning unqualified Dublin Core. Meaning metadata even stupider than DSpace’s native metadata. So I can make my metadata lie, or I can make it stupid. Shoot. Me. Now.
(I’ve been teetering about which way to go. I’m now leaning cautiously toward unqualified Dublin Core, after first coding it up the other way. Monday I retool my code and see what that looks like.)
There’s more stupidity buried in there, if you look. “Suggested best practice” for the Dublin Core KEV “would be to take values from the DCMI Type Vocabulary (http://dublincore.org/documents/dcmi-type-vocabulary/) for ‘type’ and to use MIME types for ‘format’.” Because, you know, there’s no such thing as a compound document, or an item available in multiple formats, in OpenURL’s shiny happy world.
$DEITY have mercy, OpenURL is a stupid spec. Great idea, and useful in spite of itself. But astoundingly stupid. Ranganathan preserve us from librarians writing specs!



