<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>Hi everyone,<br><br>We’re starting a new project at LOCI in collaboration with the UW<br>medical library. We are planning a small pilot project to try<br>harvesting metadata from Omero, using OAI-PMH (see below). Our plan is<br>to demonstrate how a searchable repository of “pre-cataloged”<br>microscopy records could be created by federating the records from<br>multiple researchers and using Omero as a public viewing interface for<br>the data.<br><br>OAI-PMH is the <span style="border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;" class="yshortcuts" id="lw_1265745452_0">Open Archives Initiative Protocol for Metadata<br>Harvesting</span>: <a href="http://www.openarchives.org/" target="_blank"><span class="yshortcuts" id="lw_1265745452_1">http://www.openarchives.org/</span></a>. It
 is used mostly by<br>libraries and repositories for exchanging XML metadata—for example,<br>harvesting article records from journal publishers. Our data already<br>meet most of the requirements to work correctly with PMH, as I<br>understand. You can find the implementation requirements summarized<br>at:<br>&nbsp; &nbsp; <a href="http://www.oaforum.org/tutorial/english/page4.htm" target="_blank"><span class="yshortcuts" id="lw_1265745452_2">http://www.oaforum.org/tutorial/english/page4.htm</span></a><br><br>And if you want, you can find more details of the implementation<br>requirements at:<br>&nbsp; &nbsp; <a href="http://www.openarchives.org/OAI/2.0/guidelines.htm" target="_blank"><span class="yshortcuts" id="lw_1265745452_3">http://www.openarchives.org/OAI/2.0/guidelines.htm</span></a><br>&nbsp; &nbsp; <a href="http://www.openarchives.org/OAI/2.0/guidelines-repository.htm" target="_blank"><span class="yshortcuts"
 id="lw_1265745452_4">http://www.openarchives.org/OAI/2.0/guidelines-repository.htm</span></a><br><br>One of OAI-PMH's requirements is a datestamp to specify when a record<br>was last modified. (This allows the harvester to selectively <span style="border-bottom: 1px dashed rgb(0, 102, 204); cursor: pointer;" class="yshortcuts" id="lw_1265745452_5">harvest<br>records</span> that are new, modified, or deleted within a certain date<br>range.) In the case of Omero, a "record" is an Image. Although Omero<br>doesn’t allow Image data to be modified right now, various associated<br>metadata (dataset membership, tags, annotations, etc.) can change. We<br>are planning to extract the Omero tags the users have added, and save<br>them in an extension under the Structured Annotation system. Thus, we<br>would still need a lastModified date for these changes. Fortunately,<br>the Omero database actually does record a datestamp for each<br>transaction (if I understood
 our conversation correctly), so we should<br>be able to derive from this information the last time a record was<br>modified.<br><br>Our goal is to write an OAI-PMH repository (server-side layer) for<br>Omero that exposes the metadata in XML form, via URLs such as:<br>&nbsp; &nbsp; <a href="http://open.microscopy.wisc.edu/OAI-script?verb=GetRecord&amp;identifier=oai:arXiv.org:hep-th/9901001&amp;metadataPrefix=oai_dc" target="_blank"><span class="yshortcuts" id="lw_1265745452_6">http://open.microscopy.wisc.edu/OAI-script?verb=GetRecord&amp;identifier=oai:arXiv.org:hep-th/9901001&amp;metadataPrefix=oai_dc</span></a><br><br>For a full description of the protocol's requirements, see:<br>&nbsp; &nbsp; <a href="http://www.openarchives.org/OAI/openarchivesprotocol.html" target="_blank"><span class="yshortcuts" id="lw_1265745452_7">http://www.openarchives.org/OAI/openarchivesprotocol.html</span></a><br><br>This layer would live at the Django web server level. We
 would like<br>some guidance on how to get started with Django to enable such<br>functionality. Once we have the ability to serve XML according to the<br>properly formed structure, we hope to use existing OIA-PMH harvester<br>clients.<br><br>Does this plan make sense? Where is a good place to start looking at<br>how to implement such functionality within Omero using Django?<br><br>Thanks,<br>Caitlin</div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><br></div>
<!-- cg1.c201.mail.mud.yahoo.com compressed/chunked Thu Feb  4 13:50:52 PST 2010 -->
</div></body></html>