<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-AU link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi all:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>As some might know, I’ve been working on an OAI-PMH harvester client for Koha using the same HTTP::OAI packages that we use to make Koha an OAI-PMH repository server.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The idea is that you point Koha to the URL of a OAI-PMH compliant data source (my testing source is Koha but my production source will hopefully be DSpace), and then it uses the OAI-PMH protocol to import records.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>While some repositories export marcxml, the quality I’ve noticed hasn’t been that great, so I prefer to import Dublin core and transform it into MARC21 using XSLTs. However, YMMV on this point.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In any case, the harvester sends an HTTP request, receives the records in an OAI-PMH wrapper, the records are transformed to MARCXML as needed, they’re staged for import, they’re matched against previous OAI-PMH imports, then they stay waiting for manual intervention or are automatically committed to the database. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It’s still a work in progress, but I’ve posted my most up to date work on Bugzilla with some description, a test plan, and a unit test to run. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Even if you just apply it and check if the unit test works, that would be great. Any input is welcome : ). (I’d even welcome opinions where people think this is a bad idea :P)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=10662">http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=10662</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=left width=320 style='width:240.0pt'><tr><td style='padding:0cm 0cm 0cm 0cm'><table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0 width=320 style='width:240.0pt;border:solid #666666 1.0pt'><tr style='height:.75pt'><td width="100%" style='width:100.0%;border:none;background:white;padding:.75pt .75pt .75pt .75pt;height:.75pt'><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width="100%" style='width:100.0%'><tr><td style='padding:.75pt .75pt .75pt 3.75pt'><p class=MsoNormal style='mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'><img border=0 width=190 height=51 id="Picture_x0020_1" src="cid:image001.gif@01CEA804.1AD56010" alt="Description: logo"></span><span style='font-size:10.0pt;font-family:"Verdana","sans-serif"'><o:p></o:p></span></p></td><td style='padding:.75pt 3.75pt .75pt .75pt'></td></tr></table></td><td style='border:none;background:white;padding:.75pt .75pt .75pt .75pt;height:.75pt'></td></tr><tr><td colspan=2 style='border:none;padding:.75pt .75pt .75pt .75pt'><table class=MsoNormalTable border=0 cellpadding=0 align=right width="100%" style='width:100.0%'><tr style='height:.75pt'><td valign=top style='padding:.75pt .75pt 3.0pt 3.0pt;height:.75pt'><p class=MsoNormal style='mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><b><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'>David Cook</span></b><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'><br><i>Systems Librarian<o:p></o:p></i></span></p><p class=MsoNormal style='mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><i><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'>(BA,FRLS,MLIS)</span></i><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'><o:p></o:p></span></p></td><td valign=top style='padding:.75pt 3.0pt 3.0pt .75pt;height:.75pt'><p class=MsoNormal align=right style='text-align:right;mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><b><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'>Prosentient Systems P/L</span></b><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'><br>ABN 31 078 409 168<br>72/330 Wattle St, <br>Ultimo NSW 2007</span><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'><o:p></o:p></span></p><p class=MsoNormal align=right style='text-align:right;mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'>tel: 02 92120899<o:p></o:p></span></p><p class=MsoNormal align=right style='text-align:right;mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'>fax: 02 92120885<o:p></o:p></span></p><p class=MsoNormal align=right style='text-align:right;mso-line-height-alt:.75pt;mso-element:frame;mso-element-frame-hspace:2.25pt;mso-element-wrap:around;mso-element-anchor-vertical:paragraph;mso-element-anchor-horizontal:column;mso-element-left:center;mso-element-top:middle;mso-height-rule:exactly'><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:#408080'><a href="mailto:dcook@prosentient.com.au"><span style='color:blue'>dcook@prosentient.com.au</span></a><o:p></o:p></span></p></td></tr><tr style='height:.75pt'><td valign=bottom style='padding:.75pt .75pt 3.0pt 3.0pt;height:.75pt'></td><td valign=bottom style='padding:.75pt 3.0pt 3.0pt .75pt;height:.75pt'><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 align=right><tr><td nowrap style='padding:.75pt .75pt .75pt .75pt'></td><td nowrap style='padding:.75pt .75pt .75pt 3.0pt'></td></tr></table></td></tr></table></td></tr></table></td><td width=6 valign=top style='width:4.5pt;padding:0cm 0cm 0cm 0cm'><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0><tr style='height:5.25pt'><td width=6 style='width:4.5pt;padding:0cm 0cm 0cm 0cm;height:5.25pt'></td></tr></table></td></tr></table><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>