Production Ontology Merging (PrOM) Framework

Overview

Production Ontology Merging (PrOM) Framework

OWL 2 DL ontology merging framework tailored to the production domain

Features

  • preprocessing: translations, spell checks, and interactive debugging
  • matching: string-similarity-based, terminological, and structural algorithms
  • correspondence selection: greedy and optimal regarding the overall similarity score
  • postprocessing: link ontology creation and interactive debugging
  • quality assessment: calculation of precision, recall, and F-measure

Contents

  • data/: production vocabulary, helper scripts for downloading ontos, and reference alignments
  • docs/: configuration files for various examples, utilities for processing OAEI outputs and reference alignments, graphical abstract
  • queries/: queries for information extraction
  • src/: sources for creating, loading, preprocessing, matching, and merging the ontologies
  • dependency-installer.sh: bash utility for installing dependencies
  • cleanup.sh: bash utility for removing temporary and generated files

Requirements

  • Python 3.7
  • bash recommended

Instructions

  • on Linux, run the bash script dependency_installer.sh to set up a virtual environment with the packages required
  • minimal example: simply run main.py
  • production process example:
    1. download ontologies and preprocess them using the bash script download_ontos.sh in data/
    2. adapt the config file, as a reference cp. the file alt_config.yml in docs/
    3. run main.py
  • for running OAEI benchmarks, cp. the instructions in the utility scripts in docs/

Citation

For scientific use, please cite using the following bibtex entry:

@article{ocker2021cii,
title = {{A Framework for Merging Ontologies in the Context of Smart Factories (accepted)}},
author = {Ocker, Felix and Vogel-Heuser, Birgit and Paredis, Christiaan JJ},
journal={Computers in Industry},
year = {2021},
publisher={Elsevier}
}

License

GPL v3.0

Contact

Felix Ocker - [email protected]
Technical University of Munich - Institute of Automation and Information Systems

You might also like...
Framework for creating and running trading strategies. Blatantly stolen copy of qtpylib to make it work for Indian markets.
Framework for creating and running trading strategies. Blatantly stolen copy of qtpylib to make it work for Indian markets.

_• Kinetick Trade Bot Kinetick is a framework for creating and running trading strategies without worrying about integration with broker and data str

A multi exploit instagram exploitation framework
A multi exploit instagram exploitation framework

Instagram Exploitation Framework About IEF Is an open source Instagram Exploitation Framework with various Exploits that could be used to mod your pro

The official Discord Python framework for thenewboston blockchain.

Project Setup Follow the steps below to set up the project on your environment. Mac Setup Homebrew requires the Xcode command-line tools from Apple's

This is Pdisk Upload Bot made using Python with Pyrogram Framework. Its capable of uploading direct download link with thumbnail or without thumbnail & with Title Support.

Pdisk-Upload-Bot Introduction This Is PDisk Upload Bot Used To Upload Direct Link To Pdisk With Thumb Support Deploy Heroku Deploy Local Deploy pip in

MONAI Deploy App SDK offers a framework and associated tools to design, develop and verify AI-driven applications in the healthcare imaging domain.
MONAI Deploy App SDK offers a framework and associated tools to design, develop and verify AI-driven applications in the healthcare imaging domain.

MONAI Deploy App SDK offers a framework and associated tools to design, develop and verify AI-driven applications in the healthcare imaging domain.

Framework to collect and process weather data from wttr.in.

Weathercrawler Automatic extraction and processing framework for weather data from wttr.in Installation tested with: Python 3.7.3 Python 3.9.4 git clo

Framework to make using Bottle less time-consuming and easier

A class for the Bottle API to reduce clutter and difficulty while creating a website.

Coinbase Pro API interface framework and tooling

neutrino This project has just begun. Rudimentary API documentation Installation Prerequisites: Python 3.8+ and Git 2.33+ Navigate into a directory of

A discord http interactions framework built on top of Sanic

snowfin An async discord http interactions framework built on top of Sanic Installing for now just install the package through pip via github # Unix b

Comments
  • AssertionError: OP with more than one noun

    AssertionError: OP with more than one noun

    It seems like multiple nouns within rdfs:label statements for OPs can cause an AssertionError: OP with more than one noun:.

    As a, hopefully reproducible, minimal example I've used onto-a.owl and onto-fr.owl. If I change <rdfs:label xml:lang="en">is created by</rdfs:label> to <rdfs:label xml:lang="en">creation has creator</rdfs:label>, I receive the following traceback:

    robert@DESKTOP-XXXXXX:~/git/prom/src$ python3.8 prom.py
    * Owlready2 * Warning: optimized Cython parser module 'owlready2_optimized' is not available, defaulting to slower Python implementation
    checking consistency
    ----
    file://./../data/onto-a.owl
    No inconsistencies detected.
    ----
    file://./../data/onto-fr.owl
    No inconsistencies detected.
    ----
    Traceback (most recent call last):
      File "prom.py", line 231, in <module>
        prom.run_all()
      File "prom.py", line 207, in run_all
        tbox_matches = self.match_tbox()
      File "prom.py", line 89, in match_tbox
        matches = cbs.main(self.paths[0][1], self.paths[0][0], self.paths[1][1], self.paths[1][0], "semi")
      File "/home/robert/git/prom/src/compare_by_structure.py", line 468, in main
        semantic_combos = get_semantic_elem_combos(iri1, path1, iri2, path2)
      File "/home/robert/git/prom/src/compare_by_structure.py", line 428, in get_semantic_elem_combos
        semantic_matches = cbl.main(iri1, path1, iri2, path2)
      File "/home/robert/git/prom/src/compare_by_labels.py", line 387, in main
        matches.extend(implicit_compare(analyzed_labels_1[counter], analyzed_labels_2[counter], elem_type))
      File "/home/robert/git/prom/src/compare_by_labels.py", line 293, in implicit_compare
        assert len(tokens_by_type(combo[0][2], "NOUN")) == 1, f"OP with more than one noun: {combo[0][0]}"
    AssertionError: OP with more than one noun: http://example.org/onto-a.owl#is_created_by
    robert@DESKTOP-XXXXXX:~/git/prom/src$
    

    I've initially come across the AssertionError: OP with more than one noun: in a larger ontology with multiple object properties that contain more than two nouns in both the IRIs and rdfs:labels of OPs. Since changing the label causes the error within the minimal example, I assume that within this larger ontology the labels are also the culprits.

    It seems like this behavior does not apply to DPs, as I can't reproduce it with them.

    opened by robert-mieth 0
Owner
PhD student
null
The python SDK for Eto, the AI focused data platform for teams bringing AI models to production

Eto Labs Python SDK This is the python SDK for Eto, the AI focused data platform for teams bringing AI models to production. The python SDK makes it e

null 5 Apr 21, 2022
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Light Gradient Boosting Machine LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed a

Microsoft 14.5k Jan 8, 2023
Social Framework

Social Int Framework Social Int Framework its a Selenium script that scrape the IG photos and do a Reverse search on google and yandex for finding ano

null 29 Dec 6, 2022
Utilizing the freqtrade high-frequency cryptocurrency trading framework to build and optimize trading strategies. The bot runs nonstop on a Rasberry Pi.

Freqtrade Strategy Repository Please test all scripts and dry run them before using them in live mode Contact me on discord if you have any questions!

Michael Fourie 90 Jan 1, 2023
Facebook open graph api implementation using the Django web framework in python

Django Facebook by Thierry Schellenbach (mellowmorning.com) Status Django and Facebook are both rapidly changing at the moment. Meanwhile, I'm caught

Thierry Schellenbach 1.4k Dec 29, 2022
Attempting to create a framework for Discord Slash commands... yes

discord_slash.py Attempting to create a framework for Discord Slash commands... yes Installation pip install slashpy Documentation Coming soon™ Why is

AlexFlipnote 11 Mar 24, 2021
tfquery: Run SQL queries on your Terraform infrastructure. Query resources and analyze its configuration using a SQL-powered framework.

??️ tfquery ??️ Run SQL queries on your Terraform infrastructure. Ask questions that are hard to answer ?? What is tfquery? tfquery is a framework tha

Mazin Ahmed 311 Dec 21, 2022
Based on nonebot, a common bot framework for maimai.

mai bot 使用指南 此 README 提供了最低程度的 mai bot 教程与支持。 Step 1. 安装 Python 请自行前往 https://www.python.org/ 下载 Python 3 版本(> 3.7)并将其添加到环境变量(在安装过程中勾选 Add to system P

Diving-Fish 150 Jan 1, 2023
The Discord bot framework for Python

Pycordia ⚠️ Note! As of now, this package is under early development so functionalities are bound to change drastically. We don't recommend you curren

Ángel Carias 24 Jan 1, 2023