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.
An asset is an object of one of the main domain types managed by the system - Resource, Term or Vocabulary.
- JDK 17 or newer
- Apache Maven 3.6.x or newer
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.
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 2.13
- JB4JSON-LD - Java - JSON-LD (de)serialization library
- JOPA - persistence library for the Semantic Web
- JUnit 5 (RT used 4), Mockito 4 (RT used 1), Hamcrest 2 (RT used 1)
- Servlet API 4 (RT used 3.0.1)
- JSON Web Tokens (CSRF protection not necessary for JWT)
- SLF4J + Logback
- CORS (for separate frontend)
- Java bean validation (JSR 380)
The ontology on which TermIt is based can be found in the ontology
folder. For proper inference
functionality, termit-model.ttl
, the
popis-dat ontology model (http://onto.fel.cvut.cz/ontologies/slovnik/agendovy/popis-dat/model) and the SKOS vocabulary
model
(http://www.w3.org/TR/skos-reference/skos.rdf) need to be loaded into the repository used by TermIt (see doc/setup.md
)
for details.
We use JavaMelody 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).
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.
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.
- 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
Licensed under GPL v3.0.