BoxEL: Box EL++ Embedding
This is the official pytorch implementation of the BoxEL for the description logic EL++. BoxEL++ is a geometric approach based on box embedding to generate embeddings for the description logic EL++
Requiriments
You need CUDA installed to use a GPU, and need to install python libraries with:
pip install -r requirements.txt
Data
We have preprocessed all the data in /data directory. In particular, we have normalized the ontologies into normal forms and splited the data into train/valid/test sets.
For original data, refer https://bio2vec.cbrc.kaust.edu.sa/data/elembeddings/el-embeddings-data.zip for protein-protein interaction and https://github.com/kracr/EmELpp for subsumption reasoning.
How to run Box EL++
We provide two ways to run our BoxEL++ embeddings: python scripts and jupyter notebooks. Since different dataset/tasks have different features, we provide specific files for each datasts/tasks
Jupyter notebooks
We provided specific jupyter notebooks files for all the tasks used in our paper.
e.g, to run and visualize our family domain example, simply open and run
./notebooks/BoxEL-ToyFamily.ipynb
You could get the the following results
Python scripts
We also provided python scripts to run the tasks.
e.g. to run BoxEL on Gene Ontology, simply run
python scripts/BoxEL-GO.py
The settings of the used hyperparameters is given in the python files.
Pretrained models
We provided some pretrained models in ./models/