Hydra::PCDM
What is hydra-pcdm?
Samvera implementation of the Portland Common Data Model (PCDM)
Product Owner & Maintenance
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.
Product Owner
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.
Help
The Samvera community is here to help. Please see our support guide.
Installation
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
Access Controls
We are using Web ACL as implemented in hydra-access-controls.
Portland Common Data Model
Reference: Portland Common Data Model
Model Definition
Usage
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 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.
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.save
Acknowledgments
This software has been developed by and is brought to you by the Samvera community. Learn more at the Samvera website.