{"id":25843069,"url":"https://github.com/incatools/verificado","last_synced_at":"2026-05-13T15:34:35.782Z","repository":{"id":152468526,"uuid":"618946769","full_name":"INCATools/verificado","owner":"INCATools","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-12T13:46:45.000Z","size":624,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-07T05:26:00.567Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/INCATools.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":"2023-03-25T20:07:09.000Z","updated_at":"2024-06-12T13:46:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"e0182e82-a3f7-444d-836a-cc68ae54813c","html_url":"https://github.com/INCATools/verificado","commit_stats":null,"previous_names":["incatools/relation-validator","anitacaron/relation-validator","incatools/verificado"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/INCATools/verificado","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fverificado","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fverificado/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fverificado/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fverificado/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INCATools","download_url":"https://codeload.github.com/INCATools/verificado/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2Fverificado/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"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","status":"online","status_checked_at":"2025-11-24T02:00:07.096Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-03-01T06:37:58.900Z","updated_at":"2025-11-24T15:06:33.579Z","avatar_url":"https://github.com/INCATools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Verificado [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10557434.svg)](https://doi.org/10.5281/zenodo.10557434)\n\nValidate ontology relationships using [Ubergraph](https://zenodo.org/record/7249759#.ZDRuZOzML1c) as source of truth. Relationships in this context may be subClassOf axioms between names classes (e.g. 'lymphocyte' subClassOf 'cell') or existential restrictions, (e.g. 'enterocyte' part_of some ‘intestinal epithelium’).\n\nUbergraph is an RDF triplestore with [39 OBO ontologies](https://github.com/INCATools/ubergraph#integrated-obo-ontology-triplestore) merged, precomputed OWL classification and materialised class relationship from existential property restrictions.  Validation therefore works for any directly asserted or inferred/indirect subClassOf relationship or existential restriction.\n\n\n## Install\n\n### Dependencies\n\nThis package depends on [Graphviz](https://graphviz.org/) and [OBOGraphviz](https://www.npmjs.com/package/obographviz) to represent the validation as a graph.\n\n#### Graphviz\n\nOn macOS:\n\n```bash\nbrew install graphviz\n```\n\nOn Linux:\n\n```bash\napt install graphviz\n```\n\nFor another platform, please follow this instruction to [install Graphviz](https://graphviz.org/download/).\n\n#### OBOGraphviz\n\nBefore installing OBOGraphviz, make sure you have installed Node.js version \u003e= 14.16. Please follow this instructions to [install Node and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).\n\nThen install the `obographviz` package globally:\n\n```bash\nnpm install -g obographviz\n```\n\n### `verificado` package\n```bash\npip install verificado\n```\n\n## Configure YAML file\n\nIn the config file, it is defined the list of relationships the validation should run on. The order is essential.\n\nThe yaml file needs to have the keys `relationships` and `filename`. Check an example below:\n\n```yaml\nrelationships:\n  sub_class_of: rdfs:subClassOf\n  part_of: BFO:0000050\n  connected_to: RO:0001025\n  has_soma_location: RO:0002100\n  ...\n\nfilename: path/to/filename.csv\n```\n\nThe filename can be in TSV or CSV. When using CSV, double-quote if the label contains a common. It's preferred to have the following columns:\n\n| s                   | slabel                                | user_slabel                               | o                  | olabel                                | user_olabel                               |\n|---------------------|---------------------------------------|-------------------------------------------|--------------------|---------------------------------------|-------------------------------------------|\n| the subject term ID | the label of the term in the column s | optional label for the term given by user | the object term ID | the label of the term in the column s | optional label for the term given by user |\n\nHowever, the package can also accept TSV or CSV files representing a hierarchy. You can specify an undetermined number of levels, each level defined with an ontology term ID and the label of the term. Please check [an example](tests/test-generic.tsv) in the tests directory.\n\nAdd `to_be_parsed: true` to the yaml file when using this type of file.\n\n```yaml\nrelationships:\n  sub_class_of: rdfs:subClassOf\n  part_of: BFO:0000050\n  connected_to: RO:0001025\n  has_soma_location: RO:0002100\n  ...\n\nfilename: path/to/filename.csv\nto_be_parsed: true\n```\n\n## Run verificado CLI\n\n```bash\nverificado validate --input path/to/config.yaml --output path/to/output.csv\n```\n\nThe `output.csv` file will be in the same format as the `filename.csv`. It will return the cases where a triple (subject, relationship, object) with the relationships listed in the yaml file was not found in Ubergraph.\n\n## List of ontologies available\n\nTo know which ontologies and their version are available in Ubergraph, use the following CLI:\n\n```bash\nverificado ontologies_version --output filename.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fverificado","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincatools%2Fverificado","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fverificado/lists"}