Atramhasis

1 year ago

Atramhasis is an online SKOS editor. It allows a user to create, edit, browse and search an online thesaurus or vocabulary adhering to the SKOS specification through a simple web interface. This allows any user with access to a web browser to consult the thesauri and if so wanted, to edit them.

Since SKOS is inherently a multilingual format, Atramhasis supports multiple languages in the user interaface as well. Out of the box it comes with translations for Dutch, English and French. Adding new languages is very straightforward.

Atramhasis is also intended to be one of the focal points in a Service Oriented Architecture SOA. To this end, it exposes as much of its functionalities as possible through REST services (using JSON serialisations). Both reading from and writing to concept schemes is possible with Atramhasis. To make integrating with other applications as easy as possible a set of client libraries (skosprovider) is also available.

Atramhasis tries to stick as closely as possible to the SKOS specification (https://www.w3.org/TR/skos-reference/). Where this was not possible, we followed other standards such as the SKOS-THES extension (http://pub.tenforce.com/schemas/iso25964/skos-thes/).

Atramhasis is being developed by the Flanders Heritage Agency, an agency of the Flemish Government that deals with Archaeology, Monuments and Landscapes. As such, we mainly intend to use it with vocabularies and thesauri that are related to cultural heritage. We generally construct our own thesauri, specific to our own applications, but we synchronize these with other thesauri in the larger field of cultural heritage such as the  `Art and Architecture Thesaurus`.

Atramhasis was developed in Python. Care has been taken to ensure it runs on both Python 2 and 3. To make development simple, the Pyramid framework was used along with the SQLAlchemy ORM library for database access. Using this library makes it possible to use the system with both a SQLite and a PostgreSQL database. Other database solutions supported by SQLAlchemy such as MySQL and Oracle should work as well but have not been tested and are not actively supported.

The administrative front-end was built using Javascript and the Dojo Framework. The public HTML interface uses HTML, CSS, the Jinja2 templating language, some jQuery and the D3.js library. The CSS is maintained through use of the Zurb Foundation CSS framework and compiled using the Compass preprocessor.

Atramhasis is a web application that has a strict separation between the User Interface (written in Javascript) and the backed (written in Python). The admin interface talks to the backend using REST services. These services are also available to other clients who want to interact with the server. The backend communicates with a database server to store and retrieve the data it's managing through the skosprovider_sqlalchemy library. Or with other services exposing thesauri or controlled vocabulary through skosprovider instances such as skosprovider_getty (https://github.com/OnroerendErfgoed/skosprovider_getty), skosprovider_heritagedata (https://github.com/OnroerendErfgoed/skosprovider_heritagedata) or another Atramhasis instance (https://github.com/OnroerendErfgoed/skosprovider_atramhasis). The backend services expose the vocabularies as JSON, but also offer RDF and CSV data downloads.         

The core of the Atramhasis backend is the skosprovider library (https://github.com/koenedaele/skosprovider). This library provides an interface that can be used to create implementation versus diffferent datasources. This makes Atramhasis extremely flexible and easy to extend with new vocabularies.

Care has been taken to ensure that it Atramhasis is not tied to the stylistic requirements of the Flanders Heritage Agency (in effect those of the Flemish Government). The default theme can easily be overwritten by editing a local .scss file and recompiling. If a user wants to healvily modify the look and feel they can supply their own stylesheets, overwrite entire templates or just build a completely custom interface using the webservices provided.

While Atramhasis has some aspects of security built in, it does not come with an out of the box user management system. Within our own deployment, authentication and authorization are provided by a framework we use that communicates with authentication services of the Belgian  federal government using the Belgian e-ID. The open source demo version comes with a small authentication layer that uses Mozilla Persona. Due to the extensible nature of the Pyramid framework in use, any Authentication and Authorization supported by Pyramid can be used. Or a custom one can easily be created.

Atramhasis can be scaled by using multiple webservers and a central database server. In our own setup we run Atramhasis using 2 apache webservers behing a load-balancer. The application was carefully constructed to ensure this is easy to do.

The Atramhasis datamodel is the SKOS standard, with some extras from the SKOS-thes extension. When serialising data to RDF, other vocabularies such as DC and VOID are also used.

Atramhasis itself is licensed under a GPL3 license. Most of the libraries built by us that support Atramhasis are released as MIT. Atramhasis comes with some of our own thesauri as sample data, these are licensed under the CC-BY 4.0 license or the Flemish Free Open Data License.

The project is managed by Flanders Heritage Agency. Input has been gathered from colleagues working from Historic England, the Getty Conservation Institute and the British Museum. But they are in no form involved in governing the project. Being an open source project, anyway who wishes so could contribute however.

Flanders Heritage Agency conceived the project, funded and executed it. It was conceived from the beginning as an open source project (https://github.com/OnroerendErfgoed/atramhasis). This was done because we felt other organizations (public administrations, research organizations, libraries, archives, ...) could benefit from a good, but simple, online SKOS editor.

Development of the project was carried out by Flanders Heritage Agency and consultants from Geosolutions, a Belgian IT firm part of the Cronos group.

Public administration can deploy their own instance Atramhasis to publish and or edit their own controlled vocabularies. By using a good controlled vocabulary they can be consistent in their own use of certain terms and concepts. And they can easily link their own terms and concepts to to other vocabularies available. In effect, it can be used to state to what degree two concepts called "Churches" are related.

Additional documentation can be found at https://atramhasis.readthedocs.io/en/latest/. A demo of a recent version can be found at http://glacial-bastion-1106.herokuapp.com/. The admin interface can be tested by logging in with a Mozilla Person account.