Odalic architecture follows the basic division into the three components: server (Odalic Semantic Table Interpreation), web client (Odalic UI) and the plugin (Odalic UnifiedViews Plugn). Both the client and server, and the plugin DPU instances and server communicate over the established server REST API. Users can either use the web client to put CSV files to process, or in case they require the Odalic to integrate with other UnifiedViews DPUs or use some of the other UnifiedViews features, the plugin.

Odalic UI

Odalic UI is a single-page web application (based on AngularJS), which is running entirely in the client's browser. It uses the server REST API to let the user register, log in, send or set up files, run the processing on them, provide feedback and finally export the results or the used configuration.

In order to get notified about the change of execution state, the client actively polls the server.

Odalic Semantic Table Interpreation

The server is deployed in a servlet container (tested on Apache Tomcat). It runs many services, of note is the one that actually does the processing of the input files. It spawns a new thread for every set up task and passes its configuration or a collected feedback (in case it is a re-run) to algorithm which is a modified version of the TableMiner+ algorithm by Ziqi Zhang. The server responds to state polling requests, but also allows to ask for the result upfront and blocks the response to the request until the result is available.

Interesting implementation details of this and other services are described throughout the developer documentation.

Knowledge bases

Knowledge bases are hosted in a separate dedicated one or more RDF stores (e.g. Virtuoso). They can be accessed remotely, some of them are available to the general public. Access to them can be configured in .properties files stored in the config sub-directory of the working directory, which the server loads at start-up and provides to every created user. The bases can be further managed, new added and configured through the API and the UI. They are mainly used by the processing algorithm and services facilitating user feedback.

Odalic requires presence of at least one knowledge base that is modifiable, to be selected as the primary one. This base is used to store the user-defined resources and also takes precedence in case of conflict between partial results from the bases used in processing. The Docker installation comes with one such base so the user does not need to configure his or her own if he or she does not want to. This one can remain empty, only to store the proposed resources.

Server state

The server uses a MapDB file storage to keep the state of the server, which consists of the registered and logged users, their files, file and task configurations and the feedback users provided. The storage also caches execution results, so the users do not have to compute them again in case of server restart or crash, as they can be relatively expensive to do, from time and network traffic perspective.

Odalic DPU

Odalic DPUs work within the boundaries of UnifiedViews architecture, from the Odalic platform perspective they behave as another REST API client. They even use the same authentication mechanism as the Odalic UI, where the security token is saved in the DPU template and then used in all the template instances.

 

Attachments:

overview-components Copy (application/gliffy+json)
overview-components Copy.png (image/png)
overview-components Copy (application/gliffy+json)
overview-components Copy.png (image/png)
overview-components Copy (application/gliffy+json)
overview-components Copy.png (image/png)
overview-components Copy (application/gliffy+json)
overview-components Copy.png (image/png)
overview-components Copy.png (image/png)
overview-components Copy (application/gliffy+json)
overview-components Copy.svg (image/svg+xml)
overview-components Copy.png (image/png)
overview-components Copy(1).png (image/png)