Ontolearn is an open-source software library for structured machine learning in Python. Ontolearn includes modules for processing knowledge bases, inductive logic programming and ontology engineering.
Project description
Ontolearn
Ontolearn is an open-source software library for explainable structured machine learning in Python.
Installation
Installation from source
git clone https://github.com/dice-group/Ontolearn.git
cd Ontolearn
conda create --name temp python=3.8
conda activate temp
conda env update --name temp
python -c 'from setuptools import setup; setup()' develop
python -c "import ontolearn"
tox # to test
Installation via pip
pip install ontolearn # see https://pypi.org/project/ontolearn/
Download external files (.link files)
Some resources like pre-calculated embeddings or pre_trained_agents
are not included in the Git repository directly. Use the following
command to download them from our data server.
./big_gitext/download_big.sh pre_trained_agents.zip.link
./big_gitext/download_big.sh -A # to download them all
To update or upload resource files, follow the instructions here and use the following command.
./big_gitext/upload_big.sh pre_trained_agents.zip
Building (sdist and bdist_wheel)
tox -e build
Building the docs
tox -e docs
Usage
See the manual, tests and examples folder for details.
from ontolearn.concept_learner import CELOE
from ontolearn.model_adapter import ModelAdapter
from owlapy.model import OWLNamedIndividual, IRI
from owlapy.namespaces import Namespaces
from owlapy.render import DLSyntaxObjectRenderer
from experiments_standard import ClosedWorld_ReasonerFactory
NS = Namespaces('ex', 'http://example.com/father#')
positive_examples = {OWLNamedIndividual(IRI.create(NS, 'stefan')),
OWLNamedIndividual(IRI.create(NS, 'markus')),
OWLNamedIndividual(IRI.create(NS, 'martin'))}
negative_examples = {OWLNamedIndividual(IRI.create(NS, 'heinz')),
OWLNamedIndividual(IRI.create(NS, 'anna')),
OWLNamedIndividual(IRI.create(NS, 'michelle'))}
# Only the class of the learning algorithm is specified
model = ModelAdapter(learner_type=CELOE,
reasoner_factory=ClosedWorld_ReasonerFactory,
path="KGs/father.owl")
model.fit(pos=positive_examples,
neg=negative_examples)
dlsr = DLSyntaxObjectRenderer()
for desc in model.best_hypotheses(1):
print('The result:', dlsr.render(desc.concept), 'has quality', desc.quality)
Contribution
Feel free to create a pull request
Simple Linting
Run
tox -e lint --
This will run flake8 on the source code.
For any further questions, please contact: onto-learn@lists.uni-paderborn.de
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ontolearn-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6eaf3765d0bdf8ef2035a8d440a6dd722e9abb659fdd0a99fe8bc80e7c9b10c7 |
|
MD5 | d68282172ff9620ef7546e7a8a27ac24 |
|
BLAKE2b-256 | 492dbe43ae7143221793c9d735544aa49d67931cc330144a18a5a57529be6795 |