VocBench Developers Manual
This section provides detailed information for people interested in developing extensions for VocBench or even in modifying the core system. Currently, it contains generic information about the architecture of the system. We will add more details soon.
Building VocBench
To build Vocbench, you need:
- the sources of VocBench
- the sources of Semantic Turkey
download and compile first Semantic Turkey, as this is the only dependency which is out of Maven. From the POM of VocBench, you can check the version of Semantic Turkey which is being used for the VocBench version you are using. A note regarding Maven and ST: from ST 0.10 on (being used by forthcoming VB2.2) ST artifacts will be available through Maven
Once Semantic Turkey has been compiled, you may run a simple mvn clean install and the job is done!
VocBench Architecture
The architecture of VocBench (figure below) has been designed following a three-tier approach.
...
Presentation
...more to come...
Business Logic
...more to come...
VocBench services are in turn clients for the RDF Management Backend Semantic Turkey. More details about its architecture can be found in the development page of that project.
Logging
There are various loggers in the VB system.
For anything related to ST server logs, pls refer to the documentation of Semantic Turkey.
The loggers of VocBench can instead be modified through the WEB-INF\classes\log4j.properties file inside the vocbench installation directory. The logs can then be found in the /logs directory of the tomcat directory. There is also another directory: /bin/logs/, where a specific log file, called SemanticTurkeyTest.log, contains the log of all interactions with the Semantic Turkey server. This can be a good place to look for when analyzing the requests which are sent to the ST server.
In the specific, the following changes can be made to the log4j.properties property file in order to enable logging of requests sent to ST server and of responses received from it
# Set to DEBUG to print HTTP QUERY from ST server
log4j.logger.org.fao.aoscs.model.semanticturkey.service.wrappers=DEBUG
# Set to DEBUG to print XML responses from ST server
log4j.logger.org.fao.aoscs.model.semanticturkey.service.manager.response=DEBUG
VocBench Database
VocBench uses a dedicated SQL database for:
- User Management: all information about users and their roles is stored there
- Editorial History: the full list of changes is stored in VB
The database schema evolves as new features are being introduced in VB. In order to allow users to keep their data from version to version, we have introduced DB update scripts which are constantly checked against the current version of the system at each VB start. This DB self-updating system is based on the Flyway version 3.0 (http://flywaydb.org), by means of the SQL based migration.