I am hoping someone can help me with my current conundrum. I am looking for recommendations for tools and methods for a project I am working on to try to implement some of the Online Audiovisual Catalogers (OLAC) work on FRBR works and moving images (http://www.olacinc.org/drupal/?q=node/27). I am not a programmer or coder, but we are going to have to hire someone to do this and give them some direction. So I am interested in what tools you would recommend for this purpose and why, as well as any other advice anyone can give me.
Basically what we want to do is take a large number of MARC bibliographic records for moving images, extract the information that might describe the FRBR Work and parse and normalize it. We then want to use this data to create provisional Work records. I am not so worried about getting the data out of MARC, but about how to work with the data once it's out. I have listed the main steps we anticipate needing in broad outlines below.
1. Parsing and Normalizing Data
There are several types of situations from easiest to harder with examples:
a. Data that is already in machine-comprehensible form:
Coded language data, e.g., an 041 $h of fre means the movie was originally in French
A 700 field with a $4 of drt means that the name in that in that 700 is (hopefully) the authorized form of the name of the director of the movie
A DateType fixed field of p means that the lower of Date1 and Date2 is the original date of the movie (technically this should always be Date2, but some libraries reverse the order to support sorting by original date in their OPACs)
b. Data that can be extracted using keywords in textual fields
We can often extract an original date from a note field by identifying the combination of a year (18xx, 19xx, or 200x) and a keyword that signifies that it is an original production date note, such as "originally," "release," "broadcast," or "produced."
c. Data that requires matching between information in more than one field
In order to identify the authorized form of the name of a person performing a particular function, in many cases we have to try to match the authorized form of the name to a transcribed statement including both the function and the name. Note that functions can be transcribed in many forms (directed by, director, direction) and languages (Regie, kantoku). Also the transcribed name may vary from the authorized name ("Andrei Tarkovsky" vs. "Tarkovskii, Andrei Arsenevich"). Neither of these is a practical problem to solve completely, but we would like to be able to make inferences as follows (probably starting from the 7xx fields and trying to find a matching transcribed statement).
245$c includes "directed by Steven Spielberg"
+ 700 Spielberg, Steven, $d 1946-
= n 79148103 (Spielberg, Steven, $d 1946-) is the director
2. Ranking Information Sources Within Records
We have multiple possible methods for extracting most types of data. We plan to rank these data sources in terms of their probable accuracy. Some of the ranking we can predict up front and probably skip step 1 for the non-preferred data sources. Some data sources we can probably rank based on analysis of preliminary results. Some sources probably can't be ranked and we would want to know when a record presents conflicting data (e.g., one original date in a note and a different one in a fixed field)
3. Clustering Records for the Same Work
In our data pool, we will have cases where multiple bibliographic records represent the same work. We need to cluster the ones that represent a given work based on data extracted in the above steps. Information such as title, original date, director, or production company is probably useful for this purpose.
4. Creating Provisional Work Records by Identifying the Most Likely Value for Each Data Element from the Work Cluster
Once we have clustered the records for the works, we want to create a single composite work record from the data in the clustered records. We will need some algorithm, possibly as simple as a majority vote or perhaps a majority vote per manifestation rather than per record, to determine the probable best value for each field in our preliminary work record.
Thanks in advance for any advice on tools or general thoughts on this. Also, are there any particular skills or qualities we should be looking for in a programmer?
Kelley McGrath
[log in to unmask]
|