Difference between revisions of "A Guide for the Perplexed"

From Code4Lib
Jump to: navigation, search
(People with a background in libraries / archives / museums)
(add dspace, samvera)
 
(36 intermediate revisions by 19 users not shown)
Line 6: Line 6:
  
 
Advice in this guide should focus on concrete, immediately applicable skills whenever possible. This document should be a curriculum guide, not a textbook, so before attempting to write an article on a broadly applicable subject, check to see if wikipedia has one to which you could link and contribute.  
 
Advice in this guide should focus on concrete, immediately applicable skills whenever possible. This document should be a curriculum guide, not a textbook, so before attempting to write an article on a broadly applicable subject, check to see if wikipedia has one to which you could link and contribute.  
 +
 +
Samples of Curriculums:
 +
 +
* [https://docs.google.com/document/d/122dK_3JpK5URdNBfRG_CPiwP9m_Imc1gD3vnPV-C4Mo/edit?hl=en&authkey=CK-a5M8K Google Doc for Hydra Curriculum]
 +
* [http://interact.webstandards.org/curriculum WaSP InterACT Curriculum.]
  
 
== Who is this for? ==
 
== Who is this for? ==
Line 12: Line 17:
  
 
Learning about technology can be intimidating, especially when it is a departure from the areas you're used to studying. You may have been put into a situation where you are responsible for managing or completing a technology project, but you don't understand the technology involved, and you're having a hard time finding information about it. Don't worry, this is surprisingly common and you are not alone. Many of the members of the code4lib community are self-taught, and we're here to help.
 
Learning about technology can be intimidating, especially when it is a departure from the areas you're used to studying. You may have been put into a situation where you are responsible for managing or completing a technology project, but you don't understand the technology involved, and you're having a hard time finding information about it. Don't worry, this is surprisingly common and you are not alone. Many of the members of the code4lib community are self-taught, and we're here to help.
 +
 +
Here's a good blog post aimed at people in this category: [http://onebiglibrary.net/story/advice-to-a-library-school-student Advice to a Library School Student by Dan Chudnov]
  
 
=== People with a background in technology / computer science ===
 
=== People with a background in technology / computer science ===
 +
 +
=== People hiring programmers into library technology ===
 +
 +
<blockquote>
 +
Focus more on the why and use-cases rather than the technology. From a
 +
programming perspective much of the technology isn't terribly
 +
difficult and is well known at a basic level. How it's used, why
 +
certain choices were made is the most important information to convey.
 +
If you hired a programmer for a specific task, don't focus on
 +
dictating technology, they should tell you what is current, but rather
 +
what you need and want from the application. Helping them understand
 +
how the data is accessed by your end-users if probably the most
 +
valuable information you can convey.
 +
 +
Be prepared to answer questions and frustrations with library
 +
standards that aren't really machine actionable. One older example is
 +
METS, while it is XML, there is very little you can do to infer higher
 +
a higher level of organization without extensive best practice
 +
description or profiles.
 +
 +
-- [http://www.mail-archive.com/code4lib@listserv.nd.edu/msg11061.html Mike Smorul]
 +
</blockquote>
  
 
== Why is it necessary? ==
 
== Why is it necessary? ==
  
 
== Broad areas of library technology ==
 
== Broad areas of library technology ==
 +
 +
=== Data Formats ===
 +
 +
Data formats and protocols.
 +
 +
* [http://www.dlib.indiana.edu/~jenlrile/metadatamap/ Seeing Standards: A Visualization of the Metadata Universe]
 +
 +
==== MaRC ====
 +
 +
[http://en.wikipedia.org/wiki/MARC_standards MaRC] stands for Machine Readable Cataloging, and many folks in the code4lib community find themselves working with MARC records at some point.
 +
 +
* [http://wiki.code4lib.org/index.php/Working_with_MaRC Working with MaRC]
 +
* [http://journal.code4lib.org/articles/3832 Interpreting MARC: Where's the Bibliographic Data?]
 +
* [http://rocky.uta.edu/doran/charsets/marc.html Coded Character Sets: A Technical Primer for Librarians]
 +
 +
==== METS ====
 +
 +
See https://www.loc.gov/standards/mets/ for the standard.
 +
 +
Tools and software:
 +
* https://www.loc.gov/standards/mets/mets-tools.html
 +
* http://www.cdlib.org/services/access_publishing/dsc/tools/mets_toolkit.html
 +
 +
==== IIIF ====
 +
 +
* http://iiif.io/
 +
 +
==== ONIX for Books ====
 +
 +
The [http://en.wikipedia.org/wiki/Onix_%28publishing_protocol%29 ONIX] family of standards includes the ONIX for Books Product Information format, which functions much like MaRC in the publishing, wholesaling, distribution and retail businesses.
 +
 +
* [http://www.editeur.org/83/Overview/ Overview of ONIX for Books]
 +
 +
Much of the data in a MaRC record can in principle be derived from the ONIX record for the same ISBN; see the recent mapping from ONIX to MaRC21:
 +
 +
* [http://www.editeur.org/96/ONIX-and-MARC21/ONIX 3.0 to MaRC21 mapping report and crosswalk spreadsheet]
  
 
=== Integrated Library Systems ===  
 
=== Integrated Library Systems ===  
 +
* [http://open-ils.org/ Evergreen]
 +
* [http://www.koha-community.org/ Koha]
 +
* [http://www.kuali.org/ole KualiOLE]
 +
* [http://OpenLibMan.sf.net Open Library Management System]
  
 
=== Discovery Interfaces ===
 
=== Discovery Interfaces ===
 +
* [http://projectblacklight.org Blacklight]
 +
* [http://vufind.org/ VuFind]
  
 
=== Article Databases ===
 
=== Article Databases ===
  
 
=== Institutional Repositories ===
 
=== Institutional Repositories ===
 +
* [https://duraspace.org/dspace/ DSpace]
 +
* [http://islandora.ca/ Islandora]
 +
* [https://samvera.org/ Samvera]
  
 
=== EAD / Archival Finding Aids ===
 
=== EAD / Archival Finding Aids ===
 +
 +
=== Scholarly Publishing ===
 +
* [https://pkp.sfu.ca/ojs/ Open Journal Systems]
 +
* [https://pkp.sfu.ca/omp/ Open Monograph Press]
 +
 +
=== Web Archiving ===
 +
[[Wikipedia:Web ARChive|Web ARChive]] ecosystem is ''the'' standard.
 +
 +
* [https://archive-it.org/ Archive-It]
 +
* [https://webrecorder.io/ Webrecorder]
 +
 +
== Specific Technologies ==
 +
 +
=== Solr/Lucene ===
 +
* [http://lucene.apache.org/solr Solr]
 +
* [http://lucene.apache.org Lucene]
 +
 +
searches at http://lucidimagination.com  include wikis, email lists, etc.
 +
 +
=== Git & Distributed Version Control ===
 +
 +
[http://git-scm.com/ Main Git Website]
 +
 +
[http://github.com/ GitHub]
 +
 +
[https://about.gitlab.com/ GitLab]
 +
 +
[https://bitbucket.org Bitbucket]
 +
 +
[[Libraries with Github Organizations]]
 +
 +
=== Ruby on Rails (Blacklight, Hydra) ===
 +
[http://guides.rubyonrails.org Ruby on Rails Guide]
 +
 +
[https://github.com/projectblacklight/blacklight Blacklight]
 +
 +
[https://wiki.duraspace.org/display/hydra/The+Hydra+Project Hydra]
 +
 +
== Resources ==
 +
 +
* [http://dewey.library.nd.edu/mailing-lists/code4lib/ Code4Lib Mailing List]
 +
* [http://code4lib.org/irc Code4Lib IRC channel] (chat room) The channel is a less formal and more interactive alternative to the code4lib mailing list for the discussion of code, projects, ideas, music, first computers, etc..
 +
* [http://journal.code4lib.org/ Code4Lib Journal]

Latest revision as of 19:28, 1 March 2019

A guide for the perplexed

What is this?

Very few people plan to have a career in library technology. Maybe you have a background in traditional librarianship, but you'd like to be a systems librarian. Maybe you're an experienced programmer, but you're having trouble learning about library specific standards. This guide is a starting point for you. It will not attempt to be a replacement for university-level education in either library studies or computer science, but it will give you a general sense of the areas of technology that are used by libraries, background knowledge you'll need in order to work effectively in these areas, and advice and ideas on how to acquire necessary skills.

Advice in this guide should focus on concrete, immediately applicable skills whenever possible. This document should be a curriculum guide, not a textbook, so before attempting to write an article on a broadly applicable subject, check to see if wikipedia has one to which you could link and contribute.

Samples of Curriculums:

Who is this for?

People with a background in libraries / archives / museums

Learning about technology can be intimidating, especially when it is a departure from the areas you're used to studying. You may have been put into a situation where you are responsible for managing or completing a technology project, but you don't understand the technology involved, and you're having a hard time finding information about it. Don't worry, this is surprisingly common and you are not alone. Many of the members of the code4lib community are self-taught, and we're here to help.

Here's a good blog post aimed at people in this category: Advice to a Library School Student by Dan Chudnov

People with a background in technology / computer science

People hiring programmers into library technology

Focus more on the why and use-cases rather than the technology. From a programming perspective much of the technology isn't terribly difficult and is well known at a basic level. How it's used, why certain choices were made is the most important information to convey. If you hired a programmer for a specific task, don't focus on dictating technology, they should tell you what is current, but rather what you need and want from the application. Helping them understand how the data is accessed by your end-users if probably the most valuable information you can convey.

Be prepared to answer questions and frustrations with library standards that aren't really machine actionable. One older example is METS, while it is XML, there is very little you can do to infer higher a higher level of organization without extensive best practice description or profiles.

-- Mike Smorul

Why is it necessary?

Broad areas of library technology

Data Formats

Data formats and protocols.

MaRC

MaRC stands for Machine Readable Cataloging, and many folks in the code4lib community find themselves working with MARC records at some point.

METS

See https://www.loc.gov/standards/mets/ for the standard.

Tools and software:

IIIF

ONIX for Books

The ONIX family of standards includes the ONIX for Books Product Information format, which functions much like MaRC in the publishing, wholesaling, distribution and retail businesses.

Much of the data in a MaRC record can in principle be derived from the ONIX record for the same ISBN; see the recent mapping from ONIX to MaRC21:

Integrated Library Systems

Discovery Interfaces

Article Databases

Institutional Repositories

EAD / Archival Finding Aids

Scholarly Publishing

Web Archiving

Web ARChive ecosystem is the standard.

Specific Technologies

Solr/Lucene

searches at http://lucidimagination.com include wikis, email lists, etc.

Git & Distributed Version Control

Main Git Website

GitHub

GitLab

Bitbucket

Libraries with Github Organizations

Ruby on Rails (Blacklight, Hydra)

Ruby on Rails Guide

Blacklight

Hydra

Resources