 Hello, I'm Stephen Davison, Head of Digital Library Development at the Caltech Library. I'm joined today by Mike Hucker, Research Applications Developer at the Library, who is the Principal Architect of our Controlled Digital Lending Application, Dibs, or Digital Borrowing Service. During the pandemic, controlled digital lending has received a lot of attention, and versions have been utilized by a number of institutions and services, such as the HathiTrust Emergency Temporary Access Service, the Internet Archives National Emergency Library, and Brown and Princeton universities, among others, both of whom have presented on their controlled digital lending services at previous CNI forums. Our objective here today is to share Caltech's thinking behind developing our own solution, walk through the resulting application, and discuss future development in our local context. As the title of our presentation suggests, we see controlled digital lending as a key piece of service architecture extending beyond the pandemic. Until now, most library services have tended to be either very open, as is the case of most digital library and repository collections, or highly controlled, as with our physical and licensed collections. As library collections and services become increasingly fragmented, we need more flexibility in the way we provide access. During the pandemic, we all shared similar needs to provide access to materials and services that would normally be accessed in physical form. None of our existing systems had the right functional mix, which highlighted the problem inherent in having a variety of specialized systems with many components with overlapping functions, but just not the right mix of the purpose at hand. The list here won't be exactly the same as at your institution, but their purposes will be a digital library system, a data repository, an institutional repository, a catalog, an ILS, or a library services platform, and course management and reserves systems. Our options were to continue what we had done earlier in the pandemic, which was to provide links to password protected PDFs stored in box, a very rudimentary solution. Or second, a second choice would be to seek a commercial solution, which really wasn't available at the time, and which is an option is really only now becoming available. Fenders are beginning to offer this. Or to take advantage of the crisis and build some functionality that we had wanted in the past, but for which we had not had the time, the incentive or resources. He chose this last option. We identified four areas of development that we thought would provide some longer term payoff, and they're listed here. First, implementation of the triple I F. International image interoperability framework, and we long wanted to use the universal viewer as with that. They've both been on our radar for years, and we also wanted to improve our ability to manage and personalize services. We've also been working on ways to align and normalize metadata across our various systems in recent years, and I'll talk about that a little more later in the talk. We also wanted to be sure to build functionality that complemented what we had already and could be repurposed to enhance other services. I imagine that most of you will be familiar with the six requirements listed here from the position statement posted at control digital lending.org. Adherents to these are likely to provide a CDL implementation with the best chance of meeting the fair use factors on the copyright law. Dibs, our digital borrowing system adheres to these. I'm now going to pass the baton to Mike, who will introduce you to Hi, I'm Mike, and I'm going to describe a little bit more about the digital borrowing system or dibs that Caltech Library is implementing to make it possible for us to provide access to materials that we can't get electronically in another way. The basic concept is that Caltech Library staff will take materials off the shelves and scan them, and then we make the digital copies available through the controlled digital lending system implemented in dibs. Viewer patrons view the items through a web browser based viewer. Time viewing is time limited and the number of copies available for simultaneous checkout from the system is exactly equal to the number of copies pulled from circulation. So there's always a one to one ratio. The software system consists of four main parts. There's a small server component running on our local hardware. There's a browser based viewer. There's some automation, some workflow automation that automatically converts the scanned copies of the materials to the format needed by the viewer. And then there's a small whiteway component running on Amazon Web Services to supply the viewer with the files. Next, I will go through and show you a little bit about what the user experiences from the both the patron and the staff user experience. So here's an example of a page describing an item available to be borrowed through dibs. We expect that patrons, students will receive information about the items relevant to a particular course through a course syllabi or other communications, and they'll be basically provide links to the pages for the items in question. So this is an example of such a page. This particular book is just for demo purposes, not actually something we took off the shelves. And as you can see, the page provides some basic metadata about the the title cover page scan and information about whether it's available, a button to request a loan, and then some information about the duration of a loan. Durations are set per item in the staff interface that I'll describe later. And if an item is not available for loan at the moment, there's there will be some text explaining why and I'll also demonstrate that basically as if a student wants to request a loan for an item for this item, they click the button and they get a confirmation dialogue that also provides a little bit of information about the terms of the loan, they click OK, they proceed and are immediately sent to the viewer, the viewer is universal viewer. It's a open source viewing utility that is compliant with triple IF, so it uses triple IF on the back end to for the file format and the way that files are fetched from a service. As you can see, the interface provides what you might expect from a viewer, some nails of the pages, the ability to page through the ability to zoom in on pages and so forth. And then at the top, it provides some information about the loan. One is the expiration time for this particular item and then also a button to explicitly end the loan. Loans will time out, but as a courtesy, if somebody is wants to finish a loan, they're done with the item. They can request to end it immediately in that way. It's the item becomes available to other people, but the copy of that item becomes available to other people. So I'm going to go ahead and end the loan now. You get a confirmation dialogue just to make sure that that's what the person wanted and then they can click OK. And they'll send, they'll be sent to a thank you page that also has a link to where they can provide anonymous feedback for us if they want to tell us about their experience. And if I go back now to the same item for that, you can see, whoops, you can see the that the text now provides information about the terms of the loan changing because now it's there's a period of time after someone loans, it's loans and item that they basically kind of cooling off period before they can loan the same item again. So this is one of the messages it might they might receive the person might receive telling them it's too soon after the last borrow of the same item. And it tells them when it's going to be available again and the button is disabled. OK, so that's basically the the experience for patrons and people who want to borrow items. Next, I will show you what it's like for the staff. So here I'm showing the top page of the staff interface to Dibs. This is available to users who are authenticated as staff. And as you can see, it provides information about the title and author barcode of the items available. There's a couple of examples here. There's also a column of checkboxes to determine whether or not a given item is available to be loaned, as well as information about the loan time and the number of copies being made available. The checkbox for the available to loan is because scanning takes time. And so staff may begin to scan a particular item and it may take a few days. And in the meantime, they want to start entering information into Dibs. So this allows them to create an entry but not make it visible or accessible to patrons until they actually make it available to loan. That's what the checkbox is for. So when they're done scanning, then they can check this and then it actually is something that is available to patron for patrons to go out and take a loan of the item. Along the bottoms, there's a couple of buttons that you can see here. One is to add a new item. So if we click that, you can you get to a page where you provide basic information, barcode of the item, number of copies to be made available and then loan duration. And I just give an example here and give it one copy for six hours. And when you click add, what it does is goes and pulls information from our ILS, which is tinned to get the information about the title, author and other metadata from the ILS based on the barcode. So as you can see, it's filled out the information for what I just put in, which is I think the most of the ghost map one at the bottom here. And I didn't have to type that in. It got it automatically the and it's, as you can see, it's not marked to available to loan because that takes a human interaction to to make that actually available to be borrowed. At the right, there's an item. There's a button for editing an item in case you need to change some parameters, a number of copies or the loan duration. And then there's a button to copy the link to the page describing the item and has the button to loan to do the loans. Clicking on the title of the item also sends you to that page. So as you can see here, this is the one I just added. And because I didn't check the available to loan, its mark does not currently available through dibs. We'll go back to this. And then the barcode is a link to the item in our ILS, in this case tinned. So by click that, it just sends me to the page in our in our library system. And then at the bottom, the other button is manage item list. And if you click that, that brings another page listing the items and currently the only functionalities to disable or sorry, delist the item and basically take it out of the dibs system, if that's necessary for whatever reason. In the future, we may add some more functionality to that. And that's basically basically the system for for dibs for staff. And there are some additional pages for with help information for users and and the feedback page, which I mentioned before. But this is basically it. So just a few words about the architecture of the system. It's written in Python. It uses a framework called Bottle. And it is it uses an SQLite database for storing information about items and loans. The universal viewer is written in JavaScript. That's an open source component we got from other developers. And the backend triple IF serverless application is also written in JavaScript once under Node.js on Amazon Lambda. Images are scanned to TIF and then converted to parameter TIFs. And that's what's served to the viewers by the serverless triple IF component. We were careful about patron privacy. So the information stored is basically the minimum we could get away with. We store only the institutional identity of a person making a loan and the title and duration and only during the time of the loan. Nothing is kept afterward. We don't have any technical statistics. The system doesn't record who or what, when it's just not kept at all. So we tried to be careful about the privacy of patrons. And that's basically it. The system is available now on GitHub. It is still in development. So we're improving it and hopefully we'll make it more capable in a short time. But it's functional now and we're getting feedback from people now. So if you're interested, please let us know what more we could do with it. Thanks. Thanks, Mike. During the remainder of this talk, I'm going to discuss our plans for further development of Dibs, focusing on a version that will support special collections and archives virtual reading room services and then describe how that fits into a broader approach to building services around repositories and digital assets. Here I have listed the six control digital lending requirements on the left hand side in an abbreviated form with special collections version on the right hand side. These are not intended to be a similar list of special collections requirements, but just prompts for the sorts of questions and considerations we will have to take into account when providing virtual reading room services. Just as with the general collection, special collections materials are generally owned by the institution, usually without the associated copyright. Donated collections will have donor agreements, but of course the vast majority of these predate the Internet and therefore usually don't include any sort of perpetual license to provide online access. So ambiguity exists just as it does with general collections. The issue of the owned to loaned ratio and one user at a time is much less relevant as special collections use is historically very different from general collection practice. However, given that the institution is often not the copyright holder, being able to tightly control access would be important. For instance, being able to provide access to a specific class of users for a research or educational purpose would be highly desirable and often defensible under fair use. Providing copies of special collections materials for personal or educational use is a very common service, but there needs to be the ability to control what materials can be downloaded and by whom. The bottom line is that there are strong parallels between the CDL requirements and the needs of a virtual reading room. The main difference is the need to vary access controls by patron and by item, and those are the changes that we will make in generalizing dibs for use in the special collections context. There will also need to be an integration with archive space, which will be the metadata source in this case and the relevant digital asset. I'd like to finish with a brief look at the context in which this would happen. This diagram is obviously a greatly simplified overview of our architecture, but it summarizes our approach. Dibs is one of a number of projects that aim to be as simple as possible and to avoid duplication of already existing services without adding dependency. We are in the process of migrating to the Folio library services platform for its breadth, modularity, and being open source. We are integrating Islandora and archive space functionality to minimize metadata replication and to provide an integrated user experience. And although we are tracking all our digital asset management metadata in archive space and storing access copies in Islandora, at least for the time being, we are avoiding using a single repository for our master copies, preferring a mixture of local storage, cloud storage, such as Glacier, and tape storage, along with selected use of chronopolis for preservation of master files. The Caltech People project aims to create consistent representation of researchers across all our systems, building on archive space agent records. Feeds is a service that provides repository data in a variety of formats for use in webpages or for consumption by other services. A key design feature of Feeds is that services are built against static copies of metadata that is written out of repositories nightly. This not only provides very easily consumed data, but is a form of continuous migration and provides a daily backup copy of all of our repository metadata as a bonus. Our nascent publishing services platform is another example of very simple components combined with existing services to provide an easily supported and sustainable environment. This Cell Atlas is the first book published by the library on our open publishing platform, which combines Caltech data, our data repository, GitHub, RStudio, and Bookdown, which is an RStudio package for long form authoring using Markdown. Our approach uses a lightweight framework of open source tools to produce sustainable publications. The Cell Atlas was published in late 2020 and we plan to work with other authors on campus to create additional books in a similar manner. The Markdown markup language and RStudio make it straightforward for authors to prepare their manuscripts and for the library to render multimedia publications online. Our approach is not unique and has been embraced in various ways across many institutions and projects, but I hope that both Dibs and its integration into our environment, as we have described it, has been instructive and helpful. Here are links to the slides and the projects that I have mentioned, along with contact information for the principal architect in each case. Feel free to contact any one of us with your questions. Thank you very much.