Open-source technology

Muscat is no ad-hoc solution developed from scratch but is instead built on robust and modern existing technology with the aim of not re-inventing the wheel, and to benefit from third party developments. Muscat is developed with sustainability in mind and all the technology used in Muscat is open-source. This is crucial because Muscat is a long-term research infrastructure that needs to be maintained. Using open-source technology is important for sustainability but also for providing the project with flexibility in the long run. It leaves open the option to move the project from one institution to another, provided the current host is willing to pass the hosting to another institution.

At the core of Muscat stand the following important open-source components:

Ruby on Rails

Ruby on Rails is the main web application framework. It is used in many well-known projects, such as GitHub, SoundClound or Airbnb. The cataloguing user interface of Muscat is built on ActiveAdmin, a popular front-end framework for Ruby on Rails applications.

MySQL

The data in Muscat is stored in MySQL, a very popular open-source database system. It is highly scalable and reliable database system that very commonly serves as backend for content management systems (CMS) and web application frameworks such as Ruby on Rails.

Solr

The data in Muscat is indexed using Solr, quite likely the most widely used search engine designed for indexing large datasets. It is customizable and fits in Muscat the specific searching needs yielded by the domain of music sources.

Blacklight

The discovery interface of Muscat uses Blacklight, an open-source Ruby on Rails application used by many libraries and institutions. The page concerning the discovery interface provides more information about the use of Blacklight in Muscat.

Verovio

The incipit display is powered by Verovio, a separate project of the RISM Switzerland working group. With Verovio, incipits are displayed dynamically in the application and in the search interface.

The architecture of Muscat and how the components are organized is described more precisely in the section about the application architecture in the page about the model and architecture.

Muscat source code

Not only does Muscat use open-source technology, but it is itself open-source. The full source code of the application is hosted on GitHub where additional technical documentation is also provided. It includes documentation about the structure of the system, about the dependencies and about the installation procedure, should you want to install Muscat on your own server.

The GitHub repository also serves as a hub for discussion for the members of the community involved in the development of Muscat. These members are not necessarily all computer programmers; they might also include editors or cataloguers who bring their expertise and feedback directly to the development process. The issue page is the place where ideas or problems are collected.

Muscat also includes a test suite for validating the code that uses the RSpec behavior driven development unit framework. The tests make it possible to verify that the application behaves correctly. They are constantly applied and adapted during the Muscat developments.

Re-use and extensions

Making a technology available as open-source greatly facilitates its re-use by others and this is also the case with Muscat. It is the basis for several research projects whose data do not directly fit the RISM scope โ€“ at least not at this stage โ€“ and which require some adjustments or extensions. Muscat was adopted by the University of New England in Australia for a project led by Prof. Jason Stoessel. Their adjustments to Muscat are made by Intersect, Australia's largest full-service eResearch support agency. Muscat is also adjusted for a Motet database project led by Prof. Wolfgang Fuhrmann at the University of Mainz.