Äcdocutils.nodes document q)Åq}q(U nametypesq}q(X���investigator toolkitqNX���itk architectureqNuUsubstitution_defsq}q Uparse_messagesq ]qUcurrent_sourceqNU decorationq NUautofootnote_startqKUnameidsq}q(hUinvestigator-toolkitqhUitk-architecturequUchildrenq]qcdocutils.nodes section q)Åq}q(U rawsourceqU�UparentqhUsourceqXh���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/itk-overview.txtqUtagnameqUsectionqU attributesq}q(Udupnamesq ]Uclassesq!]Ubackrefsq"]Uidsq#]q$haUnamesq%]q&hauUlineq'KUdocumentq(hh]q)(cdocutils.nodes title q*)Åq+}q,(hX���Investigator Toolkitq-hhhhhUtitleq.h}q/(h ]h!]h"]h#]h%]uh'Kh(hh]q0cdocutils.nodes Text q1X���Investigator Toolkitq2ÖÅq3}q4(hh-hh+ubaubcdocutils.nodes paragraph q5)Åq6}q7(hX��The Investigator Toolkit provides a suite of software tools that are useful for the various audiences that DataONE serves. The tools fall in a number of categories, which are further developed here, with examples of potential applications that would fit into each category.q8hhhhhU paragraphq9h}q:(h ]h!]h"]h#]h%]uh'Kh(hh]q;h1X��The Investigator Toolkit provides a suite of software tools that are useful for the various audiences that DataONE serves. The tools fall in a number of categories, which are further developed here, with examples of potential applications that would fit into each category.q<ÖÅq=}q>(hh8hh6ubaubcdocutils.nodes compound q?)Åq@}qA(hU�hhhhhUcompoundqBh}qC(h ]h!]qDUtoctree-wrapperqEah"]h#]h%]uh'Nh(hh]qFcsphinx.addnodes toctree qG)ÅqH}qI(hU�hh@hhhUtoctreeqJh}qK(UnumberedqLK�U includehiddenqMâhX���design/itk-overviewqNUcaptionqONUglobqPâh#]h"]U titlesonlyqQâh ]h!]h%]UentriesqR]qS(NX���design/itk-webqTÜqUNX���design/itk-metadataqVÜqWNX���design/itk-analysisqXÜqYNX���design/itk-librariesqZÜq[eUhiddenq\âUincludefilesq]]q^(hThVhXhZeUmaxdepthq_Kuh'K h]ubaubh)Åq`}qa(hU�hhhhhhh}qb(h ]h!]h"]h#]qchah%]qdhauh'Kh(hh]qe(h*)Åqf}qg(hX���ITK Architectureqhhh`hhhh.h}qi(h ]h!]h"]h#]h%]uh'Kh(hh]qjh1X���ITK ArchitectureqkÖÅql}qm(hhhhhfubaubh5)Åqn}qo(hX��Outline of class structure for the client library. There are two fundamental elements: nodes and granules. The former representing the base of Member and Coordinating Node functionality, and the later representing the (currently) smallest addressable unit of content in DataONE.qphh`hhhh9h}qq(h ]h!]h"]h#]h%]uh'Kh(hh]qrh1X��Outline of class structure for the client library. There are two fundamental elements: nodes and granules. The former representing the base of Member and Coordinating Node functionality, and the later representing the (currently) smallest addressable unit of content in DataONE.qsÖÅqt}qu(hhphhnubaubcdocutils.nodes comment qv)Åqw}qx(hX¡��@startuml images/itk_structure.png NodeClient --|> CNodeClient NodeClient --|> MNodeClient DataOneClient .. CNodeClient DataOneClient .. MNodeClient DataOneClient --|> CachingDataOneClient Granule .. SystemMetadata Granule --|> DataObject Granule --|> ScienceMetadata Granule --|> DataPackage class CNodeClient { Node[] : resolve(Identifier pid) } class DataOneClient { CNodeClient : getCNodeClient() MNodeClient : getMNodeClient() Identifier[] : search(String query, long start, long count) Granule : get(Identifier) } class Granule { - DataOneClient : client - DataOneClient : getClient() Identifier : getPid() ObjectFormatIdentifier : getFormatId() long : getSize() ByteStream : get(Node node) Granule[] : getPackages() } class DataObject { Granule[] : getDocumentedBy() } class ScienceMetadata { Granule[] : getDocuments() } class DataPackage { Granule[] : getGranules() ScienceMetadata[] : getDocuments() DataObject[] : getData() } class SystemMetadata { + serialVersion : xs.long[1..1] + identifier : Identifier[1..1] + formatid : ObjectFormatIdentifier[1..1] + size : xs.unsignedLong[1..1] + checksum : Checksum[1..1] + submitter : Subject[1..1] + rightsHolder : Subject[1..1] + accessPolicy : AccessPolicy[0..1] + replicationPolicy : ReplicationPolicy[0..1] + obsoletes : Identifier[0..1] + obsoletedBy : Identifier[0..1] + dateUploaded : xs.dateTime[1..1] + dateSysMetadataModified : xs.dateTime[1..1] + originMemberNode : NodeReference[0..1] + authoritativeMemberNode : NodeReference[0..1] + replica : Replica[0..*] } @endumlhh`hhhUcommentqyh}qz(U xml:spaceq{Upreserveq|h#]h"]h ]h!]h%]uh'Keh(hh]q}h1X¡��@startuml images/itk_structure.png NodeClient --|> CNodeClient NodeClient --|> MNodeClient DataOneClient .. CNodeClient DataOneClient .. MNodeClient DataOneClient --|> CachingDataOneClient Granule .. SystemMetadata Granule --|> DataObject Granule --|> ScienceMetadata Granule --|> DataPackage class CNodeClient { Node[] : resolve(Identifier pid) } class DataOneClient { CNodeClient : getCNodeClient() MNodeClient : getMNodeClient() Identifier[] : search(String query, long start, long count) Granule : get(Identifier) } class Granule { - DataOneClient : client - DataOneClient : getClient() Identifier : getPid() ObjectFormatIdentifier : getFormatId() long : getSize() ByteStream : get(Node node) Granule[] : getPackages() } class DataObject { Granule[] : getDocumentedBy() } class ScienceMetadata { Granule[] : getDocuments() } class DataPackage { Granule[] : getGranules() ScienceMetadata[] : getDocuments() DataObject[] : getData() } class SystemMetadata { + serialVersion : xs.long[1..1] + identifier : Identifier[1..1] + formatid : ObjectFormatIdentifier[1..1] + size : xs.unsignedLong[1..1] + checksum : Checksum[1..1] + submitter : Subject[1..1] + rightsHolder : Subject[1..1] + accessPolicy : AccessPolicy[0..1] + replicationPolicy : ReplicationPolicy[0..1] + obsoletes : Identifier[0..1] + obsoletedBy : Identifier[0..1] + dateUploaded : xs.dateTime[1..1] + dateSysMetadataModified : xs.dateTime[1..1] + originMemberNode : NodeReference[0..1] + authoritativeMemberNode : NodeReference[0..1] + replica : Replica[0..*] } @endumlq~ÖÅq}qÄ(hU�hhwubaubeubeubahU�UtransformerqÅNU footnote_refsqÇ}qÉUrefnamesqÑ}qÖUsymbol_footnotesqÜ]qáUautofootnote_refsqà]qâUsymbol_footnote_refsqä]qãU citationsqå]qçh(hUcurrent_lineqéNUtransform_messagesqè]qêUreporterqëNUid_startqíKU autofootnotesqì]qîU citation_refsqï}qñUindirect_targetsqó]qòUsettingsqô(cdocutils.frontend Values qöoqõ}qú(Ufootnote_backlinksqùKUrecord_dependenciesqûNUrfc_base_urlqüUhttps://tools.ietf.org/html/q†U tracebackq°àUpep_referencesq¢NUstrip_commentsq£NU toc_backlinksq§Uentryq•U language_codeq¶UenqßU datestampq®NUreport_levelq©KU_destinationq™NU halt_levelq´KU strip_classesq¨Nh.NUerror_encoding_error_handlerq≠UbackslashreplaceqÆUdebugqØNUembed_stylesheetq∞âUoutput_encoding_error_handlerq±Ustrictq≤U sectnum_xformq≥KUdump_transformsq¥NU docinfo_xformqµKUwarning_streamq∂NUpep_file_url_templateq∑Upep-%04dq∏Uexit_status_levelqπKUconfigq∫NUstrict_visitorqªNUcloak_email_addressesqºàUtrim_footnote_reference_spaceqΩâUenvqæNUdump_pseudo_xmlqøNUexpose_internalsq¿NUsectsubtitle_xformq¡âUsource_linkq¬NUrfc_referencesq√NUoutput_encodingqƒUutf-8q≈U source_urlq∆NUinput_encodingq«U utf-8-sigq»U_disable_configq…NU id_prefixq U�U tab_widthqÀKUerror_encodingqÃUUTF-8qÕU_sourceqŒhUgettext_compactqœàU generatorq–NUdump_internalsq—NUsmart_quotesq“âUpep_base_urlq”U https://www.python.org/dev/peps/q‘Usyntax_highlightq’Ulongq÷Uinput_encoding_error_handlerq◊h≤Uauto_id_prefixqÿUidqŸUdoctitle_xformq⁄âUstrip_elements_with_classesq€NU _config_filesq‹]Ufile_insertion_enabledq›àUraw_enabledqfiKU dump_settingsqflNubUsymbol_footnote_startq‡K�Uidsq·}q‚(hhhh`uUsubstitution_namesq„}q‰hh(h}qÂ(h ]h#]h"]Usourcehh!]h%]uU footnotesqÊ]qÁUrefidsqË}qÈub.