Samvera implementation of the Portland Common Data Model (PCDM)
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.
Vacant
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.
The Samvera community is here to help. Please see our support guide.
Add these lines to your application's Gemfile:
gem 'active-fedora', '~> 9.3'
gem 'hydra-pcdm', '~> 0.9'And then execute:
$ bundle install
Or install it yourself:
$ gem install hydra-pcdm
We are using Web ACL as implemented in hydra-access-controls.
Reference: Portland Common Data Model
Hydra::PCDM provides three core classes:
Hydra::PCDM::Object
Hydra::PCDM::Collection
Hydra::PCDM::File
A Hydra::PCDM::File is a NonRDFSource (in LDP parlance) &emdash; 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 Files, may have descriptive metadata, and may declare other Objects as members (for complex object hierarchies). A Hydra::PCDM::Collection may contain other Collections or Objects but may not directly contain Files. A Collection may also have descriptive metadata.
Typically, usage involves extending the behavior provided by this gem. In your application you can write something like this:
class Book < ActiveFedora::Base
include Hydra::PCDM::ObjectBehavior
end
class Collection < ActiveFedora::Base
include Hydra::PCDM::CollectionBehavior
end
collection = Collection.create
book = Book.create
collection.members = [book]
# or: collection.members << book
collection.save
file = book.files.build
file.content = "The quick brown fox jumped over the lazy dog."
book.saveThis software has been developed by and is brought to you by the Samvera community. Learn more at the Samvera website.

