Distributed client-server semantic reasoner
The point of Logic tools is to use logic to describe the domain of an application, in order to.

Separate the business from the technical parts

Make the most compact, understandable, auditable, verifiable and yet executable representation of the domain
This is achieved by combining two elements
The ontology describes the application domain, the concepts, their attributes, constraints, axioms, using the W3C standard language OW
The business rules define relationships and behaviours on this ontology, using pure logic, free from side effects, inconsistencies or contradictions, free from explicit sequencing, expressed in SWRL (extended), the standard rules language for the semantic web
Logic tools has reasoners, written in multi-platform Kotlin. The idea behind this internship is to research distributed reasoning.In particular, the reasoning initiated on a client (browser), but for which it does may or may not have all the information to complete the reasoning, and thus requiring distributing to server side reasoning.

This intern will imply
Learning multiplatform Kotlin (and coroutines)
Understanding SLD resolution, and in particular, the reasoner implementation
Coming up
with use cases
Find existing
literature
Research possible architectures of logic and data distribution (stratification, delegation,…)
Implement at least one prototype of distributed reasoning
Technologies:
Multi-platform Kotlin, coroutines, JVM, JS/TS, RDF, OWL, SWRL, JSON-LD