Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

1. Introduction

Document Store is a Document storage repository system with features like checkin, checkout, Ingest , Delete etc for library records such as Bibliographic, Instance (Holdings and Items) etc. Most of the records are in XML format but the Document Store is format agnostic in that it stores the content as is without any type conversion. Furthermore indexing of the stored data is also supported for efficient search and retrieval. Although the Document Store is an independent system that comes with basic UI to enable supported operations, majority of interaction happens from within the code of OLE such as ingest of new records, editing of existing records, search and retrievals. 

2. Operations

2.1 Ingest

Allows storing of documents in the document store. The input should be a Request XML with a standard schema and returns the Response XML with a list of ingested UUIDs.

2.1.1 Sending the request

URL: http://localhost:9080/oledocstore/document

Method: POST

Parameters:

                  docAction=ingestContent

                  stringContent=<request.xml as described in the next section>

2.1.2      Request XML

Information about the ingest operation to be performed.

 <!--
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman","serif";}
-->
<request>&nbsp;&nbsp;&nbsp; <user>ole-khuntley</user>

&nbsp;&nbsp;&nbsp; <operation>*batchIngest*</operation>

&nbsp;&nbsp;&nbsp; <requestDocuments>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <ingestDocument id="1" category="work" type="bibliographic" format="marc">

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <content>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; See section "*Sample Input XML for Ingest*".

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </content>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </ingestDocument>

&nbsp;&nbsp;&nbsp; </requestDocuments>

</request>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.1.3     Receiving the response

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

HttpResponse should be read and interpreted as given in the next section below.

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.1.4      Response XML

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

Information about the response from the service for the given request

 <response>
  <documents>
    	<document id="1" category="work" type="bibliographic" format="marc">
      	    <uuid>8675a422-b6ad-440e-bc0d-9f0dc1526ed2</uuid>
	</document>
   </documents>
<user>ole-khuntley</user>
<operation>batchIngest</operation>
<status>Success</status>
<message>Documents ingested</message>
</response>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

Each document that is ingested will be given a UUID as specified in the response.

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.2      Check-in

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

Check-in functionality allows to modify the content of a document identified by its UUID (Universally Unique Identifier).

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.2.1     Sending the request

URL: http://localhost:9080/oledocstore/document

Method: POST

Parameters:

                  docAction=checkIn

                  stringContent=<request.xml as described in the next section>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.2.2      RequestXML

           Information about the check in  operation to be performed     

 <request>
    <user>ole-khuntley</user>
    <operation>checkIn</operation>
    <requestDocuments>
        <ingestDocument id="5325d77a-8221-4fda-a78f-6d2f96e0b059" category="work"
                               type="bibliographic" format="marc">
            <content>
		See section "Sample Input XML for Check in".
	</content>
        </ingestDocument>
    </requestDocuments>
</request>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.2.3     Receiving the response

HttpResponse should be read and interpreted as given in the next section below.

2.2.4      ResponseXML

            Informationabout the response from the service for the given request 

 <?xml version="1.0" encoding="UTF-8"?>
<OLEDocstore-call>
	<request>
		<command>Check-in</command>
		<params/>
	</request>
	<response>
		<status>Success</status>
		<message>Successfully checked in </message>
	</response>
</OLEDocstore-call>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.3      Check-out

This operation retrieves the content of a document given its UUID.

2.3.1      Sendingthe request

URL: http://localhost:9080/oledocstore/document

Method: POST

Parameters:

                  docAction=checkOut

                  uuid=<uuid of the document to be retrieved>

2.3.2      Receiving the response

            HttpResponseshould be read and interpreted as given in the next section below.

2.3.3      Response XML

Content of the document with the given UUID.

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.4      Delete

Deletes a record from Document Store based on the given UUID.

2.4.1      Sendingthe request

URL: http://localhost:9080/oledocstore/document

Method: POST

Parameters:

                  docAction=delete or deleteWithLinkedDocs

                  requestContent=<request.xml as described in the next section>

2.4.2     Request XML

         Information about the delete  operation to be performed. The "Id" attribute of <ingestDocument> should be a valid UUID of a previously ingested document.

 <request>
    <user>ole-khuntley</user>
    <operation>delete</operation>
    <requestDocuments>
<ingestDocument id="715e92f0-b3ab-4263-96d9-58183a23e6d5"><linkedIngestDocuments></linkedIngestDocuments></ingestDocument>
 </requestDocuments>
</request>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.4.3      Receiving the response

             HttpResponse should be read and interpreted as given in the next section below.

2.4.4      Response XML

 Information about the response from the service for the given request.

 <response>
  <documents>
    <document id="715e92f0-b3ab-4263-96d9-58183a23e6d5"></document>
  </documents>
  <user>ole-khuntley</user>
  <operation>delete</operation>
  <status>Success</status>
</response>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.5     Appendix

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.5.1    Sample Input XML for Ingest

 <request>
    <user>ole-khuntley</user>
    <operation>batchIngest</operation>
    <requestDocuments>
        <ingestDocument id="1" category="work" type="bibliographic" format="marc">
            <content><![CDATA[
<collection xmlns="http://www.loc.gov/MARC21/slim">
    <record>
        <leader>01142cam 2200301 a 4500</leader>
        <controlfield tag="001">92005291</controlfield>
        <controlfield tag="003">DLC</controlfield>
        <controlfield tag="005">19930521155141.9</controlfield>
        <controlfield tag="008">920219s1993 caua j 000 0 eng</controlfield>
        <datafield tag="010" ind1=" " ind2=" ">
            <subfield code="a">92005291</subfield>
        </datafield>
        <datafield tag="020" ind1=" " ind2=" ">
            <subfield code="a">0152038655 :</subfield>
            <subfield code="c">$15.95</subfield>
        </datafield>
        <datafield tag="040" ind1=" " ind2=" ">
            <subfield code="a">DLC</subfield>
            <subfield code="c">DLC</subfield>
            <subfield code="d">DLC</subfield>
        </datafield>
        <datafield tag="042" ind1=" " ind2=" ">
            <subfield code="a">lcac</subfield>
        </datafield>
        <datafield tag="050" ind1="0" ind2="0">
            <subfield code="a">PS3537.A618</subfield>
            <subfield code="b">A88 1993</subfield>
        </datafield>
        <datafield tag="082" ind1="0" ind2="0">
            <subfield code="a">811/.52</subfield>
            <subfield code="2">20</subfield>
        </datafield>
        <datafield tag="100" ind1="1" ind2=" ">
            <subfield code="a">Sandburg, Carl,</subfield>
            <subfield code="d">1878-1967.</subfield>
        </datafield>
        <datafield tag="245" ind1="1" ind2="0">
            <subfield code="a">Arithmetic /</subfield>
            <subfield code="c">
                Carl Sandburg ; illustrated as an anamorphic adventure by Ted Rand.
            </subfield>
        </datafield>
        <datafield tag="250" ind1=" " ind2=" ">
            <subfield code="a">1st ed.</subfield>
        </datafield>
        <datafield tag="260" ind1=" " ind2=" ">
            <subfield code="a">San Diego :</subfield>
            <subfield code="b">Harcourt Brace Jovanovich,</subfield>
            <subfield code="c">c1993.</subfield>
        </datafield>
        <datafield tag="300" ind1=" " ind2=" ">
            <subfield code="a">1 v. (unpaged) :</subfield>
            <subfield code="b">ill. (some col.) ;</subfield>
            <subfield code="c">26 cm.</subfield>
        </datafield>
        <datafield tag="500" ind1=" " ind2=" ">
            <subfield code="a">One Mylar sheet included in pocket.</subfield>
        </datafield>
        <datafield tag="520" ind1=" " ind2=" ">
            <subfield code="a">
                A poem about numbers and their characteristics. Features anamorphic, or distorted,
                drawings which can be
                restored to normal by viewing from a particular angle or by viewing the image's
                reflection in the
                provided Mylar cone.
            </subfield>
        </datafield>
        <datafield tag="650" ind1=" " ind2="0">
            <subfield code="a">Arithmetic</subfield>
            <subfield code="x">Juvenile poetry.</subfield>
        </datafield>
        <datafield tag="650" ind1=" " ind2="0">
            <subfield code="a">Children's poetry, American.</subfield>
        </datafield>
        <datafield tag="650" ind1=" " ind2="1">
            <subfield code="a">Arithmetic</subfield>
            <subfield code="x">Poetry.</subfield>
        </datafield>
        <datafield tag="650" ind1=" " ind2="1">
            <subfield code="a">American poetry.</subfield>
        </datafield>
        <datafield tag="650" ind1=" " ind2="1">
            <subfield code="a">Visual perception.</subfield>
        </datafield>
        <datafield tag="700" ind1="1" ind2=" ">
            <subfield code="a">Rand, Ted,</subfield>
            <subfield code="e">ill.</subfield>
        </datafield>
    </record>
</collection>
                ]]>
            </content>
        </ingestDocument>
    </requestDocuments>
</request>

<!-- /* Style Definitions */ table.MsoNormalTable

Unknown macro: {mso-style-name}

-->

2.5.2    Sample Input file for Check In

The "Id" attribute of <ingestDocument> should be a valid UUID of a previously ingested document.

 <request>
    <user>ole-khuntley</user>
    <operation>batchIngest</operation>
    <requestDocuments>
        <ingestDocument id="1" category="work" type="bibliographic" format="marc">
            <content><![CDATA[
<collection xmlns="http://www.loc.gov/MARC21/slim">
    <record>
        <leader>01142cam 2200301 a 4500</leader>
        <controlfield tag="001">92005291</controlfield>
        <controlfield tag="003">DLC</controlfield>
        <controlfield tag="005">19930521155141.9</controlfield>
        <controlfield tag="008">920219s1993 caua j 000 0 eng</controlfield>
        <datafield tag="010" ind1=" " ind2=" ">
            <subfield code="a">92005291</subfield>
        </datafield>
        <datafield tag="020" ind1=" " ind2=" ">
            <subfield code="a">0152038655 :</subfield>
            <subfield code="c">$15.95</subfield>
        </datafield>
        <datafield tag="040" ind1=" " ind2=" ">
            <subfield code="a">DLC</subfield>
            <subfield code="c">DLC</subfield>
            <subfield code="d">DLC</subfield>
        </datafield>
        <datafield tag="042" ind1=" " ind2=" ">
            <subfield code="a">lcac</subfield>
        </datafield>
        <datafield tag="050" ind1="0" ind2="0">
            <subfield code="a">PS3537.A618</subfield>
            <subfield code="b">A88 1993</subfield>
        </datafield>
        <datafield tag="082" ind1="0" ind2="0">
            <subfield code="a">811/.52</subfield>
            <subfield code="2">20</subfield>
        </datafield>
        <datafield tag="100" ind1="1" ind2=" ">
            <subfield code="a">Sandburg, Carl,</subfield>
            <subfield code="d">1878-1967.</subfield>
        </datafield>
        <datafield tag="245" ind1="1" ind2="0">
            <subfield code="a">Arithmetic /</subfield>
            <subfield code="c">
                Carl Sandburg ; illustrated as an anamorphic adventure by Ted Rand.
            </subfield>
        </datafield>
        <datafield tag="250" ind1=" " ind2=" ">
            <subfield code="a">1st ed.</subfield>
        </datafield>

    </record>
</collection>
                ]]>
            </content>
        </ingestDocument>
    </requestDocuments>
</request>

   <user>ole-khuntley</user>
    <operation>batchIngest</operation>
    <requestDocuments>
        <ingestDocument id="1" category="work" type="bibliographic" format="marc">
            <content>
                             See section "Sample Input XML for Ingest".
               </content>
        </ingestDocument>
    </requestDocuments>
</request>

  • No labels