CSU SFX Metalib resource web site
formatting image  
       Example Screens     Display Logic     Logos     Local Print Holdings    
 
home
metalib

<[ back ]

Article level — Conversion Tool

How do you do it?

In this particular method, you download from your catalog all of your ISSNs and their corresponding holding statements.  Take the holding information, convert it into a syntax that SFX recognizes, and upload that information to SFX.

 

 

What does that do?

 

Some stuff you can download

Converting your local journal holdings into the SFX syntax can be fairly straightforward, depending on the consistency and accuracy of your holding statements.

 

San Marcos SFX Conversion Script

At San Marcos, we developed a conversion script that uses pattern-matching (regular expressions) to convert our local holdings into the SFX syntax. You can download a desktop version here:

 [ Conversion Script (.zip, 11k)]

We also developed a Web interface that can query our catalog and convert the holding information on the fly, catching some errors and flagging statements over 255 characters. We use this for continued maintenance. You can see it in action here:

[ Chameleon Web Interface ]

Here are some ISSNs you can use as examples: 0098-7484, 0003-0279, 0002-8231

 

A Couple of Things to Keep in Mind

You need to make changes to the above script!

The conversion script above is specifically designed for the holdings at San Marcos. To implement something simiar at your campus, you will need to re-write the regular expressions to match the syntax you use to express your holdings. This can be fairly simple, especially if your syntax is similar to ours, but could be rather complex.

Watch out for the 255 character limit

The threshold field in SFX has a 255 character limit. A holding statement with just a few broken runs will result in a lengthy threshold statement when converted. Any holdings over 255 characters will need to be simplified to work properly, which can be time consuming if you have a lot of journals with broken runs.

You don’t need titles with your ISSNs

SFX will match the ISSN to the title for you, and in fact has no place for you to upload title information.

Upload limits

Dataloader doesn’t like uploading more than about 1,500 titles at a time. If you have 2,000 ISSNs you want to upload, you should divide them into two separate uploads of 1,000 a piece.

Object Lookup

You’ll need to edit the catalog’s getHolding service so that object look-up is set to “yes.” This tells the service to check your ISSNs before displaying the catalog link on the menu -- if the requested ISSN is not in your list, the catalog link doesn’t display.

Don’t forget about book requests

Your default getHolding service has a threshold set to ($obj->need('ISBN') || $obj->need('ISSN')), basically making sure that a request has an ISSN or an ISBN in it to ensure a proper search of your catalog.

However, now that you’ve uploaded your ISSNs, and the service does an object look-up of those numbers, the reference to ISBNs is unnecessary. You should change the threshold to $obj->need('ISSN').

 

 

How it works

The script looks for patterns in the holding information, using a regular expression object to match various logical holding statements and replace the local syntax with the SFX syntax.

The concept is fairly simple. The majority of holding statements are made-up of various start and stop dates, expressed using volume, issue, and year information. Each start and stop date falls into four logical types: (1) a "complete statement," which includes volume, issue, and year; (2) a "volume statement," which includes just the volume and year; (3) an "issue statement," which includes just the issue and year, when the periodical does not use volumes; (4) a "year statement," which includes only the year.

Each of these four logical types can then be combined together into logical pairs. For example, you may have a "complete statement" and a "volume statement" paired together to create a start and stop date, which would look something like this:

1:1(1990)-9(1999)

We can also add to these pairings two other special types: (5) open-ended statements, which indicate that issues are still being received, and (6) single issue statements. There are therefore 19 logical pairs that can be combined in this way. They are:

Complete statement to Complete statement
Complete statement to Volume statement
Complete statement to Year statement
Complete statement to No end
Complete statement alone

Volume statement to Complete statement
Volume statement to Volume statement
Volume statement to Year statement
Volume statement to Open Ended
Volume statement alone

Issue statement to Issue statement
Issue statement to Year statement
Issue statement to Open Ended
Issue statement alone

Year statement to Complete statement
Year statement to Volume statement
Year statement to Year statement
Year statement to Open Ended
Year statement alone


There are, of course, some exceptions to this scheme, some of which are important to SFX, some of which are not.

(1) Not all syntaxes allow for a distinction between volume and issue information. The statement "101(1990)," for example, could mean issue 101 or volume 101. A person can figure this out by looking at the journal itself, but a script does not have that luxury.

(2) "Mixed Year" statements are not uncommon among periodicals. You might, for example, have a year expressed as "1994/95." SFX does not have a mechanism for interpreting years expressed in this way, so you must simplify the date to express just a single year. In the example above, we might use simply 1995.

(3) Some print periodicals are held only for a year or two, and thus might be expressed in a holding as "Latest two years retained," rather than any specific volume and issue information. SFX has a mechanism for expressing these types of statements, and the task of converting them is a simple matter of find and replace.

There are others. But this accounts for the vast majority of journal holdings.