Äcdocutils.nodes
document
q)Åq}q(U	nametypesq}q(X	���cool urisqàX���overviewqNX���data packagingqNX���isreferencedbyq	àX���examplesq
NX���lagoze-2008qàX!���additional packaging technologiesqNX���contentsq
NX!���package serialization using bagitqNX���resource map validationqNX���referencing other data packagesqNX���background discussionqNX���user storiesqNX���ore vocabulary documentqàX"���ecological metadata language (eml)qNX���citoqàX���classes, fields, and methodsqNX(���algorithm for constructing data packagesqNX���datacite2rdfqàX���generating resource mapsqNX���formatqàX
���boyko-2009qàX���isrequiredbyqàX���sauermann_cyganiak-2008qàX���deviation from the ore modelqNX���netcdfqNX���data package client designq NX
���conformstoq!àX���oai-oreq"àX���foresite python libraryq#àX*���package content associations using oai-oreq$NX���synopsisq%NX���eml-2010q&àX���issues and resolutionq'NX
���referencesq(àX���very large data packagesq)NX
���identifierq*àX���requiresq+àX���relationq,àX���netcdf-2010q-àuUsubstitution_defsq.}q/Uparse_messagesq0]q1cdocutils.nodes
system_message
q2)Åq3}q4(U	rawsourceq5U�Uparentq6cdocutils.nodes
section
q7)Åq8}q9(h5U�U
referencedq:Kh6h7)Åq;}q<(h5U�h6hUsourceq=Xg���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/DataPackage.txtq>Utagnameq?Usectionq@U
attributesqA}qB(UdupnamesqC]UclassesqD]UbackrefsqE]UidsqF]qGUdata-packagingqHaUnamesqI]qJhauUlineqKKUdocumentqLhUchildrenqM]qN(cdocutils.nodes
title
qO)ÅqP}qQ(h5X���Data PackagingqRh6h;h=h>h?UtitleqShA}qT(hF]hE]hC]hD]hI]UrefidqUUid10qVuhKKhLhhM]qWcdocutils.nodes
Text
qXX���Data PackagingqYÖÅqZ}q[(h5hRh6hPubaubcdocutils.nodes
topic
q\)Åq]}q^(h5U�h6h;h=h>h?Utopicq_hA}q`(hC]hD]qaUcontentsqbahE]hF]qcUcontentsqdahI]qeh
auhKKhLhhM]qf(hO)Åqg}qh(h5X���ContentshA}qi(hC]hD]hE]hF]hI]uh6h]hM]qjhXX���ContentsqkÖÅql}qm(h5U�h6hgubah?hSubcdocutils.nodes
bullet_list
qn)Åqo}qp(h5U�h6h]h=Nh?Ubullet_listqqhA}qr(hC]hD]hE]hF]hI]uhKNhLhhM]qscdocutils.nodes
list_item
qt)Åqu}qv(h5U�hA}qw(hC]hD]hE]hF]hI]uh6hohM]qx(cdocutils.nodes
paragraph
qy)Åqz}q{(h5U�hA}q|(hC]hD]hE]hF]hI]uh6huhM]q}cdocutils.nodes
reference
q~)Åq}qÄ(h5U�hA}qÅ(hF]qÇhVahE]hC]hD]hI]UrefidhHuh6hzhM]qÉhXX���Data PackagingqÑÖÅqÖ}qÜ(h5hRh6hubah?U	referenceqáubah?U	paragraphqàubhn)Åqâ}qä(h5U�hA}qã(hC]hD]hE]hF]hI]uh6huhM]qå(ht)Åqç}qé(h5U�hA}qè(hC]hD]hE]hF]hI]uh6hâhM]qêhy)Åqë}qí(h5U�hA}qì(hC]hD]hE]hF]hI]uh6hçhM]qîh~)Åqï}qñ(h5U�hA}qó(hF]qòUid11qôahE]hC]hD]hI]UrefidUsynopsisqöuh6hëhM]qõhXX���SynopsisqúÖÅqù}qû(h5X���Synopsisqüh6hïubah?háubah?hàubah?U	list_itemq†ubht)Åq°}q¢(h5U�hA}q£(hC]hD]hE]hF]hI]uh6hâhM]q§(hy)Åq•}q¶(h5U�hA}qß(hC]hD]hE]hF]hI]uh6h°hM]q®h~)Åq©}q™(h5U�hA}q´(hF]q¨Uid12q≠ahE]hC]hD]hI]UrefidUgenerating-resource-mapsqÆuh6h•hM]qØhXX���Generating Resource Mapsq∞ÖÅq±}q≤(h5X���Generating Resource Mapsq≥h6h©ubah?háubah?hàubhn)Åq¥}qµ(h5U�hA}q∂(hC]hD]hE]hF]hI]uh6h°hM]q∑(ht)Åq∏}qπ(h5U�hA}q∫(hC]hD]hE]hF]hI]uh6h¥hM]qªhy)Åqº}qΩ(h5U�hA}qæ(hC]hD]hE]hF]hI]uh6h∏hM]qøh~)Åq¿}q¡(h5U�hA}q¬(hF]q√Uid13qƒahE]hC]hD]hI]UrefidUdeviation-from-the-ore-modelq≈uh6hºhM]q∆hXX���Deviation from the ORE modelq«ÖÅq»}q…(h5X���Deviation from the ORE modelq h6h¿ubah?háubah?hàubah?h†ubht)ÅqÀ}qÃ(h5U�hA}qÕ(hC]hD]hE]hF]hI]uh6h¥hM]qŒhy)Åqœ}q–(h5U�hA}q—(hC]hD]hE]hF]hI]uh6hÀhM]q“h~)Åq”}q‘(h5U�hA}q’(hF]q÷Uid14q◊ahE]hC]hD]hI]UrefidUreferencing-other-data-packagesqÿuh6hœhM]qŸhXX���Referencing other data packagesq⁄ÖÅq€}q‹(h5X���Referencing other data packagesq›h6h”ubah?háubah?hàubah?h†ubht)Åqfi}qfl(h5U�hA}q‡(hC]hD]hE]hF]hI]uh6h¥hM]q·hy)Åq‚}q„(h5U�hA}q‰(hC]hD]hE]hF]hI]uh6hfihM]qÂh~)ÅqÊ}qÁ(h5U�hA}qË(hF]qÈUid15qÍahE]hC]hD]hI]UrefidUvery-large-data-packagesqÎuh6h‚hM]qÏhXX���Very large data packagesqÌÖÅqÓ}qÔ(h5X���Very large data packagesqh6hÊubah?háubah?hàubah?h†ubeh?hqubeh?h†ubht)ÅqÒ}qÚ(h5U�hA}qÛ(hC]hD]hE]hF]hI]uh6hâhM]qÙhy)Åqı}qˆ(h5U�hA}q˜(hC]hD]hE]hF]hI]uh6hÒhM]q¯h~)Åq˘}q˙(h5U�hA}q˚(hF]q¸Uid16q˝ahE]hC]hD]hI]UrefidUresource-map-validationq˛uh6hıhM]qˇhXX���Resource map validationr���ÖÅr��}r��(h5X���Resource map validationr��h6h˘ubah?háubah?hàubah?h†ubht)År��}r��(h5U�hA}r��(hC]hD]hE]hF]hI]uh6hâhM]r��(hy)År��}r	��(h5U�hA}r
��(hC]hD]hE]hF]hI]uh6j��hM]r��h~)År��}r
��(h5U�hA}r��(hF]r��Uid17r��ahE]hC]hD]hI]UrefidUbackground-discussionr��uh6j��hM]r��hXX���Background Discussionr��ÖÅr��}r��(h5X���Background Discussionr��h6j��ubah?háubah?hàubhn)År��}r��(h5U�hA}r��(hC]hD]hE]hF]hI]uh6j��hM]r��(ht)År��}r��(h5U�hA}r��(hC]hD]hE]hF]hI]uh6j��hM]r��hy)År��}r ��(h5U�hA}r!��(hC]hD]hE]hF]hI]uh6j��hM]r"��h~)År#��}r$��(h5U�hA}r%��(hF]r&��Uid18r'��ahE]hC]hD]hI]UrefidUoverviewr(��uh6j��hM]r)��hXX���Overviewr*��ÖÅr+��}r,��(h5X���Overviewr-��h6j#��ubah?háubah?hàubah?h†ubht)År.��}r/��(h5U�hA}r0��(hC]hD]hE]hF]hI]uh6j��hM]r1��hy)År2��}r3��(h5U�hA}r4��(hC]hD]hE]hF]hI]uh6j.��hM]r5��h~)År6��}r7��(h5U�hA}r8��(hF]r9��Uid19r:��ahE]hC]hD]hI]UrefidUuser-storiesr;��uh6j2��hM]r<��hXX���User storiesr=��ÖÅr>��}r?��(h5X���User storiesr@��h6j6��ubah?háubah?hàubah?h†ubht)ÅrA��}rB��(h5U�hA}rC��(hC]hD]hE]hF]hI]uh6j��hM]rD��hy)ÅrE��}rF��(h5U�hA}rG��(hC]hD]hE]hF]hI]uh6jA��hM]rH��h~)ÅrI��}rJ��(h5U�hA}rK��(hF]rL��Uid20rM��ahE]hC]hD]hI]UrefidU*package-content-associations-using-oai-orerN��uh6jE��hM]rO��hXX*���Package Content Associations Using OAI-ORErP��ÖÅrQ��}rR��(h5X*���Package Content Associations Using OAI-ORErS��h6jI��ubah?háubah?hàubah?h†ubht)ÅrT��}rU��(h5U�hA}rV��(hC]hD]hE]hF]hI]uh6j��hM]rW��hy)ÅrX��}rY��(h5U�hA}rZ��(hC]hD]hE]hF]hI]uh6jT��hM]r[��h~)År\��}r]��(h5U�hA}r^��(hF]r_��Uid21r`��ahE]hC]hD]hI]UrefidUissues-and-resolutionra��uh6jX��hM]rb��hXX���Issues and Resolutionrc��ÖÅrd��}re��(h5X���Issues and Resolutionrf��h6j\��ubah?háubah?hàubah?h†ubht)Årg��}rh��(h5U�hA}ri��(hC]hD]hE]hF]hI]uh6j��hM]rj��hy)Årk��}rl��(h5U�hA}rm��(hC]hD]hE]hF]hI]uh6jg��hM]rn��h~)Åro��}rp��(h5U�hA}rq��(hF]rr��Uid22rs��ahE]hC]hD]hI]UrefidUexamplesrt��uh6jk��hM]ru��hXX���Examplesrv��ÖÅrw��}rx��(h5X���Examplesry��h6jo��ubah?háubah?hàubah?h†ubeh?hqubeh?h†ubht)Årz��}r{��(h5U�hA}r|��(hC]hD]hE]hF]hI]uh6hâhM]r}��hy)År~��}r��(h5U�hA}rÄ��(hC]hD]hE]hF]hI]uh6jz��hM]rÅ��h~)ÅrÇ��}rÉ��(h5U�hA}rÑ��(hF]rÖ��Uid23rÜ��ahE]hC]hD]hI]UrefidU!package-serialization-using-bagitrá��uh6j~��hM]rà��hXX!���Package Serialization Using BagItrâ��ÖÅrä��}rã��(h5X!���Package Serialization Using BagItrå��h6jÇ��ubah?háubah?hàubah?h†ubht)Årç��}ré��(h5U�hA}rè��(hC]hD]hE]hF]hI]uh6hâhM]rê��(hy)Årë��}rí��(h5U�hA}rì��(hC]hD]hE]hF]hI]uh6jç��hM]rî��h~)Årï��}rñ��(h5U�hA}ró��(hF]rò��Uid24rô��ahE]hC]hD]hI]UrefidUdata-package-client-designrö��uh6jë��hM]rõ��hXX���Data Package Client Designrú��ÖÅrù��}rû��(h5X���Data Package Client Designrü��h6jï��ubah?háubah?hàubhn)År†��}r°��(h5U�hA}r¢��(hC]hD]hE]hF]hI]uh6jç��hM]r£��(ht)År§��}r•��(h5U�hA}r¶��(hC]hD]hE]hF]hI]uh6j†��hM]rß��hy)År®��}r©��(h5U�hA}r™��(hC]hD]hE]hF]hI]uh6j§��hM]r´��h~)År¨��}r≠��(h5U�hA}rÆ��(hF]rØ��Uid25r∞��ahE]hC]hD]hI]UrefidUclasses-fields-and-methodsr±��uh6j®��hM]r≤��hXX���Classes, Fields, and Methodsr≥��ÖÅr¥��}rµ��(h5X���Classes, Fields, and Methodsr∂��h6j¨��ubah?háubah?hàubah?h†ubht)År∑��}r∏��(h5U�hA}rπ��(hC]hD]hE]hF]hI]uh6j†��hM]r∫��hy)Årª��}rº��(h5U�hA}rΩ��(hC]hD]hE]hF]hI]uh6j∑��hM]ræ��h~)Årø��}r¿��(h5U�hA}r¡��(hF]r¬��Uid26r√��ahE]hC]hD]hI]UrefidU(algorithm-for-constructing-data-packagesrƒ��uh6jª��hM]r≈��hXX(���Algorithm for Constructing Data Packagesr∆��ÖÅr«��}r»��(h5X(���Algorithm for Constructing Data Packagesr…��h6jø��ubah?háubah?hàubah?h†ubeh?hqubeh?h†ubht)År ��}rÀ��(h5U�hA}rÃ��(hC]hD]hE]hF]hI]uh6hâhM]rÕ��(hy)ÅrŒ��}rœ��(h5U�hA}r–��(hC]hD]hE]hF]hI]uh6j ��hM]r—��h~)År“��}r”��(h5U�hA}r‘��(hF]r’��Uid27r÷��ahE]hC]hD]hI]UrefidU!additional-packaging-technologiesr◊��uh6jŒ��hM]rÿ��hXX!���Additional Packaging TechnologiesrŸ��ÖÅr⁄��}r€��(h5X!���Additional Packaging Technologiesr‹��h6j“��ubah?háubah?hàubhn)År›��}rfi��(h5U�hA}rfl��(hC]hD]hE]hF]hI]uh6j ��hM]r‡��(ht)År·��}r‚��(h5U�hA}r„��(hC]hD]hE]hF]hI]uh6j›��hM]r‰��hy)ÅrÂ��}rÊ��(h5U�hA}rÁ��(hC]hD]hE]hF]hI]uh6j·��hM]rË��h~)ÅrÈ��}rÍ��(h5U�hA}rÎ��(hF]rÏ��Uid28rÌ��ahE]hC]hD]hI]UrefidU ecological-metadata-language-emlrÓ��uh6jÂ��hM]rÔ��hXX"���Ecological Metadata Language (EML)r��ÖÅrÒ��}rÚ��(h5X"���Ecological Metadata Language (EML)rÛ��h6jÈ��ubah?háubah?hàubah?h†ubht)ÅrÙ��}rı��(h5U�hA}rˆ��(hC]hD]hE]hF]hI]uh6j›��hM]r˜��hy)År¯��}r˘��(h5U�hA}r˙��(hC]hD]hE]hF]hI]uh6jÙ��hM]r˚��h~)År¸��}r˝��(h5U�hA}r˛��(hF]rˇ��Uid29r���ahE]hC]hD]hI]UrefidUnetcdfr��uh6j¯��hM]r��hXX���NetCDFr��ÖÅr��}r��(h5X���NetCDFr��h6j¸��ubah?háubah?hàubah?h†ubeh?hqubeh?h†ubht)År��}r��(h5U�hA}r	��(hC]hD]hE]hF]hI]uh6hâhM]r
��hy)År��}r��(h5U�hA}r
��(hC]hD]hE]hF]hI]uh6j��hM]r��h~)År��}r��(h5U�hA}r��(hF]r��Uid30r��ahE]hC]hD]hI]UrefidUid6r��uh6j��hM]r��hXX
���Referencesr��ÖÅr��}r��(h5X
���Referencesr��h6j��ubah?háubah?hàubah?h†ubeh?hqubeh?h†ubaubeubh7)År��}r��(h5U�h6h;h=h>h?h@hA}r��(hC]hD]hE]hF]r��höahI]r��h%auhKKhLhhM]r��(hO)År ��}r!��(h5hüh6j��h=h>h?hShA}r"��(hF]hE]hC]hD]hI]hUhôuhKKhLhhM]r#��hXX���Synopsisr$��ÖÅr%��}r&��(h5hüh6j ��ubaubhy)År'��}r(��(h5Xfi���A :term:`data package` in DataONE is composed of at least one :term:`science
metadata` document describing at least one :term:`data` object with the
relationships between them documented in a :term:`resource map` document.h6j��h=h>h?hàhA}r)��(hC]hD]hE]hF]hI]uhKK	hLhhM]r*��(hXX���A r+��ÖÅr,��}r-��(h5X���A h6j'��ubcsphinx.addnodes
pending_xref
r.��)År/��}r0��(h5X���:term:`data package`r1��h6j'��h=h>h?Upending_xrefr2��hA}r3��(UreftypeX���termUrefwarnr4��àU	reftargetr5��X���data packageU	refdomainX���stdr6��hF]hE]UrefexplicitâhC]hD]hI]Urefdocr7��X���design/DataPackager8��uhKK	hM]r9��cdocutils.nodes
inline
r:��)År;��}r<��(h5j1��hA}r=��(hC]hD]r>��(Uxrefr?��j6��X���std-termr@��ehE]hF]hI]uh6j/��hM]rA��hXX���data packagerB��ÖÅrC��}rD��(h5U�h6j;��ubah?UinlinerE��ubaubhXX(��� in DataONE is composed of at least one rF��ÖÅrG��}rH��(h5X(��� in DataONE is composed of at least one h6j'��ubj.��)ÅrI��}rJ��(h5X���:term:`science
metadata`rK��h6j'��h=h>h?j2��hA}rL��(UreftypeX���termj4��àj5��X���science metadataU	refdomainX���stdrM��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKK	hM]rN��j:��)ÅrO��}rP��(h5jK��hA}rQ��(hC]hD]rR��(j?��jM��X���std-termrS��ehE]hF]hI]uh6jI��hM]rT��hXX���science
metadatarU��ÖÅrV��}rW��(h5U�h6jO��ubah?jE��ubaubhXX"��� document describing at least one rX��ÖÅrY��}rZ��(h5X"��� document describing at least one h6j'��ubj.��)År[��}r\��(h5X���:term:`data`r]��h6j'��h=h>h?j2��hA}r^��(UreftypeX���termj4��àj5��X���dataU	refdomainX���stdr_��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKK	hM]r`��j:��)Åra��}rb��(h5j]��hA}rc��(hC]hD]rd��(j?��j_��X���std-termre��ehE]hF]hI]uh6j[��hM]rf��hXX���datarg��ÖÅrh��}ri��(h5U�h6ja��ubah?jE��ubaubhXX<��� object with the
relationships between them documented in a rj��ÖÅrk��}rl��(h5X<��� object with the
relationships between them documented in a h6j'��ubj.��)Årm��}rn��(h5X���:term:`resource map`ro��h6j'��h=h>h?j2��hA}rp��(UreftypeX���termj4��àj5��X���resource mapU	refdomainX���stdrq��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKK	hM]rr��j:��)Års��}rt��(h5jo��hA}ru��(hC]hD]rv��(j?��jq��X���std-termrw��ehE]hF]hI]uh6jm��hM]rx��hXX���resource mapry��ÖÅrz��}r{��(h5U�h6js��ubah?jE��ubaubhXX
��� document.r|��ÖÅr}��}r~��(h5X
��� document.h6j'��ubeubhy)År��}rÄ��(h5X��Resource maps are RDF documents that conform to the Open Archives Initiative's
Object Reuse and Exchange (`OAI-ORE`_) specification as described in detail
below. Resource maps are generated by :term:`Member Nodes` to define data
packages, and have a :term:`formatId` of::h6j��h=h>h?hàhA}rÅ��(hC]hD]hE]hF]hI]uhKK
hLhhM]r��(hXXj���Resource maps are RDF documents that conform to the Open Archives Initiative's
Object Reuse and Exchange (rÉ��ÖÅrÑ��}rÖ��(h5Xj���Resource maps are RDF documents that conform to the Open Archives Initiative's
Object Reuse and Exchange (h6j��ubh~)ÅrÜ��}rá��(h5X
���`OAI-ORE`_Uresolvedrà��Kh6j��h?háhA}râ��(UnameX���OAI-OREUrefurirä��X!���https://www.openarchives.org/ore/rã��hF]hE]hC]hD]hI]uhM]rå��hXX���OAI-ORErç��ÖÅré��}rè��(h5U�h6jÜ��ubaubhXXM���) specification as described in detail
below. Resource maps are generated by rê��ÖÅrë��}rí��(h5XM���) specification as described in detail
below. Resource maps are generated by h6j��ubj.��)Årì��}rî��(h5X���:term:`Member Nodes`rï��h6j��h=h>h?j2��hA}rñ��(UreftypeX���termj4��àj5��X���member nodesU	refdomainX���stdró��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKK
hM]rò��j:��)Årô��}rö��(h5jï��hA}rõ��(hC]hD]rú��(j?��jó��X���std-termrù��ehE]hF]hI]uh6jì��hM]rû��hXX���Member Nodesrü��ÖÅr†��}r°��(h5U�h6jô��ubah?jE��ubaubhXX%��� to define data
packages, and have a r¢��ÖÅr£��}r§��(h5X%��� to define data
packages, and have a h6j��ubj.��)År•��}r¶��(h5X���:term:`formatId`rß��h6j��h=h>h?j2��hA}r®��(UreftypeX���termj4��àj5��X���formatidU	refdomainX���stdr©��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKK
hM]r™��j:��)År´��}r¨��(h5jß��hA}r≠��(hC]hD]rÆ��(j?��j©��X���std-termrØ��ehE]hF]hI]uh6j•��hM]r∞��hXX���formatIdr±��ÖÅr≤��}r≥��(h5U�h6j´��ubah?jE��ubaubhXX��� of:r¥��ÖÅrµ��}r∂��(h5X��� of:h6j��ubeubcdocutils.nodes
literal_block
r∑��)År∏��}rπ��(h5X&���http://www.openarchives.org/ore/terms/h6j��h=h>h?U
literal_blockr∫��hA}rª��(U	xml:spacerº��UpreserverΩ��hF]hE]hC]hD]hI]uhKKhLhhM]ræ��hXX&���http://www.openarchives.org/ore/terms/rø��ÖÅr¿��}r¡��(h5U�h6j∏��ubaubhy)År¬��}r√��(h5Xf���Note this is a name space string. The actual ORE terms can be found in the
`ORE Vocabulary Document`_.h6j��h=h>h?hàhA}rƒ��(hC]hD]hE]hF]hI]uhKKhLhhM]r≈��(hXXK���Note this is a name space string. The actual ORE terms can be found in the
r∆��ÖÅr«��}r»��(h5XK���Note this is a name space string. The actual ORE terms can be found in the
h6j¬��ubh~)År…��}r ��(h5X���`ORE Vocabulary Document`_jà��Kh6j¬��h?háhA}rÀ��(UnameX���ORE Vocabulary Documentjä��X.���http://www.openarchives.org/ore/1.0/vocabularyrÃ��hF]hE]hC]hD]hI]uhM]rÕ��hXX���ORE Vocabulary DocumentrŒ��ÖÅrœ��}r–��(h5U�h6j…��ubaubhXX���.ÖÅr—��}r“��(h5X���.h6j¬��ubeubcdocutils.nodes
target
r”��)År‘��}r’��(h5X.���.. _OAI-ORE: https://www.openarchives.org/ore/h:Kh6j��h=h>h?Utargetr÷��hA}r◊��(jä��jã��hF]rÿ��Uoai-orerŸ��ahE]hC]hD]hI]r⁄��h"auhKKhLhhM]ubj”��)År€��}r‹��(h5XK���.. _ORE Vocabulary Document: http://www.openarchives.org/ore/1.0/vocabularyh:Kh6j��h=h>h?j÷��hA}r›��(jä��jÃ��hF]rfi��Uore-vocabulary-documentrfl��ahE]hC]hD]hI]r‡��hauhKKhLhhM]ubcdocutils.nodes
image
r·��)År‚��}r„��(h5X(���.. image:: images/datapackage_class.png
h6j��h=h>h?Uimager‰��hA}rÂ��(UuriX#���design/images/datapackage_class.pngrÊ��hF]hE]hC]hD]U
candidatesrÁ��}rË��U*jÊ��shI]uhKKhLhhM]ubhy)ÅrÈ��}rÍ��(h5Xn���Overview class diagram for content model in DataONE. Class attributes refer to
the equivalent SOLR index entryrÎ��h6j��h=h>h?hàhA}rÏ��(hC]hD]hE]hF]hI]uhKKhLhhM]rÌ��hXXn���Overview class diagram for content model in DataONE. Class attributes refer to
the equivalent SOLR index entryrÓ��ÖÅrÔ��}r��(h5jÎ��h6jÈ��ubaubcdocutils.nodes
comment
rÒ��)ÅrÚ��}rÛ��(h5X"��@startuml images/datapackage_class.png
left to right direction

class DataONEObject {
  String id
  Integer size
  String formatId
  String AuthoritativeMN
  Date dateUploaded
  Boolean isPublic
  String obsoletedBy
  ...
}

class ResourceMap {
  Relation[]: relations
}

class Relation {
  URI cito:documents
  URI cito:isDocumentedBy
}

class ScienceMetadata {
  String title
  String abstract
  String[] authors
  Date beginDate
  Date endDate
  Float eastBoundingCoord
  Float westBoundingCoord
  Float northBoundingCoord
  Float southBoundingCoord
  ...
}

class ScienceData {

}

DataONEObject <|-- ResourceMap
DataONEObject <|-- ScienceMetadata
DataONEObject <|-- ScienceData
ScienceData "0..*" - "0..*" ScienceMetadata
(ScienceMetadata, ScienceData) . Relation
ResourceMap o-- Relation

@endumlh6j��h=h>h?UcommentrÙ��hA}rı��(jº��jΩ��hF]hE]hC]hD]hI]uhKKQhLhhM]rˆ��hXX"��@startuml images/datapackage_class.png
left to right direction

class DataONEObject {
  String id
  Integer size
  String formatId
  String AuthoritativeMN
  Date dateUploaded
  Boolean isPublic
  String obsoletedBy
  ...
}

class ResourceMap {
  Relation[]: relations
}

class Relation {
  URI cito:documents
  URI cito:isDocumentedBy
}

class ScienceMetadata {
  String title
  String abstract
  String[] authors
  Date beginDate
  Date endDate
  Float eastBoundingCoord
  Float westBoundingCoord
  Float northBoundingCoord
  Float southBoundingCoord
  ...
}

class ScienceData {

}

DataONEObject <|-- ResourceMap
DataONEObject <|-- ScienceMetadata
DataONEObject <|-- ScienceData
ScienceData "0..*" - "0..*" ScienceMetadata
(ScienceMetadata, ScienceData) . Relation
ResourceMap o-- Relation

@endumlr˜��ÖÅr¯��}r˘��(h5U�h6jÚ��ubaubeubh7)År˙��}r˚��(h5U�h6h;h=h>h?h@hA}r¸��(hC]hD]hE]hF]r˝��hÆahI]r˛��hauhKKShLhhM]rˇ��(hO)År���}r��(h5h≥h6j˙��h=h>h?hShA}r��(hF]hE]hC]hD]hI]hUh≠uhKKShLhhM]r��hXX���Generating Resource Mapsr��ÖÅr��}r��(h5h≥h6j���ubaubhy)År��}r��(h5X©��While there are several formats discussed in the general discussion below,
DataONE currently only supports the RDF/XML serialization format, using the
:term:`formatId` of ``http://www/openarchives.org/ore/terms``. For more
information on OAI-ORE resource maps, see
http://www.openarchives.org/ore/1.0/primer, especially sections 3 and 4. For
more details on RDF/XML format, see
http://www.openarchives.org/ore/1.0/rdfxml.htmlh6j˙��h=h>h?hàhA}r	��(hC]hD]hE]hF]hI]uhKKUhLhhM]r
��(hXX�While there are several formats discussed in the general discussion below,
DataONE currently only supports the RDF/XML serialization format, using the
r��ÖÅr��}r
��(h5X�While there are several formats discussed in the general discussion below,
DataONE currently only supports the RDF/XML serialization format, using the
h6j��ubj.��)År��}r��(h5X���:term:`formatId`r��h6j��h=h>h?j2��hA}r��(UreftypeX���termj4��àj5��X���formatidU	refdomainX���stdr��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKUhM]r��j:��)År��}r��(h5j��hA}r��(hC]hD]r��(j?��j��X���std-termr��ehE]hF]hI]uh6j��hM]r��hXX���formatIdr��ÖÅr��}r��(h5U�h6j��ubah?jE��ubaubhXX��� of r��ÖÅr��}r��(h5X��� of h6j��ubcdocutils.nodes
literal
r ��)År!��}r"��(h5X)���``http://www/openarchives.org/ore/terms``hA}r#��(hC]hD]hE]hF]hI]uh6j��hM]r$��hXX%���http://www/openarchives.org/ore/termsr%��ÖÅr&��}r'��(h5U�h6j!��ubah?Uliteralr(��ubhXX5���. For more
information on OAI-ORE resource maps, see
r)��ÖÅr*��}r+��(h5X5���. For more
information on OAI-ORE resource maps, see
h6j��ubh~)År,��}r-��(h5X*���http://www.openarchives.org/ore/1.0/primerr.��hA}r/��(Urefurij.��hF]hE]hC]hD]hI]uh6j��hM]r0��hXX*���http://www.openarchives.org/ore/1.0/primerr1��ÖÅr2��}r3��(h5U�h6j,��ubah?háubhXXG���, especially sections 3 and 4. For
more details on RDF/XML format, see
r4��ÖÅr5��}r6��(h5XG���, especially sections 3 and 4. For
more details on RDF/XML format, see
h6j��ubh~)År7��}r8��(h5X/���http://www.openarchives.org/ore/1.0/rdfxml.htmlr9��hA}r:��(Urefurij9��hF]hE]hC]hD]hI]uh6j��hM]r;��hXX/���http://www.openarchives.org/ore/1.0/rdfxml.htmlr<��ÖÅr=��}r>��(h5U�h6j7��ubah?háubeubhy)År?��}r@��(h5Xé��DataONE provides tools in both the Java and Python client libraries for building
and serializing / deserializing resource maps, both based on the foresite-toolkit
project (https://code.google.com/p/foresite-toolkit/).  These are highly recommended
for those who do not want to spend time on learning the OAI-ORE implementation model
in detail in order to build and maintain a custom implementation.h6j˙��h=h>h?hàhA}rA��(hC]hD]hE]hF]hI]uhKK^hLhhM]rB��(hXX¨���DataONE provides tools in both the Java and Python client libraries for building
and serializing / deserializing resource maps, both based on the foresite-toolkit
project (rC��ÖÅrD��}rE��(h5X¨���DataONE provides tools in both the Java and Python client libraries for building
and serializing / deserializing resource maps, both based on the foresite-toolkit
project (h6j?��ubh~)ÅrF��}rG��(h5X+���https://code.google.com/p/foresite-toolkit/rH��hA}rI��(UrefurijH��hF]hE]hC]hD]hI]uh6j?��hM]rJ��hXX+���https://code.google.com/p/foresite-toolkit/rK��ÖÅrL��}rM��(h5U�h6jF��ubah?háubhXX∑���).  These are highly recommended
for those who do not want to spend time on learning the OAI-ORE implementation model
in detail in order to build and maintain a custom implementation.rN��ÖÅrO��}rP��(h5X∑���).  These are highly recommended
for those who do not want to spend time on learning the OAI-ORE implementation model
in detail in order to build and maintain a custom implementation.h6j?��ubeubhy)ÅrQ��}rR��(h5XÚ���The ORE data model itself is flexible and general purpose.  In order to use it
for our purposes, DataONE places a few additional constraints on the model.  (See
http://www.openarchives.org/ore/1.0/datamodel for details on the ORE data model).h6j˙��h=h>h?hàhA}rS��(hC]hD]hE]hF]hI]uhKKdhLhhM]rT��(hXX°���The ORE data model itself is flexible and general purpose.  In order to use it
for our purposes, DataONE places a few additional constraints on the model.  (See
rU��ÖÅrV��}rW��(h5X°���The ORE data model itself is flexible and general purpose.  In order to use it
for our purposes, DataONE places a few additional constraints on the model.  (See
h6jQ��ubh~)ÅrX��}rY��(h5X-���http://www.openarchives.org/ore/1.0/datamodelrZ��hA}r[��(UrefurijZ��hF]hE]hC]hD]hI]uh6jQ��hM]r\��hXX-���http://www.openarchives.org/ore/1.0/datamodelr]��ÖÅr^��}r_��(h5U�h6jX��ubah?háubhXX$��� for details on the ORE data model).r`��ÖÅra��}rb��(h5X$��� for details on the ORE data model).h6jQ��ubeubcdocutils.nodes
enumerated_list
rc��)Ård��}re��(h5U�h6j˙��h=h>h?Uenumerated_listrf��hA}rg��(Usuffixrh��U.hF]hE]hC]Uprefixri��U�hD]hI]Uenumtyperj��Uarabicrk��uhKKihLhhM]rl��(ht)Årm��}rn��(h5XÊ���all DataONE objects in the map MUST be expressed as a URI using DataONE's
resolving service, instead of reference to a specific replica on a member
node.  This is to separate the current physical location from the resource
itself.h6jd��h=h>h?h†hA}ro��(hC]hD]hE]hF]hI]uhKNhLhhM]rp��hy)Årq��}rr��(h5XÊ���all DataONE objects in the map MUST be expressed as a URI using DataONE's
resolving service, instead of reference to a specific replica on a member
node.  This is to separate the current physical location from the resource
itself.rs��h6jm��h=h>h?hàhA}rt��(hC]hD]hE]hF]hI]uhKKihM]ru��hXXÊ���all DataONE objects in the map MUST be expressed as a URI using DataONE's
resolving service, instead of reference to a specific replica on a member
node.  This is to separate the current physical location from the resource
itself.rv��ÖÅrw��}rx��(h5js��h6jq��ubaubaubht)Åry��}rz��(h5XQ��The aggregation resource URI SHOULD be expressed as a hash URI based on the
resource map URI, as recommended by ORE (see: http://www.openarchives.org/ore/1.0/primer#remHashURIs,
and http://www.openarchives.org/ore/1.0/http#Simple) This ensures that the
aggregation can be referenced directly in other resource maps and still be
resolved.h6jd��h=h>h?h†hA}r{��(hC]hD]hE]hF]hI]uhKNhLhhM]r|��hy)År}��}r~��(h5XQ��The aggregation resource URI SHOULD be expressed as a hash URI based on the
resource map URI, as recommended by ORE (see: http://www.openarchives.org/ore/1.0/primer#remHashURIs,
and http://www.openarchives.org/ore/1.0/http#Simple) This ensures that the
aggregation can be referenced directly in other resource maps and still be
resolved.h6jy��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKKmhM]rÄ��(hXXz���The aggregation resource URI SHOULD be expressed as a hash URI based on the
resource map URI, as recommended by ORE (see: rÅ��ÖÅrÇ��}rÉ��(h5Xz���The aggregation resource URI SHOULD be expressed as a hash URI based on the
resource map URI, as recommended by ORE (see: h6j}��ubh~)ÅrÑ��}rÖ��(h5X6���http://www.openarchives.org/ore/1.0/primer#remHashURIsrÜ��hA}rá��(UrefurijÜ��hF]hE]hC]hD]hI]uh6j}��hM]rà��hXX6���http://www.openarchives.org/ore/1.0/primer#remHashURIsrâ��ÖÅrä��}rã��(h5U�h6jÑ��ubah?háubhXX���,
and rå��ÖÅrç��}ré��(h5X���,
and h6j}��ubh~)Årè��}rê��(h5X/���http://www.openarchives.org/ore/1.0/http#Simplerë��hA}rí��(Urefurijë��hF]hE]hC]hD]hI]uh6j}��hM]rì��hXX/���http://www.openarchives.org/ore/1.0/http#Simplerî��ÖÅrï��}rñ��(h5U�h6jè��ubah?háubhXXl���) This ensures that the
aggregation can be referenced directly in other resource maps and still be
resolved.ró��ÖÅrò��}rô��(h5Xl���) This ensures that the
aggregation can be referenced directly in other resource maps and still be
resolved.h6j}��ubeubaubht)Årö��}rõ��(h5XÇ��When referencing another DataONE data package, the URI of the package being
referenced MUST resolve to a resource map.  The URI can either be the resource
map URI or the aggregation URI if it follows the hash URI format.  Since some
existing resource maps do not use aggregation URI's that resolve to the
resource map, it is necessary to check their format before deciding which to use.h6jd��h=h>h?h†hA}rú��(hC]hD]hE]hF]hI]uhKNhLhhM]rù��hy)Årû��}rü��(h5XÇ��When referencing another DataONE data package, the URI of the package being
referenced MUST resolve to a resource map.  The URI can either be the resource
map URI or the aggregation URI if it follows the hash URI format.  Since some
existing resource maps do not use aggregation URI's that resolve to the
resource map, it is necessary to check their format before deciding which to use.r†��h6jö��h=h>h?hàhA}r°��(hC]hD]hE]hF]hI]uhKKrhM]r¢��hXXÇ��When referencing another DataONE data package, the URI of the package being
referenced MUST resolve to a resource map.  The URI can either be the resource
map URI or the aggregation URI if it follows the hash URI format.  Since some
existing resource maps do not use aggregation URI's that resolve to the
resource map, it is necessary to check their format before deciding which to use.r£��ÖÅr§��}r•��(h5j†��h6jû��ubaubaubht)År¶��}rß��(h5XÑ���each resource with a representation in DataONE MUST be described with an
dcterms:identifier field containing the DataONE identifier.h6jd��h=h>h?h†hA}r®��(hC]hD]hE]hF]hI]uhKNhLhhM]r©��hy)År™��}r´��(h5XÑ���each resource with a representation in DataONE MUST be described with an
dcterms:identifier field containing the DataONE identifier.r¨��h6j¶��h=h>h?hàhA}r≠��(hC]hD]hE]hF]hI]uhKKwhM]rÆ��hXXÑ���each resource with a representation in DataONE MUST be described with an
dcterms:identifier field containing the DataONE identifier.rØ��ÖÅr∞��}r±��(h5j¨��h6j™��ubaubaubht)År≤��}r≥��(h5XÍ���when expressing an identifier in a URI, it must be URL encoded.  When expressing
in the dcterms:identifier field, it must not.  (Of course any XML encoding
would need to be applied as well, in the example below, there is none needed).h6jd��h=h>h?h†hA}r¥��(hC]hD]hE]hF]hI]uhKNhLhhM]rµ��hy)År∂��}r∑��(h5XÍ���when expressing an identifier in a URI, it must be URL encoded.  When expressing
in the dcterms:identifier field, it must not.  (Of course any XML encoding
would need to be applied as well, in the example below, there is none needed).r∏��h6j≤��h=h>h?hàhA}rπ��(hC]hD]hE]hF]hI]uhKKyhM]r∫��hXXÍ���when expressing an identifier in a URI, it must be URL encoded.  When expressing
in the dcterms:identifier field, it must not.  (Of course any XML encoding
would need to be applied as well, in the example below, there is none needed).rª��ÖÅrº��}rΩ��(h5j∏��h6j∂��ubaubaubht)Åræ��}rø��(h5X#��the resource map MUST assert a triple with the pre:isDescribedBy relationship
between the resource map and the aggregation, following the recommendation that
aggregations with multiple resource maps express this relationship.
(see http://www.openarchives.org/ore/1.0/datamodel#ReM-to-aggr)

h6jd��h=h>h?h†hA}r¿��(hC]hD]hE]hF]hI]uhKNhLhhM]r¡��hy)År¬��}r√��(h5X!��the resource map MUST assert a triple with the pre:isDescribedBy relationship
between the resource map and the aggregation, following the recommendation that
aggregations with multiple resource maps express this relationship.
(see http://www.openarchives.org/ore/1.0/datamodel#ReM-to-aggr)rƒ��h6jæ��h=h>h?hàhA}r≈��(hC]hD]hE]hF]hI]uhKK|hM]r∆��hXX!��the resource map MUST assert a triple with the pre:isDescribedBy relationship
between the resource map and the aggregation, following the recommendation that
aggregations with multiple resource maps express this relationship.
(see http://www.openarchives.org/ore/1.0/datamodel#ReM-to-aggr)r«��ÖÅr»��}r…��(h5jƒ��h6j¬��ubaubaubeubhy)År ��}rÀ��(h5Xl���For example, the triple representing 'scimeta_id1/foo documents scidata_id1' would
look like the following::h6j˙��h=h>h?hàhA}rÃ��(hC]hD]hE]hF]hI]uhKKÇhLhhM]rÕ��hXXk���For example, the triple representing 'scimeta_id1/foo documents scidata_id1' would
look like the following:rŒ��ÖÅrœ��}r–��(h5Xk���For example, the triple representing 'scimeta_id1/foo documents scidata_id1' would
look like the following:h6j ��ubaubj∑��)År—��}r“��(h5X˘���<rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scimeta_id%2Ffoo">
  <cito:documents rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
  <dcterms:identifier>scimeta_id/foo</dcterms:identifier>
  ...
</rdf:Description>h6j˙��h=h>h?j∫��hA}r”��(jº��jΩ��hF]hE]hC]hD]hI]uhKKÖhLhhM]r‘��hXX˘���<rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scimeta_id%2Ffoo">
  <cito:documents rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
  <dcterms:identifier>scimeta_id/foo</dcterms:identifier>
  ...
</rdf:Description>r’��ÖÅr÷��}r◊��(h5U�h6j—��ubaubhy)Årÿ��}rŸ��(h5X<���and the aggregation resource would look like the following::r⁄��h6j˙��h=h>h?hàhA}r€��(hC]hD]hE]hF]hI]uhKKãhLhhM]r‹��hXX;���and the aggregation resource would look like the following:r›��ÖÅrfi��}rfl��(h5X;���and the aggregation resource would look like the following:h6jÿ��ubaubj∑��)År‡��}r·��(h5XÕ��<rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/resource_map_id#aggregation">
  <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
  <ore:isDescribedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/resource_map_id"/>
  <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id%2Ffoo"/>
  <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
  ...
</rdf:Description>h6j˙��h=h>h?j∫��hA}r‚��(jº��jΩ��hF]hE]hC]hD]hI]uhKKçhLhhM]r„��hXXÕ��<rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/resource_map_id#aggregation">
  <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
  <ore:isDescribedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/resource_map_id"/>
  <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id%2Ffoo"/>
  <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
  ...
</rdf:Description>r‰��ÖÅrÂ��}rÊ��(h5U�h6j‡��ubaubhy)ÅrÁ��}rË��(h5X`���See the Examples section under Background Discussion below for a full example of
a resource map.rÈ��h6j˙��h=h>h?hàhA}rÍ��(hC]hD]hE]hF]hI]uhKKñhLhhM]rÎ��hXX`���See the Examples section under Background Discussion below for a full example of
a resource map.rÏ��ÖÅrÌ��}rÓ��(h5jÈ��h6jÁ��ubaubh7)ÅrÔ��}r��(h5U�h6j˙��h=h>h?h@hA}rÒ��(hC]hD]hE]hF]rÚ��h≈ahI]rÛ��hauhKKöhLhhM]rÙ��(hO)Årı��}rˆ��(h5h h6jÔ��h=h>h?hShA}r˜��(hF]hE]hC]hD]hI]hUhƒuhKKöhLhhM]r¯��hXX���Deviation from the ORE modelr˘��ÖÅr˙��}r˚��(h5h h6jı��ubaubhy)År¸��}r˝��(h5XZ��Because DataONE already contains resource maps whose aggregation URIs do not
conform to the ORE specification that they can be resolved to a resource map, we
cannot assert that the collection of resource maps adhere to the specification,
and therefore will not will not require conformity in this aspect for resource
maps submitted in the future.r˛��h6jÔ��h=h>h?hàhA}rˇ��(hC]hD]hE]hF]hI]uhKKúhLhhM]r���hXXZ��Because DataONE already contains resource maps whose aggregation URIs do not
conform to the ORE specification that they can be resolved to a resource map, we
cannot assert that the collection of resource maps adhere to the specification,
and therefore will not will not require conformity in this aspect for resource
maps submitted in the future.r��ÖÅr��}r��(h5j˛��h6j¸��ubaubhy)År��}r��(h5Xä��As a result, users must be careful when referencing aggregations directly from
other data packages, as not all of them will resolve to a resource map.  Similarly,
if the collection of resource maps is put together into a triple store, these
non-resolving aggregation URIs cannot be guaranteed to be unique, the result of
which is that mistaken relationships between unrelated items would occur.r��h6jÔ��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKK¢hLhhM]r��hXXä��As a result, users must be careful when referencing aggregations directly from
other data packages, as not all of them will resolve to a resource map.  Similarly,
if the collection of resource maps is put together into a triple store, these
non-resolving aggregation URIs cannot be guaranteed to be unique, the result of
which is that mistaken relationships between unrelated items would occur.r	��ÖÅr
��}r��(h5j��h6j��ubaubeubh7)År��}r
��(h5U�h6j˙��h=h>h?h@hA}r��(hC]hD]hE]hF]r��hÿahI]r��hauhKK´hLhhM]r��(hO)År��}r��(h5h›h6j��h=h>h?hShA}r��(hF]hE]hC]hD]hI]hUh◊uhKK´hLhhM]r��hXX���Referencing other data packagesr��ÖÅr��}r��(h5h›h6j��ubaubhy)År��}r��(h5Xm��The main use case in DataONE for referencing other data packages in a resource map
is that of nesting one inside another, which makes the 'other' data package itself
something that is being aggregated.  Especially in such cases, it is necessary
that the URI used to represent the data package being aggregated can be resolved
to its resource map.  If the aggregation URI follows the has URI format, it will
resolve to the resource map when following the URI.  Otherwise, the URI of the
resource map should be used.  In both cases clients following the URI of the
aggregated resource will get the resource map, as desired.r��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKK≠hLhhM]r��hXXm��The main use case in DataONE for referencing other data packages in a resource map
is that of nesting one inside another, which makes the 'other' data package itself
something that is being aggregated.  Especially in such cases, it is necessary
that the URI used to represent the data package being aggregated can be resolved
to its resource map.  If the aggregation URI follows the has URI format, it will
resolve to the resource map when following the URI.  Otherwise, the URI of the
resource map should be used.  In both cases clients following the URI of the
aggregated resource will get the resource map, as desired.r��ÖÅr��}r ��(h5j��h6j��ubaubhy)År!��}r"��(h5XT���To check that the aggregation is in hash URI form, the following check can be used::r#��h6j��h=h>h?hàhA}r$��(hC]hD]hE]hF]hI]uhKK∂hLhhM]r%��hXXS���To check that the aggregation is in hash URI form, the following check can be used:r&��ÖÅr'��}r(��(h5XS���To check that the aggregation is in hash URI form, the following check can be used:h6j!��ubaubj∑��)År)��}r*��(h5X6���aggregation_X_uri startsWith (resourceMap_X_uri + "#")h6j��h=h>h?j∫��hA}r+��(jº��jΩ��hF]hE]hC]hD]hI]uhKK∏hLhhM]r,��hXX6���aggregation_X_uri startsWith (resourceMap_X_uri + "#")r-��ÖÅr.��}r/��(h5U�h6j)��ubaubhy)År0��}r1��(h5X‡��Notes:  Future infrastructure development will likely involve standing up a triple-store
where all resource maps will be held.  Any aggregation not in hash URI form cannot
be relied upon to be unique, otherwise incorrect connections between unrelated
objects are possible.  Likely solutions for incorporation of existing non-hashURI
aggregations include either renaming the aggregations upon import, or treating
them as relative URIs that would be appended to the resourceMap URI.r2��h6j��h=h>h?hàhA}r3��(hC]hD]hE]hF]hI]uhKKªhLhhM]r4��hXX‡��Notes:  Future infrastructure development will likely involve standing up a triple-store
where all resource maps will be held.  Any aggregation not in hash URI form cannot
be relied upon to be unique, otherwise incorrect connections between unrelated
objects are possible.  Likely solutions for incorporation of existing non-hashURI
aggregations include either renaming the aggregations upon import, or treating
them as relative URIs that would be appended to the resourceMap URI.r5��ÖÅr6��}r7��(h5j2��h6j0��ubaubeubh7)År8��}r9��(h5U�h6j˙��h=h>h?h@hA}r:��(hC]hD]hE]hF]r;��hÎahI]r<��h)auhKKƒhLhhM]r=��(hO)År>��}r?��(h5hh6j8��h=h>h?hShA}r@��(hF]hE]hC]hD]hI]hUhÍuhKKƒhLhhM]rA��hXX���Very large data packagesrB��ÖÅrC��}rD��(h5hh6j>��ubaubhy)ÅrE��}rF��(h5X��Current tools for building and parsing resource maps are not able to handle data
packages that aggregate a very large number of objects.  The DataPackage class
in d1_libclient_java was used to attempt to create serialized resource maps of
increasing size.  Results are summarized below:rG��h6j8��h=h>h?hàhA}rH��(hC]hD]hE]hF]hI]uhKK∆hLhhM]rI��hXX��Current tools for building and parsing resource maps are not able to handle data
packages that aggregate a very large number of objects.  The DataPackage class
in d1_libclient_java was used to attempt to create serialized resource maps of
increasing size.  Results are summarized below:rJ��ÖÅrK��}rL��(h5jG��h6jE��ubaubcdocutils.nodes
table
rM��)ÅrN��}rO��(h5U�h6j8��h=h>h?UtablerP��hA}rQ��(hC]hD]hE]hF]hI]uhKNhLhhM]rR��cdocutils.nodes
tgroup
rS��)ÅrT��}rU��(h5U�hA}rV��(hF]hE]hC]hD]hI]UcolsKuh6jN��hM]rW��(cdocutils.nodes
colspec
rX��)ÅrY��}rZ��(h5U�hA}r[��(hF]hE]hC]hD]hI]UcolwidthKuh6jT��hM]h?Ucolspecr\��ubjX��)År]��}r^��(h5U�hA}r_��(hF]hE]hC]hD]hI]UcolwidthK#uh6jT��hM]h?j\��ubcdocutils.nodes
thead
r`��)Åra��}rb��(h5U�hA}rc��(hC]hD]hE]hF]hI]uh6jT��hM]rd��cdocutils.nodes
row
re��)Årf��}rg��(h5U�hA}rh��(hC]hD]hE]hF]hI]uh6ja��hM]ri��(cdocutils.nodes
entry
rj��)Årk��}rl��(h5U�hA}rm��(hC]hD]hE]hF]hI]uh6jf��hM]rn��hy)Åro��}rp��(h5X���# of data objectsrq��h6jk��h=h>h?hàhA}rr��(hC]hD]hE]hF]hI]uhKKÃhM]rs��hXX���# of data objectsrt��ÖÅru��}rv��(h5jq��h6jo��ubaubah?Uentryrw��ubjj��)Årx��}ry��(h5U�hA}rz��(hC]hD]hE]hF]hI]uh6jf��hM]r{��hy)År|��}r}��(h5X
���time to buildr~��h6jx��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKKÃhM]rÄ��hXX
���time to buildrÅ��ÖÅrÇ��}rÉ��(h5j~��h6j|��ubaubah?jw��ubeh?UrowrÑ��ubah?UtheadrÖ��ubcdocutils.nodes
tbody
rÜ��)Årá��}rà��(h5U�hA}râ��(hC]hD]hE]hF]hI]uh6jT��hM]rä��(je��)Årã��}rå��(h5U�hA}rç��(hC]hD]hE]hF]hI]uh6já��hM]ré��(jj��)Årè��}rê��(h5U�hA}rë��(hC]hD]hE]hF]hI]uh6jã��hM]rí��hy)Årì��}rî��(h5X���100rï��h6jè��h=h>h?hàhA}rñ��(hC]hD]hE]hF]hI]uhKKŒhM]ró��hXX���100rò��ÖÅrô��}rö��(h5jï��h6jì��ubaubah?jw��ubjj��)Årõ��}rú��(h5U�hA}rù��(hC]hD]hE]hF]hI]uh6jã��hM]rû��hy)Årü��}r†��(h5X
���2  secondsr°��h6jõ��h=h>h?hàhA}r¢��(hC]hD]hE]hF]hI]uhKKŒhM]r£��hXX
���2  secondsr§��ÖÅr•��}r¶��(h5j°��h6jü��ubaubah?jw��ubeh?jÑ��ubje��)Årß��}r®��(h5U�hA}r©��(hC]hD]hE]hF]hI]uh6já��hM]r™��(jj��)År´��}r¨��(h5U�hA}r≠��(hC]hD]hE]hF]hI]uh6jß��hM]rÆ��hy)ÅrØ��}r∞��(h5X���1000r±��h6j´��h=h>h?hàhA}r≤��(hC]hD]hE]hF]hI]uhKKœhM]r≥��hXX���1000r¥��ÖÅrµ��}r∂��(h5j±��h6jØ��ubaubah?jw��ubjj��)År∑��}r∏��(h5U�hA}rπ��(hC]hD]hE]hF]hI]uh6jß��hM]r∫��hy)Årª��}rº��(h5X
���3  secondsrΩ��h6j∑��h=h>h?hàhA}ræ��(hC]hD]hE]hF]hI]uhKKœhM]rø��hXX
���3  secondsr¿��ÖÅr¡��}r¬��(h5jΩ��h6jª��ubaubah?jw��ubeh?jÑ��ubje��)År√��}rƒ��(h5U�hA}r≈��(hC]hD]hE]hF]hI]uh6já��hM]r∆��(jj��)År«��}r»��(h5U�hA}r…��(hC]hD]hE]hF]hI]uh6j√��hM]r ��hy)ÅrÀ��}rÃ��(h5X���3000rÕ��h6j«��h=h>h?hàhA}rŒ��(hC]hD]hE]hF]hI]uhKK–hM]rœ��hXX���3000r–��ÖÅr—��}r“��(h5jÕ��h6jÀ��ubaubah?jw��ubjj��)År”��}r‘��(h5U�hA}r’��(hC]hD]hE]hF]hI]uh6j√��hM]r÷��hy)År◊��}rÿ��(h5X���20  secondsrŸ��h6j”��h=h>h?hàhA}r⁄��(hC]hD]hE]hF]hI]uhKK–hM]r€��hXX���20  secondsr‹��ÖÅr›��}rfi��(h5jŸ��h6j◊��ubaubah?jw��ubeh?jÑ��ubje��)Årfl��}r‡��(h5U�hA}r·��(hC]hD]hE]hF]hI]uh6já��hM]r‚��(jj��)År„��}r‰��(h5U�hA}rÂ��(hC]hD]hE]hF]hI]uh6jfl��hM]rÊ��hy)ÅrÁ��}rË��(h5X���10000rÈ��h6j„��h=h>h?hàhA}rÍ��(hC]hD]hE]hF]hI]uhKK—hM]rÎ��hXX���10000rÏ��ÖÅrÌ��}rÓ��(h5jÈ��h6jÁ��ubaubah?jw��ubjj��)ÅrÔ��}r��(h5U�hA}rÒ��(hC]hD]hE]hF]hI]uh6jfl��hM]rÚ��hy)ÅrÛ��}rÙ��(h5X
���5  minutesrı��h6jÔ��h=h>h?hàhA}rˆ��(hC]hD]hE]hF]hI]uhKK—hM]r˜��hXX
���5  minutesr¯��ÖÅr˘��}r˙��(h5jı��h6jÛ��ubaubah?jw��ubeh?jÑ��ubje��)År˚��}r¸��(h5U�hA}r˝��(hC]hD]hE]hF]hI]uh6já��hM]r˛��(jj��)Årˇ��}r���(h5U�hA}r��(hC]hD]hE]hF]hI]uh6j˚��hM]r��hy)År��}r��(h5X���30000r��h6jˇ��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKK“hM]r��hXX���30000r��ÖÅr	��}r
��(h5j��h6j��ubaubah?jw��ubjj��)År��}r��(h5U�hA}r
��(hC]hD]hE]hF]hI]uh6j˚��hM]r��hy)År��}r��(h5X"���heap memory error after 45 minutesr��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKK“hM]r��hXX"���heap memory error after 45 minutesr��ÖÅr��}r��(h5j��h6j��ubaubah?jw��ubeh?jÑ��ubeh?Utbodyr��ubeh?Utgroupr��ubaubjÒ��)År��}r��(h5XR���TODO:  provide statistics for deserialization times for various size resource mapsh6j8��h=h>h?jÙ��hA}r��(jº��jΩ��hF]hE]hC]hD]hI]uhKK◊hLhhM]r��hXXR���TODO:  provide statistics for deserialization times for various size resource mapsr��ÖÅr��}r��(h5U�h6j��ubaubeubeubh7)År ��}r!��(h5U�h6h;h=h>h?h@hA}r"��(hC]hD]hE]hF]r#��h˛ahI]r$��hauhKKŸhLhhM]r%��(hO)År&��}r'��(h5j��h6j ��h=h>h?hShA}r(��(hF]hE]hC]hD]hI]hUh˝uhKKŸhLhhM]r)��hXX���Resource map validationr*��ÖÅr+��}r,��(h5j��h6j&��ubaubhy)År-��}r.��(h5XX��Because DataONE indexing relies on the integrity of the resource maps it receives
from the member nodes, each resource map will be validated against the set of
constraints enumerated above.  Resource maps that do not validate will fail
synchronization, and the exception returned to the member node via the method
MN_Read.syncrhonizationFailed.r/��h6j ��h=h>h?hàhA}r0��(hC]hD]hE]hF]hI]uhKK€hLhhM]r1��hXXX��Because DataONE indexing relies on the integrity of the resource maps it receives
from the member nodes, each resource map will be validated against the set of
constraints enumerated above.  Resource maps that do not validate will fail
synchronization, and the exception returned to the member node via the method
MN_Read.syncrhonizationFailed.r2��ÖÅr3��}r4��(h5j/��h6j-��ubaubeubh7)År5��}r6��(h5U�h6h;h=h>h?h@hA}r7��(hC]hD]hE]hF]r8��j��ahI]r9��hauhKKÂhLhhM]r:��(hO)År;��}r<��(h5j��h6j5��h=h>h?hShA}r=��(hF]hE]hC]hD]hI]hUj��uhKKÂhLhhM]r>��hXX���Background Discussionr?��ÖÅr@��}rA��(h5j��h6j;��ubaubh7)ÅrB��}rC��(h5U�h6j5��h=h>h?h@hA}rD��(hC]hD]hE]hF]rE��j(��ahI]rF��hauhKKËhLhhM]rG��(hO)ÅrH��}rI��(h5j-��h6jB��h=h>h?hShA}rJ��(hF]hE]hC]hD]hI]hUj'��uhKKËhLhhM]rK��hXX���OverviewrL��ÖÅrM��}rN��(h5j-��h6jH��ubaubhy)ÅrO��}rP��(h5X„��Data, in the context of DataONE, is a discrete unit of digital content that is
expected to represent information obtained from some experiment or scientific
study. The :term:`data` are accompanied by :term:`science metadata`, which is a
separate unit of digital content that describes properties of the data. Each
unit of science data or science metadata is accompanied by :term:`system
metadata` which describes the digital object (e.g. hash, time stamps, ownership,
relationships).h6jB��h=h>h?hàhA}rQ��(hC]hD]hE]hF]hI]uhKKÍhLhhM]rR��(hXX®���Data, in the context of DataONE, is a discrete unit of digital content that is
expected to represent information obtained from some experiment or scientific
study. The rS��ÖÅrT��}rU��(h5X®���Data, in the context of DataONE, is a discrete unit of digital content that is
expected to represent information obtained from some experiment or scientific
study. The h6jO��ubj.��)ÅrV��}rW��(h5X���:term:`data`rX��h6jO��h=h>h?j2��hA}rY��(UreftypeX���termj4��àj5��X���dataU	refdomainX���stdrZ��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKÍhM]r[��j:��)År\��}r]��(h5jX��hA}r^��(hC]hD]r_��(j?��jZ��X���std-termr`��ehE]hF]hI]uh6jV��hM]ra��hXX���datarb��ÖÅrc��}rd��(h5U�h6j\��ubah?jE��ubaubhXX��� are accompanied by re��ÖÅrf��}rg��(h5X��� are accompanied by h6jO��ubj.��)Årh��}ri��(h5X���:term:`science metadata`rj��h6jO��h=h>h?j2��hA}rk��(UreftypeX���termj4��àj5��X���science metadataU	refdomainX���stdrl��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKÍhM]rm��j:��)Årn��}ro��(h5jj��hA}rp��(hC]hD]rq��(j?��jl��X���std-termrr��ehE]hF]hI]uh6jh��hM]rs��hXX���science metadatart��ÖÅru��}rv��(h5U�h6jn��ubah?jE��ubaubhXXï���, which is a
separate unit of digital content that describes properties of the data. Each
unit of science data or science metadata is accompanied by rw��ÖÅrx��}ry��(h5Xï���, which is a
separate unit of digital content that describes properties of the data. Each
unit of science data or science metadata is accompanied by h6jO��ubj.��)Årz��}r{��(h5X���:term:`system
metadata`r|��h6jO��h=h>h?j2��hA}r}��(UreftypeX���termj4��àj5��X���system metadataU	refdomainX���stdr~��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKÍhM]r��j:��)ÅrÄ��}rÅ��(h5j|��hA}rÇ��(hC]hD]rÉ��(j?��j~��X���std-termrÑ��ehE]hF]hI]uh6jz��hM]rÖ��hXX���system
metadatarÜ��ÖÅrá��}rà��(h5U�h6jÄ��ubah?jE��ubaubhXXW��� which describes the digital object (e.g. hash, time stamps, ownership,
relationships).râ��ÖÅrä��}rã��(h5XW��� which describes the digital object (e.g. hash, time stamps, ownership,
relationships).h6jO��ubeubhy)Årå��}rç��(h5XH��In DataONE, data are treated as opaque sets of bytes and, along with their
associated science metadata, are stored on :term:`Member Node`\s (MN). A copy
of the science metadata is held by the :term:`Coordinating Node`\s (CN) and is
parsed to extract attributes to assist the discovery process (i.e. users
searching for content).h6jB��h=h>h?hàhA}ré��(hC]hD]hE]hF]hI]uhKKÚhLhhM]rè��(hXXv���In DataONE, data are treated as opaque sets of bytes and, along with their
associated science metadata, are stored on rê��ÖÅrë��}rí��(h5Xv���In DataONE, data are treated as opaque sets of bytes and, along with their
associated science metadata, are stored on h6jå��ubj.��)Årì��}rî��(h5X���:term:`Member Node`rï��h6jå��h=h>h?j2��hA}rñ��(UreftypeX���termj4��àj5��X���member nodeU	refdomainX���stdró��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKÚhM]rò��j:��)Årô��}rö��(h5jï��hA}rõ��(hC]hD]rú��(j?��jó��X���std-termrù��ehE]hF]hI]uh6jì��hM]rû��hXX���Member Noderü��ÖÅr†��}r°��(h5U�h6jô��ubah?jE��ubaubhXX6���s (MN). A copy
of the science metadata is held by the r¢��ÖÅr£��}r§��(h5X7���\s (MN). A copy
of the science metadata is held by the h6jå��ubj.��)År•��}r¶��(h5X���:term:`Coordinating Node`rß��h6jå��h=h>h?j2��hA}r®��(UreftypeX���termj4��àj5��X���coordinating nodeU	refdomainX���stdr©��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKKÚhM]r™��j:��)År´��}r¨��(h5jß��hA}r≠��(hC]hD]rÆ��(j?��j©��X���std-termrØ��ehE]hF]hI]uh6j•��hM]r∞��hXX���Coordinating Noder±��ÖÅr≤��}r≥��(h5U�h6j´��ubah?jE��ubaubhXXn���s (CN) and is
parsed to extract attributes to assist the discovery process (i.e. users
searching for content).r¥��ÖÅrµ��}r∂��(h5Xo���\s (CN) and is
parsed to extract attributes to assist the discovery process (i.e. users
searching for content).h6jå��ubeubhy)År∑��}r∏��(h5X˘��The opacity of data in DataONE is likely to change in the future to enable
processing of the data with operations such as translation (e.g. for format
migration), extraction (e.g. for rendering), and merging (e.g. to combine
multiple instances of data that are expressed in different formats). Such
operations rely upon a stable, accessible framework supporting reliable data
access, and so are targeted after the initial requirements of DataONE are met
and the core infrastructure is demonstrably robust.rπ��h6jB��h=h>h?hàhA}r∫��(hC]hD]hE]hF]hI]uhKK¯hLhhM]rª��hXX˘��The opacity of data in DataONE is likely to change in the future to enable
processing of the data with operations such as translation (e.g. for format
migration), extraction (e.g. for rendering), and merging (e.g. to combine
multiple instances of data that are expressed in different formats). Such
operations rely upon a stable, accessible framework supporting reliable data
access, and so are targeted after the initial requirements of DataONE are met
and the core infrastructure is demonstrably robust.rº��ÖÅrΩ��}ræ��(h5jπ��h6j∑��ubaubhy)Årø��}r¿��(h5Xú��In order to properly interpret, preserve, and utilize a data object, users and
their software agents need access to the science metadata describing the data
objects. A :term:`data package` in DataONE provides the conceptual
relationships among the various components of the package that describe which
:term:`data` objects are described by which :term:`science metadata`
documents, and the role in that description that they play. This model
accommodates use of well-established existing metadata specifications such as
EML, BDP, and ISO 19115 for documenting science metadata while recognizing that
some of these do not readily incorporate mechanisms for consistent linkages to
and inclusion of data objects. The data package concept also provides a
consistent mechanism to define one or more serialized representations of a
package that can be used to transport the components of a data package from
one system to another.h6jB��h=h>h?hàhA}r¡��(hC]hD]hE]hF]hI]uhKM�hLhhM]r¬��(hXX®���In order to properly interpret, preserve, and utilize a data object, users and
their software agents need access to the science metadata describing the data
objects. A r√��ÖÅrƒ��}r≈��(h5X®���In order to properly interpret, preserve, and utilize a data object, users and
their software agents need access to the science metadata describing the data
objects. A h6jø��ubj.��)År∆��}r«��(h5X���:term:`data package`r»��h6jø��h=h>h?j2��hA}r…��(UreftypeX���termj4��àj5��X���data packageU	refdomainX���stdr ��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKM�hM]rÀ��j:��)ÅrÃ��}rÕ��(h5j»��hA}rŒ��(hC]hD]rœ��(j?��j ��X���std-termr–��ehE]hF]hI]uh6j∆��hM]r—��hXX���data packager“��ÖÅr”��}r‘��(h5U�h6jÃ��ubah?jE��ubaubhXXr��� in DataONE provides the conceptual
relationships among the various components of the package that describe which
r’��ÖÅr÷��}r◊��(h5Xr��� in DataONE provides the conceptual
relationships among the various components of the package that describe which
h6jø��ubj.��)Årÿ��}rŸ��(h5X���:term:`data`r⁄��h6jø��h=h>h?j2��hA}r€��(UreftypeX���termj4��àj5��X���dataU	refdomainX���stdr‹��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKM�hM]r›��j:��)Årfi��}rfl��(h5j⁄��hA}r‡��(hC]hD]r·��(j?��j‹��X���std-termr‚��ehE]hF]hI]uh6jÿ��hM]r„��hXX���datar‰��ÖÅrÂ��}rÊ��(h5U�h6jfi��ubah?jE��ubaubhXX ��� objects are described by which rÁ��ÖÅrË��}rÈ��(h5X ��� objects are described by which h6jø��ubj.��)ÅrÍ��}rÎ��(h5X���:term:`science metadata`rÏ��h6jø��h=h>h?j2��hA}rÌ��(UreftypeX���termj4��àj5��X���science metadataU	refdomainX���stdrÓ��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKM�hM]rÔ��j:��)År��}rÒ��(h5jÏ��hA}rÚ��(hC]hD]rÛ��(j?��jÓ��X���std-termrÙ��ehE]hF]hI]uh6jÍ��hM]rı��hXX���science metadatarˆ��ÖÅr˜��}r¯��(h5U�h6j��ubah?jE��ubaubhXX*��
documents, and the role in that description that they play. This model
accommodates use of well-established existing metadata specifications such as
EML, BDP, and ISO 19115 for documenting science metadata while recognizing that
some of these do not readily incorporate mechanisms for consistent linkages to
and inclusion of data objects. The data package concept also provides a
consistent mechanism to define one or more serialized representations of a
package that can be used to transport the components of a data package from
one system to another.r˘��ÖÅr˙��}r˚��(h5X*��
documents, and the role in that description that they play. This model
accommodates use of well-established existing metadata specifications such as
EML, BDP, and ISO 19115 for documenting science metadata while recognizing that
some of these do not readily incorporate mechanisms for consistent linkages to
and inclusion of data objects. The data package concept also provides a
consistent mechanism to define one or more serialized representations of a
package that can be used to transport the components of a data package from
one system to another.h6jø��ubeubcdocutils.nodes
note
r¸��)År˝��}r˛��(h5X∆��The DataONE :doc:`SystemMetadata` format currently includes descriptions of
some of the relationships that would be within scope of the definition of a
Data Package. Specifically, the System Metadata fields
:attr:`SystemMetadata.obsoletes` and :attr:`SystemMetadata.obsoletedBy`
describe the relationship between two objects where one replaces the other
from a scientific utility perspective (such as an error-corrected version of
an existing data file).h6jB��h=h>h?Unoterˇ��hA}r���(hC]hD]hE]hF]hI]uhKNhLhhM]r��hy)År��}r��(h5X∆��The DataONE :doc:`SystemMetadata` format currently includes descriptions of
some of the relationships that would be within scope of the definition of a
Data Package. Specifically, the System Metadata fields
:attr:`SystemMetadata.obsoletes` and :attr:`SystemMetadata.obsoletedBy`
describe the relationship between two objects where one replaces the other
from a scientific utility perspective (such as an error-corrected version of
an existing data file).h6j˝��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMhM]r��(hXX���The DataONE r��ÖÅr��}r��(h5X���The DataONE h6j��ubj.��)År	��}r
��(h5X���:doc:`SystemMetadata`r��h6j��h=h>h?j2��hA}r��(UreftypeX���docr
��j4��àj5��X���SystemMetadataU	refdomainU�hF]hE]UrefexplicitâhC]hD]hI]j7��j8��uhKMhM]r��j:��)År��}r��(h5j��hA}r��(hC]hD]r��(j?��j
��ehE]hF]hI]uh6j	��hM]r��hXX���SystemMetadatar��ÖÅr��}r��(h5U�h6j��ubah?jE��ubaubhXXÆ��� format currently includes descriptions of
some of the relationships that would be within scope of the definition of a
Data Package. Specifically, the System Metadata fields
r��ÖÅr��}r��(h5XÆ��� format currently includes descriptions of
some of the relationships that would be within scope of the definition of a
Data Package. Specifically, the System Metadata fields
h6j��ubj.��)År��}r��(h5X ���:attr:`SystemMetadata.obsoletes`r��h6j��h=h>h?j2��hA}r��(UreftypeX���attrj4��âj5��X���SystemMetadata.obsoletesU	refdomainX���pyr��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��Upy:classr��NU	py:moduler ��NuhKMhM]r!��j ��)År"��}r#��(h5j��hA}r$��(hC]hD]r%��(j?��j��X���py-attrr&��ehE]hF]hI]uh6j��hM]r'��hXX���SystemMetadata.obsoletesr(��ÖÅr)��}r*��(h5U�h6j"��ubah?j(��ubaubhXX��� and r+��ÖÅr,��}r-��(h5X��� and h6j��ubj.��)År.��}r/��(h5X"���:attr:`SystemMetadata.obsoletedBy`r0��h6j��h=h>h?j2��hA}r1��(UreftypeX���attrj4��âj5��X���SystemMetadata.obsoletedByU	refdomainX���pyr2��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��j��Nj ��NuhKMhM]r3��j ��)År4��}r5��(h5j0��hA}r6��(hC]hD]r7��(j?��j2��X���py-attrr8��ehE]hF]hI]uh6j.��hM]r9��hXX���SystemMetadata.obsoletedByr:��ÖÅr;��}r<��(h5U�h6j4��ubah?j(��ubaubhXX∞���
describe the relationship between two objects where one replaces the other
from a scientific utility perspective (such as an error-corrected version of
an existing data file).r=��ÖÅr>��}r?��(h5X∞���
describe the relationship between two objects where one replaces the other
from a scientific utility perspective (such as an error-corrected version of
an existing data file).h6j��ubeubaubhy)År@��}rA��(h5Xƒ��A *data package* will be represented in DataONE as a unique, additional class
of object with its own unique identifier different from the identifiers of its
components. Each of these data packages in DataONE will be represented by an
OAI-ORE Resource Map that contains an Aggregation indicating relationships
among the components of the package. The BagIt specification will be used to
optionally provide these components as a single serialized object.h6jB��h=h>h?hàhA}rB��(hC]hD]hE]hF]hI]uhKMhLhhM]rC��(hXX���A rD��ÖÅrE��}rF��(h5X���A h6j@��ubcdocutils.nodes
emphasis
rG��)ÅrH��}rI��(h5X���*data package*hA}rJ��(hC]hD]hE]hF]hI]uh6j@��hM]rK��hXX���data packagerL��ÖÅrM��}rN��(h5U�h6jH��ubah?UemphasisrO��ubhXX¥�� will be represented in DataONE as a unique, additional class
of object with its own unique identifier different from the identifiers of its
components. Each of these data packages in DataONE will be represented by an
OAI-ORE Resource Map that contains an Aggregation indicating relationships
among the components of the package. The BagIt specification will be used to
optionally provide these components as a single serialized object.rP��ÖÅrQ��}rR��(h5X¥�� will be represented in DataONE as a unique, additional class
of object with its own unique identifier different from the identifiers of its
components. Each of these data packages in DataONE will be represented by an
OAI-ORE Resource Map that contains an Aggregation indicating relationships
among the components of the package. The BagIt specification will be used to
optionally provide these components as a single serialized object.h6j@��ubeubeubh7)ÅrS��}rT��(h5U�h6j5��h=h>h?h@hA}rU��(hC]hD]hE]hF]rV��j;��ahI]rW��hauhKM!hLhhM]rX��(hO)ÅrY��}rZ��(h5j@��h6jS��h=h>h?hShA}r[��(hF]hE]hC]hD]hI]hUj:��uhKM!hLhhM]r\��hXX���User storiesr]��ÖÅr^��}r_��(h5j@��h6jY��ubaubhn)År`��}ra��(h5U�h6jS��h=h>h?hqhA}rb��(Ubulletrc��X���*hF]hE]hC]hD]hI]uhKM#hLhhM]rd��(ht)Åre��}rf��(h5XÆ���A user agent can download a description of a data package that provides the
DataONE identifiers for all science metadata and data object components
associated by the package
h6j`��h=h>h?h†hA}rg��(hC]hD]hE]hF]hI]uhKNhLhhM]rh��hy)Åri��}rj��(h5X≠���A user agent can download a description of a data package that provides the
DataONE identifiers for all science metadata and data object components
associated by the packagerk��h6je��h=h>h?hàhA}rl��(hC]hD]hE]hF]hI]uhKM#hM]rm��hXX≠���A user agent can download a description of a data package that provides the
DataONE identifiers for all science metadata and data object components
associated by the packagern��ÖÅro��}rp��(h5jk��h6ji��ubaubaubht)Årq��}rr��(h5X��A user agent can download a serialized version of a data package that
includes the science metadata and either the data bytes or references to the
data bytes via DataONE identifiers directly in the serialized version of the
package, and the system metadata for each of these objects.
h6j`��h=h>h?h†hA}rs��(hC]hD]hE]hF]hI]uhKNhLhhM]rt��hy)Åru��}rv��(h5X��A user agent can download a serialized version of a data package that
includes the science metadata and either the data bytes or references to the
data bytes via DataONE identifiers directly in the serialized version of the
package, and the system metadata for each of these objects.rw��h6jq��h=h>h?hàhA}rx��(hC]hD]hE]hF]hI]uhKM'hM]ry��hXX��A user agent can download a serialized version of a data package that
includes the science metadata and either the data bytes or references to the
data bytes via DataONE identifiers directly in the serialized version of the
package, and the system metadata for each of these objects.rz��ÖÅr{��}r|��(h5jw��h6ju��ubaubaubht)År}��}r~��(h5X√���The serialized form allows for the relationships between the various
components to be properly maintained (e.g., which system metadata documents
describe which data and science metadata objects)
h6j`��h=h>h?h†hA}r��(hC]hD]hE]hF]hI]uhKNhLhhM]rÄ��hy)ÅrÅ��}rÇ��(h5X¬���The serialized form allows for the relationships between the various
components to be properly maintained (e.g., which system metadata documents
describe which data and science metadata objects)rÉ��h6j}��h=h>h?hàhA}rÑ��(hC]hD]hE]hF]hI]uhKM,hM]rÖ��hXX¬���The serialized form allows for the relationships between the various
components to be properly maintained (e.g., which system metadata documents
describe which data and science metadata objects)rÜ��ÖÅrá��}rà��(h5jÉ��h6jÅ��ubaubaubht)Årâ��}rä��(h5X.��Data packages can be versioned, such that individual components of a package
can be replaced with new versions of those objects, new objects can be
added, existing objects can be removed, and the whole package is versioned
to differentiate it from earlier versions that contained different
components.
h6j`��h=h>h?h†hA}rã��(hC]hD]hE]hF]hI]uhKNhLhhM]rå��hy)Årç��}ré��(h5X-��Data packages can be versioned, such that individual components of a package
can be replaced with new versions of those objects, new objects can be
added, existing objects can be removed, and the whole package is versioned
to differentiate it from earlier versions that contained different
components.rè��h6jâ��h=h>h?hàhA}rê��(hC]hD]hE]hF]hI]uhKM0hM]rë��hXX-��Data packages can be versioned, such that individual components of a package
can be replaced with new versions of those objects, new objects can be
added, existing objects can be removed, and the whole package is versioned
to differentiate it from earlier versions that contained different
components.rí��ÖÅrì��}rî��(h5jè��h6jç��ubaubaubht)Årï��}rñ��(h5X`���A user agent can easily locate and inspect the science metadata associated
with any data object
h6j`��h=h>h?h†hA}ró��(hC]hD]hE]hF]hI]uhKNhLhhM]rò��hy)Årô��}rö��(h5X_���A user agent can easily locate and inspect the science metadata associated
with any data objectrõ��h6jï��h=h>h?hàhA}rú��(hC]hD]hE]hF]hI]uhKM6hM]rù��hXX_���A user agent can easily locate and inspect the science metadata associated
with any data objectrû��ÖÅrü��}r†��(h5jõ��h6jô��ubaubaubht)År°��}r¢��(h5Xf���A user agent can easily locate and access the data objects associated with a
science metadata object.
h6j`��h=h>h?h†hA}r£��(hC]hD]hE]hF]hI]uhKNhLhhM]r§��hy)År•��}r¶��(h5Xe���A user agent can easily locate and access the data objects associated with a
science metadata object.rß��h6j°��h=h>h?hàhA}r®��(hC]hD]hE]hF]hI]uhKM9hM]r©��hXXe���A user agent can easily locate and access the data objects associated with a
science metadata object.r™��ÖÅr´��}r¨��(h5jß��h6j•��ubaubaubht)År≠��}rÆ��(h5X»��Data object formats should be well-described in science metadata, ideally to
sufficient detail to allow software agents to parse and load the data and
science metadata objects for additional processing, querying, and
manipulation The data objects supported should minimally include:

 * Data Tables in CSV and other fixed and delimited text formats
 * NetCDF files
 * Raster images in various formats
 * Vector data in specific, community-accepted formats
h6j`��h=h>h?h†hA}rØ��(hC]hD]hE]hF]hI]uhKNhLhhM]r∞��(hy)År±��}r≤��(h5X��Data object formats should be well-described in science metadata, ideally to
sufficient detail to allow software agents to parse and load the data and
science metadata objects for additional processing, querying, and
manipulation The data objects supported should minimally include:r≥��h6j≠��h=h>h?hàhA}r¥��(hC]hD]hE]hF]hI]uhKM<hM]rµ��hXX��Data object formats should be well-described in science metadata, ideally to
sufficient detail to allow software agents to parse and load the data and
science metadata objects for additional processing, querying, and
manipulation The data objects supported should minimally include:r∂��ÖÅr∑��}r∏��(h5j≥��h6j±��ubaubcdocutils.nodes
block_quote
rπ��)År∫��}rª��(h5U�hA}rº��(hC]hD]hE]hF]hI]uh6j≠��hM]rΩ��hn)Åræ��}rø��(h5U�hA}r¿��(jc��X���*hF]hE]hC]hD]hI]uh6j∫��hM]r¡��(ht)År¬��}r√��(h5X=���Data Tables in CSV and other fixed and delimited text formatsrƒ��hA}r≈��(hC]hD]hE]hF]hI]uh6jæ��hM]r∆��hy)År«��}r»��(h5jƒ��h6j¬��h=h>h?hàhA}r…��(hC]hD]hE]hF]hI]uhKMAhM]r ��hXX=���Data Tables in CSV and other fixed and delimited text formatsrÀ��ÖÅrÃ��}rÕ��(h5jƒ��h6j«��ubaubah?h†ubht)ÅrŒ��}rœ��(h5X���NetCDF filesr–��hA}r—��(hC]hD]hE]hF]hI]uh6jæ��hM]r“��hy)År”��}r‘��(h5j–��h6jŒ��h=h>h?hàhA}r’��(hC]hD]hE]hF]hI]uhKMBhM]r÷��hXX���NetCDF filesr◊��ÖÅrÿ��}rŸ��(h5j–��h6j”��ubaubah?h†ubht)År⁄��}r€��(h5X ���Raster images in various formatsr‹��hA}r›��(hC]hD]hE]hF]hI]uh6jæ��hM]rfi��hy)Årfl��}r‡��(h5j‹��h6j⁄��h=h>h?hàhA}r·��(hC]hD]hE]hF]hI]uhKMChM]r‚��hXX ���Raster images in various formatsr„��ÖÅr‰��}rÂ��(h5j‹��h6jfl��ubaubah?h†ubht)ÅrÊ��}rÁ��(h5X4���Vector data in specific, community-accepted formats
hA}rË��(hC]hD]hE]hF]hI]uh6jæ��hM]rÈ��hy)ÅrÍ��}rÎ��(h5X3���Vector data in specific, community-accepted formatsrÏ��h6jÊ��h=h>h?hàhA}rÌ��(hC]hD]hE]hF]hI]uhKMDhM]rÓ��hXX3���Vector data in specific, community-accepted formatsrÔ��ÖÅr��}rÒ��(h5jÏ��h6jÍ��ubaubah?h†ubeh?hqubah?Ublock_quoterÚ��ubeubht)ÅrÛ��}rÙ��(h5X¨���A scientist can load all of the supported data objects from a data package
found in a metadata search without directly knowing the identifiers for
individual data objects.
h6j`��h=h>h?h†hA}rı��(hC]hD]hE]hF]hI]uhKNhLhhM]rˆ��hy)År˜��}r¯��(h5X´���A scientist can load all of the supported data objects from a data package
found in a metadata search without directly knowing the identifiers for
individual data objects.r˘��h6jÛ��h=h>h?hàhA}r˙��(hC]hD]hE]hF]hI]uhKMFhM]r˚��hXX´���A scientist can load all of the supported data objects from a data package
found in a metadata search without directly knowing the identifiers for
individual data objects.r¸��ÖÅr˝��}r˛��(h5j˘��h6j˜��ubaubaubht)Årˇ��}r���(h5X≥���A scientist can upload a new data object and associated science metadata in
order to create a new data package, or to extend or create a new version of
an existing data package


h6j`��h=h>h?h†hA}r��(hC]hD]hE]hF]hI]uhKNhLhhM]r��hy)År��}r��(h5X∞���A scientist can upload a new data object and associated science metadata in
order to create a new data package, or to extend or create a new version of
an existing data packager��h6jˇ��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMJhM]r��hXX∞���A scientist can upload a new data object and associated science metadata in
order to create a new data package, or to extend or create a new version of
an existing data packager��ÖÅr	��}r
��(h5j��h6j��ubaubaubeubeubh7)År��}r��(h5U�h6j5��h=h>h?h@hA}r
��(hC]hD]hE]hF]r��jN��ahI]r��h$auhKMQhLhhM]r��(hO)År��}r��(h5jS��h6j��h=h>h?hShA}r��(hF]hE]hC]hD]hI]hUjM��uhKMQhLhhM]r��hXX*���Package Content Associations Using OAI-OREr��ÖÅr��}r��(h5jS��h6j��ubaubhy)År��}r��(h5Xn��The Open Archives Initiative's Object Reuse and Exchange (OAI-ORE)
[Lagoze-2008]_ "defines standards for the description and exchange of
aggregations of Web resources". OAI-ORE provides a mechanism for describing
aggregations of distinct resources on the web by using their respective URIs
to provide linkages in an RDF model. Each Aggregation is given its own
distinct identifying URI, and ORE recommends the use of `Cool URIs`_ for the
Semantic Web [Sauermann_Cyganiak-2008]_ as a mechanism to redirect from the
Aggregation URI to a specific representation of the Aggregation, called a
Resource Map, that can be represented in one of several different
serializations such as RDF/XML, turtle, and Atom XML. Because relationships
among resources are provided using RDF predicates, there is tremendous
flexibility in the type of relationships that can be defined. ORE provides
specific predicates that define relationship types between the Aggregation and
a Resource Map ('ore:describes') and between the Aggregation and the Resources
that it aggregates ('ore:aggregates'). These concepts relate closely to
similar concepts in DataONE.h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMShLhhM]r��(hXXC���The Open Archives Initiative's Object Reuse and Exchange (OAI-ORE)
r��ÖÅr��}r��(h5XC���The Open Archives Initiative's Object Reuse and Exchange (OAI-ORE)
h6j��ubj.��)År��}r ��(h5X���Lagoze-2008r!��h6j��h=h>h?j2��hA}r"��(UreftypeUcitationr#��UrefwarnàU	reftargetj!��U	refdomainUstdr$��hF]r%��Uid1r&��ahE]hC]hD]hI]uhKMShLhhM]r'��hXX
���[Lagoze-2008]r(��ÖÅr)��}r*��(h5U�h6j��ubaubhXXP�� "defines standards for the description and exchange of
aggregations of Web resources". OAI-ORE provides a mechanism for describing
aggregations of distinct resources on the web by using their respective URIs
to provide linkages in an RDF model. Each Aggregation is given its own
distinct identifying URI, and ORE recommends the use of r+��ÖÅr,��}r-��(h5XP�� "defines standards for the description and exchange of
aggregations of Web resources". OAI-ORE provides a mechanism for describing
aggregations of distinct resources on the web by using their respective URIs
to provide linkages in an RDF model. Each Aggregation is given its own
distinct identifying URI, and ORE recommends the use of h6j��ubh~)År.��}r/��(h5X���`Cool URIs`_jà��Kh6j��h?háhA}r0��(UnameX	���Cool URIsjä��X���http://www.w3.org/TR/cooluris/r1��hF]hE]hC]hD]hI]uhM]r2��hXX	���Cool URIsr3��ÖÅr4��}r5��(h5U�h6j.��ubaubhXX��� for the
Semantic Web r6��ÖÅr7��}r8��(h5X��� for the
Semantic Web h6j��ubj.��)År9��}r:��(h5X���Sauermann_Cyganiak-2008r;��h6j��h=h>h?j2��hA}r<��(Ureftypej#��UrefwarnàU	reftargetj;��U	refdomainj$��hF]r=��Uid2r>��ahE]hC]hD]hI]uhKMShLhhM]r?��hXX���[Sauermann_Cyganiak-2008]r@��ÖÅrA��}rB��(h5U�h6j9��ubaubhXXë�� as a mechanism to redirect from the
Aggregation URI to a specific representation of the Aggregation, called a
Resource Map, that can be represented in one of several different
serializations such as RDF/XML, turtle, and Atom XML. Because relationships
among resources are provided using RDF predicates, there is tremendous
flexibility in the type of relationships that can be defined. ORE provides
specific predicates that define relationship types between the Aggregation and
a Resource Map ('ore:describes') and between the Aggregation and the Resources
that it aggregates ('ore:aggregates'). These concepts relate closely to
similar concepts in DataONE.rC��ÖÅrD��}rE��(h5Xë�� as a mechanism to redirect from the
Aggregation URI to a specific representation of the Aggregation, called a
Resource Map, that can be represented in one of several different
serializations such as RDF/XML, turtle, and Atom XML. Because relationships
among resources are provided using RDF predicates, there is tremendous
flexibility in the type of relationships that can be defined. ORE provides
specific predicates that define relationship types between the Aggregation and
a Resource Map ('ore:describes') and between the Aggregation and the Resources
that it aggregates ('ore:aggregates'). These concepts relate closely to
similar concepts in DataONE.h6j��ubeubcdocutils.nodes
definition_list
rF��)ÅrG��}rH��(h5U�h6j��h=Nh?Udefinition_listrI��hA}rJ��(hC]hD]hE]hF]hI]uhKNhLhhM]rK��cdocutils.nodes
definition_list_item
rL��)ÅrM��}rN��(h5X≠���Beneficial features
* Uses traditional web URIs as global identifiers
* Compatible with the Linked Data philosophy
* Supports arbitrary graphs of resources and aggregations
h6jG��h=h>h?Udefinition_list_itemrO��hA}rP��(hC]hD]hE]hF]hI]uhKMghM]rQ��(cdocutils.nodes
term
rR��)ÅrS��}rT��(h5X���Beneficial featuresrU��h6jM��h=h>h?UtermrV��hA}rW��(hC]hD]hE]hF]hI]uhKMghM]rX��hXX���Beneficial featuresrY��ÖÅrZ��}r[��(h5jU��h6jS��ubaubcdocutils.nodes
definition
r\��)År]��}r^��(h5U�hA}r_��(hC]hD]hE]hF]hI]uh6jM��hM]r`��hn)Åra��}rb��(h5U�hA}rc��(jc��X���*hF]hE]hC]hD]hI]uh6j]��hM]rd��(ht)Åre��}rf��(h5X/���Uses traditional web URIs as global identifiersrg��hA}rh��(hC]hD]hE]hF]hI]uh6ja��hM]ri��hy)Årj��}rk��(h5jg��h6je��h=h>h?hàhA}rl��(hC]hD]hE]hF]hI]uhKMehM]rm��hXX/���Uses traditional web URIs as global identifiersrn��ÖÅro��}rp��(h5jg��h6jj��ubaubah?h†ubht)Årq��}rr��(h5X*���Compatible with the Linked Data philosophyrs��hA}rt��(hC]hD]hE]hF]hI]uh6ja��hM]ru��hy)Årv��}rw��(h5js��h6jq��h=h>h?hàhA}rx��(hC]hD]hE]hF]hI]uhKMfhM]ry��hXX*���Compatible with the Linked Data philosophyrz��ÖÅr{��}r|��(h5js��h6jv��ubaubah?h†ubht)År}��}r~��(h5X8���Supports arbitrary graphs of resources and aggregations
hA}r��(hC]hD]hE]hF]hI]uh6ja��hM]rÄ��hy)ÅrÅ��}rÇ��(h5X7���Supports arbitrary graphs of resources and aggregationsrÉ��h6j}��h=h>h?hàhA}rÑ��(hC]hD]hE]hF]hI]uhKMghM]rÖ��hXX7���Supports arbitrary graphs of resources and aggregationsrÜ��ÖÅrá��}rà��(h5jÉ��h6jÅ��ubaubah?h†ubeh?hqubah?U
definitionrâ��ubeubaubeubh7)Årä��}rã��(h5U�h6j5��h=h>h?h@hA}rå��(hC]hD]hE]hF]rç��ja��ahI]ré��h'auhKMjhLhhM]rè��(hO)Årê��}rë��(h5jf��h6jä��h=h>h?hShA}rí��(hF]hE]hC]hD]hI]hUj`��uhKMjhLhhM]rì��hXX���Issues and Resolutionrî��ÖÅrï��}rñ��(h5jf��h6jê��ubaubjF��)Åró��}rò��(h5U�h6jä��h=Nh?jI��hA}rô��(hC]hD]hE]hF]hI]uhKNhLhhM]rö��(jL��)Årõ��}rú��(h5Xô���Issues
* Does not provide a direct serialization of the Aggregation with the bytes
  inline
* No data model for internal structure of enclosed resources
h6jó��h=h>h?jO��hA}rù��(hC]hD]hE]hF]hI]uhKMohM]rû��(jR��)Årü��}r†��(h5X���Issuesr°��h6jõ��h=h>h?jV��hA}r¢��(hC]hD]hE]hF]hI]uhKMohM]r£��hXX���Issuesr§��ÖÅr•��}r¶��(h5j°��h6jü��ubaubj\��)Årß��}r®��(h5U�hA}r©��(hC]hD]hE]hF]hI]uh6jõ��hM]r™��hn)År´��}r¨��(h5U�hA}r≠��(jc��X���*hF]hE]hC]hD]hI]uh6jß��hM]rÆ��(ht)ÅrØ��}r∞��(h5XP���Does not provide a direct serialization of the Aggregation with the bytes
inlinehA}r±��(hC]hD]hE]hF]hI]uh6j´��hM]r≤��hy)År≥��}r¥��(h5XP���Does not provide a direct serialization of the Aggregation with the bytes
inlinerµ��h6jØ��h=h>h?hàhA}r∂��(hC]hD]hE]hF]hI]uhKMmhM]r∑��hXXP���Does not provide a direct serialization of the Aggregation with the bytes
inliner∏��ÖÅrπ��}r∫��(h5jµ��h6j≥��ubaubah?h†ubht)Årª��}rº��(h5X;���No data model for internal structure of enclosed resources
hA}rΩ��(hC]hD]hE]hF]hI]uh6j´��hM]ræ��hy)Årø��}r¿��(h5X:���No data model for internal structure of enclosed resourcesr¡��h6jª��h=h>h?hàhA}r¬��(hC]hD]hE]hF]hI]uhKMohM]r√��hXX:���No data model for internal structure of enclosed resourcesrƒ��ÖÅr≈��}r∆��(h5j¡��h6jø��ubaubah?h†ubeh?hqubah?jâ��ubeubjL��)År«��}r»��(h5XJ��Questions
* Do URIs really have to be used, or can other resource identifiers such as
  DOIs be used?
* Is there a more elegant way to link the Aggregation to a Resource Map than
  using the `Cool URIs`_ approach of redirection, especially when multiple
  physical copies of a Resource might exist at multiple physical locations?
h6jó��h=h>h?jO��hA}r…��(hC]hD]hE]hF]hI]uhKMvhLhhM]r ��(jR��)ÅrÀ��}rÃ��(h5X	���QuestionsrÕ��h6j«��h=h>h?jV��hA}rŒ��(hC]hD]hE]hF]hI]uhKMvhM]rœ��hXX	���Questionsr–��ÖÅr—��}r“��(h5jÕ��h6jÀ��ubaubj\��)År”��}r‘��(h5U�hA}r’��(hC]hD]hE]hF]hI]uh6j«��hM]r÷��hn)År◊��}rÿ��(h5U�hA}rŸ��(jc��X���*hF]hE]hC]hD]hI]uh6j”��hM]r⁄��(ht)År€��}r‹��(h5XW���Do URIs really have to be used, or can other resource identifiers such as
DOIs be used?hA}r›��(hC]hD]hE]hF]hI]uh6j◊��hM]rfi��hy)Årfl��}r‡��(h5XW���Do URIs really have to be used, or can other resource identifiers such as
DOIs be used?r·��h6j€��h=h>h?hàhA}r‚��(hC]hD]hE]hF]hI]uhKMrhM]r„��hXXW���Do URIs really have to be used, or can other resource identifiers such as
DOIs be used?r‰��ÖÅrÂ��}rÊ��(h5j·��h6jfl��ubaubah?h†ubht)ÅrÁ��}rË��(h5Xfi���Is there a more elegant way to link the Aggregation to a Resource Map than
using the `Cool URIs`_ approach of redirection, especially when multiple
physical copies of a Resource might exist at multiple physical locations?
hA}rÈ��(hC]hD]hE]hF]hI]uh6j◊��hM]rÍ��hy)ÅrÎ��}rÏ��(h5X›���Is there a more elegant way to link the Aggregation to a Resource Map than
using the `Cool URIs`_ approach of redirection, especially when multiple
physical copies of a Resource might exist at multiple physical locations?h6jÁ��h=h>h?hàhA}rÌ��(hC]hD]hE]hF]hI]uhKMthM]rÓ��(hXXU���Is there a more elegant way to link the Aggregation to a Resource Map than
using the rÔ��ÖÅr��}rÒ��(h5XU���Is there a more elegant way to link the Aggregation to a Resource Map than
using the h6jÎ��ubh~)ÅrÚ��}rÛ��(h5X���`Cool URIs`_jà��Kh6jÎ��h?háhA}rÙ��(UnameX	���Cool URIsjä��j1��hF]hE]hC]hD]hI]uhM]rı��hXX	���Cool URIsrˆ��ÖÅr˜��}r¯��(h5U�h6jÚ��ubaubhXX|��� approach of redirection, especially when multiple
physical copies of a Resource might exist at multiple physical locations?r˘��ÖÅr˙��}r˚��(h5X|��� approach of redirection, especially when multiple
physical copies of a Resource might exist at multiple physical locations?h6jÎ��ubeubah?h†ubeh?hqubah?jâ��ubeubeubcdocutils.nodes
figure
r¸��)År˝��}r˛��(h5U�h6jä��h=h>h?Ufigurerˇ��hA}r���(hC]hD]hE]hF]r��Uid7r��ahI]uhKMzhLhhM]r��(j·��)År��}r��(h5XÜ���.. figure:: http://www.openarchives.org/ore/1.0/datamodel-images/ore_uml.png

   **Figure 1.** General model for an OAI-ORE document.
h6j˝��h=h>h?j‰��hA}r��(UuriX@���http://www.openarchives.org/ore/1.0/datamodel-images/ore_uml.pngr��hF]hE]hC]hD]jÁ��}r��U?j��shI]uhKMzhM]ubcdocutils.nodes
caption
r	��)År
��}r��(h5X4���**Figure 1.** General model for an OAI-ORE document.h6j˝��h=h>h?Ucaptionr��hA}r
��(hC]hD]hE]hF]hI]uhKMzhM]r��(cdocutils.nodes
strong
r��)År��}r��(h5X
���**Figure 1.**hA}r��(hC]hD]hE]hF]hI]uh6j
��hM]r��hXX	���Figure 1.r��ÖÅr��}r��(h5U�h6j��ubah?Ustrongr��ubhXX'��� General model for an OAI-ORE document.r��ÖÅr��}r��(h5X'��� General model for an OAI-ORE document.h6j
��ubeubeubj¸��)År��}r��(h5U�h6jä��h=h>h?jˇ��hA}r��(hC]hD]hE]hF]r��Uid8r��ahI]uhKM~hLhhM]r ��(j·��)År!��}r"��(h5X—��.. figure:: images/package_eg_1.png

   **Figure 2.** Simple OAI-ORE representation of a data package with single
   science metadata (*scimeta_id*) and data(*scidata_id*) objects. There are
   two issues that need to be resolved for DataONE: a) how to assert that the
   aggregated object *scidata_id* is described by the metadata *scimeta_id*;
   and b) identifiers in OAI-ORE *must* be "protocol-based URIs", which is
   more restrictive that DataONE requires.

h6j��h=h>h?j‰��hA}r#��(UuriX���design/images/package_eg_1.pngr$��hF]hE]hC]hD]jÁ��}r%��U*j$��shI]uhKM~hM]ubj	��)År&��}r'��(h5Xò��**Figure 2.** Simple OAI-ORE representation of a data package with single
science metadata (*scimeta_id*) and data(*scidata_id*) objects. There are
two issues that need to be resolved for DataONE: a) how to assert that the
aggregated object *scidata_id* is described by the metadata *scimeta_id*;
and b) identifiers in OAI-ORE *must* be "protocol-based URIs", which is
more restrictive that DataONE requires.h6j��h=h>h?j��hA}r(��(hC]hD]hE]hF]hI]uhKM~hM]r)��(j��)År*��}r+��(h5X
���**Figure 2.**hA}r,��(hC]hD]hE]hF]hI]uh6j&��hM]r-��hXX	���Figure 2.r.��ÖÅr/��}r0��(h5U�h6j*��ubah?j��ubhXXO��� Simple OAI-ORE representation of a data package with single
science metadata (r1��ÖÅr2��}r3��(h5XO��� Simple OAI-ORE representation of a data package with single
science metadata (h6j&��ubjG��)År4��}r5��(h5X���*scimeta_id*hA}r6��(hC]hD]hE]hF]hI]uh6j&��hM]r7��hXX
���scimeta_idr8��ÖÅr9��}r:��(h5U�h6j4��ubah?jO��ubhXX���) and data(r;��ÖÅr<��}r=��(h5X���) and data(h6j&��ubjG��)År>��}r?��(h5X���*scidata_id*hA}r@��(hC]hD]hE]hF]hI]uh6j&��hM]rA��hXX
���scidata_idrB��ÖÅrC��}rD��(h5U�h6j>��ubah?jO��ubhXXr���) objects. There are
two issues that need to be resolved for DataONE: a) how to assert that the
aggregated object rE��ÖÅrF��}rG��(h5Xr���) objects. There are
two issues that need to be resolved for DataONE: a) how to assert that the
aggregated object h6j&��ubjG��)ÅrH��}rI��(h5X���*scidata_id*hA}rJ��(hC]hD]hE]hF]hI]uh6j&��hM]rK��hXX
���scidata_idrL��ÖÅrM��}rN��(h5U�h6jH��ubah?jO��ubhXX��� is described by the metadata rO��ÖÅrP��}rQ��(h5X��� is described by the metadata h6j&��ubjG��)ÅrR��}rS��(h5X���*scimeta_id*hA}rT��(hC]hD]hE]hF]hI]uh6j&��hM]rU��hXX
���scimeta_idrV��ÖÅrW��}rX��(h5U�h6jR��ubah?jO��ubhXX ���;
and b) identifiers in OAI-ORE rY��ÖÅrZ��}r[��(h5X ���;
and b) identifiers in OAI-ORE h6j&��ubjG��)År\��}r]��(h5X���*must*hA}r^��(hC]hD]hE]hF]hI]uh6j&��hM]r_��hXX���mustr`��ÖÅra��}rb��(h5U�h6j\��ubah?jO��ubhXXK��� be "protocol-based URIs", which is
more restrictive that DataONE requires.rc��ÖÅrd��}re��(h5XK��� be "protocol-based URIs", which is
more restrictive that DataONE requires.h6j&��ubeubeubhy)Årf��}rg��(h5X
���**Issue:**rh��h6jä��h=h>h?hàhA}ri��(hC]hD]hE]hF]hI]uhKMÜhLhhM]rj��j��)Årk��}rl��(h5jh��hA}rm��(hC]hD]hE]hF]hI]uh6jf��hM]rn��hXX���Issue:ro��ÖÅrp��}rq��(h5U�h6jk��ubah?j��ubaubhy)Årr��}rs��(h5Xë���There are no predicates in ORE that can be used to indicate that the
aggregated object *scimeta_id* describes the data indicated by *scidata_id*.h6jä��h=h>h?hàhA}rt��(hC]hD]hE]hF]hI]uhKMàhLhhM]ru��(hXXW���There are no predicates in ORE that can be used to indicate that the
aggregated object rv��ÖÅrw��}rx��(h5XW���There are no predicates in ORE that can be used to indicate that the
aggregated object h6jr��ubjG��)Åry��}rz��(h5X���*scimeta_id*hA}r{��(hC]hD]hE]hF]hI]uh6jr��hM]r|��hXX
���scimeta_idr}��ÖÅr~��}r��(h5U�h6jy��ubah?jO��ubhXX!��� describes the data indicated by rÄ��ÖÅrÅ��}rÇ��(h5X!��� describes the data indicated by h6jr��ubjG��)ÅrÉ��}rÑ��(h5X���*scidata_id*hA}rÖ��(hC]hD]hE]hF]hI]uh6jr��hM]rÜ��hXX
���scidata_idrá��ÖÅrà��}râ��(h5U�h6jÉ��ubah?jO��ubhXX���.ÖÅrä��}rã��(h5X���.h6jr��ubeubhy)Årå��}rç��(h5X���**Options:**ré��h6jä��h=h>h?hàhA}rè��(hC]hD]hE]hF]hI]uhKMãhLhhM]rê��j��)Årë��}rí��(h5jé��hA}rì��(hC]hD]hE]hF]hI]uh6jå��hM]rî��hXX���Options:rï��ÖÅrñ��}ró��(h5U�h6jë��ubah?j��ubaubjc��)Årò��}rô��(h5U�h6jä��h=h>h?jf��hA}rö��(jh��U.hF]hE]hC]ji��U�hD]hI]jj��jk��uhKMçhLhhM]rõ��(ht)Årú��}rù��(h5XÈ��References between *scimeta_id* and *scidata_id* can be supported through
non-ORE RDF elements. Reuse of existing terms should be emphasized.

For example, the DCMI Type Vocabulary defines a *Dataset* type that could be
used to indicate that *scidata_id* refers to a data object by attaching the
Dublin Core Terms Type predicate to the ORE aggregated object. Other
possibilities from dcterms include `references`_ and `isReferencedBy`_,
`requires`_ and `isRequiredBy`_, and `relation`_.

In the document Mapping DataCite Metadata Scheme Terms (v2.0) to ontologies
(DataCite2RDF_), Shotton and Peroni provide a mapping between concepts
described in the DataCite schema and existing ontologies with the general
goal of expressing DataCite in RDF. The recommendation provided therein is to
use terms drawn from the Citation Typing Ontology (CiTO_) and others. The
semantics of the CiTO terms *documents* and *isDocumentedBy* match nicely
with the relationships between data and science metadata objects.
h6jò��h=h>h?h†hA}rû��(hC]hD]hE]hF]hI]uhKNhLhhM]rü��(hy)År†��}r°��(h5Xç���References between *scimeta_id* and *scidata_id* can be supported through
non-ORE RDF elements. Reuse of existing terms should be emphasized.h6jú��h=h>h?hàhA}r¢��(hC]hD]hE]hF]hI]uhKMçhM]r£��(hXX���References between r§��ÖÅr•��}r¶��(h5X���References between h6j†��ubjG��)Årß��}r®��(h5X���*scimeta_id*hA}r©��(hC]hD]hE]hF]hI]uh6j†��hM]r™��hXX
���scimeta_idr´��ÖÅr¨��}r≠��(h5U�h6jß��ubah?jO��ubhXX��� and rÆ��ÖÅrØ��}r∞��(h5X��� and h6j†��ubjG��)År±��}r≤��(h5X���*scidata_id*hA}r≥��(hC]hD]hE]hF]hI]uh6j†��hM]r¥��hXX
���scidata_idrµ��ÖÅr∂��}r∑��(h5U�h6j±��ubah?jO��ubhXX]��� can be supported through
non-ORE RDF elements. Reuse of existing terms should be emphasized.r∏��ÖÅrπ��}r∫��(h5X]��� can be supported through
non-ORE RDF elements. Reuse of existing terms should be emphasized.h6j†��ubeubhy)Årª��}rº��(h5XW��For example, the DCMI Type Vocabulary defines a *Dataset* type that could be
used to indicate that *scidata_id* refers to a data object by attaching the
Dublin Core Terms Type predicate to the ORE aggregated object. Other
possibilities from dcterms include `references`_ and `isReferencedBy`_,
`requires`_ and `isRequiredBy`_, and `relation`_.h6jú��h=h>h?hàhA}rΩ��(hC]hD]hE]hF]hI]uhKMêhM]ræ��(hXX0���For example, the DCMI Type Vocabulary defines a rø��ÖÅr¿��}r¡��(h5X0���For example, the DCMI Type Vocabulary defines a h6jª��ubjG��)År¬��}r√��(h5X	���*Dataset*hA}rƒ��(hC]hD]hE]hF]hI]uh6jª��hM]r≈��hXX���Datasetr∆��ÖÅr«��}r»��(h5U�h6j¬��ubah?jO��ubhXX*��� type that could be
used to indicate that r…��ÖÅr ��}rÀ��(h5X*��� type that could be
used to indicate that h6jª��ubjG��)ÅrÃ��}rÕ��(h5X���*scidata_id*hA}rŒ��(hC]hD]hE]hF]hI]uh6jª��hM]rœ��hXX
���scidata_idr–��ÖÅr—��}r“��(h5U�h6jÃ��ubah?jO��ubhXXí��� refers to a data object by attaching the
Dublin Core Terms Type predicate to the ORE aggregated object. Other
possibilities from dcterms include r”��ÖÅr‘��}r’��(h5Xí��� refers to a data object by attaching the
Dublin Core Terms Type predicate to the ORE aggregated object. Other
possibilities from dcterms include h6jª��ubh~)År÷��}r◊��(h5X
���`references`_jà��Kh6jª��h?háhA}rÿ��(UnameX
���referencesrŸ��jä��X<���http://dublincore.org/documents/dcmi-terms/#terms-referencesr⁄��hF]hE]hC]hD]hI]uhM]r€��hXX
���referencesr‹��ÖÅr›��}rfi��(h5U�h6j÷��ubaubhXX��� and rfl��ÖÅr‡��}r·��(h5X��� and h6jª��ubh~)År‚��}r„��(h5X���`isReferencedBy`_jà��Kh6jª��h?háhA}r‰��(UnameX���isReferencedByjä��X@���http://dublincore.org/documents/dcmi-terms/#terms-isReferencedByrÂ��hF]hE]hC]hD]hI]uhM]rÊ��hXX���isReferencedByrÁ��ÖÅrË��}rÈ��(h5U�h6j‚��ubaubhXX���,
rÍ��ÖÅrÎ��}rÏ��(h5X���,
h6jª��ubh~)ÅrÌ��}rÓ��(h5X���`requires`_jà��Kh6jª��h?háhA}rÔ��(UnameX���requiresr��jä��X:���http://dublincore.org/documents/dcmi-terms/#terms-requiresrÒ��hF]hE]hC]hD]hI]uhM]rÚ��hXX���requiresrÛ��ÖÅrÙ��}rı��(h5U�h6jÌ��ubaubhXX��� and rˆ��ÖÅr˜��}r¯��(h5X��� and h6jª��ubh~)År˘��}r˙��(h5X���`isRequiredBy`_jà��Kh6jª��h?háhA}r˚��(UnameX���isRequiredByjä��X>���http://dublincore.org/documents/dcmi-terms/#terms-isRequiredByr¸��hF]hE]hC]hD]hI]uhM]r˝��hXX���isRequiredByr˛��ÖÅrˇ��}r�	��(h5U�h6j˘��ubaubhXX���, and r	��ÖÅr	��}r	��(h5X���, and h6jª��ubh~)År	��}r	��(h5X���`relation`_jà��Kh6jª��h?háhA}r	��(UnameX���relationr	��jä��X:���http://dublincore.org/documents/dcmi-terms/#terms-relationr	��hF]hE]hC]hD]hI]uhM]r		��hXX���relationr
	��ÖÅr	��}r	��(h5U�h6j	��ubaubhXX���.ÖÅr
	��}r	��(h5X���.h6jª��ubeubhy)År	��}r	��(h5X���In the document Mapping DataCite Metadata Scheme Terms (v2.0) to ontologies
(DataCite2RDF_), Shotton and Peroni provide a mapping between concepts
described in the DataCite schema and existing ontologies with the general
goal of expressing DataCite in RDF. The recommendation provided therein is to
use terms drawn from the Citation Typing Ontology (CiTO_) and others. The
semantics of the CiTO terms *documents* and *isDocumentedBy* match nicely
with the relationships between data and science metadata objects.h6jú��h=h>h?hàhA}r	��(hC]hD]hE]hF]hI]uhKMñhM]r	��(hXXM���In the document Mapping DataCite Metadata Scheme Terms (v2.0) to ontologies
(r	��ÖÅr	��}r	��(h5XM���In the document Mapping DataCite Metadata Scheme Terms (v2.0) to ontologies
(h6j	��ubh~)År	��}r	��(h5X
���DataCite2RDF_jà��Kh6j	��h?háhA}r	��(UnameX���DataCite2RDFjä��Xn���https://docs.google.com/document/d/1paJgvmCMu3pbM4in6PjWAKO0gP-6ultii3DWQslygq4/edit?authkey=CMeV3tgF&hl=en_GBr	��hF]hE]hC]hD]hI]uhM]r	��hXX���DataCite2RDFr	��ÖÅr	��}r	��(h5U�h6j	��ubaubhXX��), Shotton and Peroni provide a mapping between concepts
described in the DataCite schema and existing ontologies with the general
goal of expressing DataCite in RDF. The recommendation provided therein is to
use terms drawn from the Citation Typing Ontology (r	��ÖÅr	��}r 	��(h5X��), Shotton and Peroni provide a mapping between concepts
described in the DataCite schema and existing ontologies with the general
goal of expressing DataCite in RDF. The recommendation provided therein is to
use terms drawn from the Citation Typing Ontology (h6j	��ubh~)År!	��}r"	��(h5X���CiTO_jà��Kh6j	��h?háhA}r#	��(UnameX���CiTOjä��X���http://purl.org/spar/cito/r$	��hF]hE]hC]hD]hI]uhM]r%	��hXX���CiTOr&	��ÖÅr'	��}r(	��(h5U�h6j!	��ubaubhXX.���) and others. The
semantics of the CiTO terms r)	��ÖÅr*	��}r+	��(h5X.���) and others. The
semantics of the CiTO terms h6j	��ubjG��)År,	��}r-	��(h5X���*documents*hA}r.	��(hC]hD]hE]hF]hI]uh6j	��hM]r/	��hXX	���documentsr0	��ÖÅr1	��}r2	��(h5U�h6j,	��ubah?jO��ubhXX��� and r3	��ÖÅr4	��}r5	��(h5X��� and h6j	��ubjG��)År6	��}r7	��(h5X���*isDocumentedBy*hA}r8	��(hC]hD]hE]hF]hI]uh6j	��hM]r9	��hXX���isDocumentedByr:	��ÖÅr;	��}r<	��(h5U�h6j6	��ubah?jO��ubhXXO��� match nicely
with the relationships between data and science metadata objects.r=	��ÖÅr>	��}r?	��(h5XO��� match nicely
with the relationships between data and science metadata objects.h6j	��ubeubeubht)År@	��}rA	��(h5X\��That a science metadata object actually describes one or more data objects
can be inferred simply from its presence in a resource map aggregation.
Detection of science metadata vs. data would be highly dependent on the
object format for the object as expressed in it's system metadata. This could
be augmented by adding the `format`_ predicate from dcterms, with the object
being the corresponding entry in the object format registry. However, this
approach will not indicate which data objects are described by which metadata
documents in the case where multiple metadata documents exist in a package.

h6jò��h=h>h?h†hA}rB	��(hC]hD]hE]hF]hI]uhKNhLhhM]rC	��hy)ÅrD	��}rE	��(h5XZ��That a science metadata object actually describes one or more data objects
can be inferred simply from its presence in a resource map aggregation.
Detection of science metadata vs. data would be highly dependent on the
object format for the object as expressed in it's system metadata. This could
be augmented by adding the `format`_ predicate from dcterms, with the object
being the corresponding entry in the object format registry. However, this
approach will not indicate which data objects are described by which metadata
documents in the case where multiple metadata documents exist in a package.h6j@	��h=h>h?hàhA}rF	��(hC]hD]hE]hF]hI]uhKM†hM]rG	��(hXXD��That a science metadata object actually describes one or more data objects
can be inferred simply from its presence in a resource map aggregation.
Detection of science metadata vs. data would be highly dependent on the
object format for the object as expressed in it's system metadata. This could
be augmented by adding the rH	��ÖÅrI	��}rJ	��(h5XD��That a science metadata object actually describes one or more data objects
can be inferred simply from its presence in a resource map aggregation.
Detection of science metadata vs. data would be highly dependent on the
object format for the object as expressed in it's system metadata. This could
be augmented by adding the h6jD	��ubh~)ÅrK	��}rL	��(h5X	���`format`_jà��Kh6jD	��h?háhA}rM	��(UnameX���formatrN	��jä��X8���http://dublincore.org/documents/dcmi-terms/#terms-formatrO	��hF]hE]hC]hD]hI]uhM]rP	��hXX���formatrQ	��ÖÅrR	��}rS	��(h5U�h6jK	��ubaubhXX
�� predicate from dcterms, with the object
being the corresponding entry in the object format registry. However, this
approach will not indicate which data objects are described by which metadata
documents in the case where multiple metadata documents exist in a package.rT	��ÖÅrU	��}rV	��(h5X
�� predicate from dcterms, with the object
being the corresponding entry in the object format registry. However, this
approach will not indicate which data objects are described by which metadata
documents in the case where multiple metadata documents exist in a package.h6jD	��ubeubaubeubhy)ÅrW	��}rX	��(h5X���**Resolution:**rY	��h6jä��h=h>h?hàhA}rZ	��(hC]hD]hE]hF]hI]uhKM™hLhhM]r[	��j��)År\	��}r]	��(h5jY	��hA}r^	��(hC]hD]hE]hF]hI]uh6jW	��hM]r_	��hXX���Resolution:r`	��ÖÅra	��}rb	��(h5U�h6j\	��ubah?j��ubaubhy)Årc	��}rd	��(h5X1��Relationships between aggregated objects are indicated using terms drawn from
the CiTO_ ontology, with *cito:documents* attached to an aggregated science
metadata entry with the object of the triple being the URI of the relevant
aggregated data object, and the converse indicated by *cito:isDocumentedBy*.h6jä��h=h>h?hàhA}re	��(hC]hD]hE]hF]hI]uhKM¨hLhhM]rf	��(hXXR���Relationships between aggregated objects are indicated using terms drawn from
the rg	��ÖÅrh	��}ri	��(h5XR���Relationships between aggregated objects are indicated using terms drawn from
the h6jc	��ubh~)Årj	��}rk	��(h5X���CiTO_jà��Kh6jc	��h?háhA}rl	��(UnameX���CiTOjä��j$	��hF]hE]hC]hD]hI]uhM]rm	��hXX���CiTOrn	��ÖÅro	��}rp	��(h5U�h6jj	��ubaubhXX��� ontology, with rq	��ÖÅrr	��}rs	��(h5X��� ontology, with h6jc	��ubjG��)Årt	��}ru	��(h5X���*cito:documents*hA}rv	��(hC]hD]hE]hF]hI]uh6jc	��hM]rw	��hXX���cito:documentsrx	��ÖÅry	��}rz	��(h5U�h6jt	��ubah?jO��ubhXX§��� attached to an aggregated science
metadata entry with the object of the triple being the URI of the relevant
aggregated data object, and the converse indicated by r{	��ÖÅr|	��}r}	��(h5X§��� attached to an aggregated science
metadata entry with the object of the triple being the URI of the relevant
aggregated data object, and the converse indicated by h6jc	��ubjG��)År~	��}r	��(h5X���*cito:isDocumentedBy*hA}rÄ	��(hC]hD]hE]hF]hI]uh6jc	��hM]rÅ	��hXX���cito:isDocumentedByrÇ	��ÖÅrÉ	��}rÑ	��(h5U�h6j~	��ubah?jO��ubhXX���.ÖÅrÖ	��}rÜ	��(h5X���.h6jc	��ubeubhy)Årá	��}rà	��(h5X
���**Issue:**râ	��h6jä��h=h>h?hàhA}rä	��(hC]hD]hE]hF]hI]uhKM≤hLhhM]rã	��j��)Årå	��}rç	��(h5jâ	��hA}ré	��(hC]hD]hE]hF]hI]uh6já	��hM]rè	��hXX���Issue:rê	��ÖÅrë	��}rí	��(h5U�h6jå	��ubah?j��ubaubhy)Årì	��}rî	��(h5X◊���Identifiers in OAI-ORE documents must technically be "protocol-based URIs"
(http://www.openarchives.org/ore/1.0/datamodel#Aggregated_Resource), whereas
identifiers in DataONE can be essentially any non-blank string.h6jä��h=h>h?hàhA}rï	��(hC]hD]hE]hF]hI]uhKM¥hLhhM]rñ	��(hXXL���Identifiers in OAI-ORE documents must technically be "protocol-based URIs"
(ró	��ÖÅrò	��}rô	��(h5XL���Identifiers in OAI-ORE documents must technically be "protocol-based URIs"
(h6jì	��ubh~)Årö	��}rõ	��(h5XA���http://www.openarchives.org/ore/1.0/datamodel#Aggregated_Resourcerú	��hA}rù	��(Urefurijú	��hF]hE]hC]hD]hI]uh6jì	��hM]rû	��hXXA���http://www.openarchives.org/ore/1.0/datamodel#Aggregated_Resourcerü	��ÖÅr†	��}r°	��(h5U�h6jö	��ubah?háubhXXJ���), whereas
identifiers in DataONE can be essentially any non-blank string.r¢	��ÖÅr£	��}r§	��(h5XJ���), whereas
identifiers in DataONE can be essentially any non-blank string.h6jì	��ubeubhy)År•	��}r¶	��(h5X���**Options:**rß	��h6jä��h=h>h?hàhA}r®	��(hC]hD]hE]hF]hI]uhKM∏hLhhM]r©	��j��)År™	��}r´	��(h5jß	��hA}r¨	��(hC]hD]hE]hF]hI]uh6j•	��hM]r≠	��hXX���Options:rÆ	��ÖÅrØ	��}r∞	��(h5U�h6j™	��ubah?j��ubaubjc��)År±	��}r≤	��(h5U�h6jä��h=h>h?jf��hA}r≥	��(jh��U.hF]hE]hC]ji��U�hD]hI]jj��jk��uhKM∫hLhhM]r¥	��(ht)Årµ	��}r∂	��(h5X��Ignore the OAI-ORE requirement for URI identifiers. The identifiers will
still work fine in the DataONE context, but would not be friendly for anyone
accessing the ORE document without an appropriate DataONE client to resolve
and retrieve the referenced objects.
h6j±	��h=h>h?h†hA}r∑	��(hC]hD]hE]hF]hI]uhKNhLhhM]r∏	��hy)Årπ	��}r∫	��(h5X��Ignore the OAI-ORE requirement for URI identifiers. The identifiers will
still work fine in the DataONE context, but would not be friendly for anyone
accessing the ORE document without an appropriate DataONE client to resolve
and retrieve the referenced objects.rª	��h6jµ	��h=h>h?hàhA}rº	��(hC]hD]hE]hF]hI]uhKMºhM]rΩ	��hXX��Ignore the OAI-ORE requirement for URI identifiers. The identifiers will
still work fine in the DataONE context, but would not be friendly for anyone
accessing the ORE document without an appropriate DataONE client to resolve
and retrieve the referenced objects.ræ	��ÖÅrø	��}r¿	��(h5jª	��h6jπ	��ubaubaubht)År¡	��}r¬	��(h5X@��Wrap the identifiers with a DataONE REST service URL that retrieves the
object being referenced. So for example, if the DataONE identifier for the
object was *scimeta_id*, then the URI used in the ORE document to reference
the aggregated object would *http://cn.dataone.org/object/scimeta_id*. The
:func:`CN_read.get` operation would be modified to do a resolve, then a HTTP
302 redirect to the node that contains the content. This would also require
that the client libraries are updated to support redirection.

This option has the advantage of keeping the the ORE document functional for
non-DataONE users but has the disadvantage of obfuscating the object
identifiers. The later issue could be addressed by adding the dcterms
`identifier`_ property to the aggregated object with the object being the
actual DataONE identifier.

h6j±	��h=h>h?h†hA}r√	��(hC]hD]hE]hF]hI]uhKNhLhhM]rƒ	��(hy)År≈	��}r∆	��(h5X���Wrap the identifiers with a DataONE REST service URL that retrieves the
object being referenced. So for example, if the DataONE identifier for the
object was *scimeta_id*, then the URI used in the ORE document to reference
the aggregated object would *http://cn.dataone.org/object/scimeta_id*. The
:func:`CN_read.get` operation would be modified to do a resolve, then a HTTP
302 redirect to the node that contains the content. This would also require
that the client libraries are updated to support redirection.h6j¡	��h=h>h?hàhA}r«	��(hC]hD]hE]hF]hI]uhKM√hM]r»	��(hXXû���Wrap the identifiers with a DataONE REST service URL that retrieves the
object being referenced. So for example, if the DataONE identifier for the
object was r…	��ÖÅr 	��}rÀ	��(h5Xû���Wrap the identifiers with a DataONE REST service URL that retrieves the
object being referenced. So for example, if the DataONE identifier for the
object was h6j≈	��ubjG��)ÅrÃ	��}rÕ	��(h5X���*scimeta_id*hA}rŒ	��(hC]hD]hE]hF]hI]uh6j≈	��hM]rœ	��hXX
���scimeta_idr–	��ÖÅr—	��}r“	��(h5U�h6jÃ	��ubah?jO��ubhXXQ���, then the URI used in the ORE document to reference
the aggregated object would r”	��ÖÅr‘	��}r’	��(h5XQ���, then the URI used in the ORE document to reference
the aggregated object would h6j≈	��ubjG��)År÷	��}r◊	��(h5X)���*http://cn.dataone.org/object/scimeta_id*hA}rÿ	��(hC]hD]hE]hF]hI]uh6j≈	��hM]rŸ	��hXX'���http://cn.dataone.org/object/scimeta_idr⁄	��ÖÅr€	��}r‹	��(h5U�h6j÷	��ubah?jO��ubhXX���. The
r›	��ÖÅrfi	��}rfl	��(h5X���. The
h6j≈	��ubj.��)År‡	��}r·	��(h5X���:func:`CN_read.get`r‚	��h6j≈	��h=h>h?j2��hA}r„	��(UreftypeX���funcj4��âj5��X���CN_read.getU	refdomainX���pyr‰	��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��j��Nj ��NuhKM√hM]rÂ	��j ��)ÅrÊ	��}rÁ	��(h5j‚	��hA}rË	��(hC]hD]rÈ	��(j?��j‰	��X���py-funcrÍ	��ehE]hF]hI]uh6j‡	��hM]rÎ	��hXX
���CN_read.get()rÏ	��ÖÅrÌ	��}rÓ	��(h5U�h6jÊ	��ubah?j(��ubaubhXX√��� operation would be modified to do a resolve, then a HTTP
302 redirect to the node that contains the content. This would also require
that the client libraries are updated to support redirection.rÔ	��ÖÅr	��}rÒ	��(h5X√��� operation would be modified to do a resolve, then a HTTP
302 redirect to the node that contains the content. This would also require
that the client libraries are updated to support redirection.h6j≈	��ubeubhy)ÅrÚ	��}rÛ	��(h5X<��This option has the advantage of keeping the the ORE document functional for
non-DataONE users but has the disadvantage of obfuscating the object
identifiers. The later issue could be addressed by adding the dcterms
`identifier`_ property to the aggregated object with the object being the
actual DataONE identifier.h6j¡	��h=h>h?hàhA}rÙ	��(hC]hD]hE]hF]hI]uhKMÀhM]rı	��(hXXÿ���This option has the advantage of keeping the the ORE document functional for
non-DataONE users but has the disadvantage of obfuscating the object
identifiers. The later issue could be addressed by adding the dcterms
rˆ	��ÖÅr˜	��}r¯	��(h5Xÿ���This option has the advantage of keeping the the ORE document functional for
non-DataONE users but has the disadvantage of obfuscating the object
identifiers. The later issue could be addressed by adding the dcterms
h6jÚ	��ubh~)År˘	��}r˙	��(h5X
���`identifier`_jà��Kh6jÚ	��h?háhA}r˚	��(UnameX
���identifierr¸	��jä��X<���http://dublincore.org/documents/dcmi-terms/#terms-identifierr˝	��hF]hE]hC]hD]hI]uhM]r˛	��hXX
���identifierrˇ	��ÖÅr�
��}r
��(h5U�h6j˘	��ubaubhXXW��� property to the aggregated object with the object being the
actual DataONE identifier.r
��ÖÅr
��}r
��(h5XW��� property to the aggregated object with the object being the
actual DataONE identifier.h6jÚ	��ubeubeubeubhy)År
��}r
��(h5X���**Resolution:**r
��h6jä��h=h>h?hàhA}r
��(hC]hD]hE]hF]hI]uhKM“hLhhM]r	
��j��)År

��}r
��(h5j
��hA}r
��(hC]hD]hE]hF]hI]uh6j
��hM]r
��hXX���Resolution:r
��ÖÅr
��}r
��(h5U�h6j

��ubah?j��ubaubhy)År
��}r
��(h5X��ORE URIs for aggregated objects are constructed by prepending the
:func:`CNCore.resolve` REST URL to the identifier (with the identifier
appropriately URI path encoded). :func:`CNRead.resolve` returns an
:class:`Types.ObjectLocationList` as the response body, and a HTTP status of
302 with the first node listed in the ObjectLocationList being the target of
the redirect. The literal DataONE identifier for the aggregated object is
added to the ORE aggregate entry as a dcterms `identifier`_ property. DataONE
clients will utilize the *dcterms:identifier* entry to determine the DataONE
identifier of the object and utilize the normal *resolve* and *get* approach
for retrieving the object. The URLs contained in the ORE document will
continue to be handled as expected by other clients.h6jä��h=h>h?hàhA}r
��(hC]hD]hE]hF]hI]uhKM‘hLhhM]r
��(hXXB���ORE URIs for aggregated objects are constructed by prepending the
r
��ÖÅr
��}r
��(h5XB���ORE URIs for aggregated objects are constructed by prepending the
h6j
��ubj.��)År
��}r
��(h5X���:func:`CNCore.resolve`r
��h6j
��h=h>h?j2��hA}r
��(UreftypeX���funcj4��âj5��X���CNCore.resolveU	refdomainX���pyr
��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��j��Nj ��NuhKM‘hM]r
��j ��)År
��}r
��(h5j
��hA}r 
��(hC]hD]r!
��(j?��j
��X���py-funcr"
��ehE]hF]hI]uh6j
��hM]r#
��hXX���CNCore.resolve()r$
��ÖÅr%
��}r&
��(h5U�h6j
��ubah?j(��ubaubhXXR��� REST URL to the identifier (with the identifier
appropriately URI path encoded). r'
��ÖÅr(
��}r)
��(h5XR��� REST URL to the identifier (with the identifier
appropriately URI path encoded). h6j
��ubj.��)År*
��}r+
��(h5X���:func:`CNRead.resolve`r,
��h6j
��h=h>h?j2��hA}r-
��(UreftypeX���funcj4��âj5��X���CNRead.resolveU	refdomainX���pyr.
��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��j��Nj ��NuhKM‘hM]r/
��j ��)År0
��}r1
��(h5j,
��hA}r2
��(hC]hD]r3
��(j?��j.
��X���py-funcr4
��ehE]hF]hI]uh6j*
��hM]r5
��hXX���CNRead.resolve()r6
��ÖÅr7
��}r8
��(h5U�h6j0
��ubah?j(��ubaubhXX��� returns an
r9
��ÖÅr:
��}r;
��(h5X��� returns an
h6j
��ubj.��)År<
��}r=
��(h5X!���:class:`Types.ObjectLocationList`r>
��h6j
��h=h>h?j2��hA}r?
��(UreftypeX���classj4��âj5��X���Types.ObjectLocationListU	refdomainX���pyr@
��hF]hE]UrefexplicitâhC]hD]hI]j7��j8��j��Nj ��NuhKM‘hM]rA
��j ��)ÅrB
��}rC
��(h5j>
��hA}rD
��(hC]hD]rE
��(j?��j@
��X���py-classrF
��ehE]hF]hI]uh6j<
��hM]rG
��hXX���Types.ObjectLocationListrH
��ÖÅrI
��}rJ
��(h5U�h6jB
��ubah?j(��ubaubhXX��� as the response body, and a HTTP status of
302 with the first node listed in the ObjectLocationList being the target of
the redirect. The literal DataONE identifier for the aggregated object is
added to the ORE aggregate entry as a dcterms rK
��ÖÅrL
��}rM
��(h5X��� as the response body, and a HTTP status of
302 with the first node listed in the ObjectLocationList being the target of
the redirect. The literal DataONE identifier for the aggregated object is
added to the ORE aggregate entry as a dcterms h6j
��ubh~)ÅrN
��}rO
��(h5X
���`identifier`_j�Kh6j
��h?háhA}rP
��(UnameX
���identifierjä��j˝	��hF]hE]hC]hD]hI]uhM]rQ
��hXX
���identifierrR
��ÖÅrS
��}rT
��(h5U�h6jN
��ubaubhXX,��� property. DataONE
clients will utilize the rU
��ÖÅrV
��}rW
��(h5X,��� property. DataONE
clients will utilize the h6j
��ubjG��)ÅrX
��}rY
��(h5X���*dcterms:identifier*hA}rZ
��(hC]hD]hE]hF]hI]uh6j
��hM]r[
��hXX���dcterms:identifierr\
��ÖÅr]
��}r^
��(h5U�h6jX
��ubah?jO��ubhXXP��� entry to determine the DataONE
identifier of the object and utilize the normal r_
��ÖÅr`
��}ra
��(h5XP��� entry to determine the DataONE
identifier of the object and utilize the normal h6j
��ubjG��)Årb
��}rc
��(h5X	���*resolve*hA}rd
��(hC]hD]hE]hF]hI]uh6j
��hM]re
��hXX���resolverf
��ÖÅrg
��}rh
��(h5U�h6jb
��ubah?jO��ubhXX��� and ri
��ÖÅrj
��}rk
��(h5X��� and h6j
��ubjG��)Årl
��}rm
��(h5X���*get*hA}rn
��(hC]hD]hE]hF]hI]uh6j
��hM]ro
��hXX���getrp
��ÖÅrq
��}rr
��(h5U�h6jl
��ubah?jO��ubhXX��� approach
for retrieving the object. The URLs contained in the ORE document will
continue to be handled as expected by other clients.rs
��ÖÅrt
��}ru
��(h5X��� approach
for retrieving the object. The URLs contained in the ORE document will
continue to be handled as expected by other clients.h6j
��ubeubeubh7)Årv
��}rw
��(h5U�h6j5��h=h>h?h@hA}rx
��(hC]hD]hE]hF]ry
��jt��ahI]rz
��h
auhKM‚hLhhM]r{
��(hO)År|
��}r}
��(h5jy��h6jv
��h=h>h?hShA}r~
��(hF]hE]hC]hD]hI]hUjs��uhKM‚hLhhM]r
��hXX���ExamplesrÄ
��ÖÅrÅ
��}rÇ
��(h5jy��h6j|
��ubaubhy)ÅrÉ
��}rÑ
��(h5X_��An RDF-XML rendering of the example from Figure 2 following the
recommendations as generated using the `Foresite python library`_ is presented
below. This OAI-ORE document is an example of a simple data package in
DataONE, where a single science metadata document (identifier = *scimeta_id*)
describes a single data object (identifier = *scidata_id*).h6jv
��h=h>h?hàhA}rÖ
��(hC]hD]hE]hF]hI]uhKM‰hLhhM]rÜ
��(hXXg���An RDF-XML rendering of the example from Figure 2 following the
recommendations as generated using the rá
��ÖÅrà
��}râ
��(h5Xg���An RDF-XML rendering of the example from Figure 2 following the
recommendations as generated using the h6jÉ
��ubh~)Årä
��}rã
��(h5X���`Foresite python library`_jà��Kh6jÉ
��h?háhA}rå
��(UnameX���Foresite python libraryjä��X<���http://code.google.com/p/foresite-toolkit/wiki/PythonLibraryrç
��hF]hE]hC]hD]hI]uhM]ré
��hXX���Foresite python libraryrè
��ÖÅrê
��}rë
��(h5U�h6jä
��ubaubhXX�� is presented
below. This OAI-ORE document is an example of a simple data package in
DataONE, where a single science metadata document (identifier = rí
��ÖÅrì
��}rî
��(h5X�� is presented
below. This OAI-ORE document is an example of a simple data package in
DataONE, where a single science metadata document (identifier = h6jÉ
��ubjG��)Årï
��}rñ
��(h5X���*scimeta_id*hA}ró
��(hC]hD]hE]hF]hI]uh6jÉ
��hM]rò
��hXX
���scimeta_idrô
��ÖÅrö
��}rõ
��(h5U�h6jï
��ubah?jO��ubhXX/���)
describes a single data object (identifier = rú
��ÖÅrù
��}rû
��(h5X/���)
describes a single data object (identifier = h6jÉ
��ubjG��)Årü
��}r†
��(h5X���*scidata_id*hA}r°
��(hC]hD]hE]hF]hI]uh6jÉ
��hM]r¢
��hXX
���scidata_idr£
��ÖÅr§
��}r•
��(h5U�h6jü
��ubah?jO��ubhXX���).r¶
��ÖÅrß
��}r®
��(h5X���).h6jÉ
��ubeubj∑��)År©
��}r™
��(h5X`��<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
   xmlns:cito="http://purl.org/spar/cito/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:foaf="http://xmlns.com/foaf/0.1/"
   xmlns:ore="http://www.openarchives.org/ore/terms/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs1="http://www.w3.org/2001/01/rdf-schema#"
>
  <rdf:Description rdf:about="http://foresite-toolkit.googlecode.com/#pythonAgent">
    <foaf:mbox>foresite@googlegroups.com</foaf:mbox>
    <foaf:name>Foresite Toolkit (Python)</foaf:name>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scimeta_id">
    <cito:documents rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
    <dcterms:identifier>scimeta_id</dcterms:identifier>
    <dcterms:description>A reference to a science metadata document using a DataONE identifier.</dcterms:description>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.openarchives.org/ore/terms/ResourceMap">
    <rdfs1:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
    <rdfs1:label>ResourceMap</rdfs1:label>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/resource_map_id">
    <dcterms:identifier>resource_map_id</dcterms:identifier>
    <dcterms:modified>2011-08-12T12:55:16Z</dcterms:modified>
    <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/ResourceMap"/>
    <dc:format>application/rdf+xml</dc:format>
    <ore:describes rdf:resource="https://cn.dataone.org/cn/v1/resolve/aggregation_id"/>
    <dcterms:created>2011-08-12T12:55:16Z</dcterms:created>
    <dcterms:creator rdf:resource="http://foresite-toolkit.googlecode.com/#pythonAgent"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.openarchives.org/ore/terms/Aggregation">
    <rdfs1:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
    <rdfs1:label>Aggregation</rdfs1:label>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/aggregation_id">
    <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
    <dcterms:title>Simple aggregation of science metadata and data</dcterms:title>
    <ore:isDescribedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/resource_map_id"/>
    <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
    <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scidata_id">
    <cito:isDocumentedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
    <dcterms:identifier>scidata_id</dcterms:identifier>
    <dcterms:description>A reference to a science data object using a DataONE identifier</dcterms:description>
  </rdf:Description>
</rdf:RDF>h6jv
��h=h>h?j∫��hA}r´
��(Ulinenosr¨
��âUlanguager≠
��X���xmljº��jΩ��hF]hE]hC]Uhighlight_argsrÆ
��}hD]hI]uhKMÍhLhhM]rØ
��hXX`��<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
   xmlns:cito="http://purl.org/spar/cito/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:foaf="http://xmlns.com/foaf/0.1/"
   xmlns:ore="http://www.openarchives.org/ore/terms/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs1="http://www.w3.org/2001/01/rdf-schema#"
>
  <rdf:Description rdf:about="http://foresite-toolkit.googlecode.com/#pythonAgent">
    <foaf:mbox>foresite@googlegroups.com</foaf:mbox>
    <foaf:name>Foresite Toolkit (Python)</foaf:name>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scimeta_id">
    <cito:documents rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
    <dcterms:identifier>scimeta_id</dcterms:identifier>
    <dcterms:description>A reference to a science metadata document using a DataONE identifier.</dcterms:description>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.openarchives.org/ore/terms/ResourceMap">
    <rdfs1:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
    <rdfs1:label>ResourceMap</rdfs1:label>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/resource_map_id">
    <dcterms:identifier>resource_map_id</dcterms:identifier>
    <dcterms:modified>2011-08-12T12:55:16Z</dcterms:modified>
    <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/ResourceMap"/>
    <dc:format>application/rdf+xml</dc:format>
    <ore:describes rdf:resource="https://cn.dataone.org/cn/v1/resolve/aggregation_id"/>
    <dcterms:created>2011-08-12T12:55:16Z</dcterms:created>
    <dcterms:creator rdf:resource="http://foresite-toolkit.googlecode.com/#pythonAgent"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.openarchives.org/ore/terms/Aggregation">
    <rdfs1:isDefinedBy rdf:resource="http://www.openarchives.org/ore/terms/"/>
    <rdfs1:label>Aggregation</rdfs1:label>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/aggregation_id">
    <rdf:type rdf:resource="http://www.openarchives.org/ore/terms/Aggregation"/>
    <dcterms:title>Simple aggregation of science metadata and data</dcterms:title>
    <ore:isDescribedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/resource_map_id"/>
    <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scidata_id"/>
    <ore:aggregates rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
  </rdf:Description>
  <rdf:Description rdf:about="https://cn.dataone.org/cn/v1/resolve/scidata_id">
    <cito:isDocumentedBy rdf:resource="https://cn.dataone.org/cn/v1/resolve/scimeta_id"/>
    <dcterms:identifier>scidata_id</dcterms:identifier>
    <dcterms:description>A reference to a science data object using a DataONE identifier</dcterms:description>
  </rdf:Description>
</rdf:RDF>r∞
��ÖÅr±
��}r≤
��(h5U�h6j©
��ubaubhy)År≥
��}r¥
��(h5X���The same in N3::rµ
��h6jv
��h=h>h?hàhA}r∂
��(hC]hD]hE]hF]hI]uhKMhLhhM]r∑
��hXX���The same in N3:r∏
��ÖÅrπ
��}r∫
��(h5X���The same in N3:h6j≥
��ubaubj∑��)Årª
��}rº
��(h5X��@prefix cito: <http://purl.org/spar/cito/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ore: <http://www.openarchives.org/ore/terms/> .
@prefix rdfs1: <http://www.w3.org/2001/01/rdf-schema#> .

<https://cn.dataone.org/cn/v1/resolve/resource_map_id> a <http://www.openarchives.org/ore/terms/ResourceMap>;
    dc:format "text/rdf+n3";
    dcterms:created "2011-08-12T12:57:03Z";
    dcterms:creator <http://foresite-toolkit.googlecode.com/#pythonAgent>;
    dcterms:identifier "resource_map_id";
    dcterms:modified "2011-08-12T12:57:03Z";
    ore:describes <aggregation_id> .

<aggregation_id> a <http://www.openarchives.org/ore/terms/Aggregation>;
    dcterms:title "Simple aggregation of science metadata and data";
    ore:aggregates <https://cn.dataone.org/cn/v1/resolve/scidata_id>,
        <https://cn.dataone.org/cn/v1/resolve/scimeta_id> .

<http://foresite-toolkit.googlecode.com/#pythonAgent> foaf:mbox "foresite@googlegroups.com";
    foaf:name "Foresite Toolkit (Python)" .

<http://www.openarchives.org/ore/terms/Aggregation> rdfs1:isDefinedBy ore:;
    rdfs1:label "Aggregation" .

<http://www.openarchives.org/ore/terms/ResourceMap> rdfs1:isDefinedBy ore:;
    rdfs1:label "ResourceMap" .

<https://cn.dataone.org/object/scidata_id> dcterms:description "A reference to a science data object using a DataONE identifier";
    dcterms:identifier "scidata_id";
    cito:isDocumentedBy <https://cn.dataone.org/cn/v1/resolve/scimeta_id> .

<https://cn.dataone.org/object/scimeta_id> dcterms:description "A reference to a science metadata document using a DataONE identifier.";
    dcterms:identifier "scimeta_id";
    cito:documents <https://cn.dataone.org/cn/v1/resolve/scidata_id> .h6jv
��h=h>h?j∫��hA}rΩ
��(jº��jΩ��hF]hE]hC]hD]hI]uhKM!hLhhM]ræ
��hXX��@prefix cito: <http://purl.org/spar/cito/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ore: <http://www.openarchives.org/ore/terms/> .
@prefix rdfs1: <http://www.w3.org/2001/01/rdf-schema#> .

<https://cn.dataone.org/cn/v1/resolve/resource_map_id> a <http://www.openarchives.org/ore/terms/ResourceMap>;
    dc:format "text/rdf+n3";
    dcterms:created "2011-08-12T12:57:03Z";
    dcterms:creator <http://foresite-toolkit.googlecode.com/#pythonAgent>;
    dcterms:identifier "resource_map_id";
    dcterms:modified "2011-08-12T12:57:03Z";
    ore:describes <aggregation_id> .

<aggregation_id> a <http://www.openarchives.org/ore/terms/Aggregation>;
    dcterms:title "Simple aggregation of science metadata and data";
    ore:aggregates <https://cn.dataone.org/cn/v1/resolve/scidata_id>,
        <https://cn.dataone.org/cn/v1/resolve/scimeta_id> .

<http://foresite-toolkit.googlecode.com/#pythonAgent> foaf:mbox "foresite@googlegroups.com";
    foaf:name "Foresite Toolkit (Python)" .

<http://www.openarchives.org/ore/terms/Aggregation> rdfs1:isDefinedBy ore:;
    rdfs1:label "Aggregation" .

<http://www.openarchives.org/ore/terms/ResourceMap> rdfs1:isDefinedBy ore:;
    rdfs1:label "ResourceMap" .

<https://cn.dataone.org/object/scidata_id> dcterms:description "A reference to a science data object using a DataONE identifier";
    dcterms:identifier "scidata_id";
    cito:isDocumentedBy <https://cn.dataone.org/cn/v1/resolve/scimeta_id> .

<https://cn.dataone.org/object/scimeta_id> dcterms:description "A reference to a science metadata document using a DataONE identifier.";
    dcterms:identifier "scimeta_id";
    cito:documents <https://cn.dataone.org/cn/v1/resolve/scidata_id> .rø
��ÖÅr¿
��}r¡
��(h5U�h6jª
��ubaubj¸��)År¬
��}r√
��(h5U�h6jv
��h=h>h?jˇ��hA}rƒ
��(hC]hD]hE]hF]r≈
��Uid9r∆
��ahI]uhKMJhLhhM]r«
��(j·��)År»
��}r…
��(h5Xg���.. figure:: images/resourcemap_eg_1.png

   **Figure 3.** Also rendered using the W3C RDF validator.


h6j¬
��h=h>h?j‰��hA}r 
��(UuriX"���design/images/resourcemap_eg_1.pngr��hF]hE]hC]hD]jÁ��}rÃ
��U*j��shI]uhKMJhM]ubj	��)ÅrÕ
��}rŒ
��(h5X8���**Figure 3.** Also rendered using the W3C RDF validator.h6j¬
��h=h>h?j��hA}rœ
��(hC]hD]hE]hF]hI]uhKMJhM]r–
��(j��)År—
��}r“
��(h5X
���**Figure 3.**hA}r”
��(hC]hD]hE]hF]hI]uh6jÕ
��hM]r‘
��hXX	���Figure 3.r’
��ÖÅr÷
��}r◊
��(h5U�h6j—
��ubah?j��ubhXX+��� Also rendered using the W3C RDF validator.rÿ
��ÖÅrŸ
��}r⁄
��(h5X+��� Also rendered using the W3C RDF validator.h6jÕ
��ubeubeubj”��)År€
��}r‹
��(h5X���.. _DataCite2RDF: https://docs.google.com/document/d/1paJgvmCMu3pbM4in6PjWAKO0gP-6ultii3DWQslygq4/edit?authkey=CMeV3tgF&hl=en_GBh:Kh6jv
��h=h>h?j÷��hA}r›
��(j�j	��hF]rfi
��Udatacite2rdfrfl
��ahE]hC]hD]hI]r‡
��hauhKMNhLhhM]ubj”��)År·
��}r‚
��(h5XL���.. _conformsTo: http://dublincore.org/documents/dcmi-terms/#terms-conformsToh6jv
��h=h>h?j÷��hA}r„
��(jä��X<���http://dublincore.org/documents/dcmi-terms/#terms-conformsTohF]r‰
��U
conformstorÂ
��ahE]hC]hD]hI]rÊ
��h!auhKMPhLhhM]ubj”��)ÅrÁ
��}rË
��(h5XL���.. _references: http://dublincore.org/documents/dcmi-terms/#terms-referencesh:Kh6jv
��h=h>h?j÷��hA}rÈ
��(jä��j⁄��hF]rÍ
��U
referencesrÎ
��ahE]hC]hD]hI]rÏ
��h(auhKMRhLhhM]ubj”��)ÅrÌ
��}rÓ
��(h5XT���.. _isReferencedBy: http://dublincore.org/documents/dcmi-terms/#terms-isReferencedByh:Kh6jv
��h=h>h?j÷��hA}rÔ
��(jä��jÂ��hF]r
��UisreferencedbyrÒ
��ahE]hC]hD]hI]rÚ
��h	auhKMThLhhM]ubj”��)ÅrÛ
��}rÙ
��(h5XH���.. _requires: http://dublincore.org/documents/dcmi-terms/#terms-requiresh:Kh6jv
��h=h>h?j÷��hA}rı
��(jä��jÒ��hF]rˆ
��Urequiresr˜
��ahE]hC]hD]hI]r¯
��h+auhKMVhLhhM]ubj”��)År˘
��}r˙
��(h5XP���.. _isRequiredBy: http://dublincore.org/documents/dcmi-terms/#terms-isRequiredByh:Kh6jv
��h=h>h?j÷��hA}r˚
��(jä��j¸��hF]r¸
��Uisrequiredbyr˝
��ahE]hC]hD]hI]r˛
��hauhKMXhLhhM]ubj”��)Årˇ
��}r���(h5XH���.. _relation: http://dublincore.org/documents/dcmi-terms/#terms-relationh:Kh6jv
��h=h>h?j÷��hA}r��(jä��j	��hF]r��Urelationr��ahE]hC]hD]hI]r��h,auhKMZhLhhM]ubj”��)År��}r��(h5XD���.. _format: http://dublincore.org/documents/dcmi-terms/#terms-formath:Kh6jv
��h=h>h?j÷��hA}r��(jä��jO	��hF]r��Uformatr	��ahE]hC]hD]hI]r
��hauhKM\hLhhM]ubj”��)År��}r��(h5XL���.. _identifier: http://dublincore.org/documents/dcmi-terms/#terms-identifierh:Kh6jv
��h=h>h?j÷��hA}r
��(jä��j˝	��hF]r��U
identifierr��ahE]hC]hD]hI]r��h*auhKM^hLhhM]ubj”��)År��}r��(h5X$���.. _CiTO: http://purl.org/spar/cito/h:Kh6jv
��h=h>h?j÷��hA}r��(jä��j$	��hF]r��Ucitor��ahE]hC]hD]hI]r��hauhKM`hLhhM]ubeubeubh7)År��}r��(h5U�h6h;h=h>h?h@hA}r��(hC]hD]hE]hF]r��já��ahI]r��hauhKMehLhhM]r��(hO)År��}r��(h5jå��h6j��h=h>h?hShA}r��(hF]hE]hC]hD]hI]hUjÜ��uhKMehLhhM]r ��hXX!���Package Serialization Using BagItr!��ÖÅr"��}r#��(h5jå��h6j��ubaubhy)År$��}r%��(h5XÀ��The BagIt File Packaging Format [Boyko-2009]_ "is a hierarchical file
packaging format designed to support disk-based or network-based storage and
transfer of generalized digital content" (p.3). BagIt is defined in an
Internet RFC that is currently being revised and is being considered in
several library implementations. BagIt mainly provides a consistent mechanism
for a serialized representation of a group of opaque objects using commonly
available technological approaches (such as the zip archive format). BagIt
includes a specification for including metadata about each of the objects, the
bag itself, and fixity attributes so that any BagIt implementation can
validate the components contained within a package. Unlike NetCDF and EML, BagIt
does not attempt to provide a data model for the data it carries, instead
asserting that consuming applications will know how to handle package contents
based on the metadata included in the bag or via external knowledge.h6j��h=h>h?hàhA}r&��(hC]hD]hE]hF]hI]uhKMghLhhM]r'��(hXX ���The BagIt File Packaging Format r(��ÖÅr)��}r*��(h5X ���The BagIt File Packaging Format h6j$��ubj.��)År+��}r,��(h5X
���Boyko-2009r-��h6j$��h=h>h?j2��hA}r.��(Ureftypej#��UrefwarnàU	reftargetj-��U	refdomainj$��hF]r/��Uid3r0��ahE]hC]hD]hI]uhKMghLhhM]r1��hXX���[Boyko-2009]r2��ÖÅr3��}r4��(h5U�h6j+��ubaubhXXû�� "is a hierarchical file
packaging format designed to support disk-based or network-based storage and
transfer of generalized digital content" (p.3). BagIt is defined in an
Internet RFC that is currently being revised and is being considered in
several library implementations. BagIt mainly provides a consistent mechanism
for a serialized representation of a group of opaque objects using commonly
available technological approaches (such as the zip archive format). BagIt
includes a specification for including metadata about each of the objects, the
bag itself, and fixity attributes so that any BagIt implementation can
validate the components contained within a package. Unlike NetCDF and EML, BagIt
does not attempt to provide a data model for the data it carries, instead
asserting that consuming applications will know how to handle package contents
based on the metadata included in the bag or via external knowledge.r5��ÖÅr6��}r7��(h5Xû�� "is a hierarchical file
packaging format designed to support disk-based or network-based storage and
transfer of generalized digital content" (p.3). BagIt is defined in an
Internet RFC that is currently being revised and is being considered in
several library implementations. BagIt mainly provides a consistent mechanism
for a serialized representation of a group of opaque objects using commonly
available technological approaches (such as the zip archive format). BagIt
includes a specification for including metadata about each of the objects, the
bag itself, and fixity attributes so that any BagIt implementation can
validate the components contained within a package. Unlike NetCDF and EML, BagIt
does not attempt to provide a data model for the data it carries, instead
asserting that consuming applications will know how to handle package contents
based on the metadata included in the bag or via external knowledge.h6j$��ubeubhy)År8��}r9��(h5X���Beneficial featuresr:��h6j��h=h>h?hàhA}r;��(hC]hD]hE]hF]hI]uhKMuhLhhM]r<��hXX���Beneficial featuresr=��ÖÅr>��}r?��(h5j:��h6j8��ubaubjπ��)År@��}rA��(h5U�h6j��h=Nh?jÚ��hA}rB��(hC]hD]hE]hF]hI]uhKNhLhhM]rC��hn)ÅrD��}rE��(h5U�hA}rF��(jc��X���*hF]hE]hC]hD]hI]uh6j@��hM]rG��(ht)ÅrH��}rI��(h5XB���Simple and clear serialization, easy to parse, simple to recreate
hA}rJ��(hC]hD]hE]hF]hI]uh6jD��hM]rK��hy)ÅrL��}rM��(h5XA���Simple and clear serialization, easy to parse, simple to recreaterN��h6jH��h=h>h?hàhA}rO��(hC]hD]hE]hF]hI]uhKMwhM]rP��hXXA���Simple and clear serialization, easy to parse, simple to recreaterQ��ÖÅrR��}rS��(h5jN��h6jL��ubaubah?h†ubht)ÅrT��}rU��(h5Xr���Allows referencing external resources via URI, which are used to populate
objects in the bag when it is processed
hA}rV��(hC]hD]hE]hF]hI]uh6jD��hM]rW��hy)ÅrX��}rY��(h5Xq���Allows referencing external resources via URI, which are used to populate
objects in the bag when it is processedrZ��h6jT��h=h>h?hàhA}r[��(hC]hD]hE]hF]hI]uhKMyhM]r\��hXXq���Allows referencing external resources via URI, which are used to populate
objects in the bag when it is processedr]��ÖÅr^��}r_��(h5jZ��h6jX��ubaubah?h†ubeh?hqubaubhy)År`��}ra��(h5X���Issuesrb��h6j��h=h>h?hàhA}rc��(hC]hD]hE]hF]hI]uhKM|hLhhM]rd��hXX���Issuesre��ÖÅrf��}rg��(h5jb��h6j`��ubaubjπ��)Årh��}ri��(h5U�h6j��h=Nh?jÚ��hA}rj��(hC]hD]hE]hF]hI]uhKNhLhhM]rk��hn)Årl��}rm��(h5U�hA}rn��(jc��X���*hF]hE]hC]hD]hI]uh6jh��hM]ro��(ht)Årp��}rq��(h5X;���No data model for internal structure of enclosed resources
hA}rr��(hC]hD]hE]hF]hI]uh6jl��hM]rs��hy)Årt��}ru��(h5X:���No data model for internal structure of enclosed resourcesrv��h6jp��h=h>h?hàhA}rw��(hC]hD]hE]hF]hI]uhKM~hM]rx��hXX:���No data model for internal structure of enclosed resourcesry��ÖÅrz��}r{��(h5jv��h6jt��ubaubah?h†ubht)År|��}r}��(h5X=���Hierarchical structure is not extensible to arbitrary graphs
hA}r~��(hC]hD]hE]hF]hI]uh6jl��hM]r��hy)ÅrÄ��}rÅ��(h5X<���Hierarchical structure is not extensible to arbitrary graphsrÇ��h6j|��h=h>h?hàhA}rÉ��(hC]hD]hE]hF]hI]uhKMÄhM]rÑ��hXX<���Hierarchical structure is not extensible to arbitrary graphsrÖ��ÖÅrÜ��}rá��(h5jÇ��h6jÄ��ubaubah?h†ubht)Årà��}râ��(h5X9���No explicit definition of the identifier for each object
hA}rä��(hC]hD]hE]hF]hI]uh6jl��hM]rã��hy)Årå��}rç��(h5X8���No explicit definition of the identifier for each objectré��h6jà��h=h>h?hàhA}rè��(hC]hD]hE]hF]hI]uhKMÇhM]rê��hXX8���No explicit definition of the identifier for each objectrë��ÖÅrí��}rì��(h5jé��h6jå��ubaubah?h†ubht)Årî��}rï��(h5XÏ���No clear delineation of the boundaries of objects within a hierarchy (e.g.,
for any given sub-object in the hierarchy, is it identified by the name of
its parent directory or by its own filename, or by a locally-scoped version
of both?
hA}rñ��(hC]hD]hE]hF]hI]uh6jl��hM]ró��hy)Årò��}rô��(h5XÎ���No clear delineation of the boundaries of objects within a hierarchy (e.g.,
for any given sub-object in the hierarchy, is it identified by the name of
its parent directory or by its own filename, or by a locally-scoped version
of both?rö��h6jî��h=h>h?hàhA}rõ��(hC]hD]hE]hF]hI]uhKMÑhM]rú��hXXÎ���No clear delineation of the boundaries of objects within a hierarchy (e.g.,
for any given sub-object in the hierarchy, is it identified by the name of
its parent directory or by its own filename, or by a locally-scoped version
of both?rù��ÖÅrû��}rü��(h5jö��h6jò��ubaubah?h†ubeh?hqubaubhy)År†��}r°��(h5X	���Questionsr¢��h6j��h=h>h?hàhA}r£��(hC]hD]hE]hF]hI]uhKMâhLhhM]r§��hXX	���Questionsr•��ÖÅr¶��}rß��(h5j¢��h6j†��ubaubjπ��)År®��}r©��(h5U�h6j��h=Nh?jÚ��hA}r™��(hC]hD]hE]hF]hI]uhKNhLhhM]r´��hn)År¨��}r≠��(h5U�hA}rÆ��(jc��X���*hF]hE]hC]hD]hI]uh6j®��hM]rØ��(ht)År∞��}r±��(h5X¢���How is a URI or other identifier for data objects represented in the
metadata, and how is it mapped to the data object to which it applies in
the data hierarchy?
hA}r≤��(hC]hD]hE]hF]hI]uh6j¨��hM]r≥��hy)År¥��}rµ��(h5X°���How is a URI or other identifier for data objects represented in the
metadata, and how is it mapped to the data object to which it applies in
the data hierarchy?r∂��h6j∞��h=h>h?hàhA}r∑��(hC]hD]hE]hF]hI]uhKMãhM]r∏��hXX°���How is a URI or other identifier for data objects represented in the
metadata, and how is it mapped to the data object to which it applies in
the data hierarchy?rπ��ÖÅr∫��}rª��(h5j∂��h6j¥��ubaubah?h†ubht)Årº��}rΩ��(h5XÉ���To be valid, must all of the fetch.txt URLs be downloaded and checksummed,
and how is this handled for particularly large objects?
hA}ræ��(hC]hD]hE]hF]hI]uh6j¨��hM]rø��hy)År¿��}r¡��(h5XÇ���To be valid, must all of the fetch.txt URLs be downloaded and checksummed,
and how is this handled for particularly large objects?r¬��h6jº��h=h>h?hàhA}r√��(hC]hD]hE]hF]hI]uhKMèhM]rƒ��hXXÇ���To be valid, must all of the fetch.txt URLs be downloaded and checksummed,
and how is this handled for particularly large objects?r≈��ÖÅr∆��}r«��(h5j¬��h6j¿��ubaubah?h†ubht)År»��}r…��(h5X[���How are large objects that would normally exceed file system size
limitations be handled?

hA}r ��(hC]hD]hE]hF]hI]uh6j¨��hM]rÀ��hy)ÅrÃ��}rÕ��(h5XY���How are large objects that would normally exceed file system size
limitations be handled?rŒ��h6j»��h=h>h?hàhA}rœ��(hC]hD]hE]hF]hI]uhKMíhM]r–��hXXY���How are large objects that would normally exceed file system size
limitations be handled?r—��ÖÅr“��}r”��(h5jŒ��h6jÃ��ubaubah?h†ubeh?hqubaubhy)År‘��}r’��(h5X∞���The structure of a Data Package will follow the BagIt specification with the
exception of the following additions and changes described here.  The basic
structure of a bag is::h6j��h=h>h?hàhA}r÷��(hC]hD]hE]hF]hI]uhKMñhLhhM]r◊��hXXØ���The structure of a Data Package will follow the BagIt specification with the
exception of the following additions and changes described here.  The basic
structure of a bag is:rÿ��ÖÅrŸ��}r⁄��(h5XØ���The structure of a Data Package will follow the BagIt specification with the
exception of the following additions and changes described here.  The basic
structure of a bag is:h6j‘��ubaubj∑��)År€��}r‹��(h5X��<base directory>/
├── bagit.txt
├── bag-info.txt
├── manifest-<algorithm>.txt
├── oai-ore.txt
├── pid-mapping.txt
└── data
    ├── data-file-1.csv
    ├── data-file-2.csv
    ├── data-file-3.hdf
    ‚îî‚îÄ‚îÄ metadata-file-1.xmlh6j��h=h>h?j∫��hA}r›��(jº��jΩ��hF]hE]hC]hD]hI]uhKMöhLhhM]rfi��hXX��<base directory>/
├── bagit.txt
├── bag-info.txt
├── manifest-<algorithm>.txt
├── oai-ore.txt
├── pid-mapping.txt
└── data
    ├── data-file-1.csv
    ├── data-file-2.csv
    ├── data-file-3.hdf
    ‚îî‚îÄ‚îÄ metadata-file-1.xmlrfl��ÖÅr‡��}r·��(h5U�h6j€��ubaubhy)År‚��}r„��(h5X!��The first addition is the presence of an OAI-ORE document ``oai-ore.txt`` within
the base directory that uses the object identifiers for DataONE objects and
describes the relationships among the objects in the package. The second
addition is the inclusion of ``pid-mapping.txt`` tag file showing the
correspondence between the persistent identifier for an object and its file
location in the bag, expressed relative to the base directory. The contents of
the file consist of one line for each data object in the bag, with each line of
the form::h6j��h=h>h?hàhA}r‰��(hC]hD]hE]hF]hI]uhKMßhLhhM]rÂ��(hXX:���The first addition is the presence of an OAI-ORE document rÊ��ÖÅrÁ��}rË��(h5X:���The first addition is the presence of an OAI-ORE document h6j‚��ubj ��)ÅrÈ��}rÍ��(h5X���``oai-ore.txt``hA}rÎ��(hC]hD]hE]hF]hI]uh6j‚��hM]rÏ��hXX���oai-ore.txtrÌ��ÖÅrÓ��}rÔ��(h5U�h6jÈ��ubah?j(��ubhXX∫��� within
the base directory that uses the object identifiers for DataONE objects and
describes the relationships among the objects in the package. The second
addition is the inclusion of r��ÖÅrÒ��}rÚ��(h5X∫��� within
the base directory that uses the object identifiers for DataONE objects and
describes the relationships among the objects in the package. The second
addition is the inclusion of h6j‚��ubj ��)ÅrÛ��}rÙ��(h5X���``pid-mapping.txt``hA}rı��(hC]hD]hE]hF]hI]uh6j‚��hM]rˆ��hXX���pid-mapping.txtr˜��ÖÅr¯��}r˘��(h5U�h6jÛ��ubah?j(��ubhXX
�� tag file showing the
correspondence between the persistent identifier for an object and its file
location in the bag, expressed relative to the base directory. The contents of
the file consist of one line for each data object in the bag, with each line of
the form:r˙��ÖÅr˚��}r¸��(h5X
�� tag file showing the
correspondence between the persistent identifier for an object and its file
location in the bag, expressed relative to the base directory. The contents of
the file consist of one line for each data object in the bag, with each line of
the form:h6j‚��ubeubj∑��)År˝��}r˛��(h5X���PID FILEPATHh6j��h=h>h?j∫��hA}rˇ��(jº��jΩ��hF]hE]hC]hD]hI]uhKM∞hLhhM]r���hXX���PID FILEPATHr��ÖÅr��}r��(h5U�h6j˝��ubaubhy)År��}r��(h5Xƒ���where PID is the persistent identifier for the object and FILEPATH is the path
in the bag to the file containing the bytes of the file.  For example, a
typical pid-mapping.txt file might contain::h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKM≤hLhhM]r��hXX√���where PID is the persistent identifier for the object and FILEPATH is the path
in the bag to the file containing the bytes of the file.  For example, a
typical pid-mapping.txt file might contain:r��ÖÅr	��}r
��(h5X√���where PID is the persistent identifier for the object and FILEPATH is the path
in the bag to the file containing the bytes of the file.  For example, a
typical pid-mapping.txt file might contain:h6j��ubaubj∑��)År��}r��(h5XØ���doi://10.xxxx/AA/TG43 data/data-file-1.csv
doi://10.xxxx/AA/7AW3 data/data-file-2.csv
doi://10.xxxx/AA/790I data/data-file-3.csv
doi://10.xxxx/AA/76AV data/metadata-file-1.xmlh6j��h=h>h?j∫��hA}r
��(jº��jΩ��hF]hE]hC]hD]hI]uhKM∂hLhhM]r��hXXØ���doi://10.xxxx/AA/TG43 data/data-file-1.csv
doi://10.xxxx/AA/7AW3 data/data-file-2.csv
doi://10.xxxx/AA/790I data/data-file-3.csv
doi://10.xxxx/AA/76AV data/metadata-file-1.xmlr��ÖÅr��}r��(h5U�h6j��ubaubhy)År��}r��(h5X"��The bag can be serialized as a single file for transport following the BagIt
specifications. Any objects that are listed in the OAI-ORE file but are missing
from the bag data directory (and therefore from the pid-mapping.txt) must be
downloaded independently via the DataONE MNRead service.r��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMªhLhhM]r��hXX"��The bag can be serialized as a single file for transport following the BagIt
specifications. Any objects that are listed in the OAI-ORE file but are missing
from the bag data directory (and therefore from the pid-mapping.txt) must be
downloaded independently via the DataONE MNRead service.r��ÖÅr��}r��(h5j��h6j��ubaubeubh7)År��}r��(h5U�h6h;h=h>h?h@hA}r��(hC]hD]hE]hF]r��jö��ahI]r��h auhKM¬hLhhM]r��(hO)År ��}r!��(h5jü��h6j��h=h>h?hShA}r"��(hF]hE]hC]hD]hI]hUjô��uhKM¬hLhhM]r#��hXX���Data Package Client Designr$��ÖÅr%��}r&��(h5jü��h6j ��ubaubhy)År'��}r(��(h5X_��Although DataONE CNs and MNs will treat data as opaque, it is useful to design
clients that understand the structure of Data Packages and have a common
semantics for representing the components and their relationships. Client
applications can then be built in various analytical environments and
processing languages that allow simplified manipulation and processing of the
associated sets of objects contained in a Data Package. For example, given an
identifier for a data object, a client should be able to easily query CNs to
find the package(s) with which it is associated, and be able to easily locate
and access the other components of the package to gain an understanding of the
structure and semantics of the data object and its associated package
components. Although initially this feature would mainly be used for providing
simplified access to these components, in future versions of DataONE we
envision that the structure and semantics of each object will be clear based
on science metadata and annotations, allowing advanced data querying,
processing, and analysis on highly heterogeneous sources of data.r)��h6j��h=h>h?hàhA}r*��(hC]hD]hE]hF]hI]uhKMƒhLhhM]r+��hXX_��Although DataONE CNs and MNs will treat data as opaque, it is useful to design
clients that understand the structure of Data Packages and have a common
semantics for representing the components and their relationships. Client
applications can then be built in various analytical environments and
processing languages that allow simplified manipulation and processing of the
associated sets of objects contained in a Data Package. For example, given an
identifier for a data object, a client should be able to easily query CNs to
find the package(s) with which it is associated, and be able to easily locate
and access the other components of the package to gain an understanding of the
structure and semantics of the data object and its associated package
components. Although initially this feature would mainly be used for providing
simplified access to these components, in future versions of DataONE we
envision that the structure and semantics of each object will be clear based
on science metadata and annotations, allowing advanced data querying,
processing, and analysis on highly heterogeneous sources of data.r,��ÖÅr-��}r.��(h5j)��h6j'��ubaubh7)År/��}r0��(h5U�h6j��h=h>h?h@hA}r1��(hC]hD]hE]hF]r2��j±��ahI]r3��hauhKM÷hLhhM]r4��(hO)År5��}r6��(h5j∂��h6j/��h=h>h?hShA}r7��(hF]hE]hC]hD]hI]hUj∞��uhKM÷hLhhM]r8��hXX���Classes, Fields, and Methodsr9��ÖÅr:��}r;��(h5j∂��h6j5��ubaubhn)År<��}r=��(h5U�h6j/��h=h>h?hqhA}r>��(jc��X���*hF]hE]hC]hD]hI]uhKMÿhLhhM]r?��(ht)År@��}rA��(h5Xï��DataPackage
 * Fields
     * identifier
     * D1Object[] objects
 * Constructors
     * DataPackage(Identifier)
 * Methods
     * add(DataObject): DataPackage
     * size(): int
     * contains(Identifier): boolean
     * get(Identifier): D1Object
     * remove(Identifier): void
     * identifiers(): List<Identifier>
     * getTitle(): String
     * getCreator(): String
     * getDisplayURL(): String
h6j<��h=Nh?h†hA}rB��(hC]hD]hE]hF]hI]uhKNhLhhM]rC��jF��)ÅrD��}rE��(h5U�hA}rF��(hC]hD]hE]hF]hI]uh6j@��hM]rG��jL��)ÅrH��}rI��(h5XÜ��DataPackage
* Fields
    * identifier
    * D1Object[] objects
* Constructors
    * DataPackage(Identifier)
* Methods
    * add(DataObject): DataPackage
    * size(): int
    * contains(Identifier): boolean
    * get(Identifier): D1Object
    * remove(Identifier): void
    * identifiers(): List<Identifier>
    * getTitle(): String
    * getCreator(): String
    * getDisplayURL(): String
h6jD��h=h>h?jO��hA}rJ��(hC]hD]hE]hF]hI]uhKMÁhM]rK��(jR��)ÅrL��}rM��(h5X���DataPackagerN��h6jH��h=h>h?jV��hA}rO��(hC]hD]hE]hF]hI]uhKMÁhM]rP��hXX���DataPackagerQ��ÖÅrR��}rS��(h5jN��h6jL��ubaubj\��)ÅrT��}rU��(h5U�hA}rV��(hC]hD]hE]hF]hI]uh6jH��hM]rW��hn)ÅrX��}rY��(h5U�hA}rZ��(jc��X���*hF]hE]hC]hD]hI]uh6jT��hM]r[��(ht)År\��}r]��(h5X,���Fields
  * identifier
  * D1Object[] objectshA}r^��(hC]hD]hE]hF]hI]uh6jX��hM]r_��jF��)År`��}ra��(h5U�hA}rb��(hC]hD]hE]hF]hI]uh6j\��hM]rc��jL��)Ård��}re��(h5X(���Fields
* identifier
* D1Object[] objectsh6j`��h=h>h?jO��hA}rf��(hC]hD]hE]hF]hI]uhKM⁄hM]rg��(jR��)Årh��}ri��(h5X���Fieldsrj��h6jd��h=h>h?jV��hA}rk��(hC]hD]hE]hF]hI]uhKM⁄hM]rl��hXX���Fieldsrm��ÖÅrn��}ro��(h5jj��h6jh��ubaubj\��)Årp��}rq��(h5U�hA}rr��(hC]hD]hE]hF]hI]uh6jd��hM]rs��hn)Årt��}ru��(h5U�hA}rv��(jc��X���*hF]hE]hC]hD]hI]uh6jp��hM]rw��(ht)Årx��}ry��(h5X
���identifierrz��hA}r{��(hC]hD]hE]hF]hI]uh6jt��hM]r|��hy)År}��}r~��(h5jz��h6jx��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKM⁄hM]rÄ��hXX
���identifierrÅ��ÖÅrÇ��}rÉ��(h5jz��h6j}��ubaubah?h†ubht)ÅrÑ��}rÖ��(h5X���D1Object[] objectsrÜ��hA}rá��(hC]hD]hE]hF]hI]uh6jt��hM]rà��hy)Årâ��}rä��(h5jÜ��h6jÑ��h=h>h?hàhA}rã��(hC]hD]hE]hF]hI]uhKM€hM]rå��hXX���D1Object[] objectsrç��ÖÅré��}rè��(h5jÜ��h6jâ��ubaubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubah?h†ubht)Årê��}rë��(h5X(���Constructors
  * DataPackage(Identifier)hA}rí��(hC]hD]hE]hF]hI]uh6jX��hM]rì��jF��)Årî��}rï��(h5U�hA}rñ��(hC]hD]hE]hF]hI]uh6jê��hM]ró��jL��)Årò��}rô��(h5X&���Constructors
* DataPackage(Identifier)h6jî��h=h>h?jO��hA}rö��(hC]hD]hE]hF]hI]uhKM‹hM]rõ��(jR��)Årú��}rù��(h5X���Constructorsrû��h6jò��h=h>h?jV��hA}rü��(hC]hD]hE]hF]hI]uhKM‹hM]r†��hXX���Constructorsr°��ÖÅr¢��}r£��(h5jû��h6jú��ubaubj\��)År§��}r•��(h5U�hA}r¶��(hC]hD]hE]hF]hI]uh6jò��hM]rß��hn)År®��}r©��(h5U�hA}r™��(jc��X���*hF]hE]hC]hD]hI]uh6j§��hM]r´��ht)År¨��}r≠��(h5X���DataPackage(Identifier)rÆ��hA}rØ��(hC]hD]hE]hF]hI]uh6j®��hM]r∞��hy)År±��}r≤��(h5jÆ��h6j¨��h=h>h?hàhA}r≥��(hC]hD]hE]hF]hI]uhKM›hM]r¥��hXX���DataPackage(Identifier)rµ��ÖÅr∂��}r∑��(h5jÆ��h6j±��ubaubah?h†ubah?hqubah?jâ��ubeubah?jI��ubah?h†ubht)År∏��}rπ��(h5X��Methods
  * add(DataObject): DataPackage
  * size(): int
  * contains(Identifier): boolean
  * get(Identifier): D1Object
  * remove(Identifier): void
  * identifiers(): List<Identifier>
  * getTitle(): String
  * getCreator(): String
  * getDisplayURL(): String
hA}r∫��(hC]hD]hE]hF]hI]uh6jX��hM]rª��jF��)Årº��}rΩ��(h5U�hA}ræ��(hC]hD]hE]hF]hI]uh6j∏��hM]rø��jL��)År¿��}r¡��(h5XÙ���Methods
* add(DataObject): DataPackage
* size(): int
* contains(Identifier): boolean
* get(Identifier): D1Object
* remove(Identifier): void
* identifiers(): List<Identifier>
* getTitle(): String
* getCreator(): String
* getDisplayURL(): String
h6jº��h=h>h?jO��hA}r¬��(hC]hD]hE]hF]hI]uhKMÁhM]r√��(jR��)Årƒ��}r≈��(h5X���Methodsr∆��h6j¿��h=h>h?jV��hA}r«��(hC]hD]hE]hF]hI]uhKMÁhM]r»��hXX���Methodsr…��ÖÅr ��}rÀ��(h5j∆��h6jƒ��ubaubj\��)ÅrÃ��}rÕ��(h5U�hA}rŒ��(hC]hD]hE]hF]hI]uh6j¿��hM]rœ��hn)År–��}r—��(h5U�hA}r“��(jc��X���*hF]hE]hC]hD]hI]uh6jÃ��hM]r”��(ht)År‘��}r’��(h5X���add(DataObject): DataPackager÷��hA}r◊��(hC]hD]hE]hF]hI]uh6j–��hM]rÿ��hy)ÅrŸ��}r⁄��(h5j÷��h6j‘��h=h>h?hàhA}r€��(hC]hD]hE]hF]hI]uhKMflhM]r‹��hXX���add(DataObject): DataPackager›��ÖÅrfi��}rfl��(h5j÷��h6jŸ��ubaubah?h†ubht)År‡��}r·��(h5X���size(): intr‚��hA}r„��(hC]hD]hE]hF]hI]uh6j–��hM]r‰��hy)ÅrÂ��}rÊ��(h5j‚��h6j‡��h=h>h?hàhA}rÁ��(hC]hD]hE]hF]hI]uhKM‡hM]rË��hXX���size(): intrÈ��ÖÅrÍ��}rÎ��(h5j‚��h6jÂ��ubaubah?h†ubht)ÅrÏ��}rÌ��(h5X���contains(Identifier): booleanrÓ��hA}rÔ��(hC]hD]hE]hF]hI]uh6j–��hM]r��hy)ÅrÒ��}rÚ��(h5jÓ��h6jÏ��h=h>h?hàhA}rÛ��(hC]hD]hE]hF]hI]uhKM·hM]rÙ��hXX���contains(Identifier): booleanrı��ÖÅrˆ��}r˜��(h5jÓ��h6jÒ��ubaubah?h†ubht)År¯��}r˘��(h5X���get(Identifier): D1Objectr˙��hA}r˚��(hC]hD]hE]hF]hI]uh6j–��hM]r¸��hy)År˝��}r˛��(h5j˙��h6j¯��h=h>h?hàhA}rˇ��(hC]hD]hE]hF]hI]uhKM‚hM]r�
��hXX���get(Identifier): D1Objectr
��ÖÅr
��}r
��(h5j˙��h6j˝��ubaubah?h†ubht)År
��}r
��(h5X���remove(Identifier): voidr
��hA}r
��(hC]hD]hE]hF]hI]uh6j–��hM]r
��hy)År	
��}r

��(h5j
��h6j
��h=h>h?hàhA}r
��(hC]hD]hE]hF]hI]uhKM„hM]r
��hXX���remove(Identifier): voidr

��ÖÅr
��}r
��(h5j
��h6j	
��ubaubah?h†ubht)År
��}r
��(h5X���identifiers(): List<Identifier>r
��hA}r
��(hC]hD]hE]hF]hI]uh6j–��hM]r
��hy)År
��}r
��(h5j
��h6j
��h=h>h?hàhA}r
��(hC]hD]hE]hF]hI]uhKM‰hM]r
��hXX���identifiers(): List<Identifier>r
��ÖÅr
��}r
��(h5j
��h6j
��ubaubah?h†ubht)År
��}r
��(h5X���getTitle(): Stringr
��hA}r
��(hC]hD]hE]hF]hI]uh6j–��hM]r 
��hy)År!
��}r"
��(h5j
��h6j
��h=h>h?hàhA}r#
��(hC]hD]hE]hF]hI]uhKMÂhM]r$
��hXX���getTitle(): Stringr%
��ÖÅr&
��}r'
��(h5j
��h6j!
��ubaubah?h†ubht)År(
��}r)
��(h5X���getCreator(): Stringr*
��hA}r+
��(hC]hD]hE]hF]hI]uh6j–��hM]r,
��hy)År-
��}r.
��(h5j*
��h6j(
��h=h>h?hàhA}r/
��(hC]hD]hE]hF]hI]uhKMÊhM]r0
��hXX���getCreator(): Stringr1
��ÖÅr2
��}r3
��(h5j*
��h6j-
��ubaubah?h†ubht)År4
��}r5
��(h5X���getDisplayURL(): String
hA}r6
��(hC]hD]hE]hF]hI]uh6j–��hM]r7
��hy)År8
��}r9
��(h5X���getDisplayURL(): Stringr:
��h6j4
��h=h>h?hàhA}r;
��(hC]hD]hE]hF]hI]uhKMÁhM]r<
��hXX���getDisplayURL(): Stringr=
��ÖÅr>
��}r?
��(h5j:
��h6j8
��ubaubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubaubht)År@
��}rA
��(h5Xˇ��D1Object
 * Fields
     * SystemMetadata sysmeta (contains the Identifier for this object)
     * byte[] data
 * Constructors
     * DataObject(Identifier)
 * Methods
     * getIdentifier(): Identifier
     * getType(): ObjectFormat
     * getSystemMetadata(): SystemMetadata
     * setSystemMetadata(SystemMetadata): void
     * getData(): byte[]
     * setData(byte[]): void
     * getDescribeList(): List<Identifier>
     * getDescribeByList(): List<Identifier>
     * getObsoltedByList(): List<Identifier>

h6j<��h=Nh?h†hA}rB
��(hC]hD]hE]hF]hI]uhKNhLhhM]rC
��jF��)ÅrD
��}rE
��(h5U�hA}rF
��(hC]hD]hE]hF]hI]uh6j@
��hM]rG
��jL��)ÅrH
��}rI
��(h5X��D1Object
* Fields
    * SystemMetadata sysmeta (contains the Identifier for this object)
    * byte[] data
* Constructors
    * DataObject(Identifier)
* Methods
    * getIdentifier(): Identifier
    * getType(): ObjectFormat
    * getSystemMetadata(): SystemMetadata
    * setSystemMetadata(SystemMetadata): void
    * getData(): byte[]
    * setData(byte[]): void
    * getDescribeList(): List<Identifier>
    * getDescribeByList(): List<Identifier>
    * getObsoltedByList(): List<Identifier>

h6jD
��h=h>h?jO��hA}rJ
��(hC]hD]hE]hF]hI]uhKM˘hM]rK
��(jR��)ÅrL
��}rM
��(h5X���D1ObjectrN
��h6jH
��h=h>h?jV��hA}rO
��(hC]hD]hE]hF]hI]uhKM˘hM]rP
��hXX���D1ObjectrQ
��ÖÅrR
��}rS
��(h5jN
��h6jL
��ubaubj\��)ÅrT
��}rU
��(h5U�hA}rV
��(hC]hD]hE]hF]hI]uh6jH
��hM]rW
��hn)ÅrX
��}rY
��(h5U�hA}rZ
��(jc��X���*hF]hE]hC]hD]hI]uh6jT
��hM]r[
��(ht)År\
��}r]
��(h5X[���Fields
  * SystemMetadata sysmeta (contains the Identifier for this object)
  * byte[] datahA}r^
��(hC]hD]hE]hF]hI]uh6jX
��hM]r_
��jF��)År`
��}ra
��(h5U�hA}rb
��(hC]hD]hE]hF]hI]uh6j\
��hM]rc
��jL��)Ård
��}re
��(h5XW���Fields
* SystemMetadata sysmeta (contains the Identifier for this object)
* byte[] datah6j`
��h=h>h?jO��hA}rf
��(hC]hD]hE]hF]hI]uhKMÎhM]rg
��(jR��)Årh
��}ri
��(h5X���Fieldsrj
��h6jd
��h=h>h?jV��hA}rk
��(hC]hD]hE]hF]hI]uhKMÎhM]rl
��hXX���Fieldsrm
��ÖÅrn
��}ro
��(h5jj
��h6jh
��ubaubj\��)Årp
��}rq
��(h5U�hA}rr
��(hC]hD]hE]hF]hI]uh6jd
��hM]rs
��hn)Årt
��}ru
��(h5U�hA}rv
��(jc��X���*hF]hE]hC]hD]hI]uh6jp
��hM]rw
��(ht)Årx
��}ry
��(h5X@���SystemMetadata sysmeta (contains the Identifier for this object)rz
��hA}r{
��(hC]hD]hE]hF]hI]uh6jt
��hM]r|
��hy)År}
��}r~
��(h5jz
��h6jx
��h=h>h?hàhA}r
��(hC]hD]hE]hF]hI]uhKMÎhM]rÄ
��hXX@���SystemMetadata sysmeta (contains the Identifier for this object)rÅ
��ÖÅrÇ
��}rÉ
��(h5jz
��h6j}
��ubaubah?h†ubht)ÅrÑ
��}rÖ
��(h5X���byte[] datarÜ
��hA}rá
��(hC]hD]hE]hF]hI]uh6jt
��hM]rà
��hy)Årâ
��}rä
��(h5jÜ
��h6jÑ
��h=h>h?hàhA}rã
��(hC]hD]hE]hF]hI]uhKMÏhM]rå
��hXX���byte[] datarç
��ÖÅré
��}rè
��(h5jÜ
��h6jâ
��ubaubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubah?h†ubht)Årê
��}rë
��(h5X'���Constructors
  * DataObject(Identifier)hA}rí
��(hC]hD]hE]hF]hI]uh6jX
��hM]rì
��jF��)Årî
��}rï
��(h5U�hA}rñ
��(hC]hD]hE]hF]hI]uh6jê
��hM]ró
��jL��)Årò
��}rô
��(h5X%���Constructors
* DataObject(Identifier)h6jî
��h=h>h?jO��hA}rö
��(hC]hD]hE]hF]hI]uhKMÌhM]rõ
��(jR��)Årú
��}rù
��(h5X���Constructorsrû
��h6jò
��h=h>h?jV��hA}rü
��(hC]hD]hE]hF]hI]uhKMÌhM]r†
��hXX���Constructorsr°
��ÖÅr¢
��}r£
��(h5jû
��h6jú
��ubaubj\��)År§
��}r•
��(h5U�hA}r¶
��(hC]hD]hE]hF]hI]uh6jò
��hM]rß
��hn)År®
��}r©
��(h5U�hA}r™
��(jc��X���*hF]hE]hC]hD]hI]uh6j§
��hM]r´
��ht)År¨
��}r≠
��(h5X���DataObject(Identifier)rÆ
��hA}rØ
��(hC]hD]hE]hF]hI]uh6j®
��hM]r∞
��hy)År±
��}r≤
��(h5jÆ
��h6j¨
��h=h>h?hàhA}r≥
��(hC]hD]hE]hF]hI]uhKMÓhM]r¥
��hXX���DataObject(Identifier)rµ
��ÖÅr∂
��}r∑
��(h5jÆ
��h6j±
��ubaubah?h†ubah?hqubah?jâ��ubeubah?jI��ubah?h†ubht)År∏
��}rπ
��(h5XE��Methods
  * getIdentifier(): Identifier
  * getType(): ObjectFormat
  * getSystemMetadata(): SystemMetadata
  * setSystemMetadata(SystemMetadata): void
  * getData(): byte[]
  * setData(byte[]): void
  * getDescribeList(): List<Identifier>
  * getDescribeByList(): List<Identifier>
  * getObsoltedByList(): List<Identifier>

hA}r∫
��(hC]hD]hE]hF]hI]uh6jX
��hM]rª
��jF��)Årº
��}rΩ
��(h5U�hA}ræ
��(hC]hD]hE]hF]hI]uh6j∏
��hM]rø
��jL��)År¿
��}r¡
��(h5X3��Methods
* getIdentifier(): Identifier
* getType(): ObjectFormat
* getSystemMetadata(): SystemMetadata
* setSystemMetadata(SystemMetadata): void
* getData(): byte[]
* setData(byte[]): void
* getDescribeList(): List<Identifier>
* getDescribeByList(): List<Identifier>
* getObsoltedByList(): List<Identifier>

h6jº
��h=h>h?jO��hA}r¬
��(hC]hD]hE]hF]hI]uhKM˘hM]r√
��(jR��)Årƒ
��}r≈
��(h5X���Methodsr∆
��h6j¿
��h=h>h?jV��hA}r«
��(hC]hD]hE]hF]hI]uhKM˘hM]r»
��hXX���Methodsr…
��ÖÅr 
��}r��(h5j∆
��h6jƒ
��ubaubj\��)ÅrÃ
��}rÕ
��(h5U�hA}rŒ
��(hC]hD]hE]hF]hI]uh6j¿
��hM]rœ
��hn)År–
��}r—
��(h5U�hA}r“
��(jc��X���*hF]hE]hC]hD]hI]uh6jÃ
��hM]r”
��(ht)År‘
��}r’
��(h5X���getIdentifier(): Identifierr÷
��hA}r◊
��(hC]hD]hE]hF]hI]uh6j–
��hM]rÿ
��hy)ÅrŸ
��}r⁄
��(h5j÷
��h6j‘
��h=h>h?hàhA}r€
��(hC]hD]hE]hF]hI]uhKMhM]r‹
��hXX���getIdentifier(): Identifierr›
��ÖÅrfi
��}rfl
��(h5j÷
��h6jŸ
��ubaubah?h†ubht)År‡
��}r·
��(h5X���getType(): ObjectFormatr‚
��hA}r„
��(hC]hD]hE]hF]hI]uh6j–
��hM]r‰
��hy)ÅrÂ
��}rÊ
��(h5j‚
��h6j‡
��h=h>h?hàhA}rÁ
��(hC]hD]hE]hF]hI]uhKMÒhM]rË
��hXX���getType(): ObjectFormatrÈ
��ÖÅrÍ
��}rÎ
��(h5j‚
��h6jÂ
��ubaubah?h†ubht)ÅrÏ
��}rÌ
��(h5X#���getSystemMetadata(): SystemMetadatarÓ
��hA}rÔ
��(hC]hD]hE]hF]hI]uh6j–
��hM]r
��hy)ÅrÒ
��}rÚ
��(h5jÓ
��h6jÏ
��h=h>h?hàhA}rÛ
��(hC]hD]hE]hF]hI]uhKMÚhM]rÙ
��hXX#���getSystemMetadata(): SystemMetadatarı
��ÖÅrˆ
��}r˜
��(h5jÓ
��h6jÒ
��ubaubah?h†ubht)År¯
��}r˘
��(h5X'���setSystemMetadata(SystemMetadata): voidr˙
��hA}r˚
��(hC]hD]hE]hF]hI]uh6j–
��hM]r¸
��hy)År˝
��}r˛
��(h5j˙
��h6j¯
��h=h>h?hàhA}rˇ
��(hC]hD]hE]hF]hI]uhKMÛhM]r���hXX'���setSystemMetadata(SystemMetadata): voidr��ÖÅr��}r��(h5j˙
��h6j˝
��ubaubah?h†ubht)År��}r��(h5X���getData(): byte[]r��hA}r��(hC]hD]hE]hF]hI]uh6j–
��hM]r��hy)År	��}r
��(h5j��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMÙhM]r��hXX���getData(): byte[]r
��ÖÅr��}r��(h5j��h6j	��ubaubah?h†ubht)År��}r��(h5X���setData(byte[]): voidr��hA}r��(hC]hD]hE]hF]hI]uh6j–
��hM]r��hy)År��}r��(h5j��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMıhM]r��hXX���setData(byte[]): voidr��ÖÅr��}r��(h5j��h6j��ubaubah?h†ubht)År��}r��(h5X#���getDescribeList(): List<Identifier>r��hA}r��(hC]hD]hE]hF]hI]uh6j–
��hM]r ��hy)År!��}r"��(h5j��h6j��h=h>h?hàhA}r#��(hC]hD]hE]hF]hI]uhKMˆhM]r$��hXX#���getDescribeList(): List<Identifier>r%��ÖÅr&��}r'��(h5j��h6j!��ubaubah?h†ubht)År(��}r)��(h5X%���getDescribeByList(): List<Identifier>r*��hA}r+��(hC]hD]hE]hF]hI]uh6j–
��hM]r,��hy)År-��}r.��(h5j*��h6j(��h=h>h?hàhA}r/��(hC]hD]hE]hF]hI]uhKM˜hM]r0��hXX%���getDescribeByList(): List<Identifier>r1��ÖÅr2��}r3��(h5j*��h6j-��ubaubah?h†ubht)År4��}r5��(h5X'���getObsoltedByList(): List<Identifier>

hA}r6��(hC]hD]hE]hF]hI]uh6j–
��hM]r7��hy)År8��}r9��(h5X%���getObsoltedByList(): List<Identifier>r:��h6j4��h=h>h?hàhA}r;��(hC]hD]hE]hF]hI]uhKM¯hM]r<��hXX%���getObsoltedByList(): List<Identifier>r=��ÖÅr>��}r?��(h5j:��h6j8��ubaubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubaubeubeubh7)År@��}rA��(h5U�h6j��h=h>h?h@hA}rB��(hC]hD]hE]hF]rC��jƒ��ahI]rD��hauhKM¸hLhhM]rE��(hO)ÅrF��}rG��(h5j…��h6j@��h=h>h?hShA}rH��(hF]hE]hC]hD]hI]hUj√��uhKM¸hLhhM]rI��hXX(���Algorithm for Constructing Data PackagesrJ��ÖÅrK��}rL��(h5j…��h6jF��ubaubhy)ÅrM��}rN��(h5XŸ��Constructing a data package involves taking a PID as passed to the client,
and using that PID to query the system metadata to find all associated
science metadata objects and other data objects. If the PID points at a
scimeta object, it can be used to loop through all of the data objects it
describes. If the PID points at a data object, trace back to its scimeta
object first, then populate the data package, and then loop over all
associated data objects. In pseudocode:rO��h6j@��h=h>h?hàhA}rP��(hC]hD]hE]hF]hI]uhKM˛hLhhM]rQ��hXXŸ��Constructing a data package involves taking a PID as passed to the client,
and using that PID to query the system metadata to find all associated
science metadata objects and other data objects. If the PID points at a
scimeta object, it can be used to loop through all of the data objects it
describes. If the PID points at a data object, trace back to its scimeta
object first, then populate the data package, and then loop over all
associated data objects. In pseudocode:rR��ÖÅrS��}rT��(h5jO��h6jM��ubaubhn)ÅrU��}rV��(h5U�h6j@��h=h>h?hqhA}rW��(jc��X���*hF]hE]hC]hD]hI]uhKMhLhhM]rX��(ht)ÅrY��}rZ��(h5X���mn = cn.resolve(PID)r[��h6jU��h=h>h?h†hA}r\��(hC]hD]hE]hF]hI]uhKNhLhhM]r]��hy)År^��}r_��(h5j[��h6jY��h=h>h?hàhA}r`��(hC]hD]hE]hF]hI]uhKMhM]ra��hXX���mn = cn.resolve(PID)rb��ÖÅrc��}rd��(h5j[��h6j^��ubaubaubht)Åre��}rf��(h5X ���sysmeta = getSystemMetadata(PID)rg��h6jU��h=h>h?h†hA}rh��(hC]hD]hE]hF]hI]uhKNhLhhM]ri��hy)Årj��}rk��(h5jg��h6je��h=h>h?hàhA}rl��(hC]hD]hE]hF]hI]uhKMhM]rm��hXX ���sysmeta = getSystemMetadata(PID)rn��ÖÅro��}rp��(h5jg��h6jj��ubaubaubht)Årq��}rr��(h5XÅ��switch(sysmeta.getObjectFormat())
  1. case: EML or FGDC or other metadata format
      a. scimeta = mn.get(PID)
      b. construct DataPackage dp with sysmeta and scimeta
      c. for each objid in sysmeta.getDescribes()
          * mn = cn.resolve(objid)
          * objsysmeta = cn.getsysmetadata(objid)
          * objdata = mn.get(objid)
          * construct dobj = DataObject(objid, objsysmeta, objdata)
          * dp.addData(dobj)

  2. case: all other objects considered data objects
      a. scimetaid = sysmeta.getDescribedBy()
      b. mn = cn.resolve(scimetaid)
      c. scisysmeta = cn.getsystemmetadata(scimetaid)
      d. scimeta = mn.get(scimetaid)
      e. construct DataPackage dp with scisysmeta and scimeta
      f. objdata = mn.get(objid)
      g. construct dobj = DataObject(ID, sysmeta, objdata)
      h. follow step 1.3 above to get remainder of data objects in package

h6jU��h=Nh?h†hA}rs��(hC]hD]hE]hF]hI]uhKNhLhhM]rt��jF��)Åru��}rv��(h5U�hA}rw��(hC]hD]hE]hF]hI]uh6jq��hM]rx��jL��)Åry��}rz��(h5X]��switch(sysmeta.getObjectFormat())
1. case: EML or FGDC or other metadata format
    a. scimeta = mn.get(PID)
    b. construct DataPackage dp with sysmeta and scimeta
    c. for each objid in sysmeta.getDescribes()
        * mn = cn.resolve(objid)
        * objsysmeta = cn.getsysmetadata(objid)
        * objdata = mn.get(objid)
        * construct dobj = DataObject(objid, objsysmeta, objdata)
        * dp.addData(dobj)

2. case: all other objects considered data objects
    a. scimetaid = sysmeta.getDescribedBy()
    b. mn = cn.resolve(scimetaid)
    c. scisysmeta = cn.getsystemmetadata(scimetaid)
    d. scimeta = mn.get(scimetaid)
    e. construct DataPackage dp with scisysmeta and scimeta
    f. objdata = mn.get(objid)
    g. construct dobj = DataObject(ID, sysmeta, objdata)
    h. follow step 1.3 above to get remainder of data objects in package

h6ju��h=h>h?jO��hA}r{��(hC]hD]hE]hF]hI]uhKMhM]r|��(jR��)År}��}r~��(h5X!���switch(sysmeta.getObjectFormat())r��h6jy��h=h>h?jV��hA}rÄ��(hC]hD]hE]hF]hI]uhKMhM]rÅ��hXX!���switch(sysmeta.getObjectFormat())rÇ��ÖÅrÉ��}rÑ��(h5j��h6j}��ubaubj\��)ÅrÖ��}rÜ��(h5U�hA}rá��(hC]hD]hE]hF]hI]uh6jy��hM]rà��jc��)Årâ��}rä��(h5U�hA}rã��(jh��U.hF]hE]hC]ji��U�hD]hI]jj��jk��uh6jÖ��hM]rå��(ht)Årç��}ré��(h5Xi��case: EML or FGDC or other metadata format
 a. scimeta = mn.get(PID)
 b. construct DataPackage dp with sysmeta and scimeta
 c. for each objid in sysmeta.getDescribes()
     * mn = cn.resolve(objid)
     * objsysmeta = cn.getsysmetadata(objid)
     * objdata = mn.get(objid)
     * construct dobj = DataObject(objid, objsysmeta, objdata)
     * dp.addData(dobj)
hA}rè��(hC]hD]hE]hF]hI]uh6jâ��hM]rê��jF��)Årë��}rí��(h5U�hA}rì��(hC]hD]hE]hF]hI]uh6jç��hM]rî��jL��)Årï��}rñ��(h5Xa��case: EML or FGDC or other metadata format
a. scimeta = mn.get(PID)
b. construct DataPackage dp with sysmeta and scimeta
c. for each objid in sysmeta.getDescribes()
    * mn = cn.resolve(objid)
    * objsysmeta = cn.getsysmetadata(objid)
    * objdata = mn.get(objid)
    * construct dobj = DataObject(objid, objsysmeta, objdata)
    * dp.addData(dobj)
h6jë��h=h>h?jO��hA}ró��(hC]hD]hE]hF]hI]uhKMhM]rò��(jR��)Årô��}rö��(h5X*���case: EML or FGDC or other metadata formatrõ��h6jï��h=h>h?jV��hA}rú��(hC]hD]hE]hF]hI]uhKMhM]rù��hXX*���case: EML or FGDC or other metadata formatrû��ÖÅrü��}r†��(h5jõ��h6jô��ubaubj\��)År°��}r¢��(h5U�hA}r£��(hC]hD]hE]hF]hI]uh6jï��hM]r§��jc��)År•��}r¶��(h5U�hA}rß��(jh��U.hF]hE]hC]ji��U�hD]hI]jj��U
loweralphar®��uh6j°��hM]r©��(ht)År™��}r´��(h5X���scimeta = mn.get(PID)r¨��hA}r≠��(hC]hD]hE]hF]hI]uh6j•��hM]rÆ��hy)ÅrØ��}r∞��(h5j¨��h6j™��h=h>h?hàhA}r±��(hC]hD]hE]hF]hI]uhKM
hM]r≤��hXX���scimeta = mn.get(PID)r≥��ÖÅr¥��}rµ��(h5j¨��h6jØ��ubaubah?h†ubht)År∂��}r∑��(h5X1���construct DataPackage dp with sysmeta and scimetar∏��hA}rπ��(hC]hD]hE]hF]hI]uh6j•��hM]r∫��hy)Årª��}rº��(h5j∏��h6j∂��h=h>h?hàhA}rΩ��(hC]hD]hE]hF]hI]uhKMhM]ræ��hXX1���construct DataPackage dp with sysmeta and scimetarø��ÖÅr¿��}r¡��(h5j∏��h6jª��ubaubah?h†ubht)År¬��}r√��(h5X÷���for each objid in sysmeta.getDescribes()
 * mn = cn.resolve(objid)
 * objsysmeta = cn.getsysmetadata(objid)
 * objdata = mn.get(objid)
 * construct dobj = DataObject(objid, objsysmeta, objdata)
 * dp.addData(dobj)
hA}rƒ��(hC]hD]hE]hF]hI]uh6j•��hM]r≈��jF��)År∆��}r«��(h5U�hA}r»��(hC]hD]hE]hF]hI]uh6j¬��hM]r…��jL��)År ��}rÀ��(h5X—���for each objid in sysmeta.getDescribes()
* mn = cn.resolve(objid)
* objsysmeta = cn.getsysmetadata(objid)
* objdata = mn.get(objid)
* construct dobj = DataObject(objid, objsysmeta, objdata)
* dp.addData(dobj)
h6j∆��h=h>h?jO��hA}rÃ��(hC]hD]hE]hF]hI]uhKMhM]rÕ��(jR��)ÅrŒ��}rœ��(h5X(���for each objid in sysmeta.getDescribes()r–��h6j ��h=h>h?jV��hA}r—��(hC]hD]hE]hF]hI]uhKMhM]r“��hXX(���for each objid in sysmeta.getDescribes()r”��ÖÅr‘��}r’��(h5j–��h6jŒ��ubaubj\��)År÷��}r◊��(h5U�hA}rÿ��(hC]hD]hE]hF]hI]uh6j ��hM]rŸ��hn)År⁄��}r€��(h5U�hA}r‹��(jc��X���*hF]hE]hC]hD]hI]uh6j÷��hM]r›��(ht)Årfi��}rfl��(h5X���mn = cn.resolve(objid)r‡��hA}r·��(hC]hD]hE]hF]hI]uh6j⁄��hM]r‚��hy)År„��}r‰��(h5j‡��h6jfi��h=h>h?hàhA}rÂ��(hC]hD]hE]hF]hI]uhKM
hM]rÊ��hXX���mn = cn.resolve(objid)rÁ��ÖÅrË��}rÈ��(h5j‡��h6j„��ubaubah?h†ubht)ÅrÍ��}rÎ��(h5X%���objsysmeta = cn.getsysmetadata(objid)rÏ��hA}rÌ��(hC]hD]hE]hF]hI]uh6j⁄��hM]rÓ��hy)ÅrÔ��}r��(h5jÏ��h6jÍ��h=h>h?hàhA}rÒ��(hC]hD]hE]hF]hI]uhKMhM]rÚ��hXX%���objsysmeta = cn.getsysmetadata(objid)rÛ��ÖÅrÙ��}rı��(h5jÏ��h6jÔ��ubaubah?h†ubht)Årˆ��}r˜��(h5X���objdata = mn.get(objid)r¯��hA}r˘��(hC]hD]hE]hF]hI]uh6j⁄��hM]r˙��hy)År˚��}r¸��(h5j¯��h6jˆ��h=h>h?hàhA}r˝��(hC]hD]hE]hF]hI]uhKMhM]r˛��hXX���objdata = mn.get(objid)rˇ��ÖÅr���}r��(h5j¯��h6j˚��ubaubah?h†ubht)År��}r��(h5X7���construct dobj = DataObject(objid, objsysmeta, objdata)r��hA}r��(hC]hD]hE]hF]hI]uh6j⁄��hM]r��hy)År��}r��(h5j��h6j��h=h>h?hàhA}r	��(hC]hD]hE]hF]hI]uhKMhM]r
��hXX7���construct dobj = DataObject(objid, objsysmeta, objdata)r��ÖÅr��}r
��(h5j��h6j��ubaubah?h†ubht)År��}r��(h5X���dp.addData(dobj)
hA}r��(hC]hD]hE]hF]hI]uh6j⁄��hM]r��hy)År��}r��(h5X���dp.addData(dobj)r��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMhM]r��hXX���dp.addData(dobj)r��ÖÅr��}r��(h5j��h6j��ubaubah?h†ubeh?hqubah?jâ��ubeubah?jI��ubah?h†ubeh?jf��ubah?jâ��ubeubah?jI��ubah?h†ubht)År��}r��(h5Xõ��case: all other objects considered data objects
 a. scimetaid = sysmeta.getDescribedBy()
 b. mn = cn.resolve(scimetaid)
 c. scisysmeta = cn.getsystemmetadata(scimetaid)
 d. scimeta = mn.get(scimetaid)
 e. construct DataPackage dp with scisysmeta and scimeta
 f. objdata = mn.get(objid)
 g. construct dobj = DataObject(ID, sysmeta, objdata)
 h. follow step 1.3 above to get remainder of data objects in package

hA}r��(hC]hD]hE]hF]hI]uh6jâ��hM]r��jF��)År��}r��(h5U�hA}r ��(hC]hD]hE]hF]hI]uh6j��hM]r!��jL��)År"��}r#��(h5Xì��case: all other objects considered data objects
a. scimetaid = sysmeta.getDescribedBy()
b. mn = cn.resolve(scimetaid)
c. scisysmeta = cn.getsystemmetadata(scimetaid)
d. scimeta = mn.get(scimetaid)
e. construct DataPackage dp with scisysmeta and scimeta
f. objdata = mn.get(objid)
g. construct dobj = DataObject(ID, sysmeta, objdata)
h. follow step 1.3 above to get remainder of data objects in package

h6j��h=h>h?jO��hA}r$��(hC]hD]hE]hF]hI]uhKMhM]r%��(jR��)År&��}r'��(h5X/���case: all other objects considered data objectsr(��h6j"��h=h>h?jV��hA}r)��(hC]hD]hE]hF]hI]uhKMhM]r*��hXX/���case: all other objects considered data objectsr+��ÖÅr,��}r-��(h5j(��h6j&��ubaubj\��)År.��}r/��(h5U�hA}r0��(hC]hD]hE]hF]hI]uh6j"��hM]r1��jc��)År2��}r3��(h5U�hA}r4��(jh��U.hF]hE]hC]ji��U�hD]hI]jj��j®��uh6j.��hM]r5��(ht)År6��}r7��(h5X$���scimetaid = sysmeta.getDescribedBy()r8��hA}r9��(hC]hD]hE]hF]hI]uh6j2��hM]r:��hy)År;��}r<��(h5j8��h6j6��h=h>h?hàhA}r=��(hC]hD]hE]hF]hI]uhKMhM]r>��hXX$���scimetaid = sysmeta.getDescribedBy()r?��ÖÅr@��}rA��(h5j8��h6j;��ubaubah?h†ubht)ÅrB��}rC��(h5X���mn = cn.resolve(scimetaid)rD��hA}rE��(hC]hD]hE]hF]hI]uh6j2��hM]rF��hy)ÅrG��}rH��(h5jD��h6jB��h=h>h?hàhA}rI��(hC]hD]hE]hF]hI]uhKMhM]rJ��hXX���mn = cn.resolve(scimetaid)rK��ÖÅrL��}rM��(h5jD��h6jG��ubaubah?h†ubht)ÅrN��}rO��(h5X,���scisysmeta = cn.getsystemmetadata(scimetaid)rP��hA}rQ��(hC]hD]hE]hF]hI]uh6j2��hM]rR��hy)ÅrS��}rT��(h5jP��h6jN��h=h>h?hàhA}rU��(hC]hD]hE]hF]hI]uhKMhM]rV��hXX,���scisysmeta = cn.getsystemmetadata(scimetaid)rW��ÖÅrX��}rY��(h5jP��h6jS��ubaubah?h†ubht)ÅrZ��}r[��(h5X���scimeta = mn.get(scimetaid)r\��hA}r]��(hC]hD]hE]hF]hI]uh6j2��hM]r^��hy)År_��}r`��(h5j\��h6jZ��h=h>h?hàhA}ra��(hC]hD]hE]hF]hI]uhKMhM]rb��hXX���scimeta = mn.get(scimetaid)rc��ÖÅrd��}re��(h5j\��h6j_��ubaubah?h†ubht)Årf��}rg��(h5X4���construct DataPackage dp with scisysmeta and scimetarh��hA}ri��(hC]hD]hE]hF]hI]uh6j2��hM]rj��hy)Årk��}rl��(h5jh��h6jf��h=h>h?hàhA}rm��(hC]hD]hE]hF]hI]uhKMhM]rn��hXX4���construct DataPackage dp with scisysmeta and scimetaro��ÖÅrp��}rq��(h5jh��h6jk��ubaubah?h†ubht)Årr��}rs��(h5X���objdata = mn.get(objid)rt��hA}ru��(hC]hD]hE]hF]hI]uh6j2��hM]rv��hy)Årw��}rx��(h5jt��h6jr��h=h>h?hàhA}ry��(hC]hD]hE]hF]hI]uhKMhM]rz��hXX���objdata = mn.get(objid)r{��ÖÅr|��}r}��(h5jt��h6jw��ubaubah?h†ubht)År~��}r��(h5X1���construct dobj = DataObject(ID, sysmeta, objdata)rÄ��hA}rÅ��(hC]hD]hE]hF]hI]uh6j2��hM]rÇ��hy)ÅrÉ��}rÑ��(h5jÄ��h6j~��h=h>h?hàhA}rÖ��(hC]hD]hE]hF]hI]uhKMhM]rÜ��hXX1���construct dobj = DataObject(ID, sysmeta, objdata)rá��ÖÅrà��}râ��(h5jÄ��h6jÉ��ubaubah?h†ubht)Årä��}rã��(h5XC���follow step 1.3 above to get remainder of data objects in package

hA}rå��(hC]hD]hE]hF]hI]uh6j2��hM]rç��hy)Åré��}rè��(h5XA���follow step 1.3 above to get remainder of data objects in packagerê��h6jä��h=h>h?hàhA}rë��(hC]hD]hE]hF]hI]uhKMhM]rí��hXXA���follow step 1.3 above to get remainder of data objects in packagerì��ÖÅrî��}rï��(h5jê��h6jé��ubaubah?h†ubeh?jf��ubah?jâ��ubeubah?jI��ubah?h†ubeh?jf��ubah?jâ��ubeubah?jI��ubaubeubeubeubh7)Årñ��}ró��(h5U�h6h;h=h>h?h@hA}rò��(hC]hD]hE]hF]rô��j◊��ahI]rö��hauhKMhLhhM]rõ��(hO)Årú��}rù��(h5j‹��h6jñ��h=h>h?hShA}rû��(hF]hE]hC]hD]hI]hUj÷��uhKMhLhhM]rü��hXX!���Additional Packaging Technologiesr†��ÖÅr°��}r¢��(h5j‹��h6jú��ubaubhy)År£��}r§��(h5X∫��A number of additional existing technologies can and have been used for
describing the linkages between science metadata, data, and system metadata.
Here we review some packaging mechanisms that are presently in use and discuss
how they are or might be used in existing systems to provide robust linkages
among the components of a data package. These packaging mechanisms were
considered but not selected, in favor of using BagIt and OAI-ORE.r•��h6jñ��h=h>h?hàhA}r¶��(hC]hD]hE]hF]hI]uhKM!hLhhM]rß��hXX∫��A number of additional existing technologies can and have been used for
describing the linkages between science metadata, data, and system metadata.
Here we review some packaging mechanisms that are presently in use and discuss
how they are or might be used in existing systems to provide robust linkages
among the components of a data package. These packaging mechanisms were
considered but not selected, in favor of using BagIt and OAI-ORE.r®��ÖÅr©��}r™��(h5j•��h6j£��ubaubh7)År´��}r¨��(h5U�h6jñ��h=h>h?h@hA}r≠��(hC]hD]hE]hF]rÆ��jÓ��ahI]rØ��hauhKM*hLhhM]r∞��(hO)År±��}r≤��(h5jÛ��h6j´��h=h>h?hShA}r≥��(hF]hE]hC]hD]hI]hUjÌ��uhKM*hLhhM]r¥��hXX"���Ecological Metadata Language (EML)rµ��ÖÅr∂��}r∑��(h5jÛ��h6j±��ubaubhy)År∏��}rπ��(h5X‡��The Ecological Metadata Language (EML) [EML-2010]_ is a science metadata
specification that specifically is modeled around the idea of a 'data package'
that consists of science metadata that is encoded in the EML document and one
or more data objects that can be either referenced in the the document via
external references or can be included inline in the EML document directly.
Both mechanisms are in widespread use in the ecological and environmental
science communities that use EML, although the mechanism of external
references is far more prevalent at this time (2010). EML documents are
serialized as XML documents but can include data inline if properly encoded.
Each EML document defines a top-level 'packageId' which contains the globally
unique identifier for the data package. Each EML document also describes zero
or more data entities that are drawn from a simple data model that includes
data tables, spatial raster, spatial vector, and other generic entity data
types. Each entity type in EML includes a distribution section that can be
used to include the data inline or reference an external source for the data.
External references to data are found in the 'online/url' field of the
document, and can consist of URLs, URNs, and other URIs. Within the Knowledge
Network for Biocomplexity, it is common to find references to web URLs and to
indirect digital identifiers such as DOIs and ecogrid URIs. The 'url' field
also includes an attribute that allows providers to declare the external
reference as either a 'download' url, which when resolved and dereferenced
should provide the exact byte stream of the digital object, or an
'information' url, which when resolved and dereferenced provides additional
information about the object but not the exact bytes of the object. This
latter informational type of URL often leads to an HTML description of the
object, a site-specific registration or authentication page, or some other
site-specific gateway that may provide indirect access to the data.h6j´��h=h>h?hàhA}r∫��(hC]hD]hE]hF]hI]uhKM,hLhhM]rª��(hXX'���The Ecological Metadata Language (EML) rº��ÖÅrΩ��}ræ��(h5X'���The Ecological Metadata Language (EML) h6j∏��ubj.��)Årø��}r¿��(h5X���EML-2010r¡��h6j∏��h=h>h?j2��hA}r¬��(Ureftypej#��UrefwarnàU	reftargetj¡��U	refdomainj$��hF]r√��Uid4rƒ��ahE]hC]hD]hI]uhKM,hLhhM]r≈��hXX
���[EML-2010]r∆��ÖÅr«��}r»��(h5U�h6jø��ubaubhXXÆ�� is a science metadata
specification that specifically is modeled around the idea of a 'data package'
that consists of science metadata that is encoded in the EML document and one
or more data objects that can be either referenced in the the document via
external references or can be included inline in the EML document directly.
Both mechanisms are in widespread use in the ecological and environmental
science communities that use EML, although the mechanism of external
references is far more prevalent at this time (2010). EML documents are
serialized as XML documents but can include data inline if properly encoded.
Each EML document defines a top-level 'packageId' which contains the globally
unique identifier for the data package. Each EML document also describes zero
or more data entities that are drawn from a simple data model that includes
data tables, spatial raster, spatial vector, and other generic entity data
types. Each entity type in EML includes a distribution section that can be
used to include the data inline or reference an external source for the data.
External references to data are found in the 'online/url' field of the
document, and can consist of URLs, URNs, and other URIs. Within the Knowledge
Network for Biocomplexity, it is common to find references to web URLs and to
indirect digital identifiers such as DOIs and ecogrid URIs. The 'url' field
also includes an attribute that allows providers to declare the external
reference as either a 'download' url, which when resolved and dereferenced
should provide the exact byte stream of the digital object, or an
'information' url, which when resolved and dereferenced provides additional
information about the object but not the exact bytes of the object. This
latter informational type of URL often leads to an HTML description of the
object, a site-specific registration or authentication page, or some other
site-specific gateway that may provide indirect access to the data.r…��ÖÅr ��}rÀ��(h5XÆ�� is a science metadata
specification that specifically is modeled around the idea of a 'data package'
that consists of science metadata that is encoded in the EML document and one
or more data objects that can be either referenced in the the document via
external references or can be included inline in the EML document directly.
Both mechanisms are in widespread use in the ecological and environmental
science communities that use EML, although the mechanism of external
references is far more prevalent at this time (2010). EML documents are
serialized as XML documents but can include data inline if properly encoded.
Each EML document defines a top-level 'packageId' which contains the globally
unique identifier for the data package. Each EML document also describes zero
or more data entities that are drawn from a simple data model that includes
data tables, spatial raster, spatial vector, and other generic entity data
types. Each entity type in EML includes a distribution section that can be
used to include the data inline or reference an external source for the data.
External references to data are found in the 'online/url' field of the
document, and can consist of URLs, URNs, and other URIs. Within the Knowledge
Network for Biocomplexity, it is common to find references to web URLs and to
indirect digital identifiers such as DOIs and ecogrid URIs. The 'url' field
also includes an attribute that allows providers to declare the external
reference as either a 'download' url, which when resolved and dereferenced
should provide the exact byte stream of the digital object, or an
'information' url, which when resolved and dereferenced provides additional
information about the object but not the exact bytes of the object. This
latter informational type of URL often leads to an HTML description of the
object, a site-specific registration or authentication page, or some other
site-specific gateway that may provide indirect access to the data.h6j∏��ubeubjF��)ÅrÃ��}rÕ��(h5U�h6j´��h=Nh?jI��hA}rŒ��(hC]hD]hE]hF]hI]uhKNhLhhM]rœ��(jL��)År–��}r—��(h5X3��Beneficial features
* Simple data model covering common science object types, can be extended
* Library support through XML parsers on multiple platforms
* Highly structured metadata with good validation model
* Similarity to other science metadata models allows relatively simple and
  complete crosswalks
h6jÃ��h=h>h?jO��hA}r“��(hC]hD]hE]hF]hI]uhKMMhM]r”��(jR��)År‘��}r’��(h5X���Beneficial featuresr÷��h6j–��h=h>h?jV��hA}r◊��(hC]hD]hE]hF]hI]uhKMMhM]rÿ��hXX���Beneficial featuresrŸ��ÖÅr⁄��}r€��(h5j÷��h6j‘��ubaubj\��)År‹��}r›��(h5U�hA}rfi��(hC]hD]hE]hF]hI]uh6j–��hM]rfl��hn)År‡��}r·��(h5U�hA}r‚��(jc��X���*hF]hE]hC]hD]hI]uh6j‹��hM]r„��(ht)År‰��}rÂ��(h5XG���Simple data model covering common science object types, can be extendedrÊ��hA}rÁ��(hC]hD]hE]hF]hI]uh6j‡��hM]rË��hy)ÅrÈ��}rÍ��(h5jÊ��h6j‰��h=h>h?hàhA}rÎ��(hC]hD]hE]hF]hI]uhKMIhM]rÏ��hXXG���Simple data model covering common science object types, can be extendedrÌ��ÖÅrÓ��}rÔ��(h5jÊ��h6jÈ��ubaubah?h†ubht)År��}rÒ��(h5X9���Library support through XML parsers on multiple platformsrÚ��hA}rÛ��(hC]hD]hE]hF]hI]uh6j‡��hM]rÙ��hy)Årı��}rˆ��(h5jÚ��h6j��h=h>h?hàhA}r˜��(hC]hD]hE]hF]hI]uhKMJhM]r¯��hXX9���Library support through XML parsers on multiple platformsr˘��ÖÅr˙��}r˚��(h5jÚ��h6jı��ubaubah?h†ubht)År¸��}r˝��(h5X5���Highly structured metadata with good validation modelr˛��hA}rˇ��(hC]hD]hE]hF]hI]uh6j‡��hM]r���hy)År��}r��(h5j˛��h6j¸��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMKhM]r��hXX5���Highly structured metadata with good validation modelr��ÖÅr��}r��(h5j˛��h6j��ubaubah?h†ubht)År��}r	��(h5X]���Similarity to other science metadata models allows relatively simple and
complete crosswalks
hA}r
��(hC]hD]hE]hF]hI]uh6j‡��hM]r��hy)År��}r
��(h5X\���Similarity to other science metadata models allows relatively simple and
complete crosswalksr��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMLhM]r��hXX\���Similarity to other science metadata models allows relatively simple and
complete crosswalksr��ÖÅr��}r��(h5j��h6j��ubaubah?h†ubeh?hqubah?jâ��ubeubjL��)År��}r��(h5Xj���Issues
* Large data access is inefficient (XML parsing)
* External data references are unconstrained URIs
h6jÃ��h=h>h?jO��hA}r��(hC]hD]hE]hF]hI]uhKMQhLhhM]r��(jR��)År��}r��(h5X���Issuesr��h6j��h=h>h?jV��hA}r��(hC]hD]hE]hF]hI]uhKMQhM]r��hXX���Issuesr��ÖÅr��}r��(h5j��h6j��ubaubj\��)År ��}r!��(h5U�hA}r"��(hC]hD]hE]hF]hI]uh6j��hM]r#��hn)År$��}r%��(h5U�hA}r&��(jc��X���*hF]hE]hC]hD]hI]uh6j ��hM]r'��(ht)År(��}r)��(h5X.���Large data access is inefficient (XML parsing)r*��hA}r+��(hC]hD]hE]hF]hI]uh6j$��hM]r,��hy)År-��}r.��(h5j*��h6j(��h=h>h?hàhA}r/��(hC]hD]hE]hF]hI]uhKMPhM]r0��hXX.���Large data access is inefficient (XML parsing)r1��ÖÅr2��}r3��(h5j*��h6j-��ubaubah?h†ubht)År4��}r5��(h5X0���External data references are unconstrained URIs
hA}r6��(hC]hD]hE]hF]hI]uh6j$��hM]r7��hy)År8��}r9��(h5X/���External data references are unconstrained URIsr:��h6j4��h=h>h?hàhA}r;��(hC]hD]hE]hF]hI]uhKMQhM]r<��hXX/���External data references are unconstrained URIsr=��ÖÅr>��}r?��(h5j:��h6j8��ubaubah?h†ubeh?hqubah?jâ��ubeubjL��)År@��}rA��(h5XΩ���Questions
* Does the EML 'packageId' field suffice as an identifier for a DataONE data
  package per se, and if so, is the EML document the equivalent of a
  serialization of the package?

h6jÃ��h=h>h?jO��hA}rB��(hC]hD]hE]hF]hI]uhKMWhLhhM]rC��(jR��)ÅrD��}rE��(h5X	���QuestionsrF��h6j@��h=h>h?jV��hA}rG��(hC]hD]hE]hF]hI]uhKMWhM]rH��hXX	���QuestionsrI��ÖÅrJ��}rK��(h5jF��h6jD��ubaubj\��)ÅrL��}rM��(h5U�hA}rN��(hC]hD]hE]hF]hI]uh6j@��hM]rO��hn)ÅrP��}rQ��(h5U�hA}rR��(jc��X���*hF]hE]hC]hD]hI]uh6jL��hM]rS��ht)ÅrT��}rU��(h5X≠���Does the EML 'packageId' field suffice as an identifier for a DataONE data
package per se, and if so, is the EML document the equivalent of a
serialization of the package?

hA}rV��(hC]hD]hE]hF]hI]uh6jP��hM]rW��hy)ÅrX��}rY��(h5X´���Does the EML 'packageId' field suffice as an identifier for a DataONE data
package per se, and if so, is the EML document the equivalent of a
serialization of the package?rZ��h6jT��h=h>h?hàhA}r[��(hC]hD]hE]hF]hI]uhKMThM]r\��hXX´���Does the EML 'packageId' field suffice as an identifier for a DataONE data
package per se, and if so, is the EML document the equivalent of a
serialization of the package?r]��ÖÅr^��}r_��(h5jZ��h6jX��ubaubah?h†ubah?hqubah?jâ��ubeubeubeubh7)År`��}ra��(h5U�h6jñ��h=h>h?h@hA}rb��(hC]hD]hE]hF]rc��j��ahI]rd��hauhKMZhLhhM]re��(hO)Årf��}rg��(h5j��h6j`��h=h>h?hShA}rh��(hF]hE]hC]hD]hI]hUj���uhKMZhLhhM]ri��hXX���NetCDFrj��ÖÅrk��}rl��(h5j��h6jf��ubaubhy)Årm��}rn��(h5X˘��"NetCDF is an abstraction that supports a view of data as a collection of
self-describing, portable objects that can be accessed through a simple
interface. Array values may be accessed directly, without knowing details of
how the data are stored. Auxiliary information about the data, such as what
units are used, may be stored with the data. Generic utilities and application
programs can access netCDF datasets and transform, combine, analyze, or
display specified fields of the data." (NetCDF User's Guide, 2010, section
1.1, [NETCDF-2010]_) NetCDF is a self-describing data representation format
developed by Unidata that is commonly used in the atmospheric and
oceanographic communities. This data model is very similar to other existing
data models such as the OPeNDAP model and the Hierarchical Data Format (HDF).
NetCDF is self-describing in that it provides a mechanism for including
metadata about the included data directly in the serialized representation.
Many users of the format have standardized upon the use of CF (Climate Format)
metadata attributes for the representation of science metadata, although this
is not strictly required by NetCDF and many other ad-hoc approaches to
metadata provision are commonly employed by users in the community as well.h6j`��h=h>h?hàhA}ro��(hC]hD]hE]hF]hI]uhKM\hLhhM]rp��(hXX��"NetCDF is an abstraction that supports a view of data as a collection of
self-describing, portable objects that can be accessed through a simple
interface. Array values may be accessed directly, without knowing details of
how the data are stored. Auxiliary information about the data, such as what
units are used, may be stored with the data. Generic utilities and application
programs can access netCDF datasets and transform, combine, analyze, or
display specified fields of the data." (NetCDF User's Guide, 2010, section
1.1, rq��ÖÅrr��}rs��(h5X��"NetCDF is an abstraction that supports a view of data as a collection of
self-describing, portable objects that can be accessed through a simple
interface. Array values may be accessed directly, without knowing details of
how the data are stored. Auxiliary information about the data, such as what
units are used, may be stored with the data. Generic utilities and application
programs can access netCDF datasets and transform, combine, analyze, or
display specified fields of the data." (NetCDF User's Guide, 2010, section
1.1, h6jm��ubj.��)Årt��}ru��(h5X���NETCDF-2010rv��h6jm��h=h>h?j2��hA}rw��(Ureftypej#��UrefwarnàU	reftargetjv��U	refdomainj$��hF]rx��Uid5ry��ahE]hC]hD]hI]uhKM\hLhhM]rz��hXX
���[NETCDF-2010]r{��ÖÅr|��}r}��(h5U�h6jt��ubaubhXXŸ��) NetCDF is a self-describing data representation format
developed by Unidata that is commonly used in the atmospheric and
oceanographic communities. This data model is very similar to other existing
data models such as the OPeNDAP model and the Hierarchical Data Format (HDF).
NetCDF is self-describing in that it provides a mechanism for including
metadata about the included data directly in the serialized representation.
Many users of the format have standardized upon the use of CF (Climate Format)
metadata attributes for the representation of science metadata, although this
is not strictly required by NetCDF and many other ad-hoc approaches to
metadata provision are commonly employed by users in the community as well.r~��ÖÅr��}rÄ��(h5XŸ��) NetCDF is a self-describing data representation format
developed by Unidata that is commonly used in the atmospheric and
oceanographic communities. This data model is very similar to other existing
data models such as the OPeNDAP model and the Hierarchical Data Format (HDF).
NetCDF is self-describing in that it provides a mechanism for including
metadata about the included data directly in the serialized representation.
Many users of the format have standardized upon the use of CF (Climate Format)
metadata attributes for the representation of science metadata, although this
is not strictly required by NetCDF and many other ad-hoc approaches to
metadata provision are commonly employed by users in the community as well.h6jm��ubeubjF��)ÅrÅ��}rÇ��(h5U�h6j`��h=Nh?jI��hA}rÉ��(hC]hD]hE]hF]hI]uhKNhLhhM]rÑ��(jL��)ÅrÖ��}rÜ��(h5Xª���Beneficial features
* Rich data model
* Efficient (random) access to large data contents
* Extensive library support, including for parallel systems
* Efficient storage via binary format
h6jÅ��h=h>h?jO��hA}rá��(hC]hD]hE]hF]hI]uhKMrhM]rà��(jR��)Årâ��}rä��(h5X���Beneficial featuresrã��h6jÖ��h=h>h?jV��hA}rå��(hC]hD]hE]hF]hI]uhKMrhM]rç��hXX���Beneficial featuresré��ÖÅrè��}rê��(h5jã��h6jâ��ubaubj\��)Årë��}rí��(h5U�hA}rì��(hC]hD]hE]hF]hI]uh6jÖ��hM]rî��hn)Årï��}rñ��(h5U�hA}ró��(jc��X���*hF]hE]hC]hD]hI]uh6jë��hM]rò��(ht)Årô��}rö��(h5X���Rich data modelrõ��hA}rú��(hC]hD]hE]hF]hI]uh6jï��hM]rù��hy)Årû��}rü��(h5jõ��h6jô��h=h>h?hàhA}r†��(hC]hD]hE]hF]hI]uhKMohM]r°��hXX���Rich data modelr¢��ÖÅr£��}r§��(h5jõ��h6jû��ubaubah?h†ubht)År•��}r¶��(h5X0���Efficient (random) access to large data contentsrß��hA}r®��(hC]hD]hE]hF]hI]uh6jï��hM]r©��hy)År™��}r´��(h5jß��h6j•��h=h>h?hàhA}r¨��(hC]hD]hE]hF]hI]uhKMphM]r≠��hXX0���Efficient (random) access to large data contentsrÆ��ÖÅrØ��}r∞��(h5jß��h6j™��ubaubah?h†ubht)År±��}r≤��(h5X9���Extensive library support, including for parallel systemsr≥��hA}r¥��(hC]hD]hE]hF]hI]uh6jï��hM]rµ��hy)År∂��}r∑��(h5j≥��h6j±��h=h>h?hàhA}r∏��(hC]hD]hE]hF]hI]uhKMqhM]rπ��hXX9���Extensive library support, including for parallel systemsr∫��ÖÅrª��}rº��(h5j≥��h6j∂��ubaubah?h†ubht)ÅrΩ��}ræ��(h5X$���Efficient storage via binary format
hA}rø��(hC]hD]hE]hF]hI]uh6jï��hM]r¿��hy)År¡��}r¬��(h5X#���Efficient storage via binary formatr√��h6jΩ��h=h>h?hàhA}rƒ��(hC]hD]hE]hF]hI]uhKMrhM]r≈��hXX#���Efficient storage via binary formatr∆��ÖÅr«��}r»��(h5j√��h6j¡��ubaubah?h†ubeh?hqubah?jâ��ubeubjL��)År…��}r ��(h5X5��Issues
* Opaque binary format reduces long-term effectiveness for preservation
* Unspecified science metadata requirements (ad hoc community adoption)
* NetCDF actually represents multiple data models and multiple file formats,
  all of which are called NetCDF even though they are different binary
  formats
h6jÅ��h=h>h?jO��hA}rÀ��(hC]hD]hE]hF]hI]uhKMyhLhhM]rÃ��(jR��)ÅrÕ��}rŒ��(h5X���Issuesrœ��h6j…��h=h>h?jV��hA}r–��(hC]hD]hE]hF]hI]uhKMyhM]r—��hXX���Issuesr“��ÖÅr”��}r‘��(h5jœ��h6jÕ��ubaubj\��)År’��}r÷��(h5U�hA}r◊��(hC]hD]hE]hF]hI]uh6j…��hM]rÿ��hn)ÅrŸ��}r⁄��(h5U�hA}r€��(jc��X���*hF]hE]hC]hD]hI]uh6j’��hM]r‹��(ht)År›��}rfi��(h5XE���Opaque binary format reduces long-term effectiveness for preservationrfl��hA}r‡��(hC]hD]hE]hF]hI]uh6jŸ��hM]r·��hy)År‚��}r„��(h5jfl��h6j›��h=h>h?hàhA}r‰��(hC]hD]hE]hF]hI]uhKMuhM]rÂ��hXXE���Opaque binary format reduces long-term effectiveness for preservationrÊ��ÖÅrÁ��}rË��(h5jfl��h6j‚��ubaubah?h†ubht)ÅrÈ��}rÍ��(h5XE���Unspecified science metadata requirements (ad hoc community adoption)rÎ��hA}rÏ��(hC]hD]hE]hF]hI]uh6jŸ��hM]rÌ��hy)ÅrÓ��}rÔ��(h5jÎ��h6jÈ��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKMvhM]rÒ��hXXE���Unspecified science metadata requirements (ad hoc community adoption)rÚ��ÖÅrÛ��}rÙ��(h5jÎ��h6jÓ��ubaubah?h†ubht)Årı��}rˆ��(h5Xò���NetCDF actually represents multiple data models and multiple file formats,
all of which are called NetCDF even though they are different binary
formats
hA}r˜��(hC]hD]hE]hF]hI]uh6jŸ��hM]r¯��hy)År˘��}r˙��(h5Xó���NetCDF actually represents multiple data models and multiple file formats,
all of which are called NetCDF even though they are different binary
formatsr˚��h6jı��h=h>h?hàhA}r¸��(hC]hD]hE]hF]hI]uhKMwhM]r˝��hXXó���NetCDF actually represents multiple data models and multiple file formats,
all of which are called NetCDF even though they are different binary
formatsr˛��ÖÅrˇ��}r���(h5j˚��h6j˘��ubaubah?h†ubeh?hqubah?jâ��ubeubjL��)År��}r��(h5X#��Questions
* Does the spec allow for externally referenced data objects?
* What mechanisms are available for providing identifiers that are used to
  reference all of the components of the data package?
* What are the proper namespace names for the various NetCDF models and file
  formats?

h6jÅ��h=h>h?jO��hA}r��(hC]hD]hE]hF]hI]uhKMÅhLhhM]r��(jR��)År��}r��(h5X	���Questionsr��h6j��h=h>h?jV��hA}r��(hC]hD]hE]hF]hI]uhKMÅhM]r	��hXX	���Questionsr
��ÖÅr��}r��(h5j��h6j��ubaubj\��)År
��}r��(h5U�hA}r��(hC]hD]hE]hF]hI]uh6j��hM]r��hn)År��}r��(h5U�hA}r��(jc��X���*hF]hE]hC]hD]hI]uh6j
��hM]r��(ht)År��}r��(h5X;���Does the spec allow for externally referenced data objects?r��hA}r��(hC]hD]hE]hF]hI]uh6j��hM]r��hy)År��}r��(h5j��h6j��h=h>h?hàhA}r��(hC]hD]hE]hF]hI]uhKM|hM]r��hXX;���Does the spec allow for externally referenced data objects?r��ÖÅr��}r ��(h5j��h6j��ubaubah?h†ubht)År!��}r"��(h5X}���What mechanisms are available for providing identifiers that are used to
reference all of the components of the data package?hA}r#��(hC]hD]hE]hF]hI]uh6j��hM]r$��hy)År%��}r&��(h5X}���What mechanisms are available for providing identifiers that are used to
reference all of the components of the data package?r'��h6j!��h=h>h?hàhA}r(��(hC]hD]hE]hF]hI]uhKM}hM]r)��hXX}���What mechanisms are available for providing identifiers that are used to
reference all of the components of the data package?r*��ÖÅr+��}r,��(h5j'��h6j%��ubaubah?h†ubht)År-��}r.��(h5XU���What are the proper namespace names for the various NetCDF models and file
formats?

hA}r/��(hC]hD]hE]hF]hI]uh6j��hM]r0��hy)År1��}r2��(h5XS���What are the proper namespace names for the various NetCDF models and file
formats?r3��h6j-��h=h>h?hàhA}r4��(hC]hD]hE]hF]hI]uhKMhM]r5��hXXS���What are the proper namespace names for the various NetCDF models and file
formats?r6��ÖÅr7��}r8��(h5j3��h6j1��ubaubah?h†ubeh?hqubah?jâ��ubeubeubeubeubh8eubh=h>h?h@hA}r9��(hC]r:��X
���referencesr;��ahD]hE]hF]r<��j��ahI]uhKMÑhLhhM]r=��(hO)År>��}r?��(h5j��h6h8h=h>h?hShA}r@��(hF]hE]hC]hD]hI]hUj��uhKMÑhLhhM]rA��hXX
���ReferencesrB��ÖÅrC��}rD��(h5j��h6j>��ubaubcdocutils.nodes
citation
rE��)ÅrF��}rG��(h5X∆���Boyko, A., Kunze, J., Littman, J., Madden, L., Vargas, B. (2009). The BagIt File
Packaging Format (V0.96). Retrieved April 2, 2010, from
http://www.ietf.org/Internet-drafts/draft-kunze-bagit-04.txt
j�Kh6h8h=h>h?j#��hA}rH��(hC]hD]hE]rI��j0��ahF]rJ��U
boyko-2009rK��ahI]rL��hauhKMÜhLhhM]rM��(cdocutils.nodes
label
rN��)ÅrO��}rP��(h5X
���Boyko-2009hA}rQ��(hC]hD]hE]hF]hI]uh6jF��hM]rR��hXX
���Boyko-2009rS��ÖÅrT��}rU��(h5U�h6jO��ubah?UlabelrV��ubhy)ÅrW��}rX��(h5X≈���Boyko, A., Kunze, J., Littman, J., Madden, L., Vargas, B. (2009). The BagIt File
Packaging Format (V0.96). Retrieved April 2, 2010, from
http://www.ietf.org/Internet-drafts/draft-kunze-bagit-04.txth6jF��h=h>h?hàhA}rY��(hC]hD]hE]hF]hI]uhKMÜhM]rZ��(hXXâ���Boyko, A., Kunze, J., Littman, J., Madden, L., Vargas, B. (2009). The BagIt File
Packaging Format (V0.96). Retrieved April 2, 2010, from
r[��ÖÅr\��}r]��(h5Xâ���Boyko, A., Kunze, J., Littman, J., Madden, L., Vargas, B. (2009). The BagIt File
Packaging Format (V0.96). Retrieved April 2, 2010, from
h6jW��ubh~)År^��}r_��(h5X<���http://www.ietf.org/Internet-drafts/draft-kunze-bagit-04.txtr`��hA}ra��(Urefurij`��hF]hE]hC]hD]hI]uh6jW��hM]rb��hXX<���http://www.ietf.org/Internet-drafts/draft-kunze-bagit-04.txtrc��ÖÅrd��}re��(h5U�h6j^��ubah?háubeubeubjE��)Årf��}rg��(h5Xs���___________. (2010). Ecological Metadata Language (EML) Specification.
http://knb.ecoinformatics.org/software/eml/
jà��Kh6h8h=h>h?j#��hA}rh��(hC]hD]hE]ri��jƒ��ahF]rj��Ueml-2010rk��ahI]rl��h&auhKMähLhhM]rm��(jN��)Årn��}ro��(h5X���EML-2010hA}rp��(hC]hD]hE]hF]hI]uh6jf��hM]rq��hXX���EML-2010rr��ÖÅrs��}rt��(h5U�h6jn��ubah?jV��ubhy)Åru��}rv��(h5Xr���___________. (2010). Ecological Metadata Language (EML) Specification.
http://knb.ecoinformatics.org/software/eml/h6jf��h=h>h?hàhA}rw��(hC]hD]hE]hF]hI]uhKMähM]rx��(hXXG���___________. (2010). Ecological Metadata Language (EML) Specification.
ry��ÖÅrz��}r{��(h5XG���___________. (2010). Ecological Metadata Language (EML) Specification.
h6ju��ubh~)År|��}r}��(h5X+���http://knb.ecoinformatics.org/software/eml/r~��hA}r��(Urefurij~��hF]hE]hC]hD]hI]uh6ju��hM]rÄ��hXX+���http://knb.ecoinformatics.org/software/eml/rÅ��ÖÅrÇ��}rÉ��(h5U�h6j|��ubah?háubeubeubjE��)ÅrÑ��}rÖ��(h5Xı���Lagoze, C., Van de Sompel, H., Johnston, P., Nelson,
M., Sanderson, R., Warner, S. (2008). Open Archives Initiative Object Reuse
and Exchange: ORE User Guide - Primer. Retrieved November 1, 2010, from
http://www.openarchives.org/ore/1.0/primer.
jà��Kh6h8h=h>h?j#��hA}rÜ��(hC]hD]hE]rá��j&��ahF]rà��Ulagoze-2008râ��ahI]rä��hauhKMçhLhhM]rã��(jN��)Årå��}rç��(h5X���Lagoze-2008hA}ré��(hC]hD]hE]hF]hI]uh6jÑ��hM]rè��hXX���Lagoze-2008rê��ÖÅrë��}rí��(h5U�h6jå��ubah?jV��ubhy)Årì��}rî��(h5XÙ���Lagoze, C., Van de Sompel, H., Johnston, P., Nelson,
M., Sanderson, R., Warner, S. (2008). Open Archives Initiative Object Reuse
and Exchange: ORE User Guide - Primer. Retrieved November 1, 2010, from
http://www.openarchives.org/ore/1.0/primer.h6jÑ��h=h>h?hàhA}rï��(hC]hD]hE]hF]hI]uhKMçhM]rñ��(hXX…���Lagoze, C., Van de Sompel, H., Johnston, P., Nelson,
M., Sanderson, R., Warner, S. (2008). Open Archives Initiative Object Reuse
and Exchange: ORE User Guide - Primer. Retrieved November 1, 2010, from
ró��ÖÅrò��}rô��(h5X…���Lagoze, C., Van de Sompel, H., Johnston, P., Nelson,
M., Sanderson, R., Warner, S. (2008). Open Archives Initiative Object Reuse
and Exchange: ORE User Guide - Primer. Retrieved November 1, 2010, from
h6jì��ubh~)Årö��}rõ��(h5X*���http://www.openarchives.org/ore/1.0/primerrú��hA}rù��(Urefurijú��hF]hE]hC]hD]hI]uh6jì��hM]rû��hXX*���http://www.openarchives.org/ore/1.0/primerrü��ÖÅr†��}r°��(h5U�h6jö��ubah?háubhXX���.ÖÅr¢��}r£��(h5X���.h6jì��ubeubeubjE��)År§��}r•��(h5Xd���____________. (2010). NetCDF Users' Guide.
http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/
jà��Kh6h8h=h>h?j#��hA}r¶��(hC]hD]hE]rß��jy��ahF]r®��Unetcdf-2010r©��ahI]r™��h-auhKMíhLhhM]r´��(jN��)År¨��}r≠��(h5X���NETCDF-2010hA}rÆ��(hC]hD]hE]hF]hI]uh6j§��hM]rØ��hXX���NETCDF-2010r∞��ÖÅr±��}r≤��(h5U�h6j¨��ubah?jV��ubhy)År≥��}r¥��(h5Xc���____________. (2010). NetCDF Users' Guide.
http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/h6j§��h=h>h?hàhA}rµ��(hC]hD]hE]hF]hI]uhKMíhM]r∂��(hXX+���____________. (2010). NetCDF Users' Guide.
r∑��ÖÅr∏��}rπ��(h5X+���____________. (2010). NetCDF Users' Guide.
h6j≥��ubh~)År∫��}rª��(h5X8���http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/rº��hA}rΩ��(Urefurijº��hF]hE]hC]hD]hI]uh6j≥��hM]ræ��hXX8���http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/rø��ÖÅr¿��}r¡��(h5U�h6j∫��ubah?háubeubeubjE��)År¬��}r√��(h5Xç���Sauermann, L, Cyganiak, R. (2008). Cool URIs for the Semantic Web. W3C Interest Group Note 03
December 2008.  http://www.w3.org/TR/cooluris/
jà��Kh6h8h=h>h?j#��hA}rƒ��(hC]hD]hE]r≈��j>��ahF]r∆��Usauermann-cyganiak-2008r«��ahI]r»��hauhKMïhLhhM]r…��(jN��)År ��}rÀ��(h5X���Sauermann_Cyganiak-2008hA}rÃ��(hC]hD]hE]hF]hI]uh6j¬��hM]rÕ��hXX���Sauermann_Cyganiak-2008rŒ��ÖÅrœ��}r–��(h5U�h6j ��ubah?jV��ubhy)År—��}r“��(h5Xå���Sauermann, L, Cyganiak, R. (2008). Cool URIs for the Semantic Web. W3C Interest Group Note 03
December 2008.  http://www.w3.org/TR/cooluris/h6j¬��h=h>h?hàhA}r”��(hC]hD]hE]hF]hI]uhKMïhM]r‘��(hXXn���Sauermann, L, Cyganiak, R. (2008). Cool URIs for the Semantic Web. W3C Interest Group Note 03
December 2008.  r’��ÖÅr÷��}r◊��(h5Xn���Sauermann, L, Cyganiak, R. (2008). Cool URIs for the Semantic Web. W3C Interest Group Note 03
December 2008.  h6j—��ubh~)Årÿ��}rŸ��(h5X���http://www.w3.org/TR/cooluris/r⁄��hA}r€��(Urefurij⁄��hF]hE]hC]hD]hI]uh6j—��hM]r‹��hXX���http://www.w3.org/TR/cooluris/r›��ÖÅrfi��}rfl��(h5U�h6jÿ��ubah?háubeubeubj”��)År‡��}r·��(h5XY���.. _Foresite python library: http://code.google.com/p/foresite-toolkit/wiki/PythonLibraryh:Kh6h8h=h>h?j÷��hA}r‚��(jä��jç
��hF]r„��Uforesite-python-libraryr‰��ahE]hC]hD]hI]rÂ��h#auhKMòhLhhM]ubj”��)ÅrÊ��}rÁ��(h5X-���.. _Cool URIs: http://www.w3.org/TR/cooluris/h:Kh6h8h=h>h?j÷��hA}rË��(jä��j1��hF]rÈ��U	cool-urisrÍ��ahE]hC]hD]hI]rÎ��hauhKMöhLhhM]ubeubh=h>h?Usystem_messagerÏ��hA}rÌ��(hC]UlevelKhF]hE]rÓ��j��aUsourceh>hD]hI]UlineMÑUtypeUINFOrÔ��uhKMÑhLhhM]r��hy)ÅrÒ��}rÚ��(h5X-���Duplicate implicit target name: "references".hA}rÛ��(hC]hD]hE]hF]hI]uh6h3hM]rÙ��hXX-���Duplicate implicit target name: "references".rı��ÖÅrˆ��}r˜��(h5U�h6jÒ��ubah?hàubaubaUcurrent_sourcer¯��NU
decorationr˘��NUautofootnote_startr˙��KUnameidsr˚��}r¸��(hjÍ��hj(��hhHh	jÒ
��h
jt��hjâ��hj◊��h
hdhjá��hh˛hhÿhj��hj;��hjfl��hjÓ��hj��hj±��hjƒ��hjfl
��hhÆhj	��hjK��hj˝
��hj«��hh≈hj��h jö��h!jÂ
��h"jŸ��h#j‰��h$jN��h%höh&jk��h'ja��h(jÎ
��h)hÎh*j��h+j˜
��h,j��h-j©��uhM]r˝��h;ah5U�Utransformerr˛��NU
footnote_refsrˇ��}r���Urefnamesr��}r��(X���eml-2010r��]r��cdocutils.nodes
citation_reference
r��)År��}r��(h5X���[EML-2010]_jà��Kh6j∏��h?Ucitation_referencer��hA}r	��(hF]r
��jƒ��ahE]hC]hD]hI]hUjk��uhM]r��hXX���EML-2010r��ÖÅr
��}r��(h5U�h6j��ubaubaX���oai-ore]r��jÜ��aj	��]r��j	��aX���foresite python library]r��jä
��aX	���cool uris]r��(j.��jÚ��ej��]r��jÌ��ajN	��]r��jK	��aX���isrequiredby]r��j˘��aX���netcdf-2010r��]r��j��)År��}r��(h5X���[NETCDF-2010]_jà��Kh6jm��h?j��hA}r��(hF]r��jy��ahE]hC]hD]hI]hUj©��uhM]r��hXX���NETCDF-2010r��ÖÅr��}r��(h5U�h6j��ubaubaX���ore vocabulary document]r ��j…��ajŸ��]r!��j÷��aX
���boyko-2009r"��]r#��j��)År$��}r%��(h5X
���[Boyko-2009]_j�Kh6j$��h?j��hA}r&��(hF]r'��j0��ahE]hC]hD]hI]hUjK��uhM]r(��hXX
���Boyko-2009r)��ÖÅr*��}r+��(h5U�h6j$��ubaubaX���cito]r,��(j!	��jj	��eX���isreferencedby]r-��j‚��aj¸	��]r.��(j˘	��jN
��eX���lagoze-2008r/��]r0��j��)År1��}r2��(h5X���[Lagoze-2008]_jà��Kh6j��h?j��hA}r3��(hF]r4��j&��ahE]hC]hD]hI]hUjâ��uhM]r5��hXX���Lagoze-2008r6��ÖÅr7��}r8��(h5U�h6j1��ubaubaX���sauermann_cyganiak-2008r9��]r:��j��)År;��}r<��(h5X���[Sauermann_Cyganiak-2008]_jà��Kh6j��h?j��hA}r=��(hF]r>��j>��ahE]hC]hD]hI]hUj«��uhM]r?��hXX���Sauermann_Cyganiak-2008r@��ÖÅrA��}rB��(h5U�h6j;��ubaubaX���datacite2rdf]rC��j	��auUsymbol_footnotesrD��]rE��Uautofootnote_refsrF��]rG��Usymbol_footnote_refsrH��]rI��U	citationsrJ��]rK��(jF��jf��jÑ��j§��j¬��ehLhUcurrent_linerL��NUtransform_messagesrM��]rN��h2)ÅrO��}rP��(h5U�hA}rQ��(hC]UlevelKhF]hE]Usourceh>hD]hI]UlineMPUtypejÔ��uhM]rR��hy)ÅrS��}rT��(h5U�hA}rU��(hC]hD]hE]hF]hI]uh6jO��hM]rV��hXX0���Hyperlink target "conformsto" is not referenced.rW��ÖÅrX��}rY��(h5U�h6jS��ubah?hàubah?jÏ��ubaUreporterrZ��NUid_startr[��KU
autofootnotesr\��]r]��U
citation_refsr^��}r_��(j"��]r`��j$��aj/��]ra��j1��aj��]rb��j��aj9��]rc��j;��aj��]rd��j��auUindirect_targetsre��]rf��Usettingsrg��(cdocutils.frontend
Values
rh��ori��}rj��(Ufootnote_backlinksrk��KUrecord_dependenciesrl��NUrfc_base_urlrm��Uhttps://tools.ietf.org/html/rn��U	tracebackro��àUpep_referencesrp��NUstrip_commentsrq��NU
toc_backlinksrr��jw��U
language_coders��Uenrt��U	datestampru��NUreport_levelrv��KU_destinationrw��NU
halt_levelrx��KU
strip_classesry��NhSNUerror_encoding_error_handlerrz��Ubackslashreplacer{��Udebugr|��NUembed_stylesheetr}��âUoutput_encoding_error_handlerr~��Ustrictr��U
sectnum_xformr��KUdump_transformsr��NU
docinfo_xformrÇ��KUwarning_streamrÉ��NUpep_file_url_templaterÑ��Upep-%04drÖ��Uexit_status_levelrÜ��KUconfigrá��NUstrict_visitorrà��NUcloak_email_addressesrâ��àUtrim_footnote_reference_spacerä��âUenvrã��NUdump_pseudo_xmlrå��NUexpose_internalsrç��NUsectsubtitle_xformré��âUsource_linkrè��NUrfc_referencesrê��NUoutput_encodingrë��Uutf-8rí��U
source_urlrì��NUinput_encodingrî��U	utf-8-sigrï��U_disable_configrñ��NU	id_prefixró��U�U	tab_widthrò��KUerror_encodingrô��UUTF-8rö��U_sourcerõ��h>Ugettext_compactrú��àU	generatorrù��NUdump_internalsrû��NUsmart_quotesrü��âUpep_base_urlr†��U https://www.python.org/dev/peps/r°��Usyntax_highlightr¢��Ulongr£��Uinput_encoding_error_handlerr§��j��Uauto_id_prefixr•��Uidr¶��Udoctitle_xformrß��âUstrip_elements_with_classesr®��NU
_config_filesr©��]Ufile_insertion_enabledr™��àUraw_enabledr´��KU
dump_settingsr¨��NubUsymbol_footnote_startr≠��K�UidsrÆ��}rØ��(j(��jB��hHh;já��j��j;��jS��j«��j¬��jÎ
��jÁ
��jt��jv
��h≈jÔ��jö��j��jô��jï��jâ��jÑ��hdh]jM��jI��j��j��hÆj˙��j��h8j��j˝��jƒ��j��jy��j��j>��j;��j0��j$��j&��j1��hVhhôhïh≠h©hƒh¿h◊h”hÍhÊh˝h˘j��j��j'��j#��j:��j6��j÷��j“��j◊��jñ��j��j��jfl
��j€
��j	��j��jK��jF��j��j��j˝
��j˘
��j��j5��jƒ��j@��jÍ��jÊ��jN��j��j√��jø��ja��jä��jÓ��j´��j��j`��j∞��j¨��jÂ
��j·
��jŸ��j‘��js��jo��hÎj8��j˜
��jÛ
��j∆
��j¬
��j±��j/��j���j¸��jÌ��jÈ��höj��jk��jf��jfl��j€��j‰��j‡��j`��j\��jÒ
��jÌ
��jÜ��jÇ��j��j��h˛j ��hÿj��j��jˇ
��j©��j§��uUsubstitution_namesr∞��}r±��h?hLhA}r≤��(hC]hF]hE]Usourceh>hD]hI]uU	footnotesr≥��]r¥��Urefidsrµ��}r∂��ub.