I’ve been saying for awhile we need a solid and widely accessible bibliograpic data model for citations, and finally just decided to write one myself.
The start of the documented version of the RDF schema is here.
I’ve just decided to model the basic classes for now; the sort of thing I’d do anyway if I was writing some web app, or using RDF. One could then just incorporate these classes into other contexts: RSS feeds, Dublin Core-focused RDF, or maybe even into a Django or Rails-based web app model. RDF/OWL provides a nice way to formalize the relationships.
In earlier versions of my thinking on this, I relied much more on the structural approach I’ve been using for citation formatting. So there I’d have “base classes” like “part-InMonograph” and so forth.
But when I got to it, I found this rather limiting, as you don’t always know how an item relates to anotther item. If you cite a song, for example, you don’t know that it’s on an album. So I’ve left things fairly flexible.
The primary classes are Agent, Event, Reference, and Collection. The rest of the currently 55 classes are subclasses of those.
One of the nice things about OWL is that not only can I define classes and subclasses, and then annotate them with text, but I can also make statements about how my classes relate to other classes. For people in the library world, the interesting equivalences I’ve drawn here are to the new FRBR RDF vocabulary. I have made the primary biblio:Reference class a subclass of frbr:Manifestation. This would allow descriptions encoded in my more grounded vocabulary to be placed in the context of a wider and more general FRBR view as needed.