OntoSeer is a tool to help users build better quality ontologies

Overview

Ontoseer

This document provides documentation for the first version of OntoSeer.OntoSeer is a tool that monitors the ontology development process andprovides suggestions in real time to improve the quality of the ontology under development.

Table of Contents

  1. Introduction.

  2. Pre-Requisites.

  3. Installation Guide.

    3.1 Using Source Code

    3.2 Downloading .jar files

  4. User Manual.

    4.1 ODP Recommendation

    4.2 Vocab and Alternate Name Recommendation

    4.3 Naming Convention Recommendation

    4.4 Axiom Recommendation

    4.5 Class Hierarchy Validation

  5. Future Work.

  6. Sustainibility

  7. Brief Demo

  8. Google Form for User Study

  9. Index Creation 10.Citation

1. Introduction

While building an ontology, there are several things to consider such as reusing concepts/properties from the existing ontologies, using ontology design patterns (ODPs), following the naming conventions for concepts/properties and designing a good class hierarchy. These are issues that beginner ontology engineers find hard and can be tricky for experienced ones as well. OntoSeer (https://github.com/kracr/ontoseer) is a Protege plugin that overlooks the ontology that is being built in Protege and offers different types of recommendations.

2.Prerequisites

  1. User should have Protege installed in the machine. Version should be >5.0.0.

    If one is not having protege or protege5.0.0 or higher installed they can download latest version of protege from https://protege.stanford.edu/products.php based on machine’s operating system:

  2. JRE should be installed in user machine and version should be >1.8. To check for java version one can type java -version in terminal.The following will be the output.

    java-versioncheck

3.Installation Guide

In this section we will discuss how one can download OntoSeer.

3.1 Using Source Code

This repository contains code for OntoSeer (versions 5.0.0 and higher). The Maven POM file in the top-level directory demonstrates all the dependencies to run the tool

Prerequisites

To build and run Ontoseer through code compilation , one must have the following items installed:

  • Apache's Maven.
  • A tool for checking out a Git repository.
  • A Protege distribution (5.0.0 or higher). The Protege 5.2.0 release is available from the main Protege website.

Installation Steps:

  1. Get a copy of the example code:

    git clone https://github.com/kracr/ontoseer

  2. Change into the OntoSeer directory.

  3. Type mvn clean package. On build completion, the "target" directory will contain a OntoSeer-${version}.jar file.

  4. Copy the JAR file from the target directory to the "plugins" subdirectory of your Protege distribution.

a. Click on the plugins folder.

OntoSeer_jar_plugin

b.Copy OntoSeer.jar in the plugin folder.

OntoSeer_jar_plugin_folder

  1. Restart Protege.

  2. Go to about Section of Protege and check whether the plugin has been correctly installed or not .It will be shown in the window.

OntoSeer_jar_plugin_About

  1. Click on Windows. Click on Tabs .Click on OntoSeer Tab.This window will appear.

OntoSeer_jar_plugin_Actual_Tab

3.2 Downloading .jar files

1.One can download Ontoseer.jar file from the following link:

https://github.com/kracr/ontoseer/releases

OntoSeer jar

The link to download the code repository and instruction manual is :

https://github.com/kracr/ontoseer
  1. Click on Assets->Ontoseer.jar

OntoSeer jar

The jar file will get downloaded.

  1. Copy the jar file to the plugins folder of Protege.

a. Click on the plugins folder.

OntoSeer_jar_plugin

b.Copy OntoSeer.jar in the plugin folder.

OntoSeer_jar_plugin_folder

  1. Restart Protege.

  2. Go to about Section of Protege and check whether the plugin has been correctly installed or not .It will be shown in the window.

OntoSeer_jar_plugin_About

  1. Click on Windows. Click on Tabs .Click on OntoSeer Tab.This window will appear.

OntoSeer_jar_plugin_Actual_Tab

Now Start Building your Ontology.

For tutorial on ontology building one can refer to the Protege tutorial. This can be found in the following link:

https://cgi.csc.liv.ac.uk/~frank/teaching/comp08/protege_tutorial.pdf .

For more information for using OntoSeer please go through OntoSeer_Manual.pdf file present in master branch of OntoSeer.

4.User Manual

This section discusses how OntoSeer can be used along with Protege to get various recommendations.

  1. Click On OntoSeer tab button. This window will be shown.

Plugin Window

4.1 ODP Recommendation

  1. Click On ODP recommendation button. Two classes must be present for getting ODP recommendation. This window will be shown.

OntoSeer ODP

  1. Enter description of the ontology that one is trying to make .Alternatively domain name,name of class and properties one want to make or can additively provide with the competency questions.One can provide additional comments also. But one have to make sure that they are actually making at least two classes to get recommendation. But the recommendation will get better if one provide answer to as many questions as one can.

  2. Get Recommendation. The recommendation is based on the data that we have scraped from 223 ODPs that we collected from http://ontologydesignpatterns.org/wiki/Community:ListPatterns

OntoSeer_jar_ODP_reco_show

4.2 Vocab and Alternate Name Recommendation

  1. One should start buliding classes and properties in Protege .For example:- OntoSeer_jar_Vocab
  2. Click on VocabRecommendation button.
  3. Select the class or property for which you want the recommendations.Recommendations will be provided based on query results from LOV,Bioportal and our indexed files. 4.Get the recommendations. OntoSeer_jar_Vocab_reco_show

4.3 Naming Convention Recommendation

  1. One should start buliding classes and properties in Protege .For example:-

  2. Click on the NamingRecommendation button.

OntoSeer_jar_Name

  1. Select the class or property for which you want the recommendations.

4.Get the class recommendations.

OntoSeer_jar_Name_reco_show

5.Get the property recommendations.

OntoSeer_jar_Name_reco_show

4.4 Axiom Recommendation

  1. Start building the ontologies .

  2. Click on Axiom Recommendation button .

OntoSeer_jar_Name

  1. Select the class or property for which you want the recommendations.

4.Get the recommendations.

Axiom Recommendation

4.5 Class Hierarchy Validation

Class hierarch validation actually validates the correctness of a subclass hierarchy based on properties like rigidity, identitiy and unity of the classes.

  1. Click on Class Hierarchy Validation button . OntoSeer_jar_Name

  2. Answer the questions in (Y/N) format. Answer to all the questions are mandatory to velidate the hierarchy.

  3. Validate the Hierarchy Class Hierarchy

5.Future Work

As part of future work, we plan to engage in a dialogue with the ontology developer to resolve confusing issues such as having some term as a class vs.property vs. instance. This confusion will be resolved by asking the ontology developer a series of questions such as does the term interact with other concepts, are the terms very specific or general, if a term is made into a class, what will be its instances?

6.Sustainability Plan

In the process of building OntoSeer, we have been able to collect only a few owl corpora and index them. The end-user can add other corpora according to their suitability by downloading them; OntoSeer will index them.

7.Demo Video of OntoSeer

1.A brief demo of OntoSeer can be found in the link:https://youtu.be/LGXHGXmVanI . 2.A brief presentation of OntoSeer is available at: https://www.youtube.com/watch?v=8WrgaHixkww&t=0s

8.Google Form for User Study

Please find the link of Google form for user study here. Please give inputs so that we can make the tool better. https://docs.google.com/forms/d/1TlYaGaQYB2ewwAJbcIZDxXz2APyngvsvSbMRmizbf94/edit?usp=sharing

9.Index Creation

For creating a new index for OntoSeer please follow the following steps.

  1. Clone the entire OntoSeer project from "https://github.com/kracr/ontoseer.git"
  2. Import the project as a Maven project in eclipse.
  3. Go to indices.java file under "OntoSeer/src/main/java/edu/stanford/bmir/protege/examples/view/indices.java" folder.
  4. Run the file as a java application.
  5. The system will ask for the name of the folder which you want to index. Please provide it with it.
  6. It will take some time based on number and size of files. On completion it will print a message "Done indexing".
  7. After this click on Maven install for the entire project.
  8. Now use OntoSeer.jar following the procedure mentioned in above steps.

Alternatively, 1.Clone the entire OntoSeer project from "https://github.com/kracr/ontoseer.git" 2.Go to the folder where OntoSeer is dowloaded through command prompt. OntoSeer Folder 3. Go to the OntoSeer/src/main/java/edu/stanford/bmir/protege/examples/view/ folder. View Folder 4. Run the index.sh file. index.sh 5. On completion "Done Indexing" will be shown. Use the generated OntoSeer.jar for recommendation.

10.Citation

Please do not forget to cite any of the two below bibtex if you are using OntoSeer.

@inproceedings{DBLP:conf/comad/BhattacharyyaM21, author = {Pramit Bhattacharyya and Raghava Mutharaju}, editor = {Jayant R. Haritsa and Shourya Roy and Manish Gupta and Sharad Mehrotra and Balaji Vasan Srinivasan and Yogesh Simmhan}, title = {OntoSeer: {A} Tool to Ease the Ontology Development Process}, booktitle = {{CODS-COMAD} 2021: 8th {ACM} {IKDD} {CODS} and 26th COMAD, Virtual Event, Bangalore, India, January 2-4, 2021}, pages = {428}, publisher = {{ACM}}, year = {2021}, url = {https://doi.org/10.1145/3430984.3431067}, doi = {10.1145/3430984.3431067}, timestamp = {Mon, 18 Jan 2021 16:23:27 +0100}, biburl = {https://dblp.org/rec/conf/comad/BhattacharyyaM21.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }

or

@mastersthesis{M.TechThesis, author = {Pramit Bhattacharyya and Raghava Mutharaju}, title = {A recommendation system involving human-in-the-loop to improve the quality of ontologies}, booktitle={M.Tech Thesis}, school = {Indraprastha Institute of Information Technology, Delhi}, year = 2020, }

You might also like...
Daily knowledge pills to get better in Python.

Python daily pills Daily knowledge pills to get better Python code. Why Does your Python code suffers of any of this symptoms? Incorrect Indentation I

This is a fork of the BakeTool with some improvements that I did to have better workflow.

blender-bake-tool This is a fork of the BakeTool with some improvements that I did to have better workflow. 99.99% of work was done by BakeTool team.

Better Giveaways is a bot that will change the experience of using a giveaway bot forever.

Better-Giveaways Better Giveaways is a bot that will change the experience of using a giveaway bot forever. VoxelBotUtils/Novus, latest PyPi releases

:fishing_pole_and_fish: List of `pre-commit` hooks to ensure the quality of your `dbt` projects.
:fishing_pole_and_fish: List of `pre-commit` hooks to ensure the quality of your `dbt` projects.

pre-commit-dbt List of pre-commit hooks to ensure the quality of your dbt projects. BETA NOTICE: This tool is still BETA and may have some bugs, so pl

A python implementation of differentiable quality diversity.

Differentiable Quality Diversity This repository is the official implementation of Differentiable Quality Diversity.

PyScaffold is a project generator for bootstrapping high quality Python packages
PyScaffold is a project generator for bootstrapping high quality Python packages

PyScaffold is a project generator for bootstrapping high quality Python packages, ready to be shared on PyPI and installable via pip. It is easy to use and encourages the adoption of the best tools and practices of the Python ecosystem, helping you and your team to stay sane, happy and productive. The best part? It is stable and has been used by thousands of developers for over half a decade!

0CD - BinaryNinja plugin to introduce some quality of life utilities for obsessive compulsive CTF enthusiasts
0CD - BinaryNinja plugin to introduce some quality of life utilities for obsessive compulsive CTF enthusiasts

0CD Author: b0bb Quality of life utilities for obsessive compulsive CTF enthusia

A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme tool
A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme tool

Oppo/Realme Flash .OFP File on Bootloader A tool to flash .ofp files in bootloader mode without needing MSM Tool, an alternative to official realme to

tg-nearby Trilateration of nearby Telegram users as described in my corresponding article.

tg-nearby Trilateration of nearby Telegram users as described in my corresponding article. Setup If you want to toy with the code in this repository

Releases(Ontoseer)
Owner
Knowledgeable Computing and Reasoning Lab
Knowledgeable Computing and Reasoning (KRaCR) Lab at IIIT-Delhi, India, works on all aspects of Knowledge Graphs and ontologies.
Knowledgeable Computing and Reasoning Lab
Badge-Link-Creater 'For more beautiful profiles.'

Badge-Link-Creater 'For more beautiful profiles.' Ready Badges Prepares the codes of the previously prepared badges for you. Note Click here for more

Mücahit Gündüz 9 Oct 19, 2022
A collection of existing KGQA datasets in the form of the huggingface datasets library, aiming to provide an easy-to-use access to them.

KGQA Datasets Brief Introduction This repository is a collection of existing KGQA datasets in the form of the huggingface datasets library, aiming to

Semantic Systems research group 21 Jan 06, 2023
A python program with an Objective-C GUI for building and booting OpenCore on both legacy and modern Macs

A python program with an Objective-C GUI for building and booting OpenCore on both legacy and modern Macs, see our in-depth Guide for more information.

dortania 4.7k Jan 02, 2023
Online-update est un programme python permettant de mettre a jour des dossier et de fichier depuis une adresse web.

Démarrage rapide Online-update est un programme python permettant de mettre a jour des dossier et de fichier depuis une adresse web. Mode préconfiguré

pf4 2 Nov 26, 2021
Comprehensive Python Cheatsheet

Comprehensive Python Cheatsheet

Jure Šorn 31.3k Dec 30, 2022
Async Python Circuit Breaker implementation

aiocircuitbreaker This is an async Python implementation of the circuitbreaker library. Installation The project is available on PyPI. Simply run: $ p

5 Sep 05, 2022
MIB2 STD ZR Firmware Upgrade

Upgrade MIB2 STD ZR Firmware (without Navigation) About This repository contains some scripts and documentation how to upgrade the MIB2 firmware to a

Fabian 18 Dec 29, 2022
Lock a program and kills it indefinitely if it is started.

Kill By Lock Lock a program and kills it indefinitely if it is started. How start it? It' simple, you just have to double-click on the python file (.p

1 Jan 12, 2022
Um pequeno painel de consulta

Spynel Um pequeno painel com consultas de: IP CEP PLACA CNPJ OBS: caso execute o script pelo termux, recomendo que use o da F-Droid por ser mais atual

Spyware 12 Oct 25, 2022
PyToQlik is a library that allows you to integrate Qlik Desktop with Jupyter notebooks

PyToQlik is a library that allows you to integrate Qlik Desktop with Jupyter notebooks. With it you can: Open and edit a Qlik app inside a Ju

BIX Tecnologia 16 Sep 09, 2022
MiniJVM is simple java virtual machine written by python language, it can load class file from file system and run it.

MiniJVM MiniJVM是一款使用python编写的简易JVM,能够从本地加载class文件并且执行绝大多数指令。 支持的功能 1.从本地磁盘加载class并解析 2.支持绝大多数指令集的执行 3.支持虚拟机内存分区以及对象的创建 4.支持方法的调用和参数传递 5.支持静态代码块的初始化 不支

keguoyu 60 Apr 01, 2022
LinuxHelper - A collection of utilities for non-technical Linux users accessible via a GUI

Linux Helper A collection of utilities for non-technical Linux users accessible via a GUI This app is still in very early development, expect bugs and

Seth 7 Oct 03, 2022
Recreate the joys of Office Assistant from the comfort of the Python interpreter

Recreate the joys of Office Assistant from the comfort of the Python interpreter.

Louis Sven Goulet 3 May 21, 2022
Code repository for the Pytheas submersible observation platform

Pytheas Main repository for the Pytheas submersible probe system. List of Acronyms/Terms USP - Underwater Sensor Platform - The primary platform in th

UltraChip 2 Nov 19, 2022
If Google News had a Python library

pygooglenews If Google News had a Python library Created by Artem from newscatcherapi.com but you do not need anything from us or from anyone else to

Artem Bugara 1.1k Jan 08, 2023
Headless chatbot that detects spam and posts links to it to chatrooms for quick deletion.

SmokeDetector Headless chatbot that detects spam and posts it to chatrooms. Uses ChatExchange, takes questions from the Stack Exchange realtime tab, a

Charcoal 421 Dec 21, 2022
Python 3.9.4 Graphics and Compute Shader Framework and Primitives with no external module dependencies

pyshader Python 3.9.4 Graphics and Compute Shader Framework and Primitives with no external module dependencies Fully programmable shader model (even

Alastair Cota 1 Jan 11, 2022
Urban Big Data Centre Housing Sensor Project

Housing Sensor Project The Urban Big Data Centre is conducting a study of indoor environmental data in Scottish houses. We are using Raspberry Pi devi

Jeremy Singer 2 Dec 13, 2021
An integrated library for checking email if it is registered on social media

An integrated library for checking email if it is registered on social media

Sidra ELEzz 13 Dec 08, 2022
Aoc 2021 kedro playground with python

AOC 2021 Overview This is your new Kedro project, which was generated using Kedro 0.17.5. Take a look at the Kedro documentation to get started. Rules

1 Dec 20, 2021