Hydra::PCDM
Hydra implementation of the Portland Common Data Model (PCDM)
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
Contributing
If you'd like to contribute to this effort, please check out the Contributing Guide