Re: Early Confusion with MARC::Record + more confusion

2003-11-18 Thread Chuck Bearden
On Sun, Nov 16, 2003 at 08:25:41AM -0600, Ed Summers wrote:
> > Is the LC server the "definitive" Z39.50 database? If I suck down a record
> > from there, send it to my database, add more information, etc., etc., how 
> > does it get back to the LC? Does it? Would the way I'd contribute be 
> > to simply run and promote my own Z39.50 server?
> 
> I guess you could say LC has the definitive Z39.50 databasee, since they do
> so much original cataloging. OCLC also has a huge database (WorldCAT) which
> is incredible because of the holdings data it contains (records which tell
> you what libraries have a particular title).
> 
> Z39.50 is a mechanism for *discovery* only. If you want to run your own
> Z39.50 server you might want to check out IndexData's SimleServer [1].
 
Just to clarify a bit: Z39.50 can be used for searching and retrieval of
records from compliant databases, by means of Z39.50 servers and clients.  
One usually thinks of retrieving bibliographic records in MARC format
via Z39.50, but the protocol is, strictly speaking, format-agnostic.  I
belive there are Z39.50 servers offering access to GILS records, for
instance.  When you search LC via Z39.50, you are searching the same
underlying bibliographic data as when you search via the web-based OPAC.
I believe one can expose XML data via Z39.50 as well.

As for who has a definitive database, that's a complex question.  OCLC
loads tapes of LC's cataloging, so you could consider OCLC a superset of
LC.  Many institutions modify catalog records acquired from OCLC before
loading into a local database, so it's difficult to say if there is a
definitive form of a given record.  LC's cataloging copy is generally 
a very good starting point.  Since they are the creators and maintainers
of the Library of Congress Subject Headings and the Library of Congress
Classification, their use of these headings and class numbers could be
considered definitive, but again, many institutions adapt the class
numbers to fit into local shelf-listing schemes.

Cataloging rules don't stipulate procedures and outputs with the same 
degree of specificity as e.g. networking protocols.  LC promulgates its
own interpretations of AACR2 (Anglo-American Cataloging Rules) because
there are many important specific cases not covered by AACR2 which 
must be resolved.  Some institutions follow the LCRIs in toto.  Many
institutions choose to follow some of them.  Some institutions may
ignore them altogether.  

It is understood and accepted that local practice should play a role in 
understanding how to apply cataloging rules and standards in each setting.

I would say that the lack of complete specificity, the reliance on local 
practice, and on the cataloger's judgement, are good things.  First,
catalogers should catalog to meet the needs of their users.  Second,
bibliographic records in their end use are in great measure understood
and resolved by the human mind and not by other programs, which might
choke on the discrepancies.

You are picking things up very quickly.  I hope this little rant was
helpful in providing further background for understanding the cataloging
world you are now exploring.

Chuck Bearden



Lint.pm and 250$b

2003-11-18 Thread Bryan Baldus
When I ran Lint on a file of records, one of the errors I received was "250:
Subfield _b is not allowed."
According to the most recent documentation, 250$b is $b - Remainder of
edition statement (NR). I do not know when this change took place, but it
has been around for as long as I can remember (though my memory only reaches
back to 2000), and according to a colleague, it was in place for a while
before that.

Thank you for your assistance,

Bryan Baldus
Cataloger
Quality Books, Inc.
The Best of America's Independent Presses
1-800-323-4241x460
[EMAIL PROTECTED]



Clarification on MARC::Simple Intent

2003-11-18 Thread Morbus Iff

As part of my first messages to the list, I blurbed:

 Is anyone interested in a MARC::Simple sort of module, that would
 "use English"-ize all the tags themselves ($record->author_name("Logan,
 Robert K.") and $record->author_date("1939-"), which would just be
 wrappers around MARC::Field and the relevant tag numbers).

To which Ed replied:

 You will notice that some of these already exist. author(), title(),
 edition(), publication_date(). I think it could be worthwhile to
 extend these. What did you have in mind? Remember doing this for all
 the MARC tags is probably not a sane thing to do :)

My assumption at the time was that the above MARC::Record methods also
applied to MARC::Field objects, allowing creations like this:

  my $author = MARC::Field->new(
'100',1,'',
  a => 'Logan, Robert K.',
  d => '1939-'
  );

  my $title = MARC::Field->new(
'245','1','4',
  a => 'The alphabet effect /',
  c => 'Robert K. Logan.'
  );

to be re-written as:

  my $author = MARC::Field->new;
  $author->author_name('Logan, Robert K.');
  $author->author_data('1939-');

  my $title = MARC::Field->new;
  $title->something("The alphabet effect /';
  $title->authority( $author->author_name );

Is that something anyone would be interested in? I suspect there are a huge
amount of problems with the approach (most prominently that the idea of
using
tag numbers was to reduce typing in the first place), but has anyone ever
had some non-MARC-expert intern try to modify some code and screw it up?
Would "English"'d methods like this be helpful?

-- 
Morbus Iff ( i've got the creme filling )
Technical: http://www.oreillynet.com/pub/au/779
Culture: http://www.disobey.com/ and http://www.gamegrene.com/
icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus


How Far Does "Different Data Formats" Apply?

2003-11-18 Thread Morbus Iff

In MARC::Doc::Tutorial, it mentions:

 Note to the curious: the C method is actually an alias to the
 MARC::File::USMARC C method. Having separate C methods is
 a design feature of the MARC class hierarchy, since it allows extensions to
 be built that translate MARC::Record objects into different data formats.

How far does "different data formats" apply? Only to MARC subsets? What if
I wanted to make MARC::File::MODS? MARC::File::DublinCore? Would those be
considered valid data formats for extension?

-- 
Morbus Iff ( shower your women, i'm coming )
Technical: http://www.oreillynet.com/pub/au/779
Culture: http://www.disobey.com/ and http://www.gamegrene.com/
icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus


[patch] Accept # as Blank Indicator

2003-11-18 Thread Morbus Iff

In the LC's brochure, a blank indicator is referred with a # character,
and followed with this explanation: "It is the convention to represent a
blank, or undefined, indicator position by the character "#"." If that's
the case, MARC::Field should accept the following as equivalent:

 MARC::Field->new('100','1','', a=>'Logan, Robert K.', d=>'1939-'),
 MARC::Field->new('100','1','#', a=>'Logan, Robert K.', d=>'1939-'),

This is relatively trivial; on line 77 of MARC::Field, replace:

 if ( $indicator !~ /^[0-9 ]$/ ) {

with:

 if ( $indicator !~ /^[0-9 #]$/ ) {

Thoughts?

-- 
Morbus Iff ( cheese and rice saves )
Technical: http://www.oreillynet.com/pub/au/779
Culture: http://www.disobey.com/ and http://www.gamegrene.com/
icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus


Re: Clarification on MARC::Simple Intent

2003-11-18 Thread Ed Summers
On Tue, Nov 18, 2003 at 07:52:04PM -0500, Morbus Iff wrote:
>   my $author = MARC::Field->new;
>   $author->author_name('Logan, Robert K.');
>   $author->author_data('1939-');
> 
>   my $title = MARC::Field->new;
>   $title->something("The alphabet effect /';
>   $title->authority( $author->author_name );
> 
> Is that something anyone would be interested in? I suspect there are a huge
> amount of problems with the approach (most prominently that the idea of
> using
> tag numbers was to reduce typing in the first place), but has anyone ever
> had some non-MARC-expert intern try to modify some code and screw it up?
> Would "English"'d methods like this be helpful?

Personally, I don't like the idea of adding this methods to MARC::Field. 
MARC::Field is a generic class for representing a MARC field, and shouldn't
have methods in it that are specific for a particular flavor of field. Also,
we've taken pains to keep the MARC::Record class as simple as possible, and
this would add a fair amount of complexity for little gain.

It might however be worthwhile pursuing the addition of MARC::Record::Simple
which subclasses MARC::Record, and MARC::Field::Author, MARC::Field::Title, 
... which subclass MARC::Field. Just a thought.

//Ed




Re: How Far Does "Different Data Formats" Apply?

2003-11-18 Thread Ed Summers
On Tue, Nov 18, 2003 at 08:00:26PM -0500, Morbus Iff wrote:
> How far does "different data formats" apply? Only to MARC subsets? What if
> I wanted to make MARC::File::MODS? MARC::File::DublinCore? Would those be
> considered valid data formats for extension?

Yes, this was always the hope that these different formats would be added.
See MARC::File::XML for an example of how to do this.

//Ed


Re: [patch] Accept # as Blank Indicator

2003-11-18 Thread Ed Summers
On Tue, Nov 18, 2003 at 08:11:39PM -0500, Morbus Iff wrote:
>  MARC::Field->new('100','1','', a=>'Logan, Robert K.', d=>'1939-'),
>  MARC::Field->new('100','1','#', a=>'Logan, Robert K.', d=>'1939-'),

I don't like this. The # is used simply as a typographical convention in LC's
online docs. It has nothing to do with the actual content found in MARC
records.

//Ed


Re: [patch] Revised MARC::Doc::Tutorial

2003-11-18 Thread Morbus Iff

Ed and everyone else: I've finished my fiddling with the Doc::Tutorial:
correcting grammar, renumbering the recipes for easier maintenance, and
yadda yadda yadda. It's been committed to CVS.

-- 
Morbus Iff ( i am the horrible hogglewart )
Technical: http://www.oreillynet.com/pub/au/779
Culture: http://www.disobey.com/ and http://www.gamegrene.com/
icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus


Re: [patch] warn, not croak, on 010 non-tag access.

2003-11-18 Thread Morbus Iff
At 8:59 PM -0600 11/17/03, Ed Summers wrote:
>On Mon, Nov 17, 2003 at 09:15:22PM -0500, Morbus Iff wrote:
>> >  Since MARC tags less than 010 can not have indicators or subfields,
>> >  not allowing those ::Field methods to be called on those tags make sense.
>> >  However, this should be a warn(), not a croak(), otherwise looping
>> >  code will need to conditionally check tag numbers before continued
>> >  processing.
>>
>> Any thoughts on this patch?
>
>I think this sounds like a good change, that users (especially new ones) will
>appreciate. Best of all it is a loosening of behavior so existing MARC::Record
>users will be able to upgrade with no pain.

Committed to CVS.

-- 
Morbus Iff ( damn you richards! i will have my revenge! )
Technical: http://www.oreillynet.com/pub/au/779
Culture: http://www.disobey.com/ and http://www.gamegrene.com/
icq: 2927491 / aim: akaMorbus / yahoo: morbus_iff / jabber.org: morbus


Re: [patch] Accept # as Blank Indicator

2003-11-18 Thread Chuck Bearden
On Tue, Nov 18, 2003 at 07:50:39PM -0600, Ed Summers wrote:
> On Tue, Nov 18, 2003 at 08:11:39PM -0500, Morbus Iff wrote:
> >  MARC::Field->new('100','1','', a=>'Logan, Robert K.', d=>'1939-'),
> >  MARC::Field->new('100','1','#', a=>'Logan, Robert K.', d=>'1939-'),
> 
> I don't like this. The # is used simply as a typographical convention in LC's
> online docs. It has nothing to do with the actual content found in MARC
> records.

I think Ed is right.  As I recall, OCLC used to use an underscore for
blank indicator positions, but now they seem to be using the doodad
represented in this image:

  http://www.oclc.org/bibformats/images/specchar/blank.gif

The OCLC conventions are probably much more widely known than the LC
ones simply because most libraries doing copy cataloging use OCLC as
their utility.

The point about the hash sign as a typographic convention is also worth
noting.  That raises the (for me largely idle) question of whether a
blank space ought to be acceptable as the value for an indicator
position.

Chuck



Re: Clarification on MARC::Simple Intent

2003-11-18 Thread Chuck Bearden
On Tue, Nov 18, 2003 at 07:52:04PM -0500, Morbus Iff wrote:
 
> Is that something anyone would be interested in? I suspect there are a huge
> amount of problems with the approach (most prominently that the idea of
> using
> tag numbers was to reduce typing in the first place), but has anyone ever
> had some non-MARC-expert intern try to modify some code and screw it up?
> Would "English"'d methods like this be helpful?

It really depends on who you anticipate using the module.  I suspect 
for working catalogers who have to scrape subfields and indicators from
under their fingernails at the end of a day, the non-English'd methods
are faster and easier.  So it seems to me, and I'm 6 or 7 years out of
practice as a cataloger.

I don't have a good sense of how many non-catalogers and
non-library-staff want to work directly with MARC data.  I'm certain 
that you aren't the only one.  My assumption is that most folks will be
interested in getting data out of MARC for use in systems that make more
sense for their purposes, but not in writing it back to MARC.

If you decide to write something for inclusion in the MARC:: family of
modules, I would suggest that you do some form of usability testing (be
it merely informal polling of potential users) to see if their
understanding of the semantics of your method names corresponds to your
intentions.  That's where I would expect problems to arise.

Chuck