Awesome
TermIt
TermIt is a SKOS compliant terminology management tool based on Semantic Web technologies. It allows managing vocabularies consisting of thesauri and ontologies. It can also manage documents whose content can be used to seed the vocabularies (e.g., normative documents with definition of domain terminology). In addition, documents can also be analyzed to discover occurrences of the vocabulary terms.
Terminology
Asset
An asset is an object of one of the main domain types managed by the system - Resource, Term or Vocabulary.
Required Technologies
- JDK 17 or newer
- Apache Maven 3.6.x or newer
System Architecture
The system is split into two projects, TermIt is the backend, TermIt UI represents the frontend. Both projects are built separately and can run separately.
See the docs folder for additional information on implementation, setup, configuration and the architectural decisions record.
Technologies
This section briefly lists the main technologies and principles used (or planned to be used) in the application.
- Spring Boot 3, Spring Framework 6, Spring Security, Spring Data (paging, filtering)
- Jackson Databind
- JB4JSON-LD - Java - JSON-LD (de)serialization library
- JOPA - persistence library for the Semantic Web
- JUnit 5, Mockito 4, Hamcrest 2
- Jakarta Servlet API 4
- JSON Web Tokens
- SLF4J + Logback
- CORS (for separate frontend)
- Java bean validation (JSR 380)
Ontologies
The ontology on which TermIt is based can be found in the ontology
folder. It extends the
popis-dat ontology (http://onto.fel.cvut.cz/ontologies/slovnik/agendovy/popis-dat). TermIt vocabularies and terms
use the SKOS vocabulary (http://www.w3.org/TR/skos-reference/skos.rdf).
Relevant ontologies need to be loaded into the repository for proper inference functionality. See setup.md for more details.
Monitoring
JavaMelody can be used for monitoring the application and its usage. The data are
available on the /monitoring
endpoint and are secured using basic authentication. Credentials are configured using
the javamelody.init-parameters.authorized-users
parameter in application.yml
(see
the JavaMelody Spring Boot Starter docs).
Documentation
TermIt REST API is available for each instance via Swagger UI. It is accessible
at http://SERVER_URL/PATH/swagger-ui/index.html
, where SERVER_URL
is the URL of the server at which TermIt backend
is running and PATH
is the context path. A link to the API documentation is also available in the footer of the TermIt UI.
Build configuration and deployment is described in setup.md.
Docker
The Docker image of TermIt backend alone can be built by
docker build -t termit-server .
Then, TermIt can be run and exposed at the port 8080 as
sudo docker run -e REPOSITORY_URL=<GRAPHDB_REPOSITORY_URL> -p 8080:8080 termit-server
An optional argument is <GRAPHDB_REPOSITORY_URL>
pointing to the RDF4J/GraphDB repository.
TermIt Docker images are also published to DockerHub.
Links
- TermIt UI - repository with TermIt frontend source code
- TermIt Docker - repository with Docker configuration of the whole TermIt system (including the text analysis service and data repository)
- TermIt Web - contains some additional information and tutorials
- TermIt: A Practical Semantic Vocabulary Manager - a
conference paper we wrote about TermIt
- Cite as Ledvinka M., Křemen P., Saeeda L. and Blaško M. (2020). TermIt: A Practical Semantic Vocabulary Manager.In Proceedings of the 22nd International Conference on Enterprise Information Systems - Volume 1: ICEIS, ISBN 978-989-758-423-7, pages 759-766. DOI: 10.5220/0009563707590766
License
Licensed under GPL v3.0.