€cdocutils.nodes document q)q}q(U nametypesq}q(Xinvestigator toolkitqNXitk architectureqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUinvestigator-toolkitqhUitk-architecturequUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqXh/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,(hXInvestigator Toolkitq-hhhhhUtitleq.h}q/(h ]h!]h"]h#]h%]uh'Kh(hh]q0cdocutils.nodes Text q1XInvestigator Toolkitq2…q3}q4(hh-hh+ubaubcdocutils.nodes paragraph q5)q6}q7(hXThe 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;h1XThe 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(hUhhhhhUcompoundqBh}qC(h ]h!]qDUtoctree-wrapperqEah"]h#]h%]uh'Nh(hh]qFcsphinx.addnodes toctree qG)qH}qI(hUhh@hhhUtoctreeqJh}qK(UnumberedqLKU includehiddenqM‰hXdesign/itk-overviewqNUcaptionqONUglobqP‰h#]h"]U titlesonlyqQ‰h ]h!]h%]UentriesqR]qS(NXdesign/itk-webqT†qUNXdesign/itk-metadataqV†qWNXdesign/itk-analysisqX†qYNXdesign/itk-librariesqZ†q[eUhiddenq\‰U includefilesq]]q^(hThVhXhZeUmaxdepthq_Kuh'K h]ubaubh)q`}qa(hUhhhhhhh}qb(h ]h!]h"]h#]qchah%]qdhauh'Kh(hh]qe(h*)qf}qg(hXITK Architectureqhhh`hhhh.h}qi(h ]h!]h"]h#]h%]uh'Kh(hh]qjh1XITK Architectureqk…ql}qm(hhhhhfubaubh5)qn}qo(hXOutline 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]qrh1XOutline 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€(hUhhwubaubeubeubahUU transformerqNU footnote_refsq‚}qƒUrefnamesq„}q…Usymbol_footnotesq†]q‡Uautofootnote_refsqˆ]q‰Usymbol_footnote_refsqŠ]q‹U citationsqŒ]qh(hU current_lineqŽNUtransform_messagesq]qUreporterq‘NUid_startq’KU autofootnotesq“]q”U citation_refsq•}q–Uindirect_targetsq—]q˜Usettingsq™(cdocutils.frontend Values qšoq›}qœ(Ufootnote_backlinksqKUrecord_dependenciesqžNU rfc_base_urlqŸUhttps://tools.ietf.org/html/q U tracebackq¡ˆUpep_referencesq¢NUstrip_commentsq£NU toc_backlinksq¤Uentryq¥U language_codeq¦Uenq§U datestampq¨NU report_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Á‰U source_linkqÂNUrfc_referencesqÃNUoutput_encodingqÄUutf-8qÅU source_urlqÆNUinput_encodingqÇU utf-8-sigqÈU_disable_configqÉNU id_prefixqÊUU tab_widthqËKUerror_encodingqÌUUTF-8qÍU_sourceqÎhUgettext_compactqψU generatorqÐNUdump_internalsqÑNU smart_quotesqÒ‰U pep_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݈U raw_enabledqÞKU dump_settingsqßNubUsymbol_footnote_startqàKUidsqá}qâ(hhhh`uUsubstitution_namesqã}qähh(h}qå(h ]h#]h"]Usourcehh!]h%]uU footnotesqæ]qçUrefidsqè}qéub.