Skip to content

mariapoveda/OnToology

 
 

Repository files navigation

alt text

Build Status codecov DOI Twitter

A system for collaborative ontology development process. Given a repository with an owl file, OnToology will survey it and produce diagrams, a complete documentation and validation based on common pitfalls.

You can find a live version of OnToology online: http://ontoology.linkeddata.es.

Team: Ahmad Alobaid, Daniel Garijo, Maria Poveda, Idafen Santa, Alba Fernandez Izquierdo, Oscar Corcho

License: Apache License v2 (http://www.apache.org/licenses/LICENSE-2.0)

If you want to cite Ontoology in a scientific paper or technical report, you can use the following Bibtex citation or directly this text: Alobaid A, Garijo D, Poveda-Villalón M, Santana-Pérez I, Fernández-Izquierdo A, Corcho O (2019) Automating ontology engineering support activities with OnToology. Journal of Web Semantics 57:100472, https://doi.org/10.1016/j.websem.2018.09.003

Funding

The development of OnToology has been supported by the Spanish national project Datos 4.0 (TIN2016-78011-C4-4-R)

Tools

Here is a list of tools being used by OnToology.

Documentation for users

If you are an ontology engineering willing to use Ontoology, you can check our step by step documentation. Please check also our list of Frequently Asked Questions

Documentation for developers

Next we provide some documentation for developers who want to contribute to the further development Ontoology or for those who are interested in deploying Ontoology locally or in their servers. Feel free to contact us if you are interested in contributing of fixing some functionality

To run automated tests

  1. You should have docker and docker-compose installed
  2. You need to have a GitHub user to act as "OnToologyUser" (you can choose any username you like).
  3. Add the details as in the secret setup section below.
  4. Run the automated tests script sh scripts/run_tests.sh

Run Locally

via script

  1. sh scripts/run_web.sh

manual

  1. cp -Rf ~/.ssh/ ssh (assuming you have a *nix and that you already have an ssh key)
  2. mkdir -p .git
  3. docker-compose build --no-cache
  4. docker-compose run -p 8000:8000 web .venv/bin/python manage.py runserver 0.0.0.0:8000
  5. Run the RabbitMQ server (consumers).
    • Locally: python OnToology/rabbit.py
    • For a linux server: nohup .venv/bin/python OnToology/rabbit.py &
  6. (Optional) you can run it with multiple threads nohup .venv/bin/python OnToology/rabbit.py 3 &
  7. Now, this is run automatically. But, make sure that the environment variable rabbit_processes is set to a value > 0

Development

For development, you can run the db sh scripts/run_db.sh. And then locally, you can access that db. Or you can install mongo db locally on your machine.

To access the command line

sh scripts/run_docker.sh

Secret setup

This file should be added in scripts/secret_setup.sh

#!/bin/sh
export github_password=""
export github_email=""
export client_id_login=""
export client_id_public=""
export client_id_private=""
export client_secret_login=""
export client_secret_public=""
export client_secret_private=""
export test_user_token=""
export test_user_email=""
export rabbit_host=""

Environment variables

Here we describe some of the main ones

  • rabbit_processes : The number of rabbit processes to automatically run (0 means do not run it automatically).

How to contribute

There are two workflows:

Case 1: If you are a contributor:
  1. Create a new branch from the current live one (now it is master). Make sure to give it a presentive name. In case it is for a specific issue, include the issue number in the branch name, e.g. change-spinner-123.
  2. Once you push your changes on the new branch, create a pull request and one of the admins will check your code base and will merge if it is ok.
Case 2: If you are not added as a contributor yet (or you are a contributor who prefers this workflow):
  1. Fork from the current live branch (now it is master).
  2. Create a pull request, we will review it and merge if it is ok.

Dependency notice

  • To run the tests, we use the mock option for github api. It was rejected by the PyGithub maintainers, so make sure to use the version in ahmad88me/PyGithub. (see below)

Local Setup

On Linux

(tested on ubuntu, debian, mint and fedora)

To install the tools

  1. Open the terminal and cd to the location of choice.
  2. export PLAYGROUND=$PWD.
  3. Copy and paste the commands of choice to the terminal from scripts/setup_docker_base.sh

Install Pygithub (not the upstream version)

either directly from github

pip install git+https://github.com/ahmad88me/PyGithub.git

or locally

  1. git clone https://github.com/ahmad88me/PyGithub.git
  2. cd OnToology (assuming both are on the same level/directory)
  3. pip install -e ../Pygithub (change this to any directory you want)

About

Online tool to automatically generate documentation and evaluation for Ontologies hosted on GitHub

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 61.3%
  • HTML 30.0%
  • Shell 6.3%
  • JavaScript 1.4%
  • CSS 0.5%
  • Dockerfile 0.4%
  • TeX 0.1%