Skip to content

mainzed/labelingsystem-server

Repository files navigation

Labeling System Server

build version java maven output docs license

The Labeling System offers experts the possibility to create concepts with context-bound validity, to concretize, to group in containers (vocabularies) and to share them with the research community. The LS provides user-friendly web tools that allow semantic linking of terms into the Linked Open Data Cloud. Once vocabularies are published, the LS serves as a distributed repository of concepts (concept-gazetteer), which provides citable addresses on the Web (URI). Each generated concept is explicit assigned to its creator. This assured authorship yield in a clear responsibility for data maintenance.

The Labeling System consists of two components: the server and the client wep-app. The datamodel used in the backend is represented in an ontology using linked data vocabularies. This repository represents the server component of the Labeling System.

Server Components

war-files

api.war

RESTful API for Labeling System applications.

API Documentation (Version 1): APIdoc

item.war

RESTful API to provide cool URIs for Labeling System items.

databases

RDF4J triplestore and SQlite databases

web server

nginx and Tomcat

Setup

required

  • Java 8
  • Tomcat
  • RDF4J 2.0 (server, workbench (opt.))
  • Labeling System war-files

recommended

  • CentOS (Linux release 7.2.1511 (Core))
  • nginx (nginx/1.6.3) (Port 80)
  • Tomcat (Version 8.5.4) (Port 8080)
  • Java (openjdk version "1.8.0_101") (OpenJDK Runtime Environment (build 1.8.0_101-b13)) (OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode))
  • RDF4J (server and workbench 2.0)
  • SQlite support

folder structure

  • recommended
    • [...] = /opt
    • [tomcat] = /opt/tomcat

required foldes and files with r/w rights for Tomcat

  • /[...]/db/
  • /[tomcat]/webapps/share/
  • /[tomcat]/webapps/dump/
  • /[tomcat]/webapps/ROOT/

required files

  • /[tomcat]/webapps/api.war
  • /[tomcat]/webapps/item.war
  • /[tomcat]/webapps/rdf4j-server.war
  • /[tomcat]/webapps/rdf4j-workbench.war (optional)
  • /[...]/db/ls.sqlite (db with r/w rights for Tomcat)

How to set-up the server?

  • install CentOS
  • install nginx
  • install OpenJDK
  • install Tomcat
  • configure nginx (Port 80) and Tomcat (Port 8080)
  • create folders and set r/w rights for Tomcat role
  • copy dump script to /opt folder (if data is not in opt folder, change paths in shell script)
  • start dump cron job
  • get hashed admin and demo password via /auth/hash and write it to sqlite database
  • copy SQLite and Person database into db folder and set full r/w rights (chmod 777)
  • deploy war files for triplestore (rdf4j-server.war, rdf4j-workbench.war)
  • create labelingsystem and datahub repository in RDF4J
  • modify default triples
  • fill labelingsystem repository with default triples
  • configure application in their WAR packages using config[XXX].properties
  • deploy war files for ls backend (api.war, item.war)
  • configure frontend app and set host for API
  • deploy Labeling System frontend app
  • deploy Label Explorer

Development Hints

The code was developed in NetBeans IDE 8.1, using Java EE 7 Web, JDK 1.8 and Maven 4.0.

Credits

Developers:

  • Florian Thiery M.Sc.
    • Institut für Raumbezogene Informations- und Messtechnik (i3mainz)
    • Römisch-Germanisches Zentralmuseum, Leibniz-Forschungsinstitut für Archäologie (RGZM)
    • Mainzer Zentrum für Digitalität in den Geistes- und Kulturwissenschaften (mainzed)