FOLIO is a new open source, cloud hostable, app-store based library platform, designed to facilitate collaboration between disparate development teams.
This glossary defines some terms to assist developers.
Some other relevant documents are: Acronyms, Glossary, Glossary, Glossary, Glossary.
FOLIO Components
Okapi
The FOLIO middleware and API gateway. Okapi serves as the foundation layer for managing FOLIO apps and services. For more information, see the Okapi Guide and Reference.
Stripes
The FOLIO UI toolkit. The Stripes toolkit provides a means of building web applications that expose the functionality of underlying Okapi modules. For more information, see the Stripes GitHub repository.
Stripes entities
The document Stripes entities: packages, modules, apps and more is a summary of terms used in that context, e.g. component, package, module, app, plugin.
Okapi-Stripes Platform, LSP Base, LSP Extended
The “Okapi-Stripes Platform” and the “FOLIO LSP Base” and the “FOLIO LSP Extended Apps” are defined.
FOLIO Special Interest Groups (SIGs)
For further information about SIGs and how to participate, refer to Special Interest Groups.
Some abbreviations are provided below. Note that there are other SIGs besides these.
A11Y
Accessibility
CO
Community Outreach
DM
Data Migration
LDP
Library Data Platform - Reporting
MM
Metadata Management
RA
Resource Access
RM
Resource Management
SO
SysOps
UM
User Management
FOLIO Technologies and Concepts
Terms A-F
a11y
Accessibility. Refer to the FOLIO A11Y SIG and Accessibility in Stripes and The A11Y Project.
API
Application programming interfaces (APIs) are well-defined interfaces through which interactions happen.
App Store
An online portal for obtaining and installing software. FOLIO is designed to support the installation of both free and commercial modules and applications through an App Store.
AWS/ECS
Amazon Web Services and the Amazon EC2 Container Service is a cloud-based application deployment platform from Amazon. FOLIO is designed to play well in the cloud.
BIBFRAME
Bibliographic Framework Initiative (BIBFRAME).
CC
CQL
Contextual Query Language (CQL). It was previously known as Common Query Language, and that is not to be confused with the OGC language of the same name.
Some starting points are:
- A Gentle Introduction to CQL (incomplete, outdated, explains features not supported by FOLIO).
- FOLIO CQL to PostgreSQL JSON converter (CQL2PgJSON).
- FOLIO FAQ Explain CQL string matching
- The CQL-1.2 specification and context sets.
- As SRU 2.0 is OASIS searchRetrieve Version 1.0, then CQL is its Part 5.
- CQL-Java.
- The CQL parser in YAZ.
A CQL example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*")
and active=="true" sortby personal.lastName personal.firstName barcode
For other relevant CQL examples see the FOLIO items above, and the API docs, and the debug output for tests in each backend module.
CO
CRUD
The basic functions of persistent storage: Create, Read, Update, Delete (CRUD).
CSP
Critical Service Patch (CSP).
DevOps
Combining software development and information technology operations: DevOps.
Docker
Docker is a platform for managing software containers. FOLIO is well-suited for deployment in a Docker environment.
DoD
Definition of Done (DoD). Criteria to decide when a feature is deemed finished, and its issue tracker tickets are closed. Refer to the management notes for each FOLIO Development Team.
DoR
Definition of Ready (DoR). Criteria to decide when a feature is well-described and is deemed ready to be scheduled to undertake the work. Refer to the management notes for each FOLIO Development Team.
DR
Decision Records (DR) – The collection of ADRs (Architectural Decision Records) is referred to as ADL (Architecture Decision Log).
DRY
Don’t repeat yourself (DRY).
ECMAScript
ECMAScript is the formally standardised version of JavaScript. The Stripes Toolkit is written in ES6, a modern variant that introduces several new facilities.
EKS
Amazon Elastic Kubernetes Service (Amazon EKS).
ERM
Electronic resource management (ERM).
FOLIO
FOLIO – The Future of Libraries is Open.
The term “FOLIO” is an acronym, and must always be noted as an upper-case word. Refer to the “FOLIO Brand Identity Guidelines” document at FOLIO Graphics and Branding Resources.
FRBR
Functional Requirements for Bibliographic Records (FRBR).
Terms G-M
HOC
“Higher-order components” are a pattern for re-use of component logic with React.
HRID
Human-readable identifier (HRID) is an additional unique identifier available on some records. Also known as eye-readble identifier. Not to be confused with the UUID of a holdings record (which may also have a HRID).
ILS
Integrated Library System (ILS).
JSON
JavaScript Object Notation (JSON) is an open-standard format that uses human-readable text to transmit data objects consisting of lists, collections and attribute–value pairs.
JSON Schema
Vocabularies that define the format of JSON instances.
JWT
JSON Web Token is a JSON-based open standard for creating tokens that assert some number of claims. JWTs are authenticated and encrypted, and used by Okapi.
Kafka
Apache Kafka is a distributed event streaming platform.
Kubernetes
Kubernetes (k8s) is a “platform for automating deployment, scaling, and operations of application containers across clusters of hosts”.
LDP
Library Data Platform (LDP) is an open source platform for reporting and analytics in libraries.
LM
LSP
Library Services Platform (LSP).
LTI
Learning Tools Interoperability (LTI).
MARC
MARC (Machine-Readable Cataloging) standards.
Markdown
Markdown is a simple plain text formatting syntax, used for documentation throughout the FOLIO code.
MFHD
MARC 21 Format for Holdings Data (MFHD).
MongoDB
MongoDB is an open source, schemaless document database.
Microservices
A pattern for building loosely-coupled, highly available, modular applications. Each component of a microservices-based application is a self-contained service, which communicates with other components over the network using a lightweight protocol. The FOLIO LSP is built using a microservices architecture.
Multitenancy
A pattern of software architecture in which a single instance of the software is designed to serve multiple tenants, with appropriate security provisions and data separation. FOLIO is designed from the ground up to operate in a multitenant environment.
MVP
Market-Viable Platform (MVP). Refer to the FOLIO Implementers SIG.
Terms N-R
NCIP
NISO Circulation Interchange Protocol (NCIP).
Node.js
Node.js is a JavaScript runtime for deploying JavaScript code.
NPM
npm is the Node.js Node Package Manager - a mechanism for distributing packages of JavaScript code, used by Stripes.
OAS
The OpenAPI Specification (OAS) for describing RESTful web services. (Originally part of Swagger.)
Okapi gateway
See Okapi explained above.
OLF
The Open Library Foundation is an independent not-for-profit organization to ensure the availability, accessibility and sustainability of open source and open access projects for and by libraries. See Newsroom. OLF has joined the FOLIO community to help with the development of FOLIO.
PC
The FOLIO Product Council and its Charter
PO
Each FOLIO Product Owner (PO) represents the business or user community, and is responsible for working with this group to determine what features will be in the product release. Refer to the overview of Product Owners including explanation of “What is a Product Owner”, getting involved and getting started, and the Directory of Product Owners by Area of Focus.
PostgreSQL
PostgreSQL (often called “Postgres”) is an open source enterprise-level relational database.
PoC
Proof-of-concept (PoC)
RAML
RESTful API Modeling Language - a language for the definition of HTTP-based APIs. Okapi module APIs (including the API of Okapi itself) are defined in RAML files and JSON Schema files.
RDA
Resource Description and Access (RDA).
React
React is a JavaScript library for building user interfaces.
Redux
Redux is a state container for JavaScript. Stripes uses React and Redux for building stateful JavaScript web applications.
Reference environments
Continuously built FOLIO systems to exhibit the state of development. These are linked and their automation is explained at Software build pipeline.
REST
Representational State Transfer architectural style, and RESTful web services, enable interaction between systems using a well-known set of stateless operations and responses.
RFC
Request For Comments (RFCs). Refer to the current set of FOLIO RFCs and the RFC Process.
RMB
The RAML Module Builder (RMB) framework, is a special FOLIO module that abstracts much functionality and enables the developer to focus on implementing business functions.
RMS
Release Management Stakeholders (RMS). Refer to the Critical Service Patch Process (CSP).
Terms S-Z
SDLC
Software Development Life Cycle (SDLC) Software development process. Also abbreviated as DLC.
SEC
The FOLIO Security Team is the group is charged with overseeing the process related to identification and resolution of security vulnerabilities reported against FOLIO.
Slug
A human-readable identifier with keywords and alpha-numeric characters. Whitespace is replaced by a hyphen or an underscore character. Punctuation and accented characters are removed, thereby avoiding the need for special encoding.
Used for friendly URLs and reliable identifiers.
See Wikipedia Slug and etymology.
To “slugify” is to translate a string into a slug by replacing such characters.
Solr
SPA
FOLIO is a single-page application (SPA).
Spring
Spring is an application framework for the Java platform.
Some FOLIO modules are developed using the folio-spring-base library and the Spring Way.
SRS
FOLIO Source Record Storage (SRS).
SRU
Search/Retrieve via URL (SRU). Version “SRU 2.0” is “searchRetrieve Version 1.0, OASIS Standard”.
Stripes toolkit
See Stripes and the various Stripes entities explained above.
SysOps
System operators, systems administrators of multi-user computer systems: Sysop.
TC
The FOLIO Technical Council and its Charter.
The Wiki Tree browser helps to navigate the TC section of the Wiki.
TDO
TL
UUID
Universally unique identifier, a 128-bit number, see UUID at Wikipedia and How to check for a valid UUID.
UX
User experience (UX).
See User experience design and the FOLIO UX documentation site.
Vert.x
Vert.x is a toolkit for building scalable, reactive applications on the JVM. Vert.x is particularly suitable for developing applications using the microservices architectural pattern.
Some FOLIO modules are developed using the lightweight folio-vertx-lib library.
WCAG
Web Content Accessibility Guidelines (WCAG).
Webpack
The Node.js module bundler, used to deploy Stripes modules.
WOLFcon
The World Open Library Foundation Conference (WOLFcon).
WSAPI
A generic term for Web Services Application Programming Interface (see API above).
Yarn
Yarn is a package manager for Node.js and JavaScript.
ZooKeeper
Apache ZooKeeper is a service for highly reliable distributed coordination.
Z39.50
Z39.50 refers to ANSI/NISO standard Z39.50, and ISO standard 23950 “Information Retrieval (Z39.50): Application Service Definition and Protocol Specification”.
The Library of Congress is the Z39.50 Maintenance Agency.