{"id":21296688,"url":"https://github.com/eccenca/ontology-pipeline-template","last_synced_at":"2026-03-19T19:45:15.918Z","repository":{"id":70031953,"uuid":"590370712","full_name":"eccenca/ontology-pipeline-template","owner":"eccenca","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-14T22:57:19.000Z","size":80,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-01-22T07:20:16.271Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jinja","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/eccenca.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2023-01-18T09:01:12.000Z","updated_at":"2023-01-18T10:50:26.000Z","dependencies_parsed_at":"2024-11-21T14:42:32.291Z","dependency_job_id":null,"html_url":"https://github.com/eccenca/ontology-pipeline-template","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eccenca%2Fontology-pipeline-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eccenca%2Fontology-pipeline-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eccenca%2Fontology-pipeline-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eccenca%2Fontology-pipeline-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eccenca","download_url":"https://codeload.github.com/eccenca/ontology-pipeline-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243764642,"owners_count":20344457,"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":[],"created_at":"2024-11-21T14:29:02.720Z","updated_at":"2026-01-02T14:36:53.229Z","avatar_url":"https://github.com/eccenca.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ontology Pipeline\n\n[![version][version-shield]][changelog] [![copier][copier-shield]][copier] [![eccenca Corporate Memory][cmem-shield]][cmem]\n\n## Requirements\n\nTo initialize an ontology repository with the ontology pipeline and update it you need:\n- [Copier](https://copier.readthedocs.io/) (minimum 6.0.0, better use 7.0.1 or higher; runs on Python 3)\n\nTo execute the ontology pipeline you need:\n- [Task](https://taskfile.dev/)\n- [Docker](https://www.docker.com/), [Podman](https://podman.io/), or a compatible container engine\n- [Python 3](https://www.python.org/)\n\n## How to use\n\n1. Go to an existing git repository with your ontology or simply create a new git repository (e.g. `git init my-ontology`).\n\n2. In the ontology repository execute:\n\n```\ncopier copy gh:eccenca/ontology-pipeline-template .\n```\n\n3. Answer the questions.\n\nCopier will overwrite your `README.md` if you had one already. Adjust the `README.md` according to your needs. Make sure to go through the `TODO` section.\nAdd all of the newly created files to the repository and push it.\nYou can now execute the ontology pipeline:\n\n- `task ci` - to execute the continuous integration\n- `task ci cd` - to execute the continuous integration and continuous delivery\n- `task update` - to update the ontology pipeline, it will ask all questions again but they are already entered with your previous answers. (Make sure to perform a `task dist-clean` and commit all changes on the repository before an update.)\n- `task clean` - remove temporary files, that are created during a pipeline run\n- `task dist-clean` - the same as `task clean` + also removing the generated artifacts\n\nIf you have selected a CI option, your CI should execute the ontology pipeline.\n\n## What it does\n\nBasically it fetches your ontology from cmem, commits it to the repo, does some steps on it, commits the results and then imports the resulting ontology to cmem again.\n\n\n## Configuration and Customization\n\nThe execution of the ontology pipeline can be further configured by queries and variables.\n\n### Queries\nIn the directory `resources/queries/` you can add files with [SPARQL 1.1 Construct](https://www.w3.org/TR/sparql11-query/#construct) queries to extract data from your cmem instance during the run.\n\n### Variables\n\nMany variables are already set with the values you have given to copier in the `.copier-answers.env` file.\nDon't edit this file since it might be overwritten when running `copier update` resp. `task update`.\nTo overwrite variable or set additional variables create a file `.env` in the root of the repository.\n\n| Variable Name         | Step              | Description                                                                    | Default                        |\n|-----------------------|-------------------|--------------------------------------------------------------------------------|--------------------------------|\n| `GIT_PUSH`            | cd                | If it is not `False` a `git push` will be executed at the end of the `cd` task | `True` |\n| `CMEMC_DOCKER_PARAMS` | shape_generation  | Configure additional docker parameters for the execution of cmemc              | `-v $PWD/cmemc.ini:/cmemc.ini` |\n\n\n## Trouble shooting\n\n### Migrate from a different template remote\n\nOpen your `.copier-answers.yml` and change the current `_src_path` to `_src_path: gh:eccenca/ontology-pipeline-template`.\n\n### Connect to a local CMEM orchestration\n\nIf you are running your CMEM orchestration locally you need to connect cmemc to the docker/podman network of your orchestration.\nTo achieve that create a file called `.env` in your repository.\nIn it define the variable `CMEMC_DOCKER_PARAMS=\"-v $PWD/cmemc.ini:/cmemc.ini --network conmtainer:\u003ccontainer_id\u003e\"`, where `\u003ccontainer_id\u003e` is the container id of the apache2 container in your cmem orchestration.\n\n## Development Setup\n\nTo get a development setup you need to checkout this `ontology-pipeline-template` repository and create a second repository with an ontology using the copier template.\nTo initialize your ontology repository with your build environment run.\n```\ncopier copy --vcs-ref HEAD path/to/template/repository path/to/ontology/repository\n```\n\nTo simply switch your ontology repository to the latest development state of this repository run\n\n```\ncopier copy --vcs-ref main update\n# or\ncopier copy --vcs-ref HEAD update\n```\n\nTo switch the remote template repository check out [Trouble shooting](#trouble-shooting) \u003e [Migrate from a different template remote](#migrate-from-a-different-template-remote).\n\n## TODO\n- Initial generation of turtle files\n- How to deal with `.gitignore` and similar files updated and used by multiple tools\n- Resolve prefixes entered during copier run (is this possible with copier?)\n- Shape generation\n  - get combined ontology/ontology with all imports\n  - shapes from ontology\n  - shapes from instances\n- Shape documentation\n- Ontology Visualization\n- Entity Map\n- Analyze Shapes and Ontology\n  - overlapping terms\n- Integrate workflow for contribution to the ontology via the repository as well\n- Support multiple cmem instances to sync to. (Maybe this should be the task of something like github action environment, maybe it should be independent of github, …)\n\n## Out if Scope\n- Get DI projects\n\n[version-shield]: https://img.shields.io/github/v/tag/eccenca/ontology-pipeline-template?label=version\u0026sort=semver\n[changelog]: https://github.com/eccenca/ontology-pipeline-template/blob/main/CHANGELOG.md\n[github-actions]: https://github.com/eccenca/ontology-pipeline-template/actions\n[build-shield]: https://github.com/eccenca/ontology-pipeline-template/actions/workflows/check.yml/badge.svg\n[copier]: https://copier.readthedocs.io/\n[copier-shield]: https://img.shields.io/badge/made%20with-copier-orange\n[cmem]: https://documentation.eccenca.com\n[cmem-shield]: https://img.shields.io/badge/made%20for-Corporate%20Memory-blue\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feccenca%2Fontology-pipeline-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feccenca%2Fontology-pipeline-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feccenca%2Fontology-pipeline-template/lists"}