r1471@llin: dpavlin | 2007-11-02 14:00:35 +0100
[webpac2] / conf / normalize / ff-libri.pl
1 #########################################################################
2 ##                                                                      ##
3 ## Ova datoteka sadr¾i pravila za generiranje MARC21 ISO 2709 izlazne   ##
4 ## datoteke. Ulazni format je CDS/ISIS sa zapisima u UNIMARC-u.         ##
5 ##                                                                      ##      
6 ##########################################################################
7
8 # konvertira se ako postoji polje 200^a
9
10 if ( rec('200','a') ) {
11
12 ### LEADER
13 # raspraviti 17,18
14 # u nekim knji¾nicama koristi se 999a i 999b, a u nekima samo 999
15
16 if ( rec('999') && first(rec('999')) =~ m/(pregledan|P)/i) {
17         marc_leader('05','c');
18 } else {
19         marc_leader('05','n');
20 }
21
22 # moguæa je i oznaka "m" u 06 - odrediti kriterije
23         marc_leader('06','a');
24         marc_leader('07','m');
25         marc_leader('18','i');
26
27 # pojasniti upotrebu 19 lidera!
28
29 if ( rec('230') ) {
30         marc_leader('19','r');
31 }
32
33 ### 001 - Voyager
34
35 ### 003
36 # Pojasniti upotrebu polja
37
38 ### 007
39 # pojasniti upotrebu polja
40
41 marc_fixed('007',00,'ta');
42
43 ### 008 - All materials
44
45 # ¹to zapisati u polje kad datum nije poznat?
46
47 if ( rec('994','c') ) {
48         marc_fixed('008','00',
49                 regex('s/^\d\d//',
50                         rec('994','c')
51                 ),
52         );
53 } else {
54         marc_fixed('008', 00,
55                 '000101'
56         );
57 }
58
59 #warn( dump(
60 #       regex('s/^\d\d//',
61 #               rec('994','c')
62 #       ),
63 #)
64 #);
65
66 marc_fixed('008','06', 't');            # 06 - Type of date/Publication status
67 marc_fixed('008','07',
68         rec('210','d')
69 );                                      # 07-10 - Date 1
70 # marc_fixed('008','11', ' ');          # 11-14 - Date 2 
71 marc_fixed('008','15', 
72         lc ( rec('102') ) 
73 );                                      # 15-17 - Place of publication, production, or execution
74 marc_fixed('008','35',
75         first( lc(rec('101')) )         # 35-37 - Language
76 );
77 marc_fixed('008','38', '|');            # 38 - Modified record
78 marc_fixed('008','39','d');             # 39 - Cataloging source
79
80
81 ### 008 - Books
82
83                                         # 18-21 - Illustrations
84                                         # 22 - Target audience
85                                         # 23 - Form of item
86                                         # 24-27 - Nature of contents
87                                         # 28 - Government publication
88                                         # 29 - Conference publication
89                                         # 30 - Festschrift
90                                         # 31 - Index
91                                         # 32 - Undefined
92                                         # 33 - Literary form
93                                         # 34 - Biography
94
95
96 ### 020
97 # postoji modify -> drugi ISBN poèinje prefixom "ISBN" koji se mièe (sfb)
98
99 marc('020','a',
100         regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
101                 rec('10')
102         )
103 );
104
105
106 ### 035$6
107 # Privemeno koristimo 035$6 umjesto 035$9, zato ¹to marclint prijavljuje 9 kao gre¹ku.
108 # marc 035a - System Number - Voyagerov ID (001) 
109 # polje 035$9 mo¾e sadr¾avati slova i razmake
110
111 marc('035','6',
112 join_with('',
113 #               config('input normalize path'),
114 #               config('name'),
115                 config(),
116                 ' L',
117 #               config('input name'),
118 #               id(),
119 #               rec('994','a'),
120                 rec('000')
121         )
122 );
123
124 ### 040
125 # za sve je isti
126 # treba utvrditi toènu oznaku za ustanovu
127
128 marc('040','a',
129         'HR FFZG'
130 );
131
132 marc('040','b',
133         'hrv'
134 );
135
136 marc('040','e',
137         'HR PPIAK'
138 );
139
140
141 ### 041 - indikatori
142 #
143 # pretpostavke o indikatorima:
144
145 # 1. Ako postoji polje 300 i ono sadr¾i /Prijevod/ ili /Izv. stv. nasl./, i1 = 1
146 # (Da li je napomena uvijek pisana?)
147 #
148 # 2. Podatak o prevodiocu u 200g. Problem: razlièiti oblici rijeèi, razlièiti jezici.
149 #
150 # 3. Ako u UDK oznaci postoji "=", bez zagrada, onda je to prijevod
151 # (ako postoje zagrade pr. 94(=411.16) onda su to pomoæne oznake)
152 # pr. 821.111-2=163.42 je prijevod engleske drame na HR. 
153 # to ima samo za knji¾evna djela, eseje.... 
154 # ????
155
156
157 #if ( rec('675') =~ m/\d=\d/ ) {
158 if ( grep( m/prijevod/i, rec('300')) || grep( m/prevedeno/i, rec('300')) || grep( m/izv.*stv.*nasl/i, rec('300')) || grep( m/izvornik/i, rec('300')) || grep( m/preve/i, rec('200','f')) || grep( m/preve/i, rec('200','g')) || grep( m/prijevod/i, rec('200','f')) || grep( m/prijevod/i, rec('200','g')) ) {
159         marc_indicators('041', 1, ' ');
160 } else {
161         marc_indicators('041', 0, ' ');
162 }
163
164
165 ### 041
166 # ponovljivo polje konvertira se u ponovljivo potpolje
167
168 #_debug(2);
169
170 marc_repeatable_subfield('041','a',
171         lc( rec('101') )
172 );
173
174 #_debug(0);
175
176 ### 044
177 ## kako dobiti zemlju izdavanja?
178
179 ### 080
180 # 675 podpolja b, c, d ... - ¹to s njima ???
181
182 marc('080','a',
183         rec('675','a')
184 );
185
186 marc('080','a',
187         rec('675','b')
188 );
189
190 marc('080','a',
191         rec('675','c')
192 );
193
194 marc('080','a',
195         rec('675','d')
196 );
197
198
199 ### 084 - other classification (R)
200 # NSK ga koristi za struènu oznaku NSK iz polja 681
201 # NSK konvertira polje 686 u 084, u skladu s LOC konv. tablicom
202 # polje 686 koristi FFPS. jo¹ netko?
203
204 marc('084','a',
205         rec('686')
206 );
207
208 ### 100 indikatori
209
210 # I1 = 0 ako je pseudonim (ima 700a, nema 700b)
211
212 if ( rec('700','a') && ! rec('700','b') ) {
213         marc_indicators('100', 0, ' ');
214 } else {
215         marc_indicators('100', 1, ' ');
216 }
217
218 ### 100
219
220 marc('100','a',
221         join_with(', ',
222                 rec('700', 'a'),
223                 rec('700', 'b')
224         )
225 );
226
227
228 ### 111 i 110
229 # provjeriti ispise naslova iz svake baze - moguæe su gre¹ke.
230
231 # ovo vrijedi za FFSFB
232 if ( rec('710','d') || rec('710','e') || rec('710','f') ) {
233
234 marc_indicators('111', 2, ' ');
235
236 marc_compose('111',
237         'a', suffix(
238                 rec('710','b') ? '.' :
239                         '',
240                         rec('710','a'),
241         ),
242         'e', rec('710','b'),
243         'n', prefix(
244                 rec('710','d') ? '(' :
245                         '',
246                         rec('710','d')
247         ),
248         'd', prefix(
249                 ( ! rec('710','d') ) ? '(' :
250                 ( ! rec('710','e') ) ? '(' :
251                         '; ',
252                         rec('710','f'),
253         ),
254         'c', prefix(
255                 ( rec('710','e') && ( rec('710','d') || rec('710','f') ) ) ? '; ' :
256                 ( ! rec('710','d') && ! rec('710','f') )  ? '(' :
257                         '',
258                         rec('710','e'),
259         ),
260         '+',')',
261 );
262
263
264 } else {
265         
266 marc_indicators('110', 2, ' ');
267
268 marc('110','a',
269         rec('710','a')
270 );
271
272 marc('110','b',
273         rec('710','b')
274 );
275
276         if ( rec('710','c') ) {
277         marc('110','c',
278                 surround('(', ')', rec('710','c'))
279         );
280         }
281
282 }
283
284
285 ### 245 indikatori
286 # treba nadopuniti i dati podatke na verifikaciju knji¾nièarima
287
288 # i1 = 0 za anonimne publikacije, i1 = 1 ako postoji 700 ili 710
289 # i2 = pretpostavlja se na temelju èlana na poèetku naslova i jezika
290
291 my $i1;
292
293 if ( rec('700') || rec('710') ) {
294         $i1 = 1;
295
296 } else {
297         $i1 = 0;
298 }
299         
300 marc_indicators('245', $i1, 0);
301
302 if (    ( rec('200','a') =~ m/^Die /) || 
303         ( rec('200','a') =~ m/^Das /) || 
304         ( rec('200','a') =~ m/^Der /) || 
305         ( rec('200','a') =~ m/^The /) ) {
306                 marc_indicators('245', $i1, 4);
307
308
309 if (    ( rec('200','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {
310                 marc_indicators('245', $i1, 2);
311
312
313 if (    ( rec('200','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
314                 marc_indicators('245', $i1, 2);
315
316
317 ### 245
318 # podpolja i interpunkcije pripremljeni u modify
319
320 #_debug(3);
321
322 marc_compose('245',
323         'a', suffix(
324                 ( ! ( rec('200','d') || rec('200','e') || rec('200','k') ) ) && ( rec('200','f') ) ? ' /' :  
325                 ( rec('200','d') ) ? ' =' :
326                 ( rec('200','e') ) ? ' :' :
327                 ( rec('200','k') ) ? ' ;' :
328                         '', 
329                         rec('200','a'),
330         ),
331         'b', suffix(
332                 ( rec('200','d') && rec('200','f') ) ? ' /' : 
333                 ( rec('200','d') && rec('200','c') ) ? '.'  : 
334                         '',
335                         rec('200','d'),
336         ),
337         'b', suffix(
338                 ( rec('200','e') && rec('200','f') ) ? ' /' : 
339                 ( rec('200','e') && rec('200','c') ) ? '.'  : 
340                         '',
341                         rec('200','e'),
342         ),
343         'b', suffix(
344                 ( rec('200','k') && rec('200','f') ) ? ' /' : 
345                 ( rec('200','k') && rec('200','c') ) ? '.'  : 
346                         '',
347                         rec('200','k'),
348         ),
349         'c', suffix(
350                 ( rec('200','f') && rec('200','c') ) ? '.' :
351                         '',
352                         rec('200','f'),
353         ),
354         '+', suffix('.',
355                 rec('200','c'),
356         ),
357 );
358
359 #marc_compose('245',
360 #       'a', suffix(
361 #               ( ! rec('200','p') && ( rec('200','f') || rec('200','c') ) ) ? ' / ' :  
362 #               ( ! rec('200','p') && rec('200','c') ) ? ' : '  : 
363 #                       '', 
364 #                       rec('200','a'),
365 #       ),
366 #       'b', suffix(
367 #               ( rec('200','p') && rec('200','f') ) ? ' / ' : 
368 #               ( rec('200','p') && rec('200','c') ) ? '. '  : 
369 #                       '',
370 #                       rec('200','p'),
371 #       ),
372 #       'c', suffix(
373 #               ( rec('200','f') && rec('200','c') ) ? '. ' :
374 #                       '',
375 #                       rec('200','f'),
376 #       ),
377 #       '+', rec('200','c'),
378 #);
379
380 #_debug(0);
381
382 #marc_compose('245',
383 #       'a', suffix(
384 #               rec('200','b') ? '. '   :
385 #               rec('200','k') ? ' ; '  :
386 #               rec('200','d') ? ' = '  :
387 #               rec('200','e') ? ' : '  :
388 #               rec('200','f') ? ' / '  :
389 #                                '.',
390 #                       rec('200','a')
391 #       ),
392 ##      'h', rec('200','b'),
393 #       'b', suffix(
394 #               ( rec('200','k') && rec('200','f') ) ? ' / ' :
395 #                                    ' ',
396 #                       join_with(' ; ',
397 #                               rec('200','k'),
398 #                       ),
399 #       ),
400 #       'b', suffix(
401 #               ( rec('200','d') && rec('200','f') ) ? ' / ' :
402 #                                                      ' ',
403 #                               rec('200','d'), 
404 #       ),
405 #       'b', suffix(
406 #               ( rec('200','e') && rec('200','f') ) ? ' / ' :
407 #                                                      ' ',
408 #                       join_with(' : ',
409 #                               rec('200','e'),
410 #                       ),
411 #       ),
412 #       'c', rec('200','f'),
413 ## append to last subfield
414 #       '+', prefix('. ', 
415 #               rec('200','c') 
416 #       ),
417 #);
418
419
420 ### 250
421 # zapisima koji nemaju potpolje, dodaje se ^a u modify - provjeriti
422
423 marc_compose('250',
424         'a',suffix(
425                 rec('205','f') ? ' / ' : 
426                         ' ',
427                         rec('205','a')
428         ),
429         'b', rec('205','f'),
430 );
431
432 ### 260
433 # ponovljiva potpolja u originalnom redosljedu
434
435 marc_original_order('260', '210');
436
437
438 ### 300
439 # urediti interpunkcije za sve kombinacije
440
441 marc('300','a',
442         suffix(
443                 rec('215','c') ? ' : ' :
444                 rec('215','d') ? ' ; ' :
445                 rec('215','e') ? ' + ' :
446                                         ' ',
447                         rec('215','a')
448         )
449 );
450
451 marc('300','b',
452         suffix(
453                 ( rec('215','c') && rec('215','d') ) ? ' ; ' :
454                 ( rec('215','c') && rec('215','e') ) ? ' + ' :
455                                                        ' ',
456                         rec('215','c')
457         )
458 );
459
460 marc('300','c',
461         suffix(
462                 rec('215','e') ? ' + ' :
463                                  ' ',
464                         rec('215','d')
465         )
466 );
467
468 marc('300','e',
469         rec('215','e')
470 );
471
472 ### 362
473 # brojèani podaci za nakladnièku cjelinu
474 # ???
475
476 ### 440 - indikatori
477 # 2.ind. prema jeziku i èlanu, provjeriri
478
479 marc_indicators('440', ' ', '0');
480
481 if (    ( rec('225','a') =~ m/^Die /) || 
482         ( rec('225','a') =~ m/^Das /) || 
483         ( rec('225','a') =~ m/^The /) ) {
484                 marc_indicators('440', ' ', 4);
485
486
487 if (    ( rec('225','a') =~ m/^A /) && ( rec(101) =~ m/ENG/ ) ) {
488                 marc_indicators('440', ' ', 2);
489
490
491 if (    ( rec('225','a') =~ m/^An /) && ( rec(101) =~ m/ENG/ ) ) {
492                 marc_indicators('440', ' ', 2);
493
494
495 #_debug(3);
496
497 ### 440
498
499 marc_original_order('440','225');
500
501 #marc_compose('440',
502 #       'a', suffix(
503 #               rec('225','i') ? '. ' :
504 #                       '',
505 #                       rec('225','a'),
506 #       ),
507 #       'p', suffix(
508 #               ( ! rec('225','x') && rec('225','i') && rec('225','v') ) ? ' ; ' :
509 #               ( rec('225','i') && rec('225','x') ) ? ', '  :
510 #                       '',
511 #                       rec('225','i'),
512 #       ),
513 #       'x', suffix(
514 #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :
515 #                       '',
516 #                       rec('225','x'),
517 #       ),
518 #       'v', rec('225','v'),
519 #);
520
521 ## ovo radi samo kad 225 nije ponovljivo
522
523 #if (
524 #       count( lookup(
525 #               sub { 1 },
526 #               'ffps','libri',
527 #               sub { rec('225','a') }
528 #       ) ) > 1
529 #) {
530
531 #marc_compose('440',
532 #       'a', suffix(
533 #               ( rec('225','x') ) ? ', '  :
534 #               ( rec('225','v') || rec('225','w') ) ? ' ; ' :
535 #               ( rec('225','h') || rec('225','i') ) ? '. '  :
536 #                       '',
537 #                       join_with(' / ',
538 #                               join_with(' : ',
539 #                                       join_with(' = ',
540 #                                               rec('225','a'),
541 #                                               rec('225','d'),
542 #                                       ),
543 #                                       rec('225','e'),
544 #                               ),
545 #                               rec('225','f'),
546 #                       ),
547 #       ),
548 #       'x', suffix(
549 #               ( rec('225','x') && rec('225','v') ) ? ' ; ' :
550 #               ( rec('225','x') && ( rec('225','h') || rec('225','i') ) ) ? '. ' :
551 #                       '',
552 #                       rec('225','x'),
553 #       ),
554 #       'v', suffix(
555 #               ( rec('225','v') && rec('225','h') || rec('225','i') ) ? '. ' :
556 #                       '',
557 #                       join_with('; ',
558 #                               rec('225','v'),
559 #                       )
560 #       ),
561 #       'n', suffix(
562 #               ( rec('225','h') && rec('225','p') || rec('225','y') ) ? ', ' :
563 #                       '',
564 #                       rec('225','h'),
565 #       ),
566 #       'p', suffix(
567 #               ( rec('225','i') && rec('225','x') ) ? ', ' :
568 #               ( rec('225','i') && rec('225','v') ) ? ' ; ' :
569 #                       '',
570 #                       rec('225','i'),
571 #       ),
572 #       'x', suffix(
573 #               ( rec('225','y') && rec('225','v') ) ? ' ; ' :
574 #                       '',
575 #                       rec('225','y'),
576 #       ),
577 #       'v', rec('225','w'),
578 # );
579
580 # marc_compose('440',
581 #       'a', suffix(
582 #               rec('225','k') ? ' ; ' :
583 #                       '',
584 #                       join_with(' / ',
585 #                               rec('225','b'),
586 #                               rec('225','j')
587 #                       ),
588 #       ),
589 #       'v',
590 #               rec('225','k'),
591 # );
592
593
594 # marc_compose('440',
595 #       'a', suffix(
596 #               rec('225','s') ? ' ; ' :
597 #                       '',
598 #                       join_with(' / ',
599 #                               rec('225','c'),
600 #                               rec('225','r')
601 #                       ),
602 #       ),
603 #       'v',
604 #               rec('225','s'),
605 # );
606
607 #}
608
609 #if ( rec('225','i') ) {
610 #       marc('440','p',
611 #               prefix('. ',
612 #                       rec('225','i')
613 #               ),
614 #       );
615 #}
616 #
617 #if ( rec('225','v') ) {
618 #       marc('440','v',
619 #               prefix(' ; ',
620 #                       rec('225','v'),
621 #               ),
622 #       );
623 #}
624
625 #_debug(0);
626
627
628 ### 50x
629
630 marc('500','a',
631         rec('300')
632 );
633
634 marc('500','a',
635         rec('305')
636 );
637
638 marc('500','a',
639         rec('307')
640 );
641
642 marc('500','a',
643         rec('314')
644 );
645
646 ### 502 - bilje¹ka o disertacijama
647 # odgovarajuæeg polja nema u originalnim podacima. mo¾da se mo¾e pretpostaviti?
648
649 ### 504
650
651 marc('504','a',
652         rec('320')
653 );
654
655 ## napomene uz konverziju polja 327 (sadrzaj):
656 # NSK konvertira 327 (NP) u 501 (R)
657 # u LOC konv. tablici stoji 327 (NP) u 505 (NR)
658 # standard i validacije dopu¹taju 501 (R) i 505 (R)
659
660 ## 505
661 # FFPS 327 - sadrzaj
662
663 if ( config() =~ m/ffps/ || config() =~ m/fftu/ ) {
664         marc_indicators('505', '0', ' ');
665         marc('505','a',
666                 regex('s/\s*[\\r\\n]+\s*\**\s*/ ; /g',
667                         rec('327')
668                 )       
669 );
670 }
671
672 if ( config() =~ m/ffan/ ) {
673         marc_indicators('505', '0', ' ');
674         marc('505','a',
675                 regex('s/[<>]//g',
676                         rec('330')
677                 )       
678 );
679 }
680
681
682 # NSK konvertira 330 (P) u 520 (P) = LOC konv. tablica
683
684
685 ### 520
686 # mo¾da i polje 520y - jezik napomene ako je uvijek isti jezik?
687
688 # FFPS 330 (NP) - sa¾etak
689 if ( config() =~ m/ffps/ ) { 
690         marc('520','a',
691                 regex('s/[\\r\\n]+/. /g',
692                         rec('330')
693                 )       
694         );
695 }
696
697 ### 526 - STUDY PROGRAM INFORMATION NOTE
698 # provjeriti za svaku bazu sta je tocno u 996?
699
700 marc_indicators('526', 8, ' ');
701
702 marc('526','a',
703         rec('996')
704 );
705
706 ### 538 - zahtjevi sustava
707
708 marc('538','a',
709         rec('337','a')
710 );
711
712
713 ### 246
714
715 marc_indicators('246', 1, 3);
716 marc('246','a',
717         rec('532')
718 );
719
720 ### 655
721
722 marc_indicators('655', ' ', 4);
723 marc('655','a',
724         rec('608')
725 );
726
727 ### 653
728
729 marc_indicators('653', 0, ' ');
730 marc('653','a',
731         rec('610')
732 );
733
734 #_debug(2);
735
736
737 ### 700
738
739 marc_indicators('700', 1, ' ');
740
741 if ( rec('701') ) { 
742 marc('700','4', 
743         'aut'
744 ); 
745 }
746
747 marc('700','a',
748         join_with(', ',
749                 rec('701', 'a'),
750                 rec('701', 'b')
751         )
752 );
753
754 marc('700','a',
755         join_with(', ',
756                 rec('701', 'c'),
757                 rec('701', 'd')
758         )
759 );
760
761 marc('700','a',
762         join_with(', ',
763                 rec('701', 'e'),
764                 rec('701', 'f')
765         )
766 );
767
768 marc('700','a',
769         join_with(', ',
770                 rec('701', 'g'),
771                 rec('701', 'h')
772         )
773 );
774
775
776 marc('700','a',
777         join_with(', ',
778                 rec('702', 'a'),
779                 rec('702', 'b')
780         )
781 );
782
783
784 # ako je u originalu ponovljivo polje treba biti i konvertirano u ponovljivo !!
785
786
787 marc('700','a',
788         join_with(', ',
789                 rec('702','c'),
790                 rec('702','d')
791         )
792 );
793
794 marc('700','a',
795         join_with(', ',
796                 rec('702','e'),
797                 rec('702','f')
798         )
799 );
800
801 marc('700','a',
802         join_with(', ',
803                 rec('702','g'),
804                 rec('702','h')
805         )
806 );
807
808 #_debug(0);
809
810
811 ### 740
812
813 marc_indicators('740', 0, ' ');
814
815 # if ( ! rec('464') ) {
816 # marc('740','a',
817 #       rec('200','c')
818 # );
819
820 marc('740','a',
821         rec('200','k')
822 );
823
824 # } else {
825
826 #marc('740','a',
827 #       rec('464','a')
828 #);
829
830 # };
831
832 # generiranje zapisa o nakladnièkoj cjelini i povezivanje podreðenog zapisa s nadreðenim
833
834 if (
835         rec('225','a')  # da li je nakladnièka cjelina?
836 ) {
837
838 my $series_key =
839 join_with('',
840         rec('225','a'),
841         rec('210','a'),
842         rec('210','b'),
843 );
844
845 my $series = get( $series_key );
846
847 if ($series) {
848         warn "nije novi";
849 } else {
850
851 $series = join_with('',
852         uc( config() ),
853         ' LS',
854         rec('000')
855 );
856
857 set( $series_key => $series );
858
859 } # $series
860 } # nakladnièka cjelina
861
862 my $series_key = join_with('',
863         rec('225','a'),
864         rec('210','a'),
865         rec('210','b'),
866 );
867
868 if ($series_key) {
869
870         marc_indicators('760', 0, ' ');
871         
872         marc('760','w',
873                 get( $series_key )
874         );
875 }
876 ### testing
877 #
878 # my $dup_key = join_with('',
879 #       rec('200','a'),
880 #);
881 #
882 #if ($dup_key) {
883 #       marc('995','a',
884 #               get( $dup_key )
885 #       );
886 #}
887 #
888 #
889 # marc_indicators('776', 0, ' ');
890
891 # marc('776','a',
892 #       rec('452','1')
893 # );
894 #
895
896
897 ### 852 - lokacija
898
899 marc_indicators('852', 4, ' ');
900
901 marc('852','j',
902         join_with(' ',
903                 rec('990')
904         )
905 );
906
907 ### 876 - item information - basic bibliographic unit
908
909 marc('876','a',
910         rec('991'),
911 );
912
913 ### 886 - former marc
914
915 marc_indicators('886', 2, ' ');
916
917 marc('886','2',
918         'ffmarc'
919 );
920
921 marc('886','a',
922         '994'
923 );
924
925 marc('886','b',
926         join_with(''.
927                 '##^a',
928                 join_with('',
929                         prefix('^a',
930                                 rec('994','a'),
931                         ),
932                         prefix('^b',
933                                 rec('994','b')
934                         )
935                 )
936         )
937 );
938
939
940 } # polje 200a