bic-org-uk / bic-lcf

BIC Library Communication Framework
https://bic-org-uk.github.io/bic-lcf
Other
7 stars 4 forks source link

Inter-Library Loans (ILLs) #243

Open dthomas-bic opened 4 years ago

dthomas-bic commented 4 years ago

This is a placeholder for using LCF as the basis for inter-library loan request/responses. At the BIC LCF Review Group Meeting on 18 April 2019 it was agreed that the necessary communications required to automate inter-library loan services between LMS/ILS systems would best be provided with LCF rather than BIC Realtime for Libraries (library webservices). Such functionality might include, but not be limited to, searching for items and identifying available copies, placing ILL requests from a borrowing library and handling responses and item circulation from supplying libraries. cf. NCIP (not widely adopted in UK).

franciscave commented 4 years ago

I'm aware that ISO 10161 and ISO 18626 are existing standards for ILL. Do we need to take these into account in determining how to implement ILL in LCF? In other words, how important is it to ensure interoperability between an LCF-based ILL solution and one using the existing standards?

dthomas-bic commented 4 years ago

Francis,

This is quite complicated. Firstly I should mention that I only raised the ILL topic to establish which of the two BIC projects, LCF or Webservices, it belonged to. Secondly I have doubts whether a new ILL system could actually be adopted easily. This is because it requires the near synchronization of availability of client and server software across such a range of LMS system types and a large number of libraries. Still we mustn’t give up!

ISO standards are not something I come across in the UK, but are common in the US. In the UK we still get requests for ISO 10161 in tenders but this is a legacy hangover from an old system specification. No one really needs it or would use it if delivered. British Library don’t support it anymore. ISO 10161 was very “heavy” to implement I believe. Too complex. So I think ISO 18626 is sort of ISO-Lite. I don’t know of it in the UK but in the US I suspect there are some sites.

There are 2 architectures common in ILL: 1 Peer to peer: LMS at library A communicates direct with LMS at library B. Currently a lot of that is done by email, and not even structured email. That’s increasingly unreliable as modern security around emails tends to block the messages. So although sender Library A might have an LMS ILL module as client, the recipient has to read their mail box and do everything manually. Also any replies they send to library A by email would have to be manually dealt with. So a protocol would be desirable with sender and recipient clients running on all LMS.

2 Broker system: Staff work with a central broker system. The sender and recipients messages are sent from broker to each LMS. Here I’m hearing of brokers who are implementing using each LMS’s proprietary web services rather than an ISO standard or other protocol. Precisely what we wanted to avoid. But LMS love it because they don’t have to do so much. The broker does all the ILL work. NCIP has been used in the UK for this type of architecture with UnityUK ( a public library ILL broker system).

OCLC has a huge influence in the US on ILL activities and has several different systems it has acquired.

Regards, David

From: Francis Cave notifications@github.com Sent: 03 June 2020 12:28 To: bic-org-uk/bic-lcf bic-lcf@noreply.github.com Cc: David Thomas david.thomas@sirsidynix.com; Author author@noreply.github.com Subject: Re: [bic-org-uk/bic-lcf] Inter-Library Loans (ILLs) (#243)

I'm aware that ISO 10161 and ISO 18626 are existing standards for ILL. Do we need to take these into account in determining how to implement ILL in LCF? In other words, how important is it to ensure interoperability between an LCF-based ILL solution and one using the existing standards?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/bic-org-uk/bic-lcf/issues/243#issuecomment-638135515, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANV7LYS67TRGEDRI22BTPS3RUYXTFANCNFSM4JJS62ZA.

[SirsiDynix]http://www.sirsidynix.com/

[Facebook]http://www.facebook.com/SirsiDynix

[Twitter]http://twitter.com/sirsidynix

[LinkedIn]http://www.linkedin.com/company/sirsidynix

David Thomas SENIOR TECHNICAL ADVISOR II

UK: +44 (0)1923 202900 ext. 2916 FR: 0800-906-580 ext. 2916 ES: +34-900-971-850 ext. 2916

Disclaimer

The information contained in this communication from the sender is confidential. It is intended solely for use by the recipient and others authorized to receive it. If you are not the recipient, you are hereby notified that any disclosure, copying, distribution or taking action in relation of the contents of this information is strictly prohibited and may be unlawful.

This email has been scanned for viruses and malware, and may have been automatically archived by Mimecast Ltd, an innovator in Software as a Service (SaaS) for business. Providing a safer and more useful place for your human generated data. Specializing in; Security, archiving and compliance. To find out more visit the Mimecast website.

franciscave commented 4 years ago

David, thank you very much. I find this background information really helpful. From what you've said I would suspect that, while web services based upon LCF could potentially be used in either a peer-to-peer architecture or with intermediary brokers, the former is more likely to gain traction in the marketplace (in the UK at least), given that brokers have already invested a lot in implementing LCF-proprietary web services.

mdovey commented 1 year ago

LCF ILL Proposal

Scenario

Library Manager System (LMS) running a LCF (ILL Profile) on https://lms.server/lcf/1.0 Interlibrary Loan System (ILL) (either ILL library or ILL broker) running LCF (ILL Profile) on https://ill.server/lcf/1.0 LMS identified by ILL using URL https://ill.server/lcf/1.0/patrons/lms-server-id Item to be requested using ULL identified using URL https://ill.server/lcf/1.0/items/item-id

ILL Request

POST to https://ill.server/lcf/1.0/loans

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loan xmlns=http://ns.bic.org.uk/lcf/1.0>
  <patron-ref>https://ill.server/lcf/1.0/patrons/lms-id</patron-ref>
  <item-ref>https://ill.server/lcf/1.0/items/item-server-id<item-ref>
  <start-date>checkout-date</start-date>
  <loan-status>01</loan-status>
</loan>

Response: https://ill.server/lcf/1.0/loans/loan-id (for tracking) (for digital might include Digital-item-access-link: https://werwejkhkavh)

ILL Return

PUT to https://ill.server/lcf/1.0/loans/loan-id

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loan xmlns=http://ns.bic.org.uk/lcf/1.0
        xmlns:ns2="http://a9.com/-/spec/opensearch/1.1/">
  <identifier>https://ill.server/lcf/1.0/loans/loan-id</identifier>
  <patron-ref>https://lms.server/lcf/1.0/patrons/lms-server-id</patron-ref>
  <loan-status>08</loan-status><!-- checked in -->
</loan>

ILL Reservation/Hold

POST to https://ill.server/lcf/1.0/reservations

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reservation xmlns="http://ns.bic.org.uk/lcf/1.0">
  <reservation-type>02</reservation-type> <!-- any copy -->
  <patron-ref>https://lms.server/lcf/1.0/patrons/lms-server-id</patron-ref>
  <item-ref>https://ill.server/lcf/1.0/items/item-id<item-ref>
</reservation>

Response: https://ill.server/lcf/1.0/reservations/reservation-id (for tracking)

Notify LMS of loan changes

POST to https://lms.server/lcf/1.0/loans

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loan xmlns="http://ns.bic.org.uk/lcf/1.0>
  <loan-ref>https://ill.server/lcf/1.0/loan/loan-id</loan-ref>
  <patron-ref>https://lms.server/lcf/1.0/patrons/lms-server-id</patron-ref>
  <item-ref>https://ill.server/lcf/1.0/items/item-id<item-ref> 
  <start-date>checkout-date</start-date>
  <end-due-date>due-date</end-due-date>
  <loan-status>01</loan-status><!—checked-out but could use other codes, for failure etc.-->
</loan>

Notify LMS of Reservation changes

POST to https://lms.server/lcf/1.0/reservations

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reservation xmlns="http://ns.bic.org.uk/lcf/1.0" 
      xmlns:ns2="http://a9.com/-/spec/opensearch/1.1/">
  <identifier> https://ill.server/lcf/1.0/reservations/reservation-id</identifier>
  <reservation-type>02</reservation-type> <!-- any copy -->
  <patron-ref>https://lms.server/lcf/1.0/patrons/lms-server-id</patron-ref>
  <item-ref>https://ill.server/lcf/1.0/items/item-id<item-ref>
  <reservation-status>01</reservation-status> <!-- item available - in hold queue -->
</reservation>

Request LMS to alert patrons of ILL item

POST to https://lms.server/lcf/1.0/message-alerts

<message-alert xmlns="http://ns.bic.org/lcf/1.0">
<!-- optional fields: priority display-type display-constraint start-date end-date -->
  <message-type>01</message-type> <!-- Action required -->
  <message-text>
    <message-format>03</message-format> <!-- Unicode -->
    <text>Message text…</text>
  </message-text>
  <audience>03</audience>  
     <!-- Patrons related to specified loans 
         (or 04 for reservations -->  
  <loan-ref>https://ill.server/lcf/1.0/loans/loan1-id</loan-ref>
  <loan-ref>https://ill.server/lcf/1.0/loans/loan2-id</loan-ref>
  <loan-ref>https://ill.server/lcf/1.0/loans/loan3-id</loan-ref>
</message-alert>

Get ILL-Loan costs, ill loan period etc.

POST to https://ill.server/lcf/1.0/loans?quotation=y

LMS Updates ILL

https://ill.server/ill/lcf/1.0/loans/-loan-id

ILL Updates LMS

PATCH to https://lms.server/ill/lcf/1.0/loans/ with <loan-identifier>https://ill.server/ill/lcf/1.0/loans/loan-id</loan-indentifier>