This wiki space is archived.
The active wiki for the Samvera Community can be found here: https://samvera.atlassian.net/
This wiki space is archived. The active wiki for the Samvera Community can be found here: https://samvera.atlassian.net/
PCDM provides a consistent baseline for modeling data: specifically files, works (objects), and collections. The intent is to make it easier to share code between Samvera applications that may have very different content types, as long as PCDM is used as the data model foundation.
Sufia will be the best example of what a newly installed Samvera application that implements PCDM will look like. Note that the Sufia code in Github is not a working Samvera application itself, but more of an application generator. So you will have to follow the installation instructions on Sufia's homepage to get a working Samvera application to use as a reference implementation.
If you are looking for a reference implementation as code that you can browse in Github (or elsewhere), there is nothing like that to date. Any such implementation is likely to come from a partner organization who has adopted a version of Samvera that uses PCDM. Use the Get in touch! to stay up to date on the progress of partner organizations.
This answer is likely to be different for nearly every Samvera application. Since there were hardly any guidelines for modeling data in Samvera applications prior to PCDM, each institution's implementation varies from the next, often in incompatible ways. (Note that this is the very problem PCDM trying to solve).
If you currently have a Sufia implementation, and wish to upgrade to a version using PCDM, the Sufia team does plan to have an upgrade guide.
If you wish to adapt an existing Samvera application that is not Sufia, then a basic outline of the refactoring process may look something like this:
Note that without good test coverage already in place for your app, a successful refactor could prove to be extremely challenging.
Yes. PCDM will not be required by the core Samvera gems, and you can continue to maintain a Samvera application without implementing PCDM.
However, there is currently a lot of energy going into the PCDM-based stack, and at this time, it appears that new features that involve interacting with the data model layer will be written assuming a PCDM foundation. If you choose to implement (or maintain) a Samvera application with a non-PCDM-based data model layer, it may be very difficult to incorporate new features that come out of community efforts.
Is there a tutorial for PCDM or Hydra Works?
There is Dive into Hydra-Works tutorial which takes you through the basics of building models with Hydra-Works which is an extension of PCDM. There is also the Dive into Curation Concerns tutorial that walks through adding a field to a stock Curation Concerns app.
PCDM is implemented in Samvera as a new stack of gems:
NOTE: The documents linked to below are working documents, subject to change at any time.
CurationEngine & CurationConcerns: Breaking up Sufia, Worthwhile, Hydra::Works, etc. – An outline of the process of implementing PCDM in Samvera, and breaking up existing functionality across new gems.
Code Shredding: Sufia and Hydra-Works – A spreadsheet that describes where existing code will be refactored to, and which modules it will be mixed in to (i.e. with Ruby's include
and extend
).
Sufia - Worthwhile Alignment Factors – Spreadsheet that lists features from Sufia and Worthwhile, with suggestions and discussion on where the functionality should be implemented in the new Samvera gems.
Hydra::Works PCDM Diagram – Boxes and arrows showing how PCDM defines relationships between models in Hydra::Works.
Hydra::PCDM Files in the RDF graph – Boxes and arrows showing how files are modeled with PCDM, including which RDF types and properties are used.
CurationConcerns in Worthwhile and in Hydra::CurationConcerns - Slides explaining how CurationConcerns work in Worthwhile, and how we might like them to work in Hydra::CurationConcerns.
Sufia – Where to find the latest activity re: Sufia sprints
Hydra Works (github repo) – Code for the hydra-works gem.
Hydra PCDM (github repo) – Code for the hydra-pcdm gem.
Technical Metadata Application Profile – A draft baseline application profile for technical metadata properties attached to binary objects in a repository.
File Use Vocabulary File Use Vocabulary – A list of subclasses of pcdm:File that describe the role a pcdm:File plays within a pcdm:Object.
hydra-pesketti_v2.svg – Figure which depicts the dependency relationships of the Hydra PCDM family of gems.