coli-conc Logo

Cocoda primer

coli-conc Technical Report 1

2015-04-13 CC-BY-SA

Jakob Voß <> (Verbundzentrale des GBV (VZG))

This report briefly summarizes prototype and architecture of a mapping tool that is being created as part of project coli-conc at the head office of GBV Common Library Network (VZG). Project coli-conc aims at developing an infrastructure to facilitate management and exchange of concordances between library knowledge organization systems. This includes a modular web application named Cocoda.


For the most part knowledge organization systems in Cocoda are represented in the popular SKOS data model: a particular knowledge organization system is called a concept scheme consisting of a set of possibly connected concepts with, labels, notations, and other properties. A mapping relates similar concepts from one concept scheme to concepts of another concept scheme. A set of mappings between two concept schemes is called concordance. The main application of Cocoda is going to be the creation and evaluation of mappings and concordances with Dewey Decimal Classification (DDC) as primary use case.

Technical architecture

The technical architecture of Cocoda consists of seven layers. The following table lists each of them with current status and choice of technologies:

web interfacefirst prototypeHTML, CSS, JavaScript
JavaScript client modulesalpha releasesAngularJS
JSKOS data formatincomplete draftJSON(-LD)
JSKOS API and wrappersdrafts and ideasHTTP, JSON
JSKOS databasesfirst prototypeCouchDB
mapping recommendation servicesideas & experimentsnot implemented yet
quality assessment servicesideasnot implemented yet
user managementideasnot implemented yet

Web interface

The current user interface of Cocoda web application is only a preliminary prototype to test functionalities. Later versions will be subject to usability studies.

JavaScript client modules

The web interface is build of independent JavaScript modules, which can also be used in other applications. Two of these modules have already been published as early alpha releases: ng-skos is a general module for simple knowledge organization systems and ng-suggest provides typeahead via OpenSearch Suggestions API. All modules are based on AngularJS because it seemed to be the most popular web application framework. A later version may also choose Web Components, plain jQuery or another JavaScript framework.

JSKOS data format

The JSKOS representation of knowledge organization system data is being developed based on SKOS and JSON-LD. This format combines the benefit of RDF for data aggregation and JSON for easy manipulation and storage. The current draft of JSKOS is available at

JSKOS API and wrappers

Several APIs and services exist to query and store knowledge organization systems (Skosmos, Poolparty iQvocVocBench, Wikidata, As part of coli-conc we will evaluate and compare these APIs and create wrappers to a common JSKOS-API. The current prototype makes use of API of RVK. Both wrappers and API specification will be made available at

JSKOS databases

CouchDB databases are used to store concepts and mappings in JSKOS format. A copy of German DDC in MARCXML has been transformed to this format for easy access with Cocoda web application. Both database and DDC data are not public by now.

Mapping recommendation services

The creation and management of mappings will be supported by several mapping recommendation services based automatic search for concept labels, existing mappings, connected concepts, and occurrences in library catalogs. The current prototype contains some static examples for illustration and testing.

Mehr Beiträge


Introduces tagging mismatch reasons and non-indexing concepts


Improves display of concept information, and many other small changes


Adds support for new filters, suggestions via catalog co-occurrences, and additional vocabulary APIs


Sacherschließungsdaten des K10plus-Katalog als Open Data veröffentlicht


The software library cocoda-sdk can be used to access terminologies from various sources


Informationen zum Einbinden eigener Vokabulare in Cocoda anhand verschiedener Beispiele.