{"id":19341843,"url":"https://github.com/samvera/hydra-pcdm","last_synced_at":"2025-04-23T03:32:07.606Z","repository":{"id":29405315,"uuid":"32940722","full_name":"samvera/hydra-pcdm","owner":"samvera","description":"Samvera implementation of the PCDM model","archived":false,"fork":false,"pushed_at":"2024-10-21T15:47:50.000Z","size":419,"stargazers_count":11,"open_issues_count":15,"forks_count":9,"subscribers_count":60,"default_branch":"main","last_synced_at":"2025-04-13T19:27:15.104Z","etag":null,"topics":["core-components","samvera-community"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samvera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-03-26T17:01:49.000Z","updated_at":"2024-10-21T15:47:53.000Z","dependencies_parsed_at":"2024-06-19T02:24:33.006Z","dependency_job_id":"fe8a4063-fe3e-44c5-b7a6-0a50e96bd8cb","html_url":"https://github.com/samvera/hydra-pcdm","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fhydra-pcdm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fhydra-pcdm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fhydra-pcdm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fhydra-pcdm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samvera","download_url":"https://codeload.github.com/samvera/hydra-pcdm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365776,"owners_count":21418747,"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":["core-components","samvera-community"],"created_at":"2024-11-10T03:32:44.744Z","updated_at":"2025-04-23T03:32:07.260Z","avatar_url":"https://github.com/samvera.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hydra::PCDM\n\nCode:\n[![Gem Version](https://badge.fury.io/rb/hydra-pcdm.png)](http://badge.fury.io/rb/hydra-pcdm)\n[![Build Status](https://circleci.com/gh/samvera/hydra-pcdm.svg?style=svg)](https://circleci.com/gh/samvera/hydra-pcdm)\n[![Coverage Status](https://coveralls.io/repos/samvera/hydra-pcdm/badge.svg?branch=main)](https://coveralls.io/r/samvera/hydra-pcdm?branch=main)\n\nDocs:\n[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)\n[![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE)\n[![API Docs](http://img.shields.io/badge/API-docs-blue.svg)](http://rubydoc.info/gems/hydra-pcdm)\n\nCommunity Support: [![Samvera Community Slack](https://img.shields.io/badge/samvera-slack-blueviolet)](http://slack.samvera.org/)\n\n# What is hydra-pcdm?\n\nSamvera implementation of the Portland Common Data Model (PCDM)\n\n## Product Owner \u0026 Maintenance\n\n`hydra-pcdm` was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer has a dedicated Product Owner. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).\n\n### Product Owner\n\n**Vacant**\n\n_Until a Product Owner has been identified, we ask that you please direct all requests for support, bug reports, and general questions to the [`#dev` Channel on the Samvera Slack](https://samvera.slack.com/app_redirect?channel=dev)._\n\n# Help\n\nThe Samvera community is here to help. Please see our [support guide](./SUPPORT.md).\n\n## Installation\n\nAdd these lines to your application's Gemfile:\n\n```ruby\n  gem 'active-fedora', '~\u003e 9.3'\n  gem 'hydra-pcdm', '~\u003e 0.9'\n```\n\nAnd then execute:\n\n    $ bundle install\n\nOr install it yourself:\n\n    $ gem install hydra-pcdm\n\n## Access Controls\n\nWe are using [Web ACL](http://www.w3.org/wiki/WebAccessControl) as implemented in [hydra-access-controls](https://github.com/samvera/hydra-head/tree/main/hydra-access-controls).\n\n## Portland Common Data Model\n\nReference: [Portland Common Data Model](https://github.com/duraspace/pcdm/wiki)\n\n### Model Definition\n\n![PCDM Model Definition](https://raw.githubusercontent.com/wiki/duraspace/pcdm/images/coll-object-file.png)\n\n## Usage\n\nHydra::PCDM provides three core classes:\n\n```\nHydra::PCDM::Object\nHydra::PCDM::Collection\nHydra::PCDM::File\n```\n\nA `Hydra::PCDM::File` is a NonRDFSource (in [LDP](http://www.w3.org/TR/ldp/) parlance) \u0026emdash; a bitstream. You can use this to store content. A PCDM::File is contained by a PCDM::Object. A `File` may have some attached technical metadata, but no descriptive metadata. A `Hydra::PCDM::Object` may contain `File`s, may have descriptive metadata, and may declare other `Object`s as members (for complex object hierarchies). A `Hydra::PCDM::Collection` may contain other `Collection`s or `Object`s but may not directly contain `File`s. A `Collection` may also have descriptive metadata.\n\nTypically, usage involves extending the behavior provided by this gem. In your application you can write something like this:\n\n```ruby\nclass Book \u003c ActiveFedora::Base\n  include Hydra::PCDM::ObjectBehavior\nend\n\nclass Collection \u003c ActiveFedora::Base\n  include Hydra::PCDM::CollectionBehavior\nend\n\ncollection = Collection.create\nbook = Book.create\n\ncollection.members = [book]\n# or: collection.members \u003c\u003c book\ncollection.save\n\nfile = book.files.build\nfile.content = \"The quick brown fox jumped over the lazy dog.\"\nbook.save\n```\n# Acknowledgments\n\nThis software has been developed by and is brought to you by the Samvera community.  Learn more at the\n[Samvera website](http://samvera.org/).\n\n![Samvera Logo](https://wiki.duraspace.org/download/thumbnails/87459292/samvera-fall-font2-200w.png?version=1\u0026modificationDate=1498550535816\u0026api=v2)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fhydra-pcdm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamvera%2Fhydra-pcdm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fhydra-pcdm/lists"}