Ed, I am just beginning to think about these things, but it seems to me that the MARC Record is a storage format for things are in reality quite different objects, bibliographic records, holdings, name authority, etc. The methods for handling the format all work fine, of course, across these types of objects. But I don't think it should be possible to process records of one type, when they should be another type. For instance, a holding record has no title fields at all. I think, maybe, the title method should throw an exception, or error when you try to grab the 245 of a holding or other record. (or call a user defined error handler)
As I think about this, I am not sure that inheritance is the right tool -- I am beginning to think maybe that there should be records of Bib, Holding, NameAuthority, Community, etc which have their own methods, and which contain a marc record.
Cheers, Rick
At 08:01 PM 3/14/2004 -0600, Ed Summers wrote:
Hi Enrico:
On Sun, Mar 14, 2004 at 02:47:26PM -0500, Enrico Silterra wrote: > I think that having various derived classes of MARC records. > Holding, Bib Records, Name Authority, etc would be useful.
Interesting question. MARC::Record should handle holdings, authority, classification, and community records just fine since they are all structurally the same.
The type of record could be determined by looking at position 6 in the leader. But I'm wondering why you think having MARC::Record::Bibliographic MARC::Record::Authority (etc) would be useful. MARC::Records generic methods already work fine for all these types of MARC records.
Enabling MARC::Lint (which does deal with the semantics of the tags) to understand authority, classification, community records would be cool. In fact it's on the shortlist of things to do if you are interested [1].
//Ed
[1] http://rt.cpan.org/NoAuth/Bug.html?id=4813
****************************** Enrico Silterra Meta Data Engineer 107-E Olin Library Cornell University Ithaca NY 14853
Voice: 607-255-6851
Fax: 607-255-6110
E-mail: [EMAIL PROTECTED]
http://www.library.cornell.edu/cts/
******************************