zcc 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -0
- data/Manifest.txt +4 -1
- data/README.txt +1 -1
- data/bin/zcc +14 -18
- data/examples/zcc.yaml +20 -0
- data/lib/zcc/marcadditions.rb +1 -1
- data/lib/zcc/pickers.rb +1 -0
- data/lib/zcc/version.rb +1 -1
- data/website/index.html +8 -129
- data/website/index.txt +6 -89
- data/website/koha.html +82 -0
- data/website/koha.txt +28 -0
- data/website/template.rhtml +1 -4
- data/website/zcc.html +205 -0
- data/website/zcc.txt +127 -0
- metadata +8 -2
data/History.txt
CHANGED
data/Manifest.txt
CHANGED
data/README.txt
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
For more information see:
|
2
|
-
http://
|
2
|
+
http://zcc.rubyforge.org/
|
data/bin/zcc
CHANGED
@@ -40,31 +40,27 @@ class String
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
|
44
|
-
#--############ BEGIN CONFIGURATION ####################
|
45
|
-
## Basic configuration below. To complete full configuration, including picking z39.50 servers please see zcc.yaml
|
46
|
-
TO_SHOW = 10
|
47
|
-
#HOW_TO_SAVE = 'search_term'
|
48
|
-
HOW_TO_SAVE = 'timestamp' #with 'timestamp' all records are saved to the same date stamped file of the time the program starts. The other valid value is 'search_term' in which case each record is saved according to the search term appending on to files which have the same search term
|
49
|
-
|
50
|
-
TIMESTAMP = Time.now.strftime("%Y%m%d%H%M%S")
|
51
|
-
SCRIPTING = 'yes' #if you want scripting enabled for each record
|
52
|
-
CSV = 'yes' #would you like to run the csv creation?
|
53
|
-
LINTER = 'yes' #If you do not have the Perl MARC::Lint module installed, probably from cpan, change this value to 'no'
|
54
|
-
FORMAT_TO_SAVE = 'marc' #other value that works is 'xml' which saves in marcxml
|
55
|
-
###### END OF CONFIGURATION ###########
|
56
|
-
|
57
43
|
$testing = ARGV[0]
|
58
44
|
$testing = nil unless $testing == 'v' or $testing == 't'
|
59
45
|
puts "We're testing " if $testing
|
60
46
|
STDIN.gets if $testing
|
61
47
|
|
48
|
+
#reading in config from yaml file
|
62
49
|
yamlfile = YAML.load_file( "#{File.expand_path("~")}/.zcc/zcc.yaml" )
|
63
50
|
zservers = yamlfile['zservers']
|
64
51
|
labels = yamlfile['labels']
|
65
52
|
scripting = yamlfile['scripting']
|
66
53
|
$procs = yamlfile['procs']
|
67
54
|
|
55
|
+
TO_SHOW = yamlfile['to_show']
|
56
|
+
HOW_TO_SAVE = yamlfile['save_filename']
|
57
|
+
TIMESTAMP = Time.now.strftime("%Y%m%d%H%M%S")
|
58
|
+
SCRIPTING = yamlfile['scripting_on']
|
59
|
+
CSV = yamlfile['csv_on']
|
60
|
+
LINTER = yamlfile['linter_on']
|
61
|
+
FORMAT_TO_SAVE = yamlfile['save_record_syntax']
|
62
|
+
|
63
|
+
|
68
64
|
#class String
|
69
65
|
# def to_proc
|
70
66
|
# eval "Proc.new #{self} " # or "Proc.new #{self}" in my case
|
@@ -190,7 +186,7 @@ loop {
|
|
190
186
|
|
191
187
|
final_taken = taken[0]
|
192
188
|
puts final_taken
|
193
|
-
final_taken.local_script(scripting) if SCRIPTING
|
189
|
+
final_taken.local_script(scripting) if SCRIPTING
|
194
190
|
|
195
191
|
puts "--------------FINAL RECORD----------------------------"
|
196
192
|
puts final_taken
|
@@ -203,7 +199,7 @@ loop {
|
|
203
199
|
next if continue? == 'again'
|
204
200
|
end
|
205
201
|
|
206
|
-
csv = final_taken.marc_to_csv(labels) if CSV
|
202
|
+
csv = final_taken.marc_to_csv(labels) if CSV
|
207
203
|
|
208
204
|
print "\n#{csv}\n"
|
209
205
|
|
@@ -220,7 +216,7 @@ loop {
|
|
220
216
|
aFile.write(final_taken.to_marc)
|
221
217
|
puts "#{final_taken['245']['a']} saved in #{filename}\.mrc"
|
222
218
|
aFile.close
|
223
|
-
elsif FORMAT_TO_SAVE == '
|
219
|
+
elsif FORMAT_TO_SAVE == 'marcxml'
|
224
220
|
puts final_taken.to_xml
|
225
221
|
aFile = File.new("#{filename}\.xml","a+")
|
226
222
|
aFile.write(final_taken.to_xml)
|
@@ -228,7 +224,7 @@ loop {
|
|
228
224
|
aFile.close
|
229
225
|
end
|
230
226
|
|
231
|
-
if CSV
|
227
|
+
if CSV
|
232
228
|
csvFile = File.new("csv-#{filename}\.txt","a+")
|
233
229
|
csvFile.write(csv)
|
234
230
|
puts "csv for #{taken[0]['245']['a']} saved in csv-#{filename}\.txt"
|
data/examples/zcc.yaml
CHANGED
@@ -6,6 +6,26 @@
|
|
6
6
|
# 3. creation of csv files.
|
7
7
|
# See below in each section for more information.
|
8
8
|
|
9
|
+
#BASIC config
|
10
|
+
|
11
|
+
#What is the maximum number of records you want to show from the search result set?
|
12
|
+
to_show: 40
|
13
|
+
|
14
|
+
# Do you want to save your MARC files by 'search_term' or by 'timestamp'? Choosing timestamp will save all records from a single session to the same file, while search_term will save to separate files for each different search term used.
|
15
|
+
save_filename: timestamp
|
16
|
+
|
17
|
+
#Do you want scripting turned on?
|
18
|
+
scripting_on: yes
|
19
|
+
|
20
|
+
#Do you want CSV file creation turned on?
|
21
|
+
csv_on: yes
|
22
|
+
|
23
|
+
#Do you want to use the optional MARC linter? Perl and the MARC::Lint module are necessary for the functionality to work.
|
24
|
+
linter_on: yes
|
25
|
+
|
26
|
+
#How do you want your records saved? Current choices are
|
27
|
+
save_record_syntax: marc
|
28
|
+
|
9
29
|
|
10
30
|
###########################
|
11
31
|
# Z39.50 servers
|
data/lib/zcc/marcadditions.rb
CHANGED
data/lib/zcc/pickers.rb
CHANGED
@@ -15,6 +15,7 @@ module Pickers
|
|
15
15
|
rec_copy.each_index do #This block lists
|
16
16
|
|index|
|
17
17
|
puts "#{index}\t#{rec_copy[index]['245']}"
|
18
|
+
puts "\t#{rec_copy[index]['260']}" if rec_copy[index]['260']
|
18
19
|
puts "\t#{rec_copy[index]['300']}" if rec_copy[index]['300']
|
19
20
|
puts "\n\n"
|
20
21
|
end
|
data/lib/zcc/version.rb
CHANGED
data/website/index.html
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
7
|
<title>
|
8
|
-
zcc
|
8
|
+
zcc projects
|
9
9
|
</title>
|
10
10
|
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
11
|
<style>
|
@@ -30,148 +30,27 @@
|
|
30
30
|
<body>
|
31
31
|
<div id="main">
|
32
32
|
|
33
|
-
<h1>zcc</h1>
|
33
|
+
<h1>zcc projects</h1>
|
34
34
|
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/zcc"; return false'>
|
35
35
|
<p>Get Version</p>
|
36
|
-
<a href="http://rubyforge.org/projects/zcc" class="numbers">0.0.
|
36
|
+
<a href="http://rubyforge.org/projects/zcc" class="numbers">0.0.2</a>
|
37
37
|
</div>
|
38
38
|
<h1>→ ‘zcc’</h1>
|
39
39
|
|
40
40
|
<h2>What</h2>
|
41
41
|
|
42
|
-
<p>
|
42
|
+
<p><strong>Zcc projects</strong> is a collection of tools written in Ruby to help with copy cataloging.</p>
|
43
43
|
|
44
44
|
|
45
45
|
<h1><strong>THIS IS <em>alpha</em> SOFTWARE. <span class="caps">IT MIGHT MANGLE YOUR MARC AND CORRUPT YOUR CATALOG</span>.</strong></h1>
|
46
46
|
|
47
|
-
<
|
47
|
+
<h1>zcc project releases so far</h1>
|
48
48
|
|
49
|
-
<
|
50
|
-
<h2>Features</h2>
|
49
|
+
<p><a href="http://zcc.rubyforge.org/zcc.html">zcc</a> zcc is the main copy cataloging script.</p>
|
51
50
|
|
52
|
-
<p><strong>Z39.50 search for records.</strong> Configure Zcc for as many targets as you like in order of preference. A relatively current list of targets is provided based on the targettest list. If you find the perfect record with the first target other targets do not have to be searched.</p>
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
<p><strong>See the most important fields for copy cataloging when choosing correct records.</strong> In the initial list view Zcc presents the user with the full 245 (title and statement of responsibility) and 300 (extent, which includes page numbers). This gives you a quick way to determine potential records. <span class="caps">TODO</span>: Make the fields displayed configurable, especially for other <span class="caps">MARC</span> flavors.</p>
|
59
|
-
|
60
|
-
|
61
|
-
<p><strong>View the full <span class="caps">MARC</span> record before choosing.</strong> Zcc allows you to see the full <span class="caps">MARC</span> record in a pretty line format. Zcc does not hide <span class="caps">MARC</span> from you, even as ugly as it can be.</p>
|
62
|
-
|
63
|
-
|
64
|
-
<p><strong>Compare two records and choose the best.</strong> Zcc compares field by field (ie line by line) for matched fields. You can quickly see what fields come from which record. The comparison is similar to the way diff works. Matches between records are denoted with an ‘m’ while one record is denoted with a plus-sign and the other with a minus-sign. <span class="caps">TODO</span>: a curses interface may allow for color coding differences.</p>
|
65
|
-
|
66
|
-
|
67
|
-
<p><strong>Optional: Check the record for common errors.</strong> If you have Perl’s <span class="caps">MARC</span>::Lint installed you can see if all your indicators have proper values and only repeatable fields repeat. An added feature is determining what encoding level (ISBD, <span class="caps">AACR2</span>) the record is in.</p>
|
68
|
-
|
69
|
-
|
70
|
-
<p><strong>Choose records from different targets and then choose among them to find the best record.</strong> In the end you just want one record and you want the best one. All the same features available for each target are also available for all the records chosen from all targets, so users can pick the best record for their location. View the full records, compare two records, and optionally lint records. This allows you to choose possible records quickly from various targets and then make a final decision later on.</p>
|
71
|
-
|
72
|
-
|
73
|
-
<p><strong>Scripted changes to records.</strong> Zcc is highly configurable for making scripted changes to each record like macros. Want to delete all 900 or 9XX fields from a record before importing into your library system? Zcc can do that and more. Add fields and subfields with pre-determined information or prompt for information. The previous examples are easy to configure. With a little Ruby scripting you can make more complex changes. A few sample scripts are provided that do things like take the dewey call number from the 082a field and copy it to the fields Koha uses for call numbers, and if the there is no 082a field it prompts for the proper call number parts. Don’t need the feature? Just turn it off.</p>
|
74
|
-
|
75
|
-
|
76
|
-
<p><strong>Output to <span class="caps">CSV</span> file.</strong> Want to print labels or keep statistics? Zcc allows you to choose which subfields you would like to export into a <span class="caps">CSV</span> file. Programs like glabels can accept <span class="caps">CSV</span> files for custom labelmaking. <span class="caps">CSV</span> files can also be imported into spreadsheet programs like OpenOffice Calc or Excel. If a value is not found for a particular field Zcc will prompt the user for input, which can be blank.</p>
|
77
|
-
|
78
|
-
|
79
|
-
<h2>Configuration</h2>
|
80
|
-
|
81
|
-
<p>Currently look for some configuration in the main script called ‘zcc’ in the bin directory of the gem. I’ll be moving this to the yaml file soon.</p>
|
82
|
-
|
83
|
-
|
84
|
-
<p>The rest of the configuration is looked for in the user’s home directory in .zcc/zcc.yaml. An example zcc.yaml config file can be found in the examples directory of the gem.</p>
|
85
|
-
|
86
|
-
|
87
|
-
<p>To get the program running right away also create a file called zoomer-iterator.txt and place that in .zcc as well.</p>
|
88
|
-
|
89
|
-
|
90
|
-
<h2>Use</h2>
|
91
|
-
|
92
|
-
<p>$ zcc</p>
|
93
|
-
|
94
|
-
|
95
|
-
<p>Enter an <span class="caps">ISBN</span> or title. Zcc should be smart enough to tell the difference.</p>
|
96
|
-
|
97
|
-
|
98
|
-
<h2>TODO</h2>
|
99
|
-
|
100
|
-
<p><strong>Smart character set conversion</strong> Currently incoming records are assumed to be marc-8 and are converted to utf-8. This is complex. Let me know what you need here.</p>
|
101
|
-
|
102
|
-
|
103
|
-
<p><strong>TUI</strong> If there is interest in this script, I’m hoping to make a nice Text User Interface with curses or ncurses. Currently everything just scrolls up the terminal.</p>
|
104
|
-
|
105
|
-
|
106
|
-
<p><strong>Automatic retrieval of authority records.</strong> I already have a separate script in the works that can retrieve authority records for names (not subjects). I’d like to work that as an option into the main script.</p>
|
107
|
-
|
108
|
-
|
109
|
-
<p><strong>Unit Testing.</strong> While I’ve tested the script in my own work, I need to do more formal testing of the methods.</p>
|
110
|
-
|
111
|
-
|
112
|
-
<p><strong>Exception handling.</strong> Currently there’s not great exception handling in the script. This needs to change, but hasn’t caused problems for me yet.</p>
|
113
|
-
|
114
|
-
|
115
|
-
<p><strong>Internationalize</strong> This can start by not hardcoding any fields and allowing them to be configurable. The initial display of fields on search of a target should show the relevant fields in the user’s prefered <span class="caps">MARC</span> flavor. If there is interest, I’d be willing to try making other text translatable.</p>
|
116
|
-
|
117
|
-
|
118
|
-
<p><strong>Move all configuration to <span class="caps">YAML</span> file.</strong> Currently some configuration is made in the main script and some in the <span class="caps">YAML</span> file.</p>
|
119
|
-
|
120
|
-
|
121
|
-
<p>Create full <strong>rdoc documentation</strong>.</p>
|
122
|
-
|
123
|
-
|
124
|
-
<h2>Requirements</h2>
|
125
|
-
|
126
|
-
<p><a href="http://ruby-lang.org/">Ruby</a> 1.8+ I’m not completely sure what versions of Ruby will work.</p>
|
127
|
-
|
128
|
-
|
129
|
-
<p><a href="http://www.indexdata.dk/yaz/">YAZ</a> I suggest adding the indexdata repositories for your distro (Debian or Redhat) and installing that way. From a footnote to ruby-zoom: If you build from source, make sure you pass the—enable-shared option to the configure script before building <span class="caps">YAZ</span>, by default it does not build shared libraries required by Ruby/ZOOM.</p>
|
130
|
-
|
131
|
-
|
132
|
-
<p><a href="http://ruby-zoom.rubyforge.org/">ruby-zoom</a> Follow the instructions to install. Hopefully there will be a gem soon.</p>
|
133
|
-
|
134
|
-
|
135
|
-
<p><a href="http://www.textualize.com/ruby_marc">ruby-marc</a> This one’s easy. As long as you have rubygems installed just issue the command: gem install marc</p>
|
136
|
-
|
137
|
-
|
138
|
-
<p>*nix? Zcc has only been tested on Linux (Debian Etch). It may work under other operating systems. Feedback is appreciated on how it functions under other operating systems. I’m willing to try to make it work if there is interest.</p>
|
139
|
-
|
140
|
-
|
141
|
-
<p>gem install unicode</p>
|
142
|
-
|
143
|
-
|
144
|
-
<h2>Suggestions</h2>
|
145
|
-
|
146
|
-
<p>Perl and <span class="caps">MARC</span>::Lint To have error checking of records turned on you must also have Perl and <span class="caps">MARC</span>::Lint installed.</p>
|
147
|
-
|
148
|
-
|
149
|
-
<h2>Help/paches</h2>
|
150
|
-
|
151
|
-
<p>email: <a href="mailto:jronallo+zcc@gmail.com">Jason Ronallo</a></p>
|
152
|
-
|
153
|
-
|
154
|
-
<h2>License</h2>
|
155
|
-
|
156
|
-
<p>Copyright© 2007 Jason Ronallo</p>
|
157
|
-
|
158
|
-
|
159
|
-
<p>This program is free software; you can redistribute it and/or modify it under the terms of the <span class="caps">GNU</span> General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
|
160
|
-
|
161
|
-
|
162
|
-
<p>This program is distributed in the hope that it will be useful, but <span class="caps">WITHOUT ANY WARRANTY</span>; without even the implied warranty of <span class="caps">MERCHANTABILITY</span> or <span class="caps">FITNESS FOR A PARTICULAR PURPOSE</span>. See the <span class="caps">GNU</span> General Public License for more details.</p>
|
163
|
-
|
164
|
-
|
165
|
-
<p>You should have received a copy of the <span class="caps">GNU</span> General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, <span class="caps">MA 02110</span>-1301, <span class="caps">USA</span></p>
|
166
|
-
|
167
|
-
|
168
|
-
<h2>Contact</h2>
|
169
|
-
|
170
|
-
<p>Comments are welcome. Send an email to <a href="mailto:jronallo+zcc@gmail.com">Jason Ronallo</a>.</p>
|
171
|
-
<p class="coda">
|
172
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 22nd June 2007<br>
|
173
|
-
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
174
|
-
</p>
|
52
|
+
<p><a href="http://zcc.rubyforge.org/wcid">wcid</a> wcid is a library for handling WorldCat Identites</p>
|
53
|
+
|
175
54
|
</div>
|
176
55
|
|
177
56
|
<!-- insert site tracking codes here, like Google Urchin -->
|
data/website/index.txt
CHANGED
@@ -1,101 +1,18 @@
|
|
1
|
-
h1. zcc
|
1
|
+
h1. zcc projects
|
2
2
|
|
3
3
|
h1. → 'zcc'
|
4
4
|
|
5
5
|
h2. What
|
6
6
|
|
7
|
-
|
7
|
+
*Zcc projects* is a collection of tools written in Ruby to help with copy cataloging.
|
8
8
|
|
9
|
-
h1. *THIS IS _alpha_ SOFTWARE. IT MIGHT MANGLE YOUR MARC AND CORRUPT YOUR CATALOG.*
|
10
|
-
|
11
|
-
h2. Installing
|
12
|
-
|
13
|
-
<pre syntax="ruby">sudo gem install zcc</pre>
|
14
|
-
|
15
|
-
h2. Features
|
16
|
-
|
17
|
-
*Z39.50 search for records.* Configure Zcc for as many targets as you like in order of preference. A relatively current list of targets is provided based on the targettest list. If you find the perfect record with the first target other targets do not have to be searched.
|
18
|
-
|
19
|
-
*Search by Title or ISBN* Currently two searches are supported. From the same prompt you may search either by Title or ISBN. For a search of the Library of Congress you may also search by Library of Congress Card Number.
|
20
|
-
|
21
|
-
*See the most important fields for copy cataloging when choosing correct records.* In the initial list view Zcc presents the user with the full 245 (title and statement of responsibility) and 300 (extent, which includes page numbers). This gives you a quick way to determine potential records. TODO: Make the fields displayed configurable, especially for other MARC flavors.
|
22
|
-
|
23
|
-
*View the full MARC record before choosing.* Zcc allows you to see the full MARC record in a pretty line format. Zcc does not hide MARC from you, even as ugly as it can be.
|
24
|
-
|
25
|
-
*Compare two records and choose the best.* Zcc compares field by field (ie line by line) for matched fields. You can quickly see what fields come from which record. The comparison is similar to the way diff works. Matches between records are denoted with an 'm' while one record is denoted with a plus-sign and the other with a minus-sign. TODO: a curses interface may allow for color coding differences.
|
26
|
-
|
27
|
-
*Optional: Check the record for common errors.* If you have Perl's MARC::Lint installed you can see if all your indicators have proper values and only repeatable fields repeat. An added feature is determining what encoding level (ISBD, AACR2) the record is in.
|
28
|
-
|
29
|
-
*Choose records from different targets and then choose among them to find the best record.* In the end you just want one record and you want the best one. All the same features available for each target are also available for all the records chosen from all targets, so users can pick the best record for their location. View the full records, compare two records, and optionally lint records. This allows you to choose possible records quickly from various targets and then make a final decision later on.
|
30
|
-
|
31
|
-
*Scripted changes to records.* Zcc is highly configurable for making scripted changes to each record like macros. Want to delete all 900 or 9XX fields from a record before importing into your library system? Zcc can do that and more. Add fields and subfields with pre-determined information or prompt for information. The previous examples are easy to configure. With a little Ruby scripting you can make more complex changes. A few sample scripts are provided that do things like take the dewey call number from the 082a field and copy it to the fields Koha uses for call numbers, and if the there is no 082a field it prompts for the proper call number parts. Don't need the feature? Just turn it off.
|
32
|
-
|
33
|
-
*Output to CSV file.* Want to print labels or keep statistics? Zcc allows you to choose which subfields you would like to export into a CSV file. Programs like glabels can accept CSV files for custom labelmaking. CSV files can also be imported into spreadsheet programs like OpenOffice Calc or Excel. If a value is not found for a particular field Zcc will prompt the user for input, which can be blank.
|
34
|
-
|
35
|
-
h2. Configuration
|
36
|
-
|
37
|
-
Currently look for some configuration in the main script called 'zcc' in the bin directory of the gem. I'll be moving this to the yaml file soon.
|
38
|
-
|
39
|
-
The rest of the configuration is looked for in the user's home directory in .zcc/zcc.yaml. An example zcc.yaml config file can be found in the examples directory of the gem.
|
40
|
-
|
41
|
-
To get the program running right away also create a file called zoomer-iterator.txt and place that in .zcc as well.
|
42
|
-
|
43
|
-
h2. Use
|
44
|
-
|
45
|
-
$ zcc
|
46
|
-
|
47
|
-
Enter an ISBN or title. Zcc should be smart enough to tell the difference.
|
48
|
-
|
49
|
-
h2. TODO
|
50
9
|
|
51
|
-
|
52
|
-
|
53
|
-
*TUI* If there is interest in this script, I'm hoping to make a nice Text User Interface with curses or ncurses. Currently everything just scrolls up the terminal.
|
54
|
-
|
55
|
-
*Automatic retrieval of authority records.* I already have a separate script in the works that can retrieve authority records for names (not subjects). I'd like to work that as an option into the main script.
|
56
|
-
|
57
|
-
*Unit Testing.* While I've tested the script in my own work, I need to do more formal testing of the methods.
|
58
|
-
|
59
|
-
*Exception handling.* Currently there's not great exception handling in the script. This needs to change, but hasn't caused problems for me yet.
|
60
|
-
|
61
|
-
*Internationalize* This can start by not hardcoding any fields and allowing them to be configurable. The initial display of fields on search of a target should show the relevant fields in the user's prefered MARC flavor. If there is interest, I'd be willing to try making other text translatable.
|
62
|
-
|
63
|
-
*Move all configuration to YAML file.* Currently some configuration is made in the main script and some in the YAML file.
|
64
|
-
|
65
|
-
Create full *rdoc documentation*.
|
66
|
-
|
67
|
-
h2. Requirements
|
68
|
-
|
69
|
-
"Ruby":http://ruby-lang.org/ 1.8+ I'm not completely sure what versions of Ruby will work.
|
70
|
-
|
71
|
-
"YAZ":http://www.indexdata.dk/yaz/ I suggest adding the indexdata repositories for your distro (Debian or Redhat) and installing that way. From a footnote to ruby-zoom: If you build from source, make sure you pass the --enable-shared option to the configure script before building YAZ, by default it does not build shared libraries required by Ruby/ZOOM.
|
72
|
-
|
73
|
-
"ruby-zoom":http://ruby-zoom.rubyforge.org/ Follow the instructions to install. Hopefully there will be a gem soon.
|
74
|
-
|
75
|
-
"ruby-marc":http://www.textualize.com/ruby_marc This one's easy. As long as you have rubygems installed just issue the command: gem install marc
|
76
|
-
|
77
|
-
*nix? Zcc has only been tested on Linux (Debian Etch). It may work under other operating systems. Feedback is appreciated on how it functions under other operating systems. I'm willing to try to make it work if there is interest.
|
78
|
-
|
79
|
-
gem install unicode
|
80
|
-
|
81
|
-
h2. Suggestions
|
82
|
-
|
83
|
-
Perl and MARC::Lint To have error checking of records turned on you must also have Perl and MARC::Lint installed.
|
84
|
-
|
85
|
-
h2. Help/paches
|
86
|
-
|
87
|
-
email: "Jason Ronallo":mailto:jronallo+zcc@gmail.com
|
88
|
-
|
89
|
-
h2. License
|
90
|
-
|
91
|
-
Copyright (C) 2007 Jason Ronallo
|
10
|
+
h1. *THIS IS _alpha_ SOFTWARE. IT MIGHT MANGLE YOUR MARC AND CORRUPT YOUR CATALOG.*
|
92
11
|
|
93
|
-
|
12
|
+
h1. zcc project releases so far
|
94
13
|
|
95
|
-
|
14
|
+
"zcc":http://zcc.rubyforge.org/zcc.html zcc is the main copy cataloging script.
|
96
15
|
|
97
|
-
|
16
|
+
"wcid":http://zcc.rubyforge.org/wcid wcid is a library for handling WorldCat Identites
|
98
17
|
|
99
|
-
h2. Contact
|
100
18
|
|
101
|
-
Comments are welcome. Send an email to "Jason Ronallo":mailto:jronallo+zcc@gmail.com.
|
data/website/koha.html
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
Using Koha with zcc
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>Using Koha with zcc</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/zcc"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/zcc" class="numbers">0.0.2</a>
|
37
|
+
</div>
|
38
|
+
<p><a href="http://www.koha.org">Koha</a> + <a href="http://zcc.rubyforge.org/zcc.html">zcc</a></p>
|
39
|
+
|
40
|
+
|
41
|
+
<h2>Hints</h2>
|
42
|
+
|
43
|
+
<ol>
|
44
|
+
<li>Follow all the directions on the <a href="http://zcc.rubyforge.org/zcc.html">main zcc page</a> carefully. Please let me know if you run into problems with configuration.</li>
|
45
|
+
</ol>
|
46
|
+
|
47
|
+
<ol>
|
48
|
+
<li><a href="http://zcc.rubyforge.org/zcc.html">zcc</a> is <strong>not</strong> a part of Koha and is not developed by the same folks.</li>
|
49
|
+
</ol>
|
50
|
+
|
51
|
+
<ol>
|
52
|
+
<li><a href="http://zcc.rubyforge.org/zcc.html">zcc</a> only creates utf-8 encoded records. If you want marc-8 encoded records you’re on your own. <span class="caps">MARC</span>-8 encoding has already caused enough problems in this world, so I encourage folks to move to <span class="caps">UTF</span>-8 <span class="caps">ASAP</span>. If you use a different encoding that you want supported, please let me know. To set up Koha properly for dealing with utf-8 encoded records see <a href="http://wiki.koha.org/doku.php?id=encodingscratchpad&s=utf8">this wiki page</a></li>
|
53
|
+
</ol>
|
54
|
+
|
55
|
+
<ol>
|
56
|
+
<li>Make sure the Koha modules are a part of your path. I accomplish this by adding “export <span class="caps">PATH</span>=/usr/local/koha/intranet/modules” without the quotes to your .bashrc (or add the path to /etc/profile for the root user).</li>
|
57
|
+
</ol>
|
58
|
+
|
59
|
+
<ol>
|
60
|
+
<li>You can then have a choice on how to get the records into koha:<ul>
|
61
|
+
<li>Using the Koha Administration interface you can “Upload <span class="caps">MARC</span> records to the resevoir.” Then complete processing on the records like adding items and barcodes within the Koha web interface.</li>
|
62
|
+
</ul>
|
63
|
+
|
64
|
+
<ul>
|
65
|
+
<li>If you have processed your records fully to include item numbers and barcodes, you can use the bulkmarcimport script to put the records directly into your database. <strong>CAUTION</strong>: This may do screwy things to your records. The developers of Koha have stated that bulkmarcimport.pl just gives an idea on how to get records into the database and may need changed to suit your needs. Having said that, I’ve used bulkmarcimport without modification without problem. You may have different results and I’d like to hear them.</li>
|
66
|
+
</ul>
|
67
|
+
|
68
|
+
<pre syntax="ruby">perl /usr/local/koha/intranet/scripts/misc/migration_tools/bulkmarcimport.pl
|
69
|
+
-v -file /path/to/marc-file.mrc</pre>
|
70
|
+
<p>That is all one line.</p></li>
|
71
|
+
</ol>
|
72
|
+
|
73
|
+
<h1>Contact</h1>
|
74
|
+
|
75
|
+
<p>I use zcc and Koha for my own work. So I’m very interested in making zcc work better with Koha. Please send your comments, suggestions and patches to <a href="mailto:jronallo+zcc@gmail.com">Jason Ronallo</a></p>
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
80
|
+
|
81
|
+
</body>
|
82
|
+
</html>
|
data/website/koha.txt
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
h1. Using Koha with zcc
|
2
|
+
|
3
|
+
"Koha":http://www.koha.org + "zcc":http://zcc.rubyforge.org/zcc.html
|
4
|
+
|
5
|
+
h2. Hints
|
6
|
+
|
7
|
+
# Follow all the directions on the "main zcc page":http://zcc.rubyforge.org/zcc.html carefully. Please let me know if you run into problems with configuration.
|
8
|
+
|
9
|
+
# "zcc":http://zcc.rubyforge.org/zcc.html is *not* a part of Koha and is not developed by the same folks.
|
10
|
+
|
11
|
+
# "zcc":http://zcc.rubyforge.org/zcc.html only creates utf-8 encoded records. If you want marc-8 encoded records you're on your own. MARC-8 encoding has already caused enough problems in this world, so I encourage folks to move to UTF-8 ASAP. If you use a different encoding that you want supported, please let me know. To set up Koha properly for dealing with utf-8 encoded records see "this wiki page":http://wiki.koha.org/doku.php?id=encodingscratchpad&s=utf8
|
12
|
+
|
13
|
+
# Make sure the Koha modules are a part of your path. I accomplish this by adding "export PATH=/usr/local/koha/intranet/modules" without the quotes to your .bashrc (or add the path to /etc/profile for the root user).
|
14
|
+
|
15
|
+
# You can then have a choice on how to get the records into koha:
|
16
|
+
|
17
|
+
* Using the Koha Administration interface you can "Upload MARC records to the resevoir." Then complete processing on the records like adding items and barcodes within the Koha web interface.
|
18
|
+
|
19
|
+
* If you have processed your records fully to include item numbers and barcodes, you can use the bulkmarcimport script to put the records directly into your database. *CAUTION*: This may do screwy things to your records. The developers of Koha have stated that bulkmarcimport.pl just gives an idea on how to get records into the database and may need changed to suit your needs. Having said that, I've used bulkmarcimport without modification without problem. You may have different results and I'd like to hear them.
|
20
|
+
|
21
|
+
<pre syntax="ruby">perl /usr/local/koha/intranet/scripts/misc/migration_tools/bulkmarcimport.pl
|
22
|
+
-v -file /path/to/marc-file.mrc</pre>
|
23
|
+
|
24
|
+
That is all one line.
|
25
|
+
|
26
|
+
h1. Contact
|
27
|
+
|
28
|
+
I use zcc and Koha for my own work. So I'm very interested in making zcc work better with Koha. Please send your comments, suggestions and patches to "Jason Ronallo":mailto:jronallo+zcc@gmail.com
|
data/website/template.rhtml
CHANGED
@@ -36,10 +36,7 @@
|
|
36
36
|
<a href="<%= download %>" class="numbers"><%= version %></a>
|
37
37
|
</div>
|
38
38
|
<%= body %>
|
39
|
-
|
40
|
-
<a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, <%= modified.pretty %><br>
|
41
|
-
Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
|
42
|
-
</p>
|
39
|
+
|
43
40
|
</div>
|
44
41
|
|
45
42
|
<!-- insert site tracking codes here, like Google Urchin -->
|
data/website/zcc.html
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
|
+
<head>
|
5
|
+
<link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
7
|
+
<title>
|
8
|
+
zcc
|
9
|
+
</title>
|
10
|
+
<script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
|
11
|
+
<style>
|
12
|
+
|
13
|
+
</style>
|
14
|
+
<script type="text/javascript">
|
15
|
+
window.onload = function() {
|
16
|
+
settings = {
|
17
|
+
tl: { radius: 10 },
|
18
|
+
tr: { radius: 10 },
|
19
|
+
bl: { radius: 10 },
|
20
|
+
br: { radius: 10 },
|
21
|
+
antiAlias: true,
|
22
|
+
autoPad: true,
|
23
|
+
validTags: ["div"]
|
24
|
+
}
|
25
|
+
var versionBox = new curvyCorners(settings, document.getElementById("version"));
|
26
|
+
versionBox.applyCornersToAll();
|
27
|
+
}
|
28
|
+
</script>
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="main">
|
32
|
+
|
33
|
+
<h1>zcc</h1>
|
34
|
+
<div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/zcc"; return false'>
|
35
|
+
<p>Get Version</p>
|
36
|
+
<a href="http://rubyforge.org/projects/zcc" class="numbers">0.0.2</a>
|
37
|
+
</div>
|
38
|
+
<h1>→ ‘zcc’</h1>
|
39
|
+
|
40
|
+
<h2>What</h2>
|
41
|
+
|
42
|
+
<p>Z Copy Cataloging is a command line tool written in Ruby to make your <span class="caps">MARC</span> record copy cataloging faster and more accurate. The ‘Z’ may stand for Zippy if you really want it to.</p>
|
43
|
+
|
44
|
+
|
45
|
+
<h1><strong>THIS IS <em>alpha</em> SOFTWARE. <span class="caps">IT MIGHT MANGLE YOUR MARC AND CORRUPT YOUR CATALOG</span>.</strong></h1>
|
46
|
+
|
47
|
+
<h2>Installing</h2>
|
48
|
+
|
49
|
+
<pre syntax="ruby">sudo gem install zcc</pre>
|
50
|
+
<h2>Repository</h2>
|
51
|
+
|
52
|
+
<p>svn co svn://208.78.97.122/zcc</p>
|
53
|
+
|
54
|
+
|
55
|
+
<h2>Features</h2>
|
56
|
+
|
57
|
+
<p><strong>Z39.50 search for records.</strong> Configure Zcc for as many targets as you like in order of preference. A relatively current list of targets is provided based on the targettest list. If you find the perfect record with the first target other targets do not have to be searched.</p>
|
58
|
+
|
59
|
+
|
60
|
+
<p><strong>Search by Title or <span class="caps">ISBN</span></strong> Currently two searches are supported. From the same prompt you may search either by Title or <span class="caps">ISBN</span>. For a search of the Library of Congress you may also search by Library of Congress Card Number.</p>
|
61
|
+
|
62
|
+
|
63
|
+
<p><strong>See the most important fields for copy cataloging when choosing correct records.</strong> In the initial list view Zcc presents the user with the full 245 (title and statement of responsibility) and 300 (extent, which includes page numbers). This gives you a quick way to determine potential records. <span class="caps">TODO</span>: Make the fields displayed configurable, especially for other <span class="caps">MARC</span> flavors.</p>
|
64
|
+
|
65
|
+
|
66
|
+
<p><strong>View the full <span class="caps">MARC</span> record before choosing.</strong> Zcc allows you to see the full <span class="caps">MARC</span> record in a pretty line format. Zcc does not hide <span class="caps">MARC</span> from you, even as ugly as it can be.</p>
|
67
|
+
|
68
|
+
|
69
|
+
<p><strong>Compare two records and choose the best.</strong> Zcc compares field by field (ie line by line) for matched fields. You can quickly see what fields come from which record. The comparison is similar to the way diff works. Matches between records are denoted with an ‘m’ while one record is denoted with a plus-sign and the other with a minus-sign. <span class="caps">TODO</span>: a curses interface may allow for color coding differences.</p>
|
70
|
+
|
71
|
+
|
72
|
+
<p><strong>Optional: Check the record for common errors.</strong> If you have Perl’s <span class="caps">MARC</span>::Lint installed you can see if all your indicators have proper values and only repeatable fields repeat. An added feature is determining what encoding level (ISBD, <span class="caps">AACR2</span>) the record is in.</p>
|
73
|
+
|
74
|
+
|
75
|
+
<p><strong>Choose records from different targets and then choose among them to find the best record.</strong> In the end you just want one record and you want the best one. All the same features available for each target are also available for all the records chosen from all targets, so users can pick the best record for their location. View the full records, compare two records, and optionally lint records. This allows you to choose possible records quickly from various targets and then make a final decision later on.</p>
|
76
|
+
|
77
|
+
|
78
|
+
<p><strong>Scripted changes to records.</strong> Zcc is highly configurable for making scripted changes to each record like macros. Want to delete all 900 or 9XX fields from a record before importing into your library system? Zcc can do that and more. Add fields and subfields with pre-determined information or prompt for information. The previous examples are easy to configure. With a little Ruby scripting you can make more complex changes. A few sample scripts are provided that do things like take the dewey call number from the 082a field and copy it to the fields Koha uses for call numbers, and if there is no 082a field it prompts for the proper call number parts. Don’t need the feature? Just turn it off.</p>
|
79
|
+
|
80
|
+
|
81
|
+
<p><strong>Output to <span class="caps">CSV</span> file.</strong> Want to print labels or keep statistics? Zcc allows you to choose which subfields you would like to export into a <span class="caps">CSV</span> file. Programs like glabels can accept <span class="caps">CSV</span> files for custom labelmaking. <span class="caps">CSV</span> files can also be imported into spreadsheet programs like OpenOffice Calc or Excel. If a value is not found for a particular field Zcc will prompt the user for input, which can be blank.</p>
|
82
|
+
|
83
|
+
|
84
|
+
<h2>Configuration</h2>
|
85
|
+
|
86
|
+
<p>Because of all the scripting and csv features zcc requires a lot of configuration. Currently the configuration files are my own. I use them and they work for my purposes, but they will not work for yours. Once you have configured zcc, though, you should be copy cataloging much faster.</p>
|
87
|
+
|
88
|
+
|
89
|
+
<p>All of the configuration (as of 0.0.2) is looked for in the user’s home directory in .zcc/zcc.yaml. An example zcc.yaml config file can be found in the examples directory of the gem.</p>
|
90
|
+
|
91
|
+
|
92
|
+
<pre syntax="ruby">cp /var/lib/gems/1.8/gems/zcc-0.0.1/examples/zcc.yaml
|
93
|
+
~/.zcc/zcc.yaml</pre>
|
94
|
+
One line; that’s what I do.
|
95
|
+
<p>To get the program running right away also create a file called zoomer-iterator.txt and place that in .zcc as well. I use this to create item numbers and barcodes.</p>
|
96
|
+
|
97
|
+
|
98
|
+
<h2>Use</h2>
|
99
|
+
|
100
|
+
<p>$ zcc</p>
|
101
|
+
|
102
|
+
|
103
|
+
<ol>
|
104
|
+
<li>Configure both ~/.zcc/zcc.yaml.</li>
|
105
|
+
<li>From the command line run zcc</li>
|
106
|
+
<li>Enter a title or <span class="caps">ISBN</span> to search for.</li>
|
107
|
+
<li>rset.length is the number of results found in the target. Depending on configuration you may not be presented with all results.</li>
|
108
|
+
<li>Next to each shown result is a number. Numbering starts with zero. Use that number in the following way:</li>
|
109
|
+
<li>Zcc command line<ul>
|
110
|
+
<li>Key in a number and hit Enter to select a record into your own set.</li>
|
111
|
+
<li>Key ’s’ followed by a number to see the result. For instance ‘s3’ would show you the full <span class="caps">MARC</span> for the 3rd record.</li>
|
112
|
+
<li>To compare two records enter ‘c#-#’. For instance ‘c5-3’ would compare record 5 to record 3. Matches are shown with ‘m’ at the beginning of a line.</li>
|
113
|
+
<li>Enter ‘n’ to go to the next ztarget.</li>
|
114
|
+
<li>Enter ‘d’ if you are done selecting records. This will skip all</li>
|
115
|
+
</ul></li>
|
116
|
+
</ol>
|
117
|
+
|
118
|
+
<h2>TODO</h2>
|
119
|
+
|
120
|
+
<p><strong>Smart character set conversion</strong> Currently incoming records are assumed to be marc-8 and are converted to utf-8. This is complex. Let me know what you need here.</p>
|
121
|
+
|
122
|
+
|
123
|
+
<p><strong>TUI</strong> If there is interest in this script, I’m hoping to make a nice Text User Interface with curses or ncurses. Currently everything just scrolls up the terminal.</p>
|
124
|
+
|
125
|
+
|
126
|
+
<p><strong>Automatic retrieval of authority records.</strong> I already have a separate script in the works that can retrieve authority records for names (not subjects). I’d like to work that as an option into the main script.</p>
|
127
|
+
|
128
|
+
|
129
|
+
<p><strong>Unit Testing.</strong> While I’ve tested the script in my own work, I need to do more formal testing of the methods.</p>
|
130
|
+
|
131
|
+
|
132
|
+
<p><strong>Exception handling.</strong> Currently there’s not great exception handling in the script. This needs to change, but hasn’t caused problems for me yet.</p>
|
133
|
+
|
134
|
+
|
135
|
+
<p><strong>Internationalize</strong> This can start by not hardcoding any fields and allowing them to be configurable. The initial display of fields on search of a target should show the relevant fields in the user’s prefered <span class="caps">MARC</span> flavor. If there is interest, I’d be willing to try making other text translatable.</p>
|
136
|
+
|
137
|
+
|
138
|
+
<p><del>Move all configuration to <span class="caps">YAML</span> file. Currently some configuration is made in the main script and some in the <span class="caps">YAML</span> file.</del> v. 0.0.2</p>
|
139
|
+
|
140
|
+
|
141
|
+
<p>Create full <strong>rdoc documentation</strong>.</p>
|
142
|
+
|
143
|
+
|
144
|
+
<h2>Requirements</h2>
|
145
|
+
|
146
|
+
<p><a href="http://ruby-lang.org/">Ruby</a> 1.8+ I’m not completely sure what versions of Ruby will work.</p>
|
147
|
+
|
148
|
+
|
149
|
+
<p><a href="http://www.indexdata.dk/yaz/">YAZ</a> I suggest adding the indexdata repositories for your distro (Debian or Redhat) and installing that way. From a footnote to ruby-zoom: If you build from source, make sure you pass the—enable-shared option to the configure script before building <span class="caps">YAZ</span>, by default it does not build shared libraries required by Ruby/ZOOM.</p>
|
150
|
+
|
151
|
+
|
152
|
+
<p><a href="http://ruby-zoom.rubyforge.org/">ruby-zoom</a> Follow the instructions to install. Hopefully there will be a gem soon. To compile ruby1.8-dev must be installed.</p>
|
153
|
+
|
154
|
+
|
155
|
+
<p><a href="http://www.textualize.com/ruby_marc">ruby-marc</a> This one’s easy. As long as you have rubygems installed just issue the command: gem install marc</p>
|
156
|
+
|
157
|
+
|
158
|
+
<p>*nix? Zcc has only been tested on Linux (Debian Etch). It may work under other operating systems. Feedback is appreciated on how it functions under other operating systems. I’m willing to try to make it work if there is interest.</p>
|
159
|
+
|
160
|
+
|
161
|
+
<p>gem install unicode</p>
|
162
|
+
|
163
|
+
|
164
|
+
<p>The gems bin folder must be added to your <span class="caps">PATH</span>. For me it is /var/lib/gems/1.8.bin</p>
|
165
|
+
|
166
|
+
|
167
|
+
<h2>Suggestions</h2>
|
168
|
+
|
169
|
+
<p>Perl and <span class="caps">MARC</span>::Lint To have error checking of records turned on you must also have Perl and <span class="caps">MARC</span>::Lint installed.</p>
|
170
|
+
|
171
|
+
|
172
|
+
<h2>Using Koha with zcc</h2>
|
173
|
+
|
174
|
+
<p>There is no integration yet between Koha and zcc, but I use both so am working towards that end. For now you can find some help on this page: <a href="http://zcc.rubyforge.org/koha.html">using Koha with zcc</a></p>
|
175
|
+
|
176
|
+
|
177
|
+
<h2>Help/paches</h2>
|
178
|
+
|
179
|
+
<p>email: <a href="mailto:jronallo+zcc@gmail.com">Jason Ronallo</a></p>
|
180
|
+
|
181
|
+
|
182
|
+
<h2>License</h2>
|
183
|
+
|
184
|
+
<p>Copyright© 2007 Jason Ronallo</p>
|
185
|
+
|
186
|
+
|
187
|
+
<p>This program is free software; you can redistribute it and/or modify it under the terms of the <span class="caps">GNU</span> General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.</p>
|
188
|
+
|
189
|
+
|
190
|
+
<p>This program is distributed in the hope that it will be useful, but <span class="caps">WITHOUT ANY WARRANTY</span>; without even the implied warranty of <span class="caps">MERCHANTABILITY</span> or <span class="caps">FITNESS FOR A PARTICULAR PURPOSE</span>. See the <span class="caps">GNU</span> General Public License for more details.</p>
|
191
|
+
|
192
|
+
|
193
|
+
<p>You should have received a copy of the <span class="caps">GNU</span> General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, <span class="caps">MA 02110</span>-1301, <span class="caps">USA</span></p>
|
194
|
+
|
195
|
+
|
196
|
+
<h2>Contact</h2>
|
197
|
+
|
198
|
+
<p>Comments are welcome. Send an email to <a href="mailto:jronallo+zcc@gmail.com">Jason Ronallo</a>.</p>
|
199
|
+
|
200
|
+
</div>
|
201
|
+
|
202
|
+
<!-- insert site tracking codes here, like Google Urchin -->
|
203
|
+
|
204
|
+
</body>
|
205
|
+
</html>
|
data/website/zcc.txt
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
h1. zcc
|
2
|
+
|
3
|
+
h1. → 'zcc'
|
4
|
+
|
5
|
+
h2. What
|
6
|
+
|
7
|
+
Z Copy Cataloging is a command line tool written in Ruby to make your MARC record copy cataloging faster and more accurate. The 'Z' may stand for Zippy if you really want it to.
|
8
|
+
|
9
|
+
h1. *THIS IS _alpha_ SOFTWARE. IT MIGHT MANGLE YOUR MARC AND CORRUPT YOUR CATALOG.*
|
10
|
+
|
11
|
+
h2. Installing
|
12
|
+
|
13
|
+
<pre syntax="ruby">sudo gem install zcc</pre>
|
14
|
+
|
15
|
+
h2. Repository
|
16
|
+
|
17
|
+
svn co svn://208.78.97.122/zcc
|
18
|
+
|
19
|
+
h2. Features
|
20
|
+
|
21
|
+
*Z39.50 search for records.* Configure Zcc for as many targets as you like in order of preference. A relatively current list of targets is provided based on the targettest list. If you find the perfect record with the first target other targets do not have to be searched.
|
22
|
+
|
23
|
+
*Search by Title or ISBN* Currently two searches are supported. From the same prompt you may search either by Title or ISBN. For a search of the Library of Congress you may also search by Library of Congress Card Number.
|
24
|
+
|
25
|
+
*See the most important fields for copy cataloging when choosing correct records.* In the initial list view Zcc presents the user with the full 245 (title and statement of responsibility) and 300 (extent, which includes page numbers). This gives you a quick way to determine potential records. TODO: Make the fields displayed configurable, especially for other MARC flavors.
|
26
|
+
|
27
|
+
*View the full MARC record before choosing.* Zcc allows you to see the full MARC record in a pretty line format. Zcc does not hide MARC from you, even as ugly as it can be.
|
28
|
+
|
29
|
+
*Compare two records and choose the best.* Zcc compares field by field (ie line by line) for matched fields. You can quickly see what fields come from which record. The comparison is similar to the way diff works. Matches between records are denoted with an 'm' while one record is denoted with a plus-sign and the other with a minus-sign. TODO: a curses interface may allow for color coding differences.
|
30
|
+
|
31
|
+
*Optional: Check the record for common errors.* If you have Perl's MARC::Lint installed you can see if all your indicators have proper values and only repeatable fields repeat. An added feature is determining what encoding level (ISBD, AACR2) the record is in.
|
32
|
+
|
33
|
+
*Choose records from different targets and then choose among them to find the best record.* In the end you just want one record and you want the best one. All the same features available for each target are also available for all the records chosen from all targets, so users can pick the best record for their location. View the full records, compare two records, and optionally lint records. This allows you to choose possible records quickly from various targets and then make a final decision later on.
|
34
|
+
|
35
|
+
*Scripted changes to records.* Zcc is highly configurable for making scripted changes to each record like macros. Want to delete all 900 or 9XX fields from a record before importing into your library system? Zcc can do that and more. Add fields and subfields with pre-determined information or prompt for information. The previous examples are easy to configure. With a little Ruby scripting you can make more complex changes. A few sample scripts are provided that do things like take the dewey call number from the 082a field and copy it to the fields Koha uses for call numbers, and if there is no 082a field it prompts for the proper call number parts. Don't need the feature? Just turn it off.
|
36
|
+
|
37
|
+
*Output to CSV file.* Want to print labels or keep statistics? Zcc allows you to choose which subfields you would like to export into a CSV file. Programs like glabels can accept CSV files for custom labelmaking. CSV files can also be imported into spreadsheet programs like OpenOffice Calc or Excel. If a value is not found for a particular field Zcc will prompt the user for input, which can be blank.
|
38
|
+
|
39
|
+
h2. Configuration
|
40
|
+
|
41
|
+
Because of all the scripting and csv features zcc requires a lot of configuration. Currently the configuration files are my own. I use them and they work for my purposes, but they will not work for yours. Once you have configured zcc, though, you should be copy cataloging much faster.
|
42
|
+
|
43
|
+
|
44
|
+
All of the configuration (as of 0.0.2) is looked for in the user's home directory in .zcc/zcc.yaml. An example zcc.yaml config file can be found in the examples directory of the gem.
|
45
|
+
|
46
|
+
<pre syntax="ruby">cp /var/lib/gems/1.8/gems/zcc-0.0.1/examples/zcc.yaml
|
47
|
+
~/.zcc/zcc.yaml</pre>
|
48
|
+
One line; that's what I do.
|
49
|
+
|
50
|
+
To get the program running right away also create a file called zoomer-iterator.txt and place that in .zcc as well. I use this to create item numbers and barcodes.
|
51
|
+
|
52
|
+
h2. Use
|
53
|
+
|
54
|
+
$ zcc
|
55
|
+
|
56
|
+
# Configure both ~/.zcc/zcc.yaml.
|
57
|
+
# From the command line run zcc
|
58
|
+
# Enter a title or ISBN to search for.
|
59
|
+
# rset.length is the number of results found in the target. Depending on configuration you may not be presented with all results.
|
60
|
+
# Next to each shown result is a number. Numbering starts with zero. Use that number in the following way:
|
61
|
+
# Zcc command line
|
62
|
+
|
63
|
+
* Key in a number and hit Enter to select a record into your own set.
|
64
|
+
* Key 's' followed by a number to see the result. For instance 's3' would show you the full MARC for the 3rd record.
|
65
|
+
* To compare two records enter 'c#-#'. For instance 'c5-3' would compare record 5 to record 3. Matches are shown with 'm' at the beginning of a line.
|
66
|
+
* Enter 'n' to go to the next ztarget.
|
67
|
+
* Enter 'd' if you are done selecting records. This will skip all
|
68
|
+
|
69
|
+
h2. TODO
|
70
|
+
|
71
|
+
*Smart character set conversion* Currently incoming records are assumed to be marc-8 and are converted to utf-8. This is complex. Let me know what you need here.
|
72
|
+
|
73
|
+
*TUI* If there is interest in this script, I'm hoping to make a nice Text User Interface with curses or ncurses. Currently everything just scrolls up the terminal.
|
74
|
+
|
75
|
+
*Automatic retrieval of authority records.* I already have a separate script in the works that can retrieve authority records for names (not subjects). I'd like to work that as an option into the main script.
|
76
|
+
|
77
|
+
*Unit Testing.* While I've tested the script in my own work, I need to do more formal testing of the methods.
|
78
|
+
|
79
|
+
*Exception handling.* Currently there's not great exception handling in the script. This needs to change, but hasn't caused problems for me yet.
|
80
|
+
|
81
|
+
*Internationalize* This can start by not hardcoding any fields and allowing them to be configurable. The initial display of fields on search of a target should show the relevant fields in the user's prefered MARC flavor. If there is interest, I'd be willing to try making other text translatable.
|
82
|
+
|
83
|
+
-Move all configuration to YAML file. Currently some configuration is made in the main script and some in the YAML file.- v. 0.0.2
|
84
|
+
|
85
|
+
Create full *rdoc documentation*.
|
86
|
+
|
87
|
+
h2. Requirements
|
88
|
+
|
89
|
+
"Ruby":http://ruby-lang.org/ 1.8+ I'm not completely sure what versions of Ruby will work.
|
90
|
+
|
91
|
+
"YAZ":http://www.indexdata.dk/yaz/ I suggest adding the indexdata repositories for your distro (Debian or Redhat) and installing that way. From a footnote to ruby-zoom: If you build from source, make sure you pass the --enable-shared option to the configure script before building YAZ, by default it does not build shared libraries required by Ruby/ZOOM.
|
92
|
+
|
93
|
+
"ruby-zoom":http://ruby-zoom.rubyforge.org/ Follow the instructions to install. Hopefully there will be a gem soon. To compile ruby1.8-dev must be installed.
|
94
|
+
|
95
|
+
"ruby-marc":http://www.textualize.com/ruby_marc This one's easy. As long as you have rubygems installed just issue the command: gem install marc
|
96
|
+
|
97
|
+
*nix? Zcc has only been tested on Linux (Debian Etch). It may work under other operating systems. Feedback is appreciated on how it functions under other operating systems. I'm willing to try to make it work if there is interest.
|
98
|
+
|
99
|
+
gem install unicode
|
100
|
+
|
101
|
+
The gems bin folder must be added to your PATH. For me it is /var/lib/gems/1.8.bin
|
102
|
+
|
103
|
+
h2. Suggestions
|
104
|
+
|
105
|
+
Perl and MARC::Lint To have error checking of records turned on you must also have Perl and MARC::Lint installed.
|
106
|
+
|
107
|
+
h2. Using Koha with zcc
|
108
|
+
|
109
|
+
There is no integration yet between Koha and zcc, but I use both so am working towards that end. For now you can find some help on this page: "using Koha with zcc":http://zcc.rubyforge.org/koha.html
|
110
|
+
|
111
|
+
h2. Help/paches
|
112
|
+
|
113
|
+
email: "Jason Ronallo":mailto:jronallo+zcc@gmail.com
|
114
|
+
|
115
|
+
h2. License
|
116
|
+
|
117
|
+
Copyright (C) 2007 Jason Ronallo
|
118
|
+
|
119
|
+
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
|
120
|
+
|
121
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
122
|
+
|
123
|
+
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
124
|
+
|
125
|
+
h2. Contact
|
126
|
+
|
127
|
+
Comments are welcome. Send an email to "Jason Ronallo":mailto:jronallo+zcc@gmail.com.
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: zcc
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.0.
|
7
|
-
date: 2007-06-
|
6
|
+
version: 0.0.2
|
7
|
+
date: 2007-06-24 00:00:00 -04:00
|
8
8
|
summary: zcc is a command line script for copy cataloging MARC records
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -49,8 +49,12 @@ files:
|
|
49
49
|
- website/index.html
|
50
50
|
- website/index.txt
|
51
51
|
- website/javascripts/rounded_corners_lite.inc.js
|
52
|
+
- website/koha.html
|
53
|
+
- website/koha.txt
|
52
54
|
- website/stylesheets/screen.css
|
53
55
|
- website/template.rhtml
|
56
|
+
- website/zcc.html
|
57
|
+
- website/zcc.txt
|
54
58
|
test_files:
|
55
59
|
- test/test_helper.rb
|
56
60
|
- test/test_zcc.rb
|
@@ -63,6 +67,8 @@ extra_rdoc_files:
|
|
63
67
|
- README.txt
|
64
68
|
- examples/zoomer-iterator.txt
|
65
69
|
- website/index.txt
|
70
|
+
- website/koha.txt
|
71
|
+
- website/zcc.txt
|
66
72
|
executables:
|
67
73
|
- linter.pl
|
68
74
|
- zcc
|