An enhanced workflow designer and builder for the OpenModel project
In the high-level overview of the OIP, OntoFlow is the first key component to come into play and, through its two submodules OntoFlowKB and OntoFlowDM, is responsible for storing and managing the semantic representation of the elements of interest for the individual use cases and for using decision-making and MCO techniques to choose the most suitable workflow among the possible ones.
OntoFlowKB is a triplestore-based component that stores and manages workflow-related ontological concepts and application specific ones. It also enables querying capabilities with respect to the execution of queries. The current implementation relies on the Stardog technology.
OntoFlowDM is the decision-making engine for the OntoFlow architecture. Its main task consists in suggesting the best ontological route that can obtain the desired target and, at the same time, optimize the interested criteria. It:
- Retrives all the semantic data contained in the triplestore.
- Runs the search algorithm to navigate the ontologies and find all the possible routes producing the targeted output.
- Finds the best route according to predefined criteria.
The output of OntoFlow is the ontological description of a workflow that describes, as a set of concepts and relationships between them, the final process by which the output can be derived from the available ontology. This description, being ontologically defined, contains no information either about the actual data to be used or about how to perform the various functions.
OntoFlow can be installed as a Python package inside your own environment. Since there is no deployment on the PyPi platform, you have too directly install it from this repository
pip install .
or add it as dependency
git+https://github.com/H2020-OpenModel/OntoFlow@<commit code>
or install it with pip
pip install git+https://github.com/H2020-OpenModel/OntoFlow
To install a given release, commit or branch, you can addit to the end of the URL preceeded by an "@"-sign. For example: pip install git+https://github.com/H2020-OpenModel/OntoFlow@<commit code>.
To test the proper functioning of OntoFlow, there are a number of tests that can be performed. You need to install all the proper dependencies
pip install '.[tests]'
Tests can be found in the test folder. To run them, you can use the following command
python -m unittest tests/*.py
By default the triplestore url is set to the http://localhost:3030 endpoint for local testing. If you want to change it, you can set the TRIPLESTORE_URL environment variable to the desired endpoint.
TRIPLESTORE_URL=<triplestore url> python -m unittest tests/*.py
OntoFlow comes with some examples to test its functionality and see how it works. To be able to use them install its complete version
pip install '.[examples]'
By default the triplestore url is set to the http://localhost:3030 endpoint for local testing. If you want to change it, you can set the TRIPLESTORE_URL environment variable to the desired endpoint.
Examples can be found in the examples folder. For the moment, please, refer only to the ss3 and the openmodel_example examples.

