This is the WEE (Workflow Enactment Engine) repository.

marcioantfilho a0ef267ee6 Added all sketches used for wee tests 4 meses atrás
src 49574f85a6 FIX - Broken Front-end 4 meses atrás
tutorial 0982268ddd Adding figures of the tutorials. 2 anos atrás
.dockerignore 0b5261f4c8 Add docker build ci 2 anos atrás
.editorconfig adb13f131d Move trace choice to table 2 anos atrás
.gitignore 49574f85a6 FIX - Broken Front-end 4 meses atrás
.gitlab-ci.yml 0b5261f4c8 Add docker build ci 2 anos atrás
Dockerfile 1289036b2d Improve maven install 2 anos atrás
HELP.md e0614ce0ad First commit. 2 anos atrás
LICENSE a5e3042db3 Initial commit 2 anos atrás
README.md 477bd9874b Updated Readme 4 meses atrás
all_sketches.drawio a0ef267ee6 Added all sketches used for wee tests 4 meses atrás
flake.lock f58c30702d updating flake file. 2 anos atrás
flake.nix 80fb1659db fixing the JSON library to work with the nix build. 2 anos atrás
main 49574f85a6 FIX - Broken Front-end 4 meses atrás
mvn2nix-lock.json 6846c0dc6c Turn into Nix flake 2 anos atrás
mvnw e0614ce0ad First commit. 2 anos atrás
mvnw.cmd e0614ce0ad First commit. 2 anos atrás
pom.xml 80fb1659db fixing the JSON library to work with the nix build. 2 anos atrás
tasks.py 0b2820f104 Remove test from release script 2 anos atrás

README.md

DTDesign Backend

This directory contains a script that is meant to be used with the following drawio plugin:

https://msdl.uantwerpen.be/git/jexelmans/drawio/src/master/src/main/webapp/myPlugins/dtdesign.js

The plugin uses the backend to:

  • Store drawio diagrams (in XML format)
  • Parse drawio diagrams (using the various domain specific parsers included in this project) and convert them to OML
  • Convert generated OML files to OWL/RDF (by invoking gradle) and load them into a running Fuseki instance.

Dependencies

On top of the dependencies listed in this repo's main README, you also need:

When building the backend (or the service monitor, see below) with Nix, all dependencies are taken care of automatically. The complete dependency graph of the service monitor (and hence, the Docker container), can be observed in dependencies.svg.

Running

There are three ways to run the backend:

  • Running the backend script manually (recommended for development, for non-Nix users)
  • Using the service monitor script (recommended for Nix users)
  • Using the Docker container (recommended if you are only interested in using the application)

Running the backend script manually

In order to run the backend script directly, there are some prerequesites:

  1. Make sure Fuseki is running (run gradle startFuseki in PATH/TO/SDO2L)
  2. Simply invoke dtdesign-backend PATH/TO/SDO2L

To use the backend, you also need to host a version of the drawio webapp that has the dtdesign-plugin enabled. Any static web server (e.g., Nginx, Lighttpd, Apache, ...), serving the following directory as its root will work:

https://msdl.uantwerpen.be/git/jexelmans/drawio/src/master/src/main/webapp/

Using the service monitor script

Included in this project is a service monitor script (based on supervisord) that will start, monitor, restart, and cleanly stop the following services:

  • The dtdesign-backend script (TCP port 5000) from this repository
  • Fuseki (TCP port 3030)
  • Lighttpd (TCP port 8700), statically serving drawio with the dtdesign-plugin
  • Workflow Enactment Engine (WEE) (TCP port 8081)

This allows running the DTDesign demo as if it were a single application.

To use the script:

PROJECTDIR=/PATH/TO/SDO2L nix run .#serviceMonitor

To end the script, hit Ctrl+C in the same terminal and all services will be cleanly shut down.

Using the Docker container

A Docker container that contains the service monitor script and all its dependencies, as well as a clone of the SystemDesignOntology2Layers OML project.

Building

To build the container:

nix build #.dockerContainer

This places a symlink result in the current directory, pointing at the created Docker container image file.

Pre-built containers

Pre-built containers are regularly uploaded in this directory:

https://msdl.uantwerpen.be/cloud/public/dfbe22

Just download the latest container version there.

Running

To run the container, load the container image, then create and start an instance:

docker load < container.tar.gz # load the image
docker run -p "8081:8081" -p "5000:5000" -p "3030:3030" -p "8700:8700" # create and start an instance - replace XXX by the hash printed by the previous command

Using the backend

Once the backend, Fuseki and drawio web server are running, navigate to the following URL:

http://localhost:8700/?p=ftgpm;dtdesign&dev=1&stealth=1

this is an exemple how to run the back-end: python dtdesign-backend drawio/src/main/webapp/myPlugins/shape_libs update-oml-project (but in this case you need to consider the both projects update-oml-project and drawio are in the same folder)