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 to be considered for event mining, e.g., '2023-11-04-13-0-0';
- the end date of the time window to be considered for event mining, e.g., '2023-11-04-14-2-0';
The learned automaton will be saved in resources/learned_sha
.
Copyright © 2024 Livia Lestingi