{"id":18243904,"url":"https://github.com/gaurav/shacli","last_synced_at":"2025-09-04T18:45:13.966Z","repository":{"id":40163680,"uuid":"236814996","full_name":"gaurav/shacli","owner":"gaurav","description":"A CLI for SHACL","archived":false,"fork":false,"pushed_at":"2023-04-12T05:41:06.000Z","size":856,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-04-06T23:47:00.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://shacli.org","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gaurav.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":"2020-01-28T18:59:02.000Z","updated_at":"2021-07-13T15:31:36.000Z","dependencies_parsed_at":"2025-02-14T14:46:06.517Z","dependency_job_id":"5119633d-29c4-4689-a70f-8f3d81e5e090","html_url":"https://github.com/gaurav/shacli","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav%2Fshacli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav%2Fshacli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav%2Fshacli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaurav%2Fshacli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaurav","download_url":"https://codeload.github.com/gaurav/shacli/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247901493,"owners_count":21015273,"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-05T09:04:12.996Z","updated_at":"2025-04-08T18:29:13.238Z","avatar_url":"https://github.com/gaurav.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shacli: A SHACL CLI\n\n[![Build Status](https://travis-ci.org/gaurav/shacli.svg?branch=master)](https://travis-ci.org/gaurav/shacli)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.shacli/shacli_2.12/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.shacli/shacli_2.12)\n\nShacli is a command-line interface to the [Shapes Constraint Language (SHACL)](https://www.w3.org/TR/shacl/).\nIt was originally developed as part of the effort to convert the [ClinGen Interpretation Model to SHACL](https://github.com/clingen-data-model/spec2shacl),\nwhere we needed a tool that provided clear error messages to anyone using SHACL to validate incoming data.\n\nIt is implemented as a wrapper around [TopQuadrant's SHACL library](https://github.com/TopQuadrant/shacl).\n\n## How to run Shacli\n\nShacli can be run directly by using [Coursier](https://get-coursier.io/).\nCoursier itself will [need to be installed first](https://get-coursier.io/docs/cli-overview.html#install-native-launcher), and is available on package managers\nsuch as [Homebrew](https://brew.sh/).\n\nOnce Coursier is installed, you can start Shacli. Note the use of `--` to separate\nCoursier's arguments from Shacli's arguments.\n\n```console\n$ coursier launch org.shacli:shacli_2.12:0.1 -- --help\nSHACLI: A SHACLI CLI v0.1\n  -h, --help      Show help message\n  -v, --version   Show version of this program\n\nSubcommand: validate\n  -d, --display-nodes      Display all failing nodes as Turtle\n  -i, --ignore  \u003carg\u003e...   Don't display SourceConstraintComponent ending with\n                           these strings\n  -o, --only  \u003carg\u003e...     Only display SourceConstraintComponent ending with\n                           these strings\n  -h, --help               Show help message\n\n trailing arguments:\n  shapes (required)   Shapes file to validate (in Turtle)\n  data (required)     Data file(s) to validate (in Turtle)\nSubcommand: generate\n  -b, --base-u-r-i  \u003carg\u003e   Base URI of the shapes to generate\n  -o, --output  \u003carg\u003e       Output file where SHACL should be written\n  -r, --reasoning  \u003carg\u003e    Choose reasoning: none (default), rdfs or owl\n  -h, --help                Show help message\n\n trailing arguments:\n  data (required)   Data file(s) or directories to validate (in Turtle)\n```\n\nYou can try validating the ClinGen examples files in the `test/resources` directory\nusing the `validate` command.\n\n```console\n$ ls\nCHANGELOG.md LICENSE      README.md    build.sbt    docs         project      sonatype.sbt src          target\n$ git branch\n  master\n* test-clingen-requirements\n$ coursier launch org.shacli:shacli_2.12:0.1 -- validate src/test/resources/clingen_shapes.ttl src/test/resources/clingen_data.jsonld\n10:55:08.015 [main] INFO  org.renci.shacli.ShacliApp$ - Starting validation of src/test/resources/clingen_data.jsonld against src/test/resources/clingen_shapes.ttl.\n10:55:08.545 [main] WARN  org.apache.jena.riot - Bad IRI: \u003c7/2/2012 8:45 AM\u003e Spaces are not legal in URIs/IRIs.\n10:55:08.629 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_CondMech165 (types: http://purl.obolibrary.org/obo/SEPIO_0000228; props: DC:source, http://purl.obolibrary.org/obo/SEPIO_0000278, http://purl.obolibrary.org/obo/SEPIO_0000276, http://purl.obolibrary.org/obo/SEPIO_0000197, http://purl.obolibrary.org/obo/SEPIO_0000167, rdf:type) was not checked.\n10:55:08.629 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000174 (types: RDFS:Class; props: RDFS:subClassOf, rdf:type) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000265 (types: none; props: RDFS:label) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000154 (types: none; props: RDFS:label) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_Null406 (types: http://purl.obolibrary.org/obo/SEPIO_0000274; props: http://purl.obolibrary.org/obo/SEPIO_0000275, http://purl.obolibrary.org/obo/SEPIO_0000197, rdf:type) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_Contrib519 (types: http://purl.obolibrary.org/obo/SEPIO_0000158; props: http://purl.obolibrary.org/obo/SEPIO_0000160, http://purl.obolibrary.org/obo/SEPIO_0000017, http://purl.obolibrary.org/obo/BFO_0000055, rdf:type) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://reg.genome.network/allele/CA256496 (types: http://purl.obolibrary.org/obo/GENO_0000890; props: http://dataexchange.clinicalgenome.org/CG_0001, rdf:type) was not checked.\n10:55:08.630 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_GenCond054 (types: http://purl.obolibrary.org/obo/SEPIO_0000219; props: http://purl.obolibrary.org/obo/SEPIO-CG_98901, rdf:type) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_EvLn132 (types: http://purl.obolibrary.org/obo/SEPIO_0000002; props: http://purl.obolibrary.org/obo/SEPIO_0000084, http://purl.obolibrary.org/obo/SEPIO_0000084, http://purl.obolibrary.org/obo/SEPIO_0000084, http://purl.obolibrary.org/obo/SEPIO_0000084, rdf:type) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000268 (types: none; props: RDFS:label) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_Agent010 (types: PROV:agent; props: RDFS:label, rdf:type) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/Orphanet_247 (types: none; props: RDFS:label) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_BMVR161 (types: http://purl.obolibrary.org/obo/SEPIO_0000246; props: DC:description, http://purl.obolibrary.org/obo/SEPIO_0000278, http://purl.obolibrary.org/obo/SEPIO_0000197, rdf:type) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_CtxAll099 (types: http://purl.obolibrary.org/obo/GENO_0000891; props: http://dataexchange.clinicalgenome.org/CG_0100, http://dataexchange.clinicalgenome.org/CG_0003, rdf:type) was not checked.\n10:55:08.631 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000329 (types: none; props: RDFS:label) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO-CG_99034 (types: http://purl.obolibrary.org/obo/SEPIO_0000192; props: RDFS:label, DC:description, http://purl.obolibrary.org/obo/SEPIO_0000196, http://purl.obolibrary.org/obo/SEPIO_0000184, rdf:type) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO-CG_99015 (types: none; props: RDFS:label) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://www.genenames.org/12403 (types: none; props: RDFS:label) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_MolCon169 (types: http://purl.obolibrary.org/obo/SEPIO_0000229; props: http://purl.obolibrary.org/obo/SEPIO_0000275, http://purl.obolibrary.org/obo/SEPIO_0000197, rdf:type) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource SEPI:0000224 (types: none; props: RDFS:label) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://dataexchange.clinicalgenome.org/CGEX_CtxNm9099 (types: http://dataexchange.clinicalgenome.org/CG_0020; props: http://dataexchange.clinicalgenome.org/CG_0007, http://dataexchange.clinicalgenome.org/CG_0006, rdf:type) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SEPIO_0000191 (types: RDFS:Class; props: RDFS:subClassOf, rdf:type) was not checked.\n10:55:08.632 [main] WARN  org.renci.shacli.ShacliApp$ - Resource http://purl.obolibrary.org/obo/SO_0001583 (types: none; props: RDFS:label) was not checked.\n10:55:08.633 [main] WARN  org.renci.shacli.ShacliApp$ - 23 resources NOT checked.\n10:55:08.633 [main] INFO  org.renci.shacli.ShacliApp$ - 1 resources checked.\nCLASS \u003chttp://purl.obolibrary.org/obo/SEPIO_0000191\u003e (2 errors)\nNode http://dataexchange.clinicalgenome.org/CGEX_CritAssess156 (2 errors)\n - Path \u003chttp://www.w3.org/2000/01/rdf-schema#label\u003e (1 errors)\n   - [http://www.w3.org/ns/shacl#MinCountConstraintComponent] Property needs to have at least 1 values, but found 0\n\n - Path \u003chttp://purl.obolibrary.org/obo/SEPIO_0000197\u003e (1 errors)\n   - [http://www.w3.org/ns/shacl#NodeConstraintComponent] Value does not have shape cgshapes:CriterionAssessmentOutcomeValueSetShape (value: SEPI:0000224)\n\n\n\n2 errors displayed\nsrc/test/resources/clingen_data.jsonld FAILED VALIDATION\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaurav%2Fshacli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaurav%2Fshacli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaurav%2Fshacli/lists"}