/elucidate-server

A W3C and OA compliant Web Annotation server

Primary LanguageJavaMIT LicenseMIT

Elucidate

Elucidate is a Web Annotation server that is compliant with both the W3C Web Annotation Data Model and associated protocol, and the Open Annotation (OA) Data Model.

Build Status

Branch Status
master Build Status
develop Build Status

Getting Started

Prerequisites

Elucidate Server has been built and tested against:

Java 8+
Apache Tomcat 8+
PostgreSQL 9.4+

Elucidate Server and its dependencies are written in pure Java, and is designed to work with PostgreSQL by default.

Building

The Elucidate Server has a number of dependencies that must be built first:

  • elucidate-parent
    • Parent Maven project that defines dependency library version numbers and common dependencies amongst all Elucidate projects.
  • elucidate-common-lib
    • Contains common classes that are used by similar projects.
  • elucidate-converter
    • Simple library that (at present) allows for conversion between a W3C Web Annotation and OA Web Annotation.

Each dependency and the Elucidate Server itself can be built using Maven:

mvn clean package install -U

Configuration

Configuration of the Elucidate Server is achieved through the elucidate-server.properties. This file can be placed in any location and provided to the JVM as a parameter:

-Delucidate.server.properties=file:/path/to/file.properties

In addition to specifying the path to the properties file, users may wish to modify the provided log4j.xml to modify log file paths or logging levels.

Database

Elucidate Server has been built and tested against PostgreSQL 9.4+ (the jsonb type is required for persistence).

Database scripts are available in the elucidate-db-scripts folder, and include the creation and assignment of permissions to an annotations_user user in the annotations_user.sql script - modify the script and update the password of this before executing it.

Usage

See USAGE.md for some sample requests.

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Contributors should ensure that their code is formatted in a style that is as close to the existing style as possible.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details