login about faq

As of February 2015 Libcatcode is no longer accepting new questions. This site will stay up as the owner decides the next steps for preserving the content on the site. Thank you all for your support in the past three years!

Soon after we migrated to a new discovery layer we noticed a problem with a subset of bibliographic data in our database. The layer was showing translated items as being in two languages. For example, an item translated from Spanish into English was showing up as being in both Spanish and English.

It turns out that the records do not have a subfield h in the 041 field. I need to insert the subfield between the language codes in the field (engrus into eng|hrus). After inserting the subfield, the layer should correctly display the language of the item.

The problem is that we have over 19,000 records with different language code pairs. The ILS has a "global update" function, but I would have to create lists for individual language code pair and update each list individually. I can, however, create and export a list of all the records that are missing the subfield h. If I do that, is there something that I can use to edit all the records at one go?

asked Jan 24 '12 at 19:24

user's gravatar image

user ♦♦

edited Jan 24 '12 at 19:24

This sounds like a job for MarcEdit and regular expressions, but first:

Are you sure this is the only kind of 041 in your export? Prior to 2001, an item that was in both English and Russian would also be encoded as engrus.[1] Do your fields have first indicator 1 to indicate that there is a translation? Might there be other languages indicated? For example, if you have videos in your collection, they might have several languages for the various audio tracks.

Anyway, if such a change would get you closer to an accurate catalog, you could do something like the following in MarcEdit. This will find all of the 041s with exactly two languages whose first indicator is 1 (translation indicated), and insert a $h subfield delimiter to mark the second language as the original.

Find what: (^=041  1..a...)(...)$
Replace with: $1$h$2
(Make sure the "Use regular expression" box is checked)

answered Jan 25 '12 at 10:07

zemkat's gravatar image


I forgot to mention the first indicator 1 for my list search. Good eye!

I'll try this out with MarcEdit. Also thank you for the regular expression line, since I haven't really wrapped my head around it yet.

(Jan 25 '12 at 20:33) user ♦♦

You also might want to watch out for the 041 1 fields that have more than two language codes listed. I've run into a few of them here and there, so it would be worthwhile to separate them out and deal with them then.

(Jan 25 '12 at 21:01) yo_bj ♦♦
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: Jan 24 '12 at 19:24

Seen: 4,229 times

Last updated: Jan 25 '12 at 21:01

Powered by hamsters in the server | CSS skin by prtk