hbz / lobid-resources

Transformation, web frontend, and API for the hbz catalog as LOD
http://lobid.org/resources
Eclipse Public License 2.0
8 stars 7 forks source link

Retrieve the "Buchungsnummer" in hasItem #1466

Closed gregorbg closed 1 year ago

gregorbg commented 2 years ago

In our library (DE-38-459), we assign a unique integer ID (we call it "Mediennummer") to every physical resource. This ID is registered as part of our "Lokaldaten" and it is also physically present in the resource, i.e. we glue a sticker on the inside of the book cover. This sticker contains a barcode and I see a lot of potential here to snap it with a smartphone (or even a proper barcode scanner) and quickly retrieve all relevant information, for example during our annual inventory.

Example: http://lobid.org/resources/HT016717822 Desired information: JAP/0001835

The information is currently not present on lobid-resources (Ctrl+F for JAP/ yields only the signature JAP/Ls4-2-1CK3) however it is obtainable through a direct search at http://okeanos-www.hbz-nrw.de/F/. The Okeanos search doesn't support permalinks afaik, so search for Nihongo no bunkei to hyōgen 82 to obtain the example item. Clicking on the "Bestand" details for 38/459 K: Ostasiat.Sem./Japan. yields the following information (as of writing this issue): image

The fact that this screenshot contains the desired information leads me to believe that it might(?) be available for lobid to consume. Investigating the MAB21 export for the example item shows field 088 subfields a, b, c and e, but for some reason the d is missing. Is there a connection here?

TobiasNx commented 2 years ago

Since we are preparing the migration to ALMA I checked if this info in the MARC record. This info is not provided: https://alma.lobid.org/marcxml/990184218340206441

blackwinter commented 2 years ago

DE-38 is not in Alma yet, they're migrating with Wave 3 next year.

gregorbg commented 2 years ago

Here's another example: https://lobid.org/resources/HT018217583 This book is also present in DE-61 which I believe already runs on ALMA.

For reference, here's the screenshot from the Okeanos "Bestandsanzeige": image

Again, I am interested in the information JAP/0001286 from the row 38/459 K. This corresponds to the information 131724901 from the row 61 D. In the MARCXML, this information seems to be present at datafield ITM, subfield b via https://alma.lobid.org/marcxml/990203397630206441.

<datafield tag="ITM" ind1=" " ind2=" ">
    <subfield code="H">22237131910006443</subfield>
    <subfield code="x">00</subfield>
    <subfield code="f">BOOK</subfield>
    <subfield code="v">00</subfield>
    <subfield code="p">11</subfield>
    <subfield code="X">System</subfield>
    <subfield code="U">2014-03-31 10:59:00</subfield>
    <subfield code="Y">2021-04-01 08:59:32</subfield>
    <subfield code="h">false</subfield>
    <subfield code="P">24/a/n/1</subfield>
    <subfield code="M">49HBZ_DUE</subfield>
    <subfield code="s">1</subfield>
    <subfield code="d">8</subfield>
    <subfield code="V">import</subfield>
    <subfield code="b">131724901</subfield>
    <subfield code="a">23237131900006443</subfield>
    <subfield code="R">Maintenance count: 009</subfield>
    <subfield code="c">nc/e8864</subfield>
    <subfield code="S">ZB14-3665</subfield>
    <subfield code="D">20140407</subfield>
    <subfield code="W">2014-03-31 12:59:00</subfield>
    <subfield code="u">X0001</subfield>
    <subfield code="w">X0001</subfield>
</datafield>
gregorbg commented 2 years ago

Also worth noting that the book from my original post (HT016717822) is present in DE-465, which seems to be included in the corresponding MARC record pasted above:

https://alma.lobid.org/marcxml/990184218340206441

Again, datafield ITM, subfield b contains the information D00122717 which seems to correspond to what I want based on the Okeanos Bestandsanzeige: image

<datafield tag="ITM" ind1=" " ind2=" ">
    <subfield code="H">22384203760006446</subfield>
    <subfield code="x">D81</subfield>
    <subfield code="f">BOOK</subfield>
    <subfield code="v">D81</subfield>
    <subfield code="p">10</subfield>
    <subfield code="X">System</subfield>
    <subfield code="U">2011-02-25 10:59:00</subfield>
    <subfield code="Y">2021-05-14 12:05:56</subfield>
    <subfield code="h">false</subfield>
    <subfield code="n">HEQ11610-2</subfield>
    <subfield code="P">06</subfield>
    <subfield code="Q">OA</subfield>
    <subfield code="M">49HBZ_UDE</subfield>
    <subfield code="s">1</subfield>
    <subfield code="d">8</subfield>
    <subfield code="V">import</subfield>
    <subfield code="b">D00122717</subfield>
    <subfield code="a">23384203750006446</subfield>
    <subfield code="t">8</subfield>
    <subfield code="c">HEQ11610-2</subfield>
    <subfield code="S">M11-969</subfield>
    <subfield code="B">11-3833</subfield>
    <subfield code="K">+ 2 Beilagen und 1 CD Rom</subfield>
    <subfield code="D">20110525</subfield>
    <subfield code="W">2011-02-25 11:59:00</subfield>
    <subfield code="u">D0001</subfield>
    <subfield code="w">D0001</subfield>
</datafield>
TobiasNx commented 1 year ago

I suggest sdo:serialNumber for this information because barcode is marked as serialNumber in example 3 of schema.org books describing a holding of a book in a library (https://schema.org/Book):

 <!-- Uses both the "Book" and "Product" item types to support Offer relationships -->

     <div itemscope itemtype="https://schema.org/Book" itemid="#record">
       <link itemprop="additionalType" href="https://schema.org/Product"/>
       <h3 itemprop="name">Le concerto</h3>
       <div>
           Bibliographic Details
           <table>
             <tr>
               <th>Main Author: </th>
               <td itemprop="author">Ferchault, Guy</td>
             </tr>
           </table>
       </div>
     </div>

     <div>
         Holdings details from Anytown City Library
         <table>
           <!-- Example of a copy available for loan -->
           <tr itemscope itemtype="https://schema.org/Offer">
             <th>Copy </th>
             <td>Available
               <link itemprop="availability" href="https://schema.org/InStock">
               <div>Barcode: <span itemprop="serialNumber">CONC91000937</span></div>
               <div>Call number: <span itemprop="sku">780 R2</span></div>
               <div>Library: <span itemprop="offeredBy" itemscope itemtype="https://schema.org/Library" itemid="http://library.anytown.gov.uk" >Anytown City Library</span></div>
               <link itemprop="businessFunction" href="http://purl.org/goodrelations/v1#LeaseOut">
               <link itemprop="itemOffered" href="#record">
             </td>
           </tr>
         </table>
     </div>

@acka47 what do you think?

<datafield tag="ITM" ind1=" " ind2=" ">
      <subfield code="H">2211409310006459</subfield>
      <subfield code="x">FHA</subfield>
      <subfield code="f">SCORE</subfield>
      <subfield code="v">FHA</subfield>
      <subfield code="p">04</subfield>
      <subfield code="X">System</subfield>
      <subfield code="U">2003-12-12 10:59:00</subfield>
      <subfield code="Y">2022-07-20 19:23:39</subfield>
      <subfield code="h">false</subfield>
      <subfield code="n">C 10 / MolU / Erle</subfield>
      <subfield code="M">49HBZ_FUK</subfield>
      <subfield code="s">0</subfield>
      <subfield code="d">8</subfield>
      <subfield code="V">import</subfield>
      <subfield code="b">E1000000037300</subfield>
      <subfield code="a">2311409300006459</subfield>
      <subfield code="R">Maintenance count: 026</subfield>
      <subfield code="c">C 10 / MolU / Erle</subfield>
      <subfield code="r">TRANSIT</subfield>
      <subfield code="B">644 / 93</subfield>
      <subfield code="D">20031212</subfield>
      <subfield code="W">2003-12-12 11:59:00</subfield>
      <subfield code="u">Z9036</subfield>
      <subfield code="w">Z9036</subfield>
    </datafield>
...
<datafield tag="ITM" ind1=" " ind2=" ">
      <subfield code="H">22506545990006449</subfield>
      <subfield code="x">MUPA_BIB</subfield>
      <subfield code="f">BOOK</subfield>
      <subfield code="v">MUPA_BIB</subfield>
      <subfield code="X">AMO_TL2_FIX</subfield>
      <subfield code="U">2022-07-10 10:59:00</subfield>
      <subfield code="Y">2022-07-12 11:10:54</subfield>
      <subfield code="h">false</subfield>
      <subfield code="J">lose Bl&#228;tter fehlen</subfield>
      <subfield code="Q">SISIS-Ausleihz&#228;hler Migrationsjahr: 0 | SISIS-Ausleihz&#228;hler Vor-Migrationsjahr: 0 | SISIS-Ausleihz&#228;hler vorletztes Migrationsjahr: 0</subfield>
      <subfield code="M">49HBZ_ULM</subfield>
      <subfield code="s">1</subfield>
      <subfield code="d">8</subfield>
      <subfield code="V">import</subfield>
      <subfield code="b">Z156-011049</subfield>
      <subfield code="O">Fernleihkonditionen: 3</subfield>
      <subfield code="a">23506545980006449</subfield>
      <subfield code="R">DBS-Systematik: 0</subfield>
      <subfield code="c">P KLS Mol 4.1</subfield>
      <subfield code="W">2022-07-11 09:03:36</subfield>
      <subfield code="u">MUPA</subfield>
      <subfield code="w">MUPA</subfield>
    </datafield>

to

  "hasItem" : [ {
    "label" : "lobid Bestandsressource",
    "type" : [ "Item", "PhysicalObject" ],
    "callNumber" : "C 10 / MolU / Erle",
    "serialNumber" : "E1000000037300",
    "currentLocation" : "Z9036 / FHA",
    "heldBy" : {
      "id" : "http://lobid.org/organisations/DE-1156#!",
      "isil" : "DE-1156",
      "label" : "lobid Organisation"
    },
    "id" : "http://lobid.org/items/990016782920206441:DE-1156:C 10 / MolU / Erle#!"
  }, {
    "label" : "lobid Bestandsressource",
    "type" : [ "Item", "PhysicalObject" ],
    "callNumber" : "P KLS Mol 4.1",
    "serialNumber" : "Z156-011049",
    "currentLocation" : "MUPA / MUPA_BIB",
    "heldBy" : {
      "id" : "http://lobid.org/organisations/DE-6#!",
      "isil" : "DE-6",
      "label" : "lobid Organisation"
    },
    "id" : "http://lobid.org/items/990016782920206441:DE-6:P KLS Mol 4.1#!"
  } ]
acka47 commented 1 year ago

I ws sceptical about using sdo:serialNumber but then I found this comment by @dbs from 2015 https://github.com/schemaorg/schemaorg/issues/733#issuecomment-138774311 and I realized I misunderstood how it should be used. Dan writes there:

So we're mapping the shelving location to schema:availableAtOrFrom, the barcode to schema:serialNumber, and the call number to schema:sku.

This aligns with our use case. So, +1 from my side.

TobiasNx commented 1 year ago

@gregorbg serialNumber should now be included in test.alma, when it is deployed.

dr0i commented 1 year ago

@TobiasNx it should after nexts full indexing next Monday. Then we should see it at http://test.lobid.org/resources/990184218340206441.json.

gregorbg commented 1 year ago

There it is! 😄 (per https://test.lobid.org/resources/990184218340206441.json) image

Thank you very much, I hope this will make our annual inventory much easier as soon as DE-38 has completed the move to Alma. image

dr0i commented 1 year ago

Thx @gregorbg for opening the issue. So we are good prepared when your library joins Alma. Closing.