{"id":19945126,"url":"https://github.com/solid/shapes","last_synced_at":"2026-04-17T21:01:41.382Z","repository":{"id":145675512,"uuid":"614430138","full_name":"solid/shapes","owner":"solid","description":"Solid Shapes","archived":false,"fork":false,"pushed_at":"2024-03-06T13:28:21.000Z","size":7,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-01T13:42:29.393Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/solid.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-15T15:10:41.000Z","updated_at":"2024-10-12T07:47:44.000Z","dependencies_parsed_at":"2024-11-13T00:25:56.124Z","dependency_job_id":"0262e781-5703-42ce-aea1-a77eaa50ba7d","html_url":"https://github.com/solid/shapes","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/solid/shapes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solid%2Fshapes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solid%2Fshapes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solid%2Fshapes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solid%2Fshapes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solid","download_url":"https://codeload.github.com/solid/shapes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solid%2Fshapes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28561902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T03:31:16.861Z","status":"ssl_error","status_checked_at":"2026-01-19T03:31:15.069Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2024-11-13T00:24:19.206Z","updated_at":"2026-04-17T21:01:41.363Z","avatar_url":"https://github.com/solid.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solid SHACL Shapes Catalogue\n\nThe *Solid SHACL Shapes Catalogue* is a collection of domain-specific **SHACL** validation shapes used across the Solid ecosystem.\n\n**Application developers are invited to find, modify, and submit their own SHACL shapes to this repository for existing and new domains through a guided GitHub peer review (PR) process.**\n\nIf you have feedback on this process, please raise it in the **[GitHub discussion](https://github.com/solid/shapes/discussions/20)**.\n\n## Background\n\nSolid ([https://solidproject.org](https://solidproject.org)) is a project aiming to give individuals control over their own data. Solid aims to decouple applications from user data. SHACL shapes act as contracts between applications, allowing apps to validate, discover, and reuse common data models when interacting with user data stored in Solid Pods.\n\n## Purpose\n\nThe *Solid SHACL Shapes Catalogue* supports interoperability and is designed to:\n\n* Provide a space for the community to converge on the data models used across applications – declared using SHACL shapes\n* Build up a collection of well-understood, reusable shape patterns\n* Enable a collaborative review process where shapes can be compared and discussed transparently\n* Support artefact generation from shapes, including object abstractions in Javascript, data validators (using SHACL engines), and forms.\n* Offer visibility into existing shapes to encourage reuse, reduce duplication, contributor recognition, and help new participants get started more easily\n\n\n## Repository Structure\n\nSHACL shapes are organised in a single flat directory structure, in the [/shapes](/shapes/) folder. Each file corresponds to a semantic domain or vocabulary. There are no sub-folders.\n\nThe repository contains shapes that we know are already used within the Solid ecosystem – including shapes based on the data models used by SolidOS, organised by semantic domain e.g. [/shapes/address.ttl](/shapes/address.ttl) and vocabulary e.g. [/shapes/vcard.ttl](/shapes/vcard.ttl). [Contributions from the community](./CONTRIBUTING.md) of shapes in use in the Solid ecosystem, as well as feedback are very much welcomed.\n\n## Contributing Shapes \n\nSee the **[guidelines for contributing](./CONTRIBUTING.md)**. \n\n## Design Principles\n\nThe Solid Shapes Catalogue follows a set of design principles to support interoperability, reuse, and long-term stability across the Solid ecosystem.\n\n### Interoperability First\n\nShapes prioritise interoperability between Solid applications rather than strict validation. Overly strict validation can prevent applications from reading or writing compatible data across Pods. Shapes therefore favour flexible structures that allow different clients to operate safely on shared data.\n\n### Domain-Oriented Organisation\n\nShapes are organised by semantic domain rather than by application or implementation. Each domain file represents a conceptual data entity, e,g. address. This keeps shapes discoverable and avoids fragmentation across the catalogue.\n\n### Vocabulary Reuse\n\nShapes reuse well-known vocabularies wherever possible rather than inventing new terms, e.g. vCard, FOAF, Schema.org. Reusing established vocabularies improves compatibility with the broader Linked Data ecosystem.\n\n### Self-Contained Shapes\n\nShapes are be understandable without requiring extensive external context. A shape definition clearly describes the target class, the properties being validated and the intended structure of the data. This makes shapes easier to reuse across applications.\n\n### Application Neutrality\n\nShapes describe **data structure**, not **application behaviour**. Application-specific business rules should be implemented by individual clients rather than embedded in shared validation shapes. This ensures that shapes remain reusable across the Solid ecosystem.\n\n### Stable Contracts\n\nShapes function act as contracts between applications and user data. Once published they remain stable so that applications can rely on consistent validation behaviour. See the **[Shape Immutability Policy](./CONTRIBUTING.md)** section for details on how shapes evolve over time.\n\n## License\n\nThis work is dual-licensed under MIT and Apache 2.0.\nYou can choose between one of them if you use this work.\n\n`SPDX-License-Identifier: MIT OR Apache-2.0`\n\n## Governance\n\nContributions are subject to peer review governance processes.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolid%2Fshapes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolid%2Fshapes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolid%2Fshapes/lists"}