Skip to main content

DeepOnto aims to provide implemented deep learning models and an evaluation platform for various ontology engineering purposes.

Project description

deeponto

license docs pypi

A package for ontology engineering with deep learning.

News :newspaper:

  • Deploy OAEI utilities at deeponto.align.oaei for scripts at the sub-repository OAEI-Bio-ML as well as bug fixing. (v0.8.4)
  • Bug fixing for BERTMap (stuck at reasoning) and ontology alignment evaluation. (v0.8.3)
  • Deploy deeponto.onto.OntologyNormaliser and deeponto.onto.OntologyProjector (v0.8.0).
  • Upload Java dependencies directly and remove mowl from pip dependencies (v0.7.5).
  • Deploy the deeponto.subs.bertsubs and deeponto.onto.pruning modules (v0.7.0).
  • Deploy the deeponto.probe.ontolama and deeponto.onto.verbalisation modules (v0.6.0).
  • Rebuild the whole package based on the OWLAPI; remove owlready2 from the essential dependencies (from v0.5.x).

The complete changelog is available at: repository or website.

About

$\textsf{DeepOnto}$ aims to provide building blocks for implementing deep learning models, constructing resources, and conducting evaluation for various ontology engineering purposes.

Installation

OWLAPI

$\textsf{DeepOnto}$ relies on OWLAPI version 4 (written in Java) for ontologies.

We follow what has been implemented in mOWL that uses JPype to bridge Python and Java Virtual Machine (JVM).

!!! Warning

In the previous releases, the OWLAPI integration only worked on Mac OS and Linux.
The system restriction should be lifted now, please make a query if the incompatibility still exists.

Pytorch

$\textsf{DeepOnto}$ relies on Pytorch for deep learning framework.

Configure Pytorch installation with CUDA support using, for example:

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

Basic usage of Ontology does not rely on GPUs, but for efficient deep learning model training, please make sure torch.cuda.is_available() returns True.

Install from PyPI

Other dependencies are specified in setup.cfg and requirements.txt which are supposed to be installed along with deeponto.

# requiring Python>=3.8
pip install deeponto

Install from Git Repository

To install the latest, probably unreleased version of deeponto, you can directly install from the repository.

pip install git+https://github.com/KRR-Oxford/DeepOnto.git

Main Features

deeponto

Figure: Illustration of DeepOnto's architecture.

Ontology Processing

The base class of $\textsf{DeepOnto}$ is [Ontology][deeponto.onto.Ontology], which serves as the main entry point for introducing the OWLAPI's features, such as accessing ontology entities, querying for ancestor/descendent (and parent/child) concepts, deleting entities, modifying axioms, and retrieving annotations. See quick usage at load an ontology. Along with these basic functionalities, several essential sub-modules are built to enhance the core module, including the following:

  • Ontology Reasoning ([OntologyReasoner][deeponto.onto.OntologyReasoner]): Each instance of $\textsf{DeepOnto}$ has a reasoner as its attribute. It is used for conducting reasoning activities, such as obtaining inferred subsumers and subsumees, as well as checking entailment and consistency.

  • Ontology Pruning ([OntologyPruner][deeponto.onto.OntologyPruner]): This sub-module aims to incorporate pruning algorithms for extracting a sub-ontology from an input ontology. We currently implement the one proposed in [2], which introduces subsumption axioms between the asserted (atomic or complex) parents and children of the class targeted for removal.

  • Ontology Verbalisation ([OntologyVerbaliser][deeponto.onto.OntologyVerbaliser]): The recursive concept verbaliser proposed in \cite{he2023ontolama} is implemented here, which can automatically transform a complex logical expression into a textual sentence based on entity names or labels available in the ontology. See verbalising ontology concepts.

  • Ontology Projection ([OntologyProjector][deeponto.onto.OntologyProjector]): The projection algorithm adopted in the OWL2Vec* ontology embeddings is implemented here, which is to transform an ontology's TBox into a set of RDF triples. The relevant code is modified from the mOWL library.

  • Ontology Normalisation ([OntologyNormaliser][deeponto.onto.OntologyNormaliser]): The implemented $\mathcal{EL}$ normalisation is also modified from the mOWL library, which is used to transform TBox axioms into normalised forms to support, e.g., geometric ontology embeddings.

Tools and Resources

Individual tools and resources are implemented based on the core ontology processing module. Currently, $\textsf{DeepOnto}$ supports the following:

License

!!! license "License"

Copyright 2021-2023 Yuan He.
Copyright 2023 Yuan He, Jiaoyan Chen.
All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at *<http://www.apache.org/licenses/LICENSE-2.0>*

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Citation

The preprint of our system paper for $\textsf{DeepOnto}$ is current available at arxiv.

Yuan He, Jiaoyan Chen, Hang Dong, Ian Horrocks, Carlo Allocca, Taehun Kim, and Brahmananda Sapkota. DeepOnto: A Python Package for Ontology Engineering with Deep Learning. arXiv preprint arXiv:2307.03067 (2023).

@article{he2023deeponto,
  title={DeepOnto: A Python Package for Ontology Engineering with Deep Learning},
  author={He, Yuan and Chen, Jiaoyan and Dong, Hang and Horrocks, Ian and Allocca, Carlo and Kim, Taehun and Sapkota, Brahmananda},
  journal={arXiv preprint arXiv:2307.03067},
  year={2023}
}

Relevant Publications

  • [1] Yuan He‚ Jiaoyan Chen‚ Denvar Antonyrajah and Ian Horrocks. BERTMap: A BERT−Based Ontology Alignment System. In Proceedings of 36th AAAI Conference on Artificial Intelligence (AAAI-2022). /arxiv/ /aaai/
  • [2] Yuan He‚ Jiaoyan Chen‚ Hang Dong, Ernesto Jiménez-Ruiz, Ali Hadian and Ian Horrocks. Machine Learning-Friendly Biomedical Datasets for Equivalence and Subsumption Ontology Matching. The 21st International Semantic Web Conference (ISWC-2022, Best Resource Paper Candidate). /arxiv/ /iswc/
  • [3] Jiaoyan Chen, Yuan He, Yuxia Geng, Ernesto Jiménez-Ruiz, Hang Dong and Ian Horrocks. Contextual Semantic Embeddings for Ontology Subsumption Prediction. World Wide Web Journal (WWWJ-2023). /arxiv/ /wwwj/
  • [4] Yuan He‚ Jiaoyan Chen, Ernesto Jiménez-Ruiz, Hang Dong and Ian Horrocks. Language Model Analysis for Ontology Subsumption Inference. Findings of the Association for Computational Linguistics (ACL-2023). /arxiv/ /acl/

Please report any bugs or queries by raising a GitHub issue or sending emails to the maintainers (Yuan He or Jiaoyan Chen) through:

first_name.last_name@cs.ox.ac.uk

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deeponto-0.8.4.tar.gz (92.1 MB view hashes)

Uploaded Source

Built Distribution

deeponto-0.8.4-py3-none-any.whl (92.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page