{"id":13557680,"url":"https://github.com/OnToology/OnToology","last_synced_at":"2025-04-03T12:31:02.273Z","repository":{"id":28499997,"uuid":"32016400","full_name":"OnToology/OnToology","owner":"OnToology","description":"Online tool to automatically generate documentation and evaluation for Ontologies hosted on GitHub","archived":false,"fork":false,"pushed_at":"2024-03-26T19:16:23.000Z","size":12451,"stargazers_count":83,"open_issues_count":83,"forks_count":23,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-11-04T08:35:35.730Z","etag":null,"topics":["ontology","ontology-documentation","ontology-engineering","ontology-evaluation","ontology-visualization","python","rdf","rdfxml"],"latest_commit_sha":null,"homepage":"http://OnToology.linkeddata.es","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OnToology.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-11T12:29:08.000Z","updated_at":"2024-09-23T01:48:59.000Z","dependencies_parsed_at":"2022-07-13T16:44:56.163Z","dependency_job_id":"0a4057bb-0963-4880-b7d5-25229e2997ce","html_url":"https://github.com/OnToology/OnToology","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OnToology%2FOnToology","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OnToology%2FOnToology/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OnToology%2FOnToology/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OnToology%2FOnToology/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OnToology","download_url":"https://codeload.github.com/OnToology/OnToology/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247002179,"owners_count":20867417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ontology","ontology-documentation","ontology-engineering","ontology-evaluation","ontology-visualization","python","rdf","rdfxml"],"created_at":"2024-08-01T12:04:29.183Z","updated_at":"2025-04-03T12:30:57.262Z","avatar_url":"https://github.com/OnToology.png","language":"Python","funding_links":[],"categories":["Python","python","Tools","Ontology Utilities"],"sub_categories":["BBedit"],"readme":"\n# ![alt text](https://raw.githubusercontent.com/OnToology/OnToology/main/media/icons/logoprop1_readme.png \"OnToology\")\n\n[![Build Status](https://ahmad88me.semaphoreci.com/badges/OnToology/branches/main.svg)](https://ahmad88me.semaphoreci.com/projects/OnToology)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1317786.svg)](https://doi.org/10.5281/zenodo.1317786)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/7e81902ad6044e72bbc6af11a5201e0e)](https://www.codacy.com/gh/OnToology/OnToology/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=OnToology/OnToology\u0026amp;utm_campaign=Badge_Grade)\n[![Twitter](https://img.shields.io/twitter/follow/OnToology.svg?style=social\u0026label=@OnToology)](https://twitter.com/OnToology) [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\n[//]: # ([![codecov]\u0026#40;https://codecov.io/gh/OnToology/OnToology/branch/main/graph/badge.svg?token=PJgHWaaa9l\u0026#41;]\u0026#40;https://codecov.io/gh/OnToology/OnToology\u0026#41;)\n\nA 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. It also offers seamless publication of user ontologies with w3id using GitHub pages.\n\nYou can find a live version of OnToology online: [http://ontoology.linkeddata.es](http://ontoology.linkeddata.es).\n\nTeam: Ahmad Alobaid, Daniel Garijo, Maria Poveda, Idafen Santa, Alba Fernandez Izquierdo, Oscar Corcho\n\nLicense:  [Apache License v2](https://opensource.org/licenses/Apache-2.0)\n\nIf you want to cite Ontoology in a scientific paper or technical report, you can use the following [Bibtex citation](/media/references/ontoology.bib) 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](https://doi.org/10.1016/j.websem.2018.09.003)\n\n# Funding\n\nThe development of OnToology has been supported by the Spanish national project Datos 4.0 (TIN2016-78011-C4-4-R)\n\n# Tools\n\nHere is a list of tools being used by OnToology.\n\n* [owl2jsonld](https://github.com/stain/owl2jsonld) ( [zenodo](http://dx.doi.org/10.5281/zenodo.10565) )\n* [Widoco](https://github.com/dgarijo/Widoco) ( [zenodo](https://zenodo.org/badge/latestdoi/11427075) )\n* [OOPS!](http://oops.linkeddata.es)\n* [AR2DTool](https://github.com/idafensp/ar2dtool)\n* [oops-report](https://github.com/OnToology/oops-report)\n* [Themis](https://github.com/oeg-upm/Themis)\n\n# Documentation for users\n\nIf you are an ontology engineer willing to use OnToology, you can check our [step by step documentation](http://ontoology.linkeddata.es/tutorial). You can also check our list of [Frequently Asked Questions](http://ontoology.linkeddata.es/faqs)\n\n# Documentation for developers\n\nWe provide some documentation for developers who want to contribute to the 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 to the project.\n\n## Test workflow\n\nThere are two kinds of tests:\n\n1. Using mock. These kinds of tests use a list of stored requests expected from GitHub APIs. These are fast and do not need GitHub keys or setup.\n2. Using real GitHub repos. These kinds of tests uses GitHub APIs. These tests can take some time and need special keys to access relevant test repos. For this reason, these are not available for the public. However, they are executed automatically after each *merge* to the `main` branch.\n\n## Run Tests on Real GitHub Repo\n\n*This is only available for certain people*\n\n1. Copy the keys into the folder `ssh`\n2. Create a file `scripts/secret_setup.sh`\n3. Write the following and fill the missing values (currently the private\napp is not added in the tests, so it can be left empty).\n(see secret setup section below).\n4. Run the tests on docker\n\n```bash\nsh scripts/run_docker_tests.sh\n```\n\n*Note:* If you made changes, you might need to rebuild the image\n`docker-compose build`\n\n## Secret Setup\n\n```bash\n#!/bin/sh\nexport github_password=\"\"\nexport github_email=\"\"\nexport client_id_login=\"\"\nexport client_id_public=\"\"\nexport client_id_private=\"\"\nexport client_secret_login=\"\"\nexport client_secret_public=\"\"\nexport client_secret_private=\"\"\nexport test_user_token=\"\"\nexport test_user_email=\"\"\nexport github_username=\"\"\n```\n\n## Run Locally\n\n1. Setup (see Run Tests on Real GitHub Repo section [here](https://github.com/OnToology/OnToology/tree/main#run-tests-on-real-github-repo))\n2. Run the following: `sh scripts/run_docker.sh`\n3. Go to `127.0.0.1:8000` and start using OnToology.\n\n\u003c!--\n## To run automated tests\n1. You should have [docker](https://docs.docker.com/) and [docker-compose](https://docs.docker.com/compose/) installed\n2. You need to have a GitHub user to act as \"OnToologyUser\" (you can choose any username you like).\n3. Add the details as in the *secret setup* section below.\n4. Run the automated tests script `sh scripts/run_tests.sh`\n\n## Run Locally\n### via script\n1. `sh scripts/run_web.sh`\n### manual\n1. `cp -Rf ~/.ssh/ ssh` (assuming you have a *nix and that you already have an ssh key)\n1. `mkdir -p .git`\n1. `docker-compose build --no-cache`\n1. `docker-compose run -p 8000:8000 web .venv/bin/python manage.py runserver 0.0.0.0:8000`\n\n## To access the command line\n`sh scripts/run_docker.sh`\n\n### Secret setup\nThis file should be added in `scripts/secret_setup.sh`\n```\n#!/bin/sh\nexport github_password=\"\"\nexport github_email=\"\"\nexport client_id_login=\"\"\nexport client_id_public=\"\"\nexport client_id_private=\"\"\nexport client_secret_login=\"\"\nexport client_secret_public=\"\"\nexport client_secret_private=\"\"\nexport test_user_token=\"\"\nexport test_user_email=\"\"\nexport github_username=\"\"\n```\n*Note: this this info are related to your test user on GitHub to mimic the behaviour of `OnToologyUser` which is used on the live version of OnToology*\n\n\n### Environment variables\nHere we describe some of the main ones\n* `rabbit_processes` : The number of rabbit processes to automatically run (0 means do not run it automatically).\n\n### How to contribute\nThere are two workflows:\n\n##### Case 1: If you are a contributor:\n1. 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.\n2. 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.\n\n##### Case 2: If you are not added as a contributor yet (or you are a contributor who prefers this workflow):\n1. Fork from the current live branch (now it is `master`).\n2. Create a pull request, we will review it and merge if it is ok.\n\n### Dependency notice\n* To run the tests, we use the `mock` option for github api. It was rejected by the `PyGithub` maintainers, so make sure to use\nthe version in `ahmad88me/PyGithub`.  (see below)\n\n## Local Setup\n\n### On Linux\n\n(tested on ubuntu, debian, mint and fedora)\n\n#### To install the tools\n\n1. Open the terminal and `cd` to the location of choice.\n2. `export PLAYGROUND=$PWD`.\n3. Copy and paste the commands of choice to the terminal from `scripts/setup_docker_base.sh`\n\n### Install Pygithub (not the upstream version)\n\n#### either directly from github\n\n`pip install git+https://github.com/ahmad88me/PyGithub.git`\n\n#### or locally\n\n1. `git clone https://github.com/ahmad88me/PyGithub.git`\n1. `cd OnToology` (assuming both are on the same level/directory)\n1. `pip install -e ../Pygithub` (change this to any directory you want)\n\n### NEW: Running OnToology Locally\n1. create a new github user (not your personal account, another account).\n1. create ssh key for that user [here](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent#generating-a-new-ssh-key).\n1. copy the ssh key `id_ed25519` and `id_ed25519.pub` to `ssh` (*copy to the ssh folder located inside the OnToology folder*).\n\n# To DEBUG \ndocker ps\ndocker exec -it \u003ccontainer name\u003e /bin/sh \n\n--\u003e\n\n# Deploy\n\n1. Clone the repo.\n2. Set up the variables in `OnToology/localwsgi.py` (see above for the details).\n3. Create virtual env (optional).\n4. Install dependencies using pip (`pip install -r requirements`).\n5. Run the [stiqueue](https://github.com/ahmad88me/stiqueue) server\n(with the ip and port).\n6. Run `OnToology/sqclient.py`.\n\n# Debugging Guide\n## Debugging Live Version\nSometimes things happens and the processes or the APIs fail. Here are the common ones and how to resolve them.\n1. *Access permissions* on the server. OnToology generates the resources, which are automatically has different permissions \n(probably www-data) rather than the user itself. So, make sure that the apache user has the permission to do so.\n2. *GitHub permissions*. When users add their repo to OnToology, the proper permissions will be added. There are two: \n   1. *OnToology access*. \u003cimg height=300px src=\"media/faqs/OnToologyAccess-light.png\"/\u003e\n   2. *OnToologyUser as a collaborator*. In this case, the last thing that will be shown in the user log will be `new htaccess:` (if the repo didn't has any ontology published before. If the repo has published an ontology before, you will see that OnToology tried several times to publish, but failed). \u003cimg height=300px src=\"media/faqs/Collaborator-light.png\"/\u003e\n\n\n## Debugging with Docker\n\n```\ndocker-compose up\ndocker ps\ndocker exec -it \u003ccontainer name\u003e /bin/sh \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOnToology%2FOnToology","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOnToology%2FOnToology","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOnToology%2FOnToology/lists"}