Module developed within the Auto-Twin Horizon EU project perform an automata learning experiment with data extracted from a System Knowledge Graph (SKG), store the resulting model in the SKG, and create semantic links between the learned features and the existing nodes representing the system.
Authors:
Name | E-mail address |
---|---|
Lestingi Livia | [email protected] |
Dependencies are listed in the environment.yml
file.
This module acts as an orchestrator of the following submodules:
lsha
: Automata learning component, specifically implementing algorithm L*_SHA for Stochastic Hybrid Automata (SHA) learning;skg_connector
: Component performing queries on the SKG to extract data and store the newly created model;sha2dt_semantic_mapper
: Component identifying the semantic links between learned features and the existing representation of the System Under Learning (e.g., between an edge of the learned automaton and the sensor that triggers it).
Upon cloning the repository, run the following commands to initialize the submodules:
git submodule init
git submodule update
Note that it is necessary to run git submodule update
everytime submodules must synchronize with the corresponding
repositories.
The configuration file for the skg_connector
module (config.ini
), by default, is set up as follows:
- instance: name of the .ini file containing the information necessary to connect to the SKG (mainly URI, user, and
password). By default, this points to the
local.ini
file pointing to a local Neo4j instance with password12345678
. Should a connection to a connection to a differently parameterized instance be needed, a new file with the same structure aslocal.ini
must be added to the same folder, and parameter instance accordingly. - schema.name: identifier of the use case targeted by the automata learning experiment. By default, this is set
to
legoFactory
, but it can be changed to any value from theschema
folder.
Note that the following must be added to your local PYTHONPATH
environment variable:
- path to
autotwin_automata_learning
; - path to submodules/lsha;
- path to submodules/sha2dt_semantic_mapper;
- path to submodules/skg_connector.
The automata_learner script contains an example of a learning procedure for testing purposes:
- function learn_automaton takes as input:
- the pov, i.e., a string out of 'item', 'resource', 'plant';
- the start date of the time window for events, e.g., '2023-11-04-13-0-0';
- the end date of the time window for events, e.g., '2023-11-04-14-2-0';
- The learned automaton will be saved in
resources/learned_sha
.
- function delete_automaton deletes nodes representing the learned automaton from the SKG, if there already exists one with the same name;
- function store_automaton stores the learned automaton into the SKG;
- function write_semantic_links identifies and stores the semantic links between the learned automaton and existing SKG nodes.
Copyright © 2024 Livia Lestingi