coli-conc Logo

Cocoda Technical Architecture

coli-conc Technical Report 11

2018-05-31

https://doi.org/10.5281/zenodo.1256498 CC-BY-SA

Jakob Voß <jakob.voss@gbv.de> (Verbundzentrale des GBV (VZG))

This report gives an update on the architecture of Cocoda, a mapping tool for concordances between library knowledge organization systems that is being developed at the head office of GBV Common Library Network (VZG). A new implementation or Cocoda has been started from scratch.

Background

The aim of project coli-conc is an infrastructure to facilitate management and exchange of concordances between library knowledge organization systems. In particular this includes a web application to manage, create, and evaluate mappings. Since its beginning in 2015, the technical and organizational background of the project and its mapping tool have evolved. After some attempts with a monolithical Java application we revisited our original plan of a modularized web application. Based on experiences with two prototypes and the mapping data collected so far we started with a new implementation in May 2018. This report supersedes the Cocoda primer [@tr1] with an overview of the current technical architecture.

JSKOS Data Format

The core of the concordances infrastructure turned out to be the JSKOS data format for knowledge organization systems. In short this format is an application profile of JSON-LD [@JSONLD] for SKOS [@SKOS] extended by support of mappings, concordances, usage statistics, and optional closed world statements [@JSKOS]. The specification has reached a stable state with only minor additions to be discussed.

Cocoda Web Application

The new version of Cocoda is build as singe page web application using the Vue JavaScript framework instead of AngularJS. We had some good experiences with the latter [@code4lib] but Vue turned out to be more manageable. The application can be broken down into four main components:

concept browserbased on a hierarchical navigation and a detailled display of selected concepts
mapping editorto create, modify, and annotate mappings
mapping browserto show existing mappings and mapping recommendations from multiple sources
occurrences tableto show the number of times selected concepts are used in library catalogs

These components shall also be usable independently from Cocoda for instance to provide hierarchical browsing in one classification. Additional parts of the application for interaction with backend services may be pubished as npm modules which can also be used for server side applications.

The web application is developed publically at https://github.com/gbv/cocoda with technical documentation published at https://gbv.github.io/cocoda/. We use a Kanban board at Waffle.io for project management and travis-ci for continuous integration.

Backend Web Services

The web application communicates with independent backend services, mainly in JSKOS format:

Additional Data Processing

Backend services and additional data processing pipelines are implemented with different technologies. In particular we use and contribute to:

References

2020-09-29

Our new website is now live!

2020-08-25

DDC/SDNB notation handling and small fixes

2020-08-24

Webanwendung zur Anreicherung der Sacherschließung durch Mappings

2020-06-30

Docker, refactoring, and more

2018-11-29

Vorhandene Mappings zwischen GND und anderen Vokabularen

2017-05-31

Vergleichs von APIs zum Zugriff auf ausgewählte Wissensorganisationssysteme