Catmandu - an introduction

Patrick Hochstenbach (Ghent University Library), Carsten Klee & Johann Rolschewski (Berlin State Library)

Expected time slot: 6 hours

Audience: Systems librarians, metadata librarians and data managers.

Expertise: Participants should be familiar with command line interfaces (CLI) and have a basic knowledge of the MARC21 format.

Required: Laptop with VirtualBox (https://www.virtualbox.org/wiki/Downloads) installed. Organisers will provide a VirtualBox image (Linux guest system) beforehand.

Programming experience: Not required.

Catmandu (http://librecat.org) is a command line tool to access and convert data from your digital library, research services or any other open data sets. With Catmandu you can:

  • download data via protocols such as OAI-PMH, SRU, SPARQL and Linked Data Fragments.
  • convert library formats such as MARC, MODS, Dublin Core but also others like JSON, YAML, XML, Excel and many more.
  • generate RDF and speak the Semantic Web.
  • index data into databases such as Solr, Elasticsearch and MongoDB.
  • use a simple Fix language to convert metadata into any format you like.

After a short introduction to Catmandu and its features, we will present the command line interface (CLI) and the domain specific language (DSL). Participants will be guided to extract data from files and APIs, to transform data records to a common data model and to load it into a data store. We will also show how your data can be enriched via API look-ups.


An introduction to Project Blacklight

Matthias Vandermaesen

Expected time slot: 6 hours

Audience: Library / Cultural Heritage technologists, collection developers

Expertise: Beginner to intermediate

Required: A laptop with a working copy of Virtualbox (http://virtualbox.org) pre-installed

Programming experience: You should have an understanding of the command line (Bash), and basic programming notions (loops, conditionals, variables, functions,...). Hands-on experience with (S)CSS, HTML, Ruby and XML will definitely be an advantage throughout this bootcamp.

Project Blacklight (http://projectblacklight.org/) is a discovery platform framework for libraries, archives, cultural heritage institutions,... At its core, this framework provides an easy to deploy and customisable faceted search machine powered by Apache Solr. First designed and developed at Stanford University, this framework is now used by institutions around the world to provide userfriendly and easy on-line access to their collections. This bootcamp will give participants a hands-on dive in Project Blacklight and covers aspects such as:

  • Introduction and overview
  • Installation and setup,
  • Adding and updating records
  • Customising and extending the data model
  • Customising and extending search capabilities
  • Customising the layout through templating
  • Extending Project Blacklight with extra functionality.

Participants will leave this bootcamp with these take aways:
  • Understand what Project Blacklight is and its capabilities.
  • Able to setup Project Blacklight for your own prototyping purposes.
  • Able to consider Project Blacklight as a potentially useful technology during technical analysis or procurement phase within the context of a dissemination project.


From LOD to LOUD: building and using JSON-LD APIs

Fabian Steeg, Adrian Pohl, Pascal Christoph

Expected time slot: 6 hours

Audience: librarians and developers working with linked open data

Expertise: basic command line and text editor usage

Required: Laptop running VirtualBox. Before the workshop we will publish detailed installation instructions and at the bootcamp we will provide a fully configured virtual machine.

Programming experience: Not required but helpful

Linked Open Usable Data (LOUD) extends Linked Open Data (LOD) by focussing on use cases, being as simple as possible, and providing developer friendly web APIs with JSON-LD. This bootcamp will introduce you to the basic concepts of LOUD, web APIs, and JSON-LD. You'll learn how to publish and document data as LOUD, and how to use that data in different contexts.
In this bootcamp, we will:

  • Convert RDF data into usable JSON-LD
  • Index and query the data with Elasticsearch
  • Create a simple web application using the data
  • Visualize the data with Kibana
  • Document the data with Hypothesis annotations
  • Use the data with OpenRefine


Open Access Transformation in Practice - DeepGreen for repository users and operators

Dr. Thomas Dierkes, Julia Alexandra Goltz-Fellgiebel, Julia Boltze, Cornelia Hoffmann

Expected time slot: 2 hours

Audience: Operators of institutional repositories, university libraries, libraries of other research institutions

Expertise: Apart from editing and handling normal text files no special knowledge required

Required: Laptop computers, internet connection

Programming experience: Not required

Funded by the German Research Foundation the DeepGreen project (https://deepgreen.kobv.de/de/deepgreen/) is developing an automated workflow to transfer scholarly publications from publishers to open access repositories. Publishers deposit data files (metadata and full text) and DeepGreen is matching them to authorized repositories using affiliations included in the publishers metadata. Repositories can upload a file with possible name variations of their institution into their DeepGreen account. This so-called match-config-file improves a successful matching process when configured thoroughly. The Bootcamp will focus on the proper configuration of the match-config-file. Participants will be guided to generate suitable match-config-files for several examples (both universities and research institutions). In a concluding part of the Bootcamp, participants will discuss their results of the matching process and share difficulties, comments and new insights that occurred during the configuration.


Building flexible forms with autocompletion for your library web apps

Uwe Dierolf

Expected time slot: 3-4 hours

Audience: Web developers

Expertise: People with experience in developing web based software especially Javascript and any kind of software on your server (PHP, Python etc.)

Required: Laptop with a browser

Almost every web based application offers some kind of forms. Especially in database driven applications users have to enter values into fields either when inserting or updating a record but also when entering data for a search requests. When editing fields in a form selectize.js supports autocompletion in either a synchronous but also in an asynchronous way to make the selection of possible values for a field easy and convenient. We are using this plugin in our self-developed PHP framework "dbkit" (which stands for database toolkit and which is similar to PHP Symfony) but it can also be used in other smaller web applications. This plugin can be used easily and offers not only autocompletion but also rendering features. In our library it's part of our institutional repository KITopen containing all the publications and research data of KIT. Maybe in the future it will also be part of the CRIS system which is in a development process. Selectize.js is a great way to enhance the usability of your own web applications! This bootcamp gives you a deep insight into the usage of selectize.js


Replace yourself with a painfully complex bash script...or try Ansible

Chad Nelson

Expected time slot: 3 hours

Audience: Systems librarians, systems operators, Devops

Expertise: Basic Linux Administration

Required: OSX or Linux laptop (Windows w/ Linux subsystem should work), Python (2 or 3) installed locally, virtualbox

Programming experience: Not required, but would be helpful

Ansible is an open-source configuration management and build orchestration tool designed to make system automation easier. This workshop will introduce participants of the main components of Ansible, guide them through writing an ansible playbook, and will cover some best practices for writing maintainable and reusable Ansible scripts.

By the end of the bootcamp, participants should be ready to start using Ansible for daily work, and will have the foundations for building more complex playbooks and roles with Ansible