Fully operational Python API for information management and in-memory data transformations-analytics on Associative Semiotic Hypergraph Development Framework. Watch the demo, are you speechless ? Powered by:
Watch the demo, check youtube settings and make sure video quality is at 1080p HD. You may also set the playback speed at 0.75 to increase the time of executing commands.
Current release of Hypermorph is dependent on Python graph-tool package. Generally speaking graph-tool
native installation is not easy because it has many C++ dependencies which are not installable via Python-only package management systems such as pip. Your best option is to use either a Docker
image, we have not built one with HyperMorph yet, or use the Conda package manager for both GNU/Linux and MacOS, via conda-forge. This is included in requirements_conda.txt
(see install dependencies).
HyperMorph is written in Python 3. We recommend you create a virtual environment with the latest Anaconda 64-Bit Python 3.8 distribution.
conda create --name hmorph python=3.8
conda activate hmorph
python -m site
You can also add command conda activate hmorph
at the end of .bashrc file
pip install hypermorph
ln -s ~/anaconda3/envs/hmorph/lib/python3.8/site-packages/hypermorph HyperMorph
cd HyperMorph
conda install --file requirements_conda.txt
pip install -r requirements_pip.txt
pip install ipython
ipython
copy and paste the following commands in IPython console and examine the output
from hypermorph import MIS
mis = MIS(debug=1, rebuild=True, warning=False, net_name='demo_schema', net_format='gt', net_path='data/DemoData/Schemata')
HyperMorph v0.1
Operational API for information management and data transformations on Associative Semiotic Hypergraph Development Framework
(C) 2015-2020 Athanassios I. Hatzis
Python 3.8.5 | packaged by conda-forge | (default, Aug 21 2020, 18:21:27)
[GCC 7.5.0] on linux
Session Started on Wed, 26 Aug 2020 08:48:02 +0000
Please wait, rebuilding metadata graph schema ...
Done.
get an overview of the subsystems
mis.overview
Out[1]:
nid cname alias ntype ctype counter
dim4 dim3 dim2
0 0 0 0 *** HyperMorph METADATA CATALOG SYSTEM *** MMS SYS SYS 4
1 0 0 1 *** HyperMorph DATA RESOURCES Subsystem *** DRS SYS DS 0
2 0 0 2 *** HyperMorph DATA MODELS Subsystem *** DMS SYS DM 0
3 0 0 3 *** HyperMorph HYPER LINKS Subsystem *** HLS SYS HL 0
4 0 0 4 *** HyperMorph SCHEMA LINKS Subsystem *** SLS SYS SL 4
save your schema
mis.save()
'/home/vagrant/anaconda3/envs/hmorph/lib/python3.8/site-packages/hypermorph/data/DemoData/Schemata/demo_schema.gt'
If you did not get any warnings or errors, HyperMorph package and its dependencies have been succesffully installed. Congratulations you have completed successfully the installation guide. Now you may continue testing with our demo guide or see a draft of the documentation for the project.
Change to the location of HyperMorph package
ln -s ~/anaconda3/envs/hmorph/lib/python3.8/site-packages/hypermorph HyperMorph
cd HyperMorph
If you have followed our installation guide you can find the script files at
ls -lh ~/HyperMorph/demo
otherwise look at the /site-packages/hypermorph/demo
folder of your environment.
Open demo/add_resources.py
and execute commands.
Warning: net_path
parameter is assigned a relative path
from hypermorph import MIS
# rebuild TRIADB Schema
mis = MIS(debug=1, rebuild=True, warning=False,
net_name='demo_schema', net_format='gt', net_path='data/DemoData/Schemata')
If you want to add those MySQL database resources included with the demo then you have to restore them in your MySQL DBMS (see create/restore databases). Or change the parameters of the add()
command accordingly to use your own data resources.
Alternatively you may also execute the whole script and create HyperMorph Schema python demo/add_resources.py
HyperMorph v0.1
Operational API for information management and data transformations on Associative Semiotic Hypergraph Development Framework
(C) 2015-2020 Athanassios I. Hatzis
Python 3.8.5 | packaged by conda-forge | (default, Aug 21 2020, 18:21:27)
[GCC 7.5.0] on linux
Session Started on Wed, 26 Aug 2020 11:36:34 +0000
Please wait, rebuilding metadata graph schema ...
Done.
sudo mysql
GRANT ALL PRIVILEGES ON *.* TO 'demo'@'localhost' IDENTIFIED BY 'demo';
CREATE DATABASE SPC;
CREATE DATABASE Northwind;
CREATE DATABASE TRIADB;
USE TRIADB;
CREATE TABLE Nodes (id int DEFAULT NULL);
CREATE TABLE Edges (id int DEFAULT NULL);
cd ~/HyperMorph/data/MySQLDumps
mysql -u demo -pdemo SPC < dump-SPC-201909050814.sql
mysql -u demo -pdemo Northwind < dump-Northwind8Entities-201909061113.sql
A quick review on other scripts included in the demo
folder of the distribution.
Script file | Description |
---|---|
operations_schema.py | Commands for fetching metadata from HyperGraph Schema. You must create a schema first see add_resources.py |
operations_data.py | Commands to fetch data from data resources that have been included in the Schema. You must create a schema first see add_resources.py |
add_aset_from_additional_data_resource.py | Creates Associative Entity Set (ASET) from a extra data resource that is added on the fly. The script requires that you download Physician_Compare.fr.gz file and extract it inside ~/HyperMorph/data/DemoData/Feather/Physicians folder. |
operations_aset.py | Operations in normal filtering mode or in associative filtering mode |
video_scenario.py | This is the script for the screencast demo |
# Comment out
# from graph_tool.draw import graph_draw, sfdp_layout, fruchterman_reingold_layout, arf_layout, radial_tree_layout
#
# you will not be able to run graph_draw() commands