Giter Club home page Giter Club logo

hydra-pcdm's Introduction

Hydra::PCDM

Code: Gem Version Build Status Coverage Status

Docs: Contribution Guidelines Apache 2.0 License API Docs

Community Support: Samvera Community Slack

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

PCDM 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 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.save

Acknowledgments

This software has been developed by and is brought to you by the Samvera community. Learn more at the Samvera website.

Samvera Logo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.