ࡱ> ` 8bjbjss '/  8D$, J\^NNNB&h t5J7J7J7J7J7J7J$VLhN[J b$  "b$b$[J NNpJ.,.,.,b$| N N5J.,b$5J.,.,G 7INP {r+'0G5JJ0JG:O)O47I7IFO }I|V .,!"|||[J[J+d|||Jb$b$b$b$      TITLE \* MERGEFORMAT Importing MARC data into DSpace Author:  AUTHOR \* MERGEFORMAT Steve Thomas, Senior Systems Analyst,  DOCPROPERTY Company \* MERGEFORMAT University of Adelaide Library Last Update:  DATE \@ "d/MM/yyyy h:mm am/pm" 6/08/2006 5:09 pm Abstract: Describes a methodology and Perl scripts used to import data into DSpace derived from a file of MARC records. Problem We have two collections of documents stored locally on web servers, with a record describing each document in our Catalogue. Each catalogue record includes a URL linking to the document file. We wanted to migrate the documents into our new DSpace repository, and so needed to convert the Catalogue records into Dublin Core to provide the metadata for each document. Importing items into DSpace requires that they be organised into a specific structure: import is from a directory containing one sub-directory for each item, with each subdirectory containing the document file(s), a contents file listing the document files, and a dublin_core.xml file containing the metadata. This is all detailed in the  HYPERLINK "http://www.dspace.org/technology/system-docs/application.html" \l "itemimporter" DSpace system documentation, which provides the following succinct diagram: archive_directory/ item_000/ dublin_core.xml -- qualified Dublin Core metadata contents -- text file containing one line per filename file_1.doc -- files to be added as bitstreams to the item file_2.pdf item_001/ dublin_core.xml contents file_1.png ... So the task was to generate the required directory structure and the dublin_core.xml file from the MARC catalogue record. Conversion of MARC to Dublin Core The first task was to convert our catalogue MARC records into Dublin Core, in the format required by DSpace. DSpace uses a reasonably simple version of qualified Dublin Core , thus: A Tale of Two Cities 1990 J'aime les Printemps To convert to this format, I developed a simple Perl script. While I could have written code to pull apart the MARC record, there are well-developed modules available from CPAN to do this, so I used two of these: MARC::File::USMARC which provides basic operations to convert MARC into an internal data structure, and MARC::Crosswalk::DublinCore which uses that structure to create a qualified Dublin Core data structure. This gave me a basic MARC->DC conversion script, which looks like this: #!/usr/local/bin/perl -w use MARC::Crosswalk::DublinCore; use MARC::File::USMARC; $/ = chr(29); # MARC record separator print qq|\n|; while (my $blob = <>) { # suck in one MARC record at a time print qq|\n|; # convert the MARC to DC my $marc = MARC::Record->new_from_usmarc( $blob ); my $crosswalk = MARC::Crosswalk::DublinCore->new( qualified => 1 ); my $dc = $crosswalk->as_dublincore( $marc ); # output the DC as XML for( $dc->elements ) { my $element = $_->name; my $qualifier = $_->qualifier; my $scheme = $_->scheme; my $content = $_->content; printf qq| %s\n|, $content; } print qq|\n|; } print qq|\n|; exit; So far so good. This script will take a file of MARC records and output an XML file of Dublin Core records, which look like this: Potassium fertiliser use in South Australia [electronic resource] / P.M. Barrow Barrow, P. M. South Australia. Agronomy Branch Potassium fertilizers South Australia. "Paper presented at a Symposium on 'Potassium in South-Eastern Australia', held at Monash University, August 21-22, 1967." Electronic reproduction. Adelaide, S. Aust. : University of Adelaide, Barr Smith Library, 2006. Title from t.p. on PDF file (viewed 23 May 2006). Electronic text, download as a PDF file. Available via the World Wide Web. System requirements: Adobe Acrobat Reader required to view/print PDF files. [Adelaide, S. Aust.] : Dept. of Agriculture, South Australia, 1968 2006. 1968 1968 Text 11 leaves ; eng System requirements: Adobe Acrobat Reader required to view/print PDF files. Agronomy Branch report ; no. 1 Also available in a print form. Also available in a print form. South Australia. Now, for the purpose of import into DSpace, there are a number of problems with this, due to the requirements of DSpace: the element and qualifier must be lower-case; the content may contain reserved characters (&<>) that need escaping; the author must use element=contributor and qualifier=author; the qualifier isPartOf needs to be ispartofseries; some elements provide a scheme rather than a qualifier; DSpace does not recognise the scheme attribute; the type element is technically correct but uninformative, and should be replaced with a DSpace type; the format element is used internally by DSpace to describe files, so should probably be avoided; date elements have been repeated, because MARC::Crosswalk::DublinCore is helpfully extracting data from as many fields and subfields as possible; some MARC data is irrelevant in the DSpace context, because it relates to print editions, or reflects excessive zeal on the part of the cataloguer. Many of these problems can be solved with a few additions to the script: for( $dc->elements ) { # lowercase all attributes my $element = lc $_->name; my $qualifier = lc $_->qualifier; my $scheme = lc $_->scheme; my $content = $_->content; # escape reserved characters $content =~ s/&/&/gs; $content =~ s//>/gs; # munge attributes for DSpace compatibility if ($element eq 'creator') { $element = 'contributor'; $qualifier = 'author'; } if ($element eq 'format') { $element = 'description'; $qualifier = ''; } if ($element eq 'language') { if ($scheme eq 'iso 639-2') { $qualifier = 'iso'; $scheme = ''; } else { $element = 'description'; $qualifier = ''; } } if ($qualifier eq 'ispartof') { $qualifier = 'ispartofseries'; } printf qq| %s\n|, $content; } It is also possible to prove a filter function to MARC::Record->new that will filter out unwanted MARC tags. For example, one might ignore the 008 in order not to duplicate date elements. Other issues are perhaps better dealt with by post-conversion editing of the xml file. The script is then run as follows: > ./marc2dc.pl marc.bib > collection.xml Building the import directory structure Having converted our metadata into Dublin Core, I then needed to use this to build the required directory structure. This is accomplished with a second Perl script, build.pl, which needs to be customised for each collection to be imported. The basic idea is: extract each Dublin Core record from the XML file; create a sub-directory for the record; extract the document file name from the identifier; create the dublin_core.xml file; create the contents file; create a symbolic link to the document file. Note that this assumes that the files in the identifier field actually reside on the same machine as DSpace, either because the we server is also running there, or because theyve been copied from the web server. The key part of the script is the regular expression used to extract the file and path information; this will be different for every import, and will require customisation for each import. The script is as follows: #!/usr/local/bin/perl -w $/ = "\n"; # record separator $what = 100001; # dummy id for when theres no file while (<>) { # discard the top and bottom tags s/\n//; s/<\/collection>\n//; # extract the file path from the identifier # use the file name as an id # note that identifier element is discarded! if (s!http://.*/theses/(.*?)/([^/]+).pdf<\/dcvalue>\n!!s) { $path = $1; $id = $2; } else { $path = ''; $id = $what++; } # let the operator know where were up to print "$path/$id\n"; # create the item directory mkdir "import/$id", 0755; # create the dublin_core.xml file open DC, ">import/$id/dublin_core.xml" or die "Cannot open dublin core for $id, $!\n"; print DC $_; close DC; # assuming we have a file ... if ($path) { # ... create the contents file ... open OUT, ">import/$id/contents" or die "Cannot open contents for $id, $!\n"; print OUT "$id.pdf"; close OUT; # ... and create a symbolic link to the actual file symlink "/scratch/dspace/import/theses/$path/$id.pdf", "import/$id/$id.pdf"; } } __END__ The script is then run against the xml file produced earlier: > mkdir import > ./build.pl collection.xml After running the script, we should have an import directory structure we can use to import into a DSpace collection in the usual way. References DSpace System Documentation  HYPERLINK "http://www.dspace.org/technology/system-docs/" http://www.dspace.org/technology/system-docs/ MARC::File::USMARC  HYPERLINK "http://search.cpan.org/~petdance/MARC-Record-1.38/lib/MARC/File/USMARC.pm" http://search.cpan.org/~petdance/MARC-Record-1.38/lib/MARC/File/USMARC.pm MARC::Crosswalk::DublinCore  HYPERLINK "http://search.cpan.org/~bricas/MARC-Crosswalk-DublinCore-0.02/lib/MARC/Crosswalk/DublinCore.pm" http://search.cpan.org/~bricas/MARC-Crosswalk-DublinCore-0.02/lib/MARC/Crosswalk/DublinCore.pm       TITLE \* MERGEFORMAT Importing MARC data into DSpace ST, 19/04/2004 5:04 pm Page  PAGE 4 of  NUMPAGES 8 Technical Report Systems Department The University of Adelaide Library ST, 5/08/2006 6:07 pm Page  PAGE 1 of  NUMPAGES 8 :;<DE^_     θάܣuluu`Wh 46nH tH h 4h 45nH tH h{_6nH tH jh{_6UnH tH h=D6nH tH h^6nH tH jh^6UnH tH hTcJ6nH tH h=Dh=D6nH tH h{_6mHnHtH uh';6nH tH jh';6UnH tH h 4hTcJ5nH tH h$h\6h^jh^UhB <  ! [ !2EQR^gdgdgd gd $  a$gd\6$a$gdTcJ78   R 6 R S QR^dlm.9^r<HXY68߼߸߼ߤߤ㠙h\LuhH_ h\Luh2Wh2Wh&h5OJQJ\]^JaJh h+h+h+h+0Jjh$Ujh+Uh+h4hh$h h\6h 46nH tH 9@YUV  !B!y!!G"";###gdB gd gdE\#gd&gd 8Osu@A|~GHvx89|})5Vcd)*89DE-.de;<   I hE\#hE\#hhE\#hH_h\Lu h\Luh2WYI !A!B!x!y!!!F"G""":#;#####$!$7$9$c$d$$$$$$$&%(%T%U%~%%%%%% &&:&;&l&m&&&&&&& ' '4'5'F'G't'u'''''''((G(H(p(q((((hH_h=DhjhB h\6hW0 <xڭtF0lUFbF ^{m ؔm^B=޻BLL'z zy󟯼|s.f433vmۗ0<Ӌeh BdDs0kf  )PfwT( }Zh -qM#e0$}w*9m(?t|.o|OR ZJh6uI4 ɨMEmi^TPQ67@׍\茑2Ë1h9yqSoӌ#rWcX%1f-1rSh)oTB:qLgņJlnT[FͰ} Fb<7EaqJUXf;FaV8fK1Oxm,t@ B6:](i8Og m\]( KIt0n:_J {Wp>.ToPCMVn:[|G;#%EmxoTs8.N0c̒/4EHd;:9[(oNJ?B.3[ N Մp.Ѱp6da1M&,@j KEcb!d:WFAWXm FvaWl7J jB~h/F_c/Kjoper]^W?qk˵E pyiKq{]U$k דv}dD/]Y{Wd'ŐfG.Q*bD13L4֘{qZcB{蜱 3v;Pv݆f4Uh]Nѹ^1H2"슒(Y6Kf54P+SGrOϼ 1# y9Ioɓ<*O7z\˙r _|R.3}j?=1' tgfHQw7/tGe8濞J2MeP|:`c T/k:Q.(GOeqhkGz*g*0X"x Tb_*B*ʿE% &O%[Z3aǯG 1񤿴xT<!^5cHCw3&IO|?K_%7k|=y$Ыt#s^~b#!]IXށX2/APkOh6V'}7`t;胿k!X $D(11&ƣ6T"\!\=\/q(1Cn8QnSnXOXXEYꖸTxX윸@8@l@lX@l$~j$>$'^J'&'n&.r$т-q % m% ሿ_\X/U9d!ޟ$%F}}̾Eƚ=%匊GsGko{φse?@Tp0/ԇ>)廩h}Q^r49Z 3НL~B>Jy ;@R!V 녶-B.ax09pB$,  _}]5 OJ#+uMz+]4K>(' 4OzʿFGUyK>pN^./ ܓgɓ Q׀Zn `r!)^M@2Gd]y3ռ{ ,CT% fihM`N F;z^ZF`%,S_0ƣA*,W >k {& ep6S'w݂R`H=xX\ v ĦAX?I|*T */eGB!\. ;8Zp r0Mxh+<4.j [ŅŁ^!a@ &"T @,o+_X'=3PHT2!#QҌPx$/| F}}߱}$#F1('5ey.7bQot7扲QNhl~䏋2IYF9xvRL('ufھsX}OeN;bNπ2n;xq%Jw*ůՉ?5ɵu]lm#}{wcy%G>kL>0/oKX/IXw8~_N|>6_?7;1 3~_/O3w{̽q9KpO 59) rJ"J돺?x ށ zq==q\" ¿k/q\~k. Swok d~Bv~cBIN~#7FЮ:/@ N>wޝ^sbcK-M%i A~vVܵܕtbX| nܩBx/̞ނW<m6vO̼Ld,ɜLJ&EձM*aR;n􆩑S5rOLΟdg*•O:\y\m\\\o^OϞrD9! bDeͽ ^7}?ܻpy/2<l < `:, 𳃥`?5(SIJ0LørSaH)}aﰣ`78M `'6!l`?a[;؉l~l6fI=X(~ f # zjAmuYY҂-YFOYwZfY'[ZVZVXVC견 PY,^`0sۙU̔|f\GfDp3 8ta1uL`&,$3#Sd^ c<ƀ,Xw ik]yevsLxW`360Y c`m?km̳}4>a cуv=dq CZעZ`iS,%1&<(pr'pr#pr9pr&pr4p۲7в5emeIeVeb೥wcD@bxek{~%)TK U5@=jZ# ?rɡ%\.5+7t qCo!/rC>V(o* Ễ}C PG~n( හFCcstEh6χ1E|R@x9_9o^ɧ)o%BAx!<Ǒ'2 E#v|H6?2R)ϊEd~eo~{Ds#߹|dw!2| laD׈n<`WE."G؉2}$ɖ#X=R}.n ؾ&§,y{,Z!424$4r/r+r=r%Tr1Tr.Tr6r:b9X P\ ]fn~cv3B&ydg `ʇ0߇0aL:+x?}hγD2%qF0Y$E^1#%g$%%@APwl-SyPE@AAx-"ks89bD2# Hfn3-ҙi czG0"eLHIeDܑ0^8"N0fn%l s̺0 [aI9W LѰeV!v6c(y0CPvf_()Y* g&j2?1CmnL ih,S/4ZT gzg0B|L8$ZB!%"/k jYY :[ [FYJZʅ~Tm 4ji:kjm!235!/{(* dcíp9(>ɞ _coX>"se$sɑ'R FsH.W ҉+B~*/ D@#?rsGnszGpoˆv=叄p~a8?!7  .Ns=OyŰ[ZC<&{z==sCqCK]ܹrLh2w*4߃z *">sY|鼔? yg7Z O.O EQ 1K "Q{!E̝"N6*/dҠߥ76geiYm)8lt5AWY"$Zo'9W[w_QIR@.@A=r  :]Fn Mc!=O7+| kZ4d*Ìfo&iT-J*f1YZkeӺfmYMmVV5(Ƿ3Jv wY-]RKuk%;ENhܱZ[7ѺZ/ q!? cܧ2ٽLw"w2םt2EH1w~PEAqPeAБu"IAO$^C$I~| J\KO'%ym%O\7& s`9MP? .S|DwIC&k^% y3NR\CHĜHB@4; (Jb( Bk̽yI{~` Lq?Q`,-";K!b}|x1$Q=VqhY#T${'sOޭdwYi?2ہ6d -@FzsAKI{/!<}UгI=왫nLQyF3=nPOSC=ƞ\8`7-<pMs<ᡞCxgفy FѳÿyK x6Pyw`݃C=}s8{ xiBy:ޞKxgN,&َ5>xbs/~?_wnY}ygwu4U%OgUuqyF>45ų@YlUk{i+suG&7<^ē|! qxKMry)IxbqwIQ:RȻ$IH7ܻ}B+b'=_C Y6HW|MqdyBzzΞ뤭i9Fy~!=ICBG0 A/{onv?v5 >ڎd*}_?hEq]QeRqQ-`xGBg8܍ɓ8Sɻ8gOD#"D"7,Flwsj1>fR5WVZ__k=|t]!]|G,3$0 6A[!}eI'_%6>7iH#}P}⾿|jﲚw^Ϊ4T˷[-۪S}sf)j{H5Q}!P_H%u9໏Ľ}pIwwm|[qszз-}pL\7M!X7S`lėݰ6)J-v q_qøCe1)_w 8{|ŧq>/ q|`T_}?&⦩wfW/Qw-WƭPŭTfc-?-L()ZjB=9"eI$Z?:8yK(NorĨd? .xׯHįGrY)[<,le٦I~d8{rqOߙS*3cf%ꃴײH>b)~A[F(-^d70[^^Qm:9LV>׸4[2֛oj?ΟEìVYI&.掙/ҟ13`GD>@ jj,pT6~n캂 WT?$IsKSSݹWLiα去ilif 㣖Gk|N:ې+%gys3xqJ;tLT1f\%TFX%fX9&P9f_9:[9rLxOϿؗdF*{b?=Q4yCGmHJG+Ğb5c/%֢|{\ސg]nFpKI}OBƹ2k&6`vyE"wpn[:z;go%b꜂?:eBuOF;zx-1O{dwc.zv{{ yۏb%蘨q:~Ӳ8[h=oQHۘS}3h ^!ԵŞݵ"}w5؇ڱcwLc|L}wzOvSΉ4Gy&GV篎WOV5ye󎽇}s}s}3HvO |e9cŽ]CY]uy]9]mu\gmm\Kl}\i1ҶY.m/}k~G?*rSyk.|[n9lZ!I6֐FRCJ5jUZHR÷FlԨ[2niUZK@}+-_QScjdB7r-c\&3%gRg)Sf䗼GaEcUCe7] ]-2!YG[\-]5\y]5*vm%8ElkzVOLa+?p9:|Cg/|tSGG69 {؉l;G簲9Y"Ŗ$GwQ"9;E}1sޑ9eWYӊ9ykcXؖc,cW[Ğ4}bI%\؊vk1 ,3XNZN6+Ė;rFZ@poi0)l6{uYݺ\b=h^5 / ArX)pRuw_]D^(u h#MuRK '7x:ƽ_N"ݣIG]A^p[gh{~#c 6Ml3Ķ0>-A+x7? `23|6χK [fr')7F6nkrCBYkmjWѰs ̅ n\VG3^\Cpq}fXnKඹ0e疺(7ǥIc ^p]øk(1;J㎸r\V)w=.wUT0 A;Wu\ӎK5:s\ "[> `87x1h ҍOv94Zs)E w(mA=5by{ld5qlʞ5vnj-c=Xn0"? |v ^b*3[Ȗ56lI8-jlg ;.6_{Odd~5#4r/켅&&R?I4N)4MCE@ >-iy>L+A]U>m~ڈi;ў>xk Z8st?/}L@ݼNt'Kw5 ư] t_|+:H]@'~?`Z4߇R;E|kIrӻ\ zB?R2W }6C'5q;n<Ϲ%F!+ï]/9& 1 L;<$ FYK` 4a-GZ+֚tڈn6fk{H{ Atu,JY"l::αΧG":|W(:N֟hGDcia ߇=zE[$}l=D_Zww u99T&PQ SК}e-KY ӷ塊:xj &*ة_h)<3R"2 DaU0 &,4da:xml<76~0[\fX6c=ln76M`3bal)qzθl cl"B; !k Q" fq|ɒh#IOSJxC|,&/y/bv6_byXü&7ωMV^Y`;s$9Dlov[MffMSX`9Z~1ٌ=f^ ">Y?hx&?L[LCb;Z@Mhi1H+Hi}Q-Dv?ķH1M|f, = 0Έ{x%PIÜM+%PJJiTj4Qj:@Ix0I)q=#vgŦ6=-V 18U,B>EGA Ր.P>_,L@ۙb:Ο$~O5G#q!X%`)Xb'봧yi-̾(f5Ho)b63̆ObʗBrhNtE"~;GOwwmp|~ڽ_?Hf2W=ԆC-}S |SQD5{QܗRyuCGz剐΢B !oNTPVG_H}7غJҏ9bޑx$$()l3yiהl  M\꫃:&'훛 l2r`"O6͖Rl,3g <Ƭ#YOna֗kB]I!HNԄc dƬ.77._ |t7Ӯr1!OC! :NrsNn@[i#-"\F0.`rSEN樂t53nG( @}3;jeD̍yQO3zQk߁*ՄڨYu59 &0Rf A.+Hjt;PA6ym([Qs \o3jjnD4\ƙK4smE͙h9ejsZoEh12fa oAM6,Zg~Wo |"/08yyQn[`O{✜=Y0kßΘ ?( (ʀڦ2ǙN7<|dϔ}e<5*]asLRCf7e4Tu}ueYIYcTYfH`Q)Jw3LV*ٔfd?ٔ+4Y9Ds(iQҰ2RRJZYiM*i .ԠC*tR.P*ҵR*_jR^W{ҊS:QQ0?ԎP'@c^pg=N(~e3ݫk/;yt2nVf 4s*]LBe2tG:&@1:RY@G(K0e5좃Strp@V H@d!͡JsAiV㕁d4e9[0\ VZe2ܤ 2*~fQ: $("(0W?7{괤-N4z_3j柸YMmgR7.3koFfmJW=C-`cufkvл+@hL̗|Ś5QMSXM7=4tmW'fV]1t,xKꏨWNM$8S(_6h[})mi{}o[hG};]ECE{`5{ E3;vzJ|f#YO/a˘z 3^t`ManZSؼ52OkcZ]VܣU3wh-Z9gB+`.R͹Z9C?B&j10m 4˯]뒅Y4춅F#[ mbMBmk+M;٪i_[{:֏lh?[Vi/[*Me~6ڸdkm/lWJo==6jdSe5}~&`/mܵqq{ c}c3TZai2t}*ھ( 8N~p,q% 3ňu/\/7]g\7\];#\]3CfG4N:8wm~'8Cr3uF w k/e1smԹ[io@U2}`UYhdY$_#Cd̕r?BnB%&9l-d|M-oUrs?CI|T^Oȃr|EΏo&~ Q^wiE@TL4[J.4DɇzB@y ОQtS@Ww:!QY@ y_Nr[f iO(/ɣrgi\[+I8H>.v{4Y$Dm@/QLqLLwΙڇ}g_ע(~m_BI[tَv[yf/Q;*COtHWn(? h/vOڳx;agۛ= ulQ[j2E׿+Z_yW饕zV낲@W>GFz7TWojߡzUԳr-\_MRKN)uK]Rw=C)F5Cm@PW=`c8_u\%^` / V\ӋIW6}tQ?,NQ|P/nh x-ڢ@ گQ*gU=k=o Z34A&=}>tۓNz~N)>WwTkq96. ЧHo[q'' O?ޅ< kv9xP觔mwr vv&ޢśAx>d3pRKԃy.zaމ\+rqM x횞*`)8ei<櫏6HyA 7%pAfkc 3Uϴk-U+V32 {^t/0 HࣨObEzQ|\?bqpUfrV.-}JBnb;7^\-}$:wxڇǣ]vGXռȽir?<@)THԃ`umjIX֪z0x/Ssk5]^W' <rU@Ul 'PˠjSF~Vg-FK=OYecn86CղzKk]'sٙrYP.O;1TꑉR}Zj@JfGڀi y$"ny %}Adܟ{HvԋFIԏCH:N6dHN I@[r5&Q2U#}P%#PYFiK\dӦ5][JնJyRXk%JJ@ȷ&JR Dh%:6])G4ÔwWJn-76VsV 3>~ǯ2WJ JX!A 8x:Nq|gÏWPUԬ۸1p *7T"w,H}lW*a,|Qx+>Nwx?n܎|¼.VČ=R=Ms@$pAr'Y/"k3A6?U`([ͭ:P}@u/.q+Ԃ8V`>8x?6[F8gzS_5juEY]nT/UlQ.`.٬$Puv#?%#e0:Dk=snVj5RPL-+.k#|oUʹkkSp5m +h7qyf9ZS j3-+iU">tnBZ_'!핚[;IZt|_}gf\+X[쳵lA9Y ؎ILTVB*n 6 Q1R0Aw4u2!\GuzO# Elu9`/@[}ḎfH3mӥid{i-Uek,dݖʡζm,jgV_ = DlOޢtٕ^WZ^[,*mۇ ֣mmr"#5D^[Ed "jˁ\6 1V(UۤmIړ$b픚j&:>{k]0Mm[ئ`mNu9mp^[EVemǍm/J-fpW;r¸ nkk C~:`ۊ;.C:жDf;d0lD搙d6}ؚ-(ϱ 3z?m^j=W=%`F>h[?x-gjX-4PΟ >!˸h;>oi/3^v&s>˳ԓ?!׋YyM s5ŭ,+a}12[J,65/;JxW&)K ZǖRrNe2=kk7XgAZߩOBZYx OS <ֱF}mI}ژ$GXSOTkGdޓZJ =BP."G=uG*%=4._Q DyK  yK |http://www.dspace.org/technology/system-docs/application.html itemimporter-DyK .http://www.dspace.org/technology/system-docs/yK \http://www.dspace.org/technology/system-docs/DyK Jhttp://search.cpan.org/~petdance/MARC-Record-1.38/lib/MARC/File/USMARC.pmyK http://search.cpan.org/~petdance/MARC-Record-1.38/lib/MARC/File/USMARC.pmDyK _http://search.cpan.org/~bricas/MARC-Crosswalk-DublinCore-0.02/lib/MARC/Crosswalk/DublinCore.pmyK http://search.cpan.org/~bricas/MARC-Crosswalk-DublinCore-0.02/lib/MARC/Crosswalk/DublinCore.pmDd >  # A"@@bO$_0/ˍU+ x n#$_0/ˍUPNG  IHDRh6sRGBIDAT8O}R π3Vd:3*hY^xā83szQU$"ɿ^ dbr`J~Cx $S2 țJDC.FvkRzFDjQZh2(ͯޛԨPzW IRE%$mˣ04{f%s8VuC$Vk 𖿿7dl IENDB` R@R \6Normal $a$ CJOJQJ_HaJmH sH tH V`V \6 Heading 1$@&"5CJKH OJQJ\^JaJ tH N`N \6 Heading 2$@&5OJQJ\]^JaJF@F Heading 3  & F@&6CJ\aJ8@8 Heading 4$@&>*DA@D Default Paragraph FontViV  Table Normal :V 44 la (k@(No List J @J Footer$ 9r a$CJOJQJtH N@N \6Header 9r B*CJOJQJph:B@: Body Text OJQJaJ.)@!. Page Number6U@16 Hyperlink >*B*phFV@AF FollowedHyperlink >*B* ph>@R>  Footnote TextCJaJ@&a@ Footnote ReferenceH*e@r +HTML Preformatted=$ 2( Px 4 #\'*.25@9a$CJOJQJ^JaJtH o \6Code[$$ $d%d&d'dNOPQa$ CJOJQJ8"@8 K(Caption5CJ\aJB'B TcJComment ReferenceCJaJ<@< TcJ Comment TextCJaJ@j@@ TcJComment Subject5\H@H TcJ Balloon TextCJOJQJ^JaJ:o: B Style Left$a$aJ@o@ Blist & F <^`0V<![ !2EQR^@Y UVByG;R"S"#f######$%;%o%%%%%j''',,,,---- ..//////////00I0J0\0o0000000000000000000000000000050505050505050505050505050505050505 05 05 05 05 05 05 05 05 050505050505050505050500# 0# 0# 0# 0# 0# 0#0#000000000000000@0h00@0h00@0h00@0h00@0@0@0@0@0@0@0@0@0@0h00|![ !2EQR^@ByGR",--- ..//J000h00@0Hh00@0Hh00h00h00h00h00h00h00@0Hph00h00h00h00h00h00h00h00h00@0h00h00h0%0&lh0%0h0%0@0x h00h00h0!0"HDh0!0h00h00h00h0000j00RTj00N 00 HH  8I (R26J88 "#%&()#4J88!$'*8:D^R--.4....d//0UXXXX %Eelns~ !!t  ,2$뫢M:sL}<7V@ 0(  B S  ?(  b  C A3"` 'R_PictureBullets/0/0,tw-|, j\<\L  D  ,  4m < \DFFUUlls g}}**s0s000     LLddr}}o**}0000  8*urn:schemas-microsoft-com:office:smarttagsCity9*urn:schemas-microsoft-com:office:smarttagsState=*urn:schemas-microsoft-com:office:smarttags PlaceType=*urn:schemas-microsoft-com:office:smarttags PlaceName9*urn:schemas-microsoft-com:office:smarttagsplace 8~} e r IO8;enQYhv$-{}+-df #!)!a!g!!!""""\#_#####z%%'') )O)R)U)\)^)b)7*<***++-,4,?,a,{,,,,,,,- .2...//////////////00_fck)1f m 0= ;?%%T&Z&F)H),,%.*...//////////////0033333333333333333REERR^dlmnn.9^^< H Y Y )5!S"#f#f###$ $$$$$$$z%{%%j'''c,m,,,,---w---////////////0,060:0H0I0I0J0\0000000000000000//////////////00 ;'W`zIFC ,* *F4-( 0W`zM2e8http://www.dspace.org/technology/system-docs/application.html itemimporter  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIKLMNOPQSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy{|}~Root Entry Fr+Data J1TableROWordDocument'SummaryInformation(zDocumentSummaryInformation8CompObjq  FMicrosoft Office Word Document MSWordDocWord.Document.89q