Mercurial > hg > foxridge-archiver
annotate makemeta-lib.pl @ 14:018e7c913b32
lang japanese
author | casties |
---|---|
date | Wed, 01 Jun 2005 14:26:52 +0200 |
parents | f33fb7f1898e |
children | 8d2f0586eca6 |
rev | line source |
---|---|
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
1 #!/usr/local/bin/perl -w |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
2 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
3 use strict; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
4 use XML::LibXML; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
5 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
6 use lib '/usr/local/mpiwg/archive'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
7 use MPIWGStor; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
8 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
9 # make output unbuffered |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
10 $|=1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
11 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
12 # program version |
13 | 13 my $version = "0.1.1 (1.6.2005)"; |
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
14 logger("INFO", "makemeta-lib $version"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
15 |
13 | 16 ########################################### |
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
17 # mappings |
13 | 18 |
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
19 # generic mappings at top level |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
20 my %gen_map = ( |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
21 'Device' => 'meta/image-acquisition/device', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
22 'Image_Type' => 'meta/image-acquisition/image-type', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
23 'Production_Comment' => 'meta/image-acquisition/production-comment', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
24 'Postproduction' => 'meta/image-acquisition/production-comment', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
25 'Language' => 'meta/lang' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
26 ); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
27 # sub type switch tag |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
28 my %type_map = ( |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
29 'Reference_Type' => 'meta/bib@type' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
30 ); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
31 # sub type mappings |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
32 my %subtype_map = ( |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
33 'Book' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
34 '_name' => 'book', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
35 'Author' => 'meta/bib/author', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
36 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
37 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
38 'Place_Published' => 'meta/bib/city', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
39 'Publisher' => 'meta/bib/publisher', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
40 'Edition' => 'meta/bib/edition' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
41 }, |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
42 'Journal Article' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
43 '_name' => 'journal-article', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
44 'Author' => 'meta/bib/author', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
45 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
46 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
47 'Secondary_Title' => 'meta/bib/journal', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
48 'Volume' => 'meta/bib/volume', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
49 'Number' => 'meta/bib/issue', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
50 'Pages' => 'meta/bib/pages' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
51 }, |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
52 'In Book' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
53 '_name' => 'inbook', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
54 'Author' => 'meta/bib/author', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
55 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
56 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
57 'Secondary_Title' => 'meta/bib/book-title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
58 'Pages' => 'meta/bib/pages' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
59 }, |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
60 'Newspaper Article' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
61 '_name' => 'newspaper-article', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
62 'Author' => 'meta/bib/author', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
63 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
64 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
65 'Secondary_Title' => 'meta/bib/newspaper', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
66 'Place_Published' => 'meta/bib/city', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
67 'Number' => 'meta/bib/issue-date', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
68 'Pages' => 'meta/bib/pages' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
69 }, |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
70 'Edited Book' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
71 '_name' => 'edited-book', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
72 'Author' => 'meta/bib/editor', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
73 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
74 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
75 'Place_Published' => 'meta/bib/city', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
76 'Publisher' => 'meta/bib/publisher', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
77 'Edition' => 'meta/bib/edition' |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
78 }, |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
79 'Manuscript' => { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
80 '_name' => 'manuscript', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
81 'Author' => 'meta/bib/author', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
82 'Title' => 'meta/bib/title', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
83 'Year' => 'meta/bib/year', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
84 'Place_Published' => 'meta/bib/location', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
85 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
86 ); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
87 # language element |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
88 my $lang_field = 'Language'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
89 # languages to iso codes |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
90 my %lang_map = ( |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
91 'German' => 'de', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
92 'English' => 'en', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
93 'Italian' => 'it', |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
94 'French' => 'fr', |
13 | 95 'Latin' => 'la', |
14 | 96 'Japanese' => 'ja', |
13 | 97 'Spanish' => 'es' |
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
98 ); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
99 # storage fields |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
100 my $arch_id_field = 'ID_Archive'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
101 my $online_url_field = 'URL'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
102 |
13 | 103 ####################################################### |
104 # internal parameters | |
105 # | |
106 | |
107 # storage | |
12
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
108 my $lib_arch_dir = '/mpiwg/archive/data/library'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
109 my $lib_online_dir = '/mpiwg/online/permanent'; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
110 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
111 # read command line parameters |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
112 my $args = MPIWGStor::parseargs; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
113 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
114 # debug level |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
115 $debug = (exists $$args{'debug'}) ? $$args{'debug'} : 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
116 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
117 # use einstein-cw mode |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
118 my $cw_mode = (exists $$args{'cw-mode'}) ? $$args{'cw-mode'} : 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
119 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
120 # index.meta namespace (not really implemented!) |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
121 my $namespace = ""; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
122 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
123 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
124 my $xml_changed = 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
125 my $errcnt = 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
126 my $warncnt = 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
127 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
128 ####################################################### |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
129 # check parameters that were passed to the program |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
130 # |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
131 my $infile = $$args{'path'}; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
132 if (! $infile) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
133 logger("ABORT", "no input file given!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
134 exit 1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
135 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
136 # strip double slashes |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
137 $infile =~ s/\/\//\//; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
138 if (! -f $infile) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
139 logger("ABORT", "input file \'$infile\' doesn't exist!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
140 exit 1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
141 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
142 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
143 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
144 ####################################################### |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
145 # subroutines |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
146 # |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
147 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
148 sub find_cw_dir { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
149 my ($input_node) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
150 my $src_dir = find_online_dir($input_node, '/mpiwg/archive/data/library/inbox/zwischen_backup'); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
151 my $dest_id = $input_node->findvalue("fm:$arch_id_field"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
152 if (! $dest_id) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
153 logger('ERROR', "no ID field for einstein-cw entry"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
154 $errcnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
155 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
156 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
157 my $dir = "$lib_arch_dir/$dest_id"; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
158 logger('DEBUG', "moving $src_dir to $dir"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
159 if (rename $src_dir, $dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
160 if (-d $dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
161 logger('DEBUG', "directory $dir OK"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
162 return $dir; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
163 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
164 } else { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
165 logger('ABORT', "unable to rename directory $src_dir to $dir!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
166 exit 1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
167 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
168 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
169 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
170 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
171 sub find_online_dir { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
172 my ($input_node, $base_dir) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
173 $base_dir = $lib_online_dir unless ($base_dir); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
174 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
175 my $online_url = $input_node->findvalue("fm:$online_url_field"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
176 if ($online_url =~ /fn=permanent\/(.+)\/pageimg/) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
177 my $online_dir = $1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
178 #logger("DEBUG", "dir: $base_dir/$online_dir"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
179 my $dir = "$base_dir/$online_dir"; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
180 if (-d $dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
181 logger('DEBUG', "directory $dir exists"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
182 return $dir; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
183 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
184 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
185 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
186 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
187 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
188 sub find_arch_dir { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
189 my ($input_node) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
190 my $dir = ""; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
191 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
192 my $bib_dir = $input_node->findvalue("fm:$arch_id_field"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
193 #logger('DEBUG', "bibdir: $bib_dir"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
194 if ($bib_dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
195 $dir = "$lib_arch_dir/$bib_dir"; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
196 if (-d $dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
197 logger('DEBUG', "directory $dir exists"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
198 return $dir; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
199 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
200 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
201 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
202 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
203 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
204 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
205 sub convert_bib { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
206 my ($input_node, $index_root, $index_doc) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
207 my $cnt = 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
208 my $type = ""; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
209 my $type_path = ""; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
210 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
211 # process general stuff first |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
212 foreach my $n ($input_node->getChildNodes()) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
213 my $name = $n->nodeName(); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
214 my $val = $n->textContent(); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
215 #logger('DEBUG', " NODE: $name = '$val'"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
216 if (exists $gen_map{$name}) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
217 # is a general field |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
218 if ($name eq $lang_field) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
219 # language field -> convert to iso code |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
220 if (exists $lang_map{$val}) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
221 $val = $lang_map{$val}; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
222 } else { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
223 logger('ERROR', "unknown language: $val! skipping..."); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
224 $errcnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
225 return 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
226 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
227 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
228 create_element_path($gen_map{$name}, $index_root, $namespace) |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
229 ->appendTextNode($val); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
230 $cnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
231 } elsif (exists $type_map{$name}) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
232 # is a type field |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
233 $type_path = $type_map{$name}; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
234 $type = $val; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
235 # check with known types |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
236 if (exists $subtype_map{$val}) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
237 my $indextype = $subtype_map{$val}->{'_name'}; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
238 create_element_path("$type_path=$indextype", $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
239 $cnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
240 } else { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
241 logger('ERROR', 'unknown bib type $val! skipping...'); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
242 $errcnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
243 return 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
244 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
245 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
246 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
247 # process sub type fields |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
248 if ($type) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
249 foreach my $n ($input_node->getChildNodes()) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
250 my $name = $n->nodeName(); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
251 my $val = $n->textContent(); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
252 #logger('DEBUG', " NODE: $name = '$val'"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
253 if (exists $subtype_map{$type}->{$name}) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
254 create_element_path($subtype_map{$type}->{$name}, $index_root, $namespace) |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
255 ->appendTextNode($val); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
256 $cnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
257 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
258 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
259 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
260 return $cnt; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
261 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
262 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
263 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
264 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
265 sub process_all_fm_entries { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
266 my ($input_root) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
267 my $cnt = 0; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
268 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
269 foreach my $n ($input_root->findnodes('fm:ROW')) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
270 logger('INFO', "processing entry $cnt ..."); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
271 process_fm_entry($n); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
272 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
273 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
274 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
275 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
276 sub process_fm_entry { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
277 my ($input_node) = @_; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
278 my $index_doc = XML::LibXML::Document->createDocument('1.0', 'UTF-8'); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
279 my $index_root = $index_doc->createElementNS($namespace, 'resource'); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
280 $index_root->addChild($index_doc->createAttributeNS($namespace, 'version', '1.1')); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
281 $index_root->addChild($index_doc->createAttributeNS($namespace, 'type', 'MPIWG')); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
282 $index_doc->setDocumentElement($index_root); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
283 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
284 # try to find the document directory |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
285 my $doc_dir = ""; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
286 if ($cw_mode) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
287 $doc_dir = find_cw_dir($input_node); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
288 } else { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
289 $doc_dir = find_arch_dir($input_node); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
290 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
291 if (! $doc_dir) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
292 logger('ERROR', "document directory not found! skipping..."); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
293 $errcnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
294 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
295 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
296 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
297 # add standard stuff to index.meta |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
298 my ($docname, $docpath) = split_file_path($doc_dir); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
299 # name and date |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
300 create_text_path('name', $docname, $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
301 create_text_path('archive-path', $doc_dir, $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
302 create_text_path('archive-creation-date', stime(time), $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
303 create_text_path('creator', 'digigroup', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
304 create_text_path('description', 'a scanned document', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
305 # acquisition |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
306 create_text_path('meta/acquisition/date', stime(time), $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
307 create_text_path('meta/acquisition/provider/provider-id', 'digigroup', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
308 create_text_path('meta/acquisition/provider/address', 'Max Planck Institute for the History of Science', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
309 # media |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
310 create_text_path('media-type', 'image', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
311 create_text_path('meta/content-type', 'scanned document', $index_root, $namespace); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
312 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
313 # convert bib entries |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
314 my $cnt = convert_bib($input_node, $index_root, $index_doc); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
315 if ($cnt == 0) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
316 # error or nothing to convert |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
317 logger('ERROR', "no bibliographic metadata!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
318 $errcnt++; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
319 return; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
320 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
321 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
322 # write new index.meta file |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
323 write_xml($index_doc, "$doc_dir/index.meta"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
324 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
325 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
326 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
327 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
328 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
329 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
330 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
331 ####################################################### |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
332 # Main |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
333 # |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
334 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
335 # load filemaker xml dump |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
336 my ($input_doc, $input_root) = read_xml($infile); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
337 # set namespace prefix |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
338 my $fm_namespace = $input_root->namespaceURI(); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
339 $input_root->setNamespace($fm_namespace, 'fm', 1); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
340 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
341 process_all_fm_entries($input_root); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
342 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
343 |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
344 logger("INFO", "$warncnt warnings"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
345 logger("INFO", "$errcnt errors"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
346 if ($errcnt > 0) { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
347 logger("ABORT", "there were errors!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
348 exit 1; |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
349 } else { |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
350 logger("DONE", "done something successfully!"); |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
351 } |
620aad237f57
new tool makemeta-lib.pl to create index meta entries from the libraries online sources database
casties
parents:
diff
changeset
|
352 |