Related Objects - low level implementation
Table of Contents
References
- Portland Common Data Model
- Issue #14 - Objects can have related objects (Hydra:PCDM)
- Issue #62 - Objects can have related files (Hydra:PCDM)
- Issue #11 - Allow aggregates method to be used multiple times in a class (actviefedora-aggregations)
Summary
Background:
Groups of things in a Collection are...
- Collection pcdm:hasMember Collection
- Collection pcdm:hasMember Object
- Collection ore:aggregates Object (related object)
Groups of things in an Object are...
- Object pcdm:hasMember Object
- Object ore:aggregates Object (related object)
- Object pcdm:hasFile File
- Object pcdm:hasRelatedFile File (related file)
NOTE: hasFile and hasRelatedFile are not aggregations and therefore are not covered under the Proposed Solution. See #19
Proposed Solution:
Collections and Objects
Collections and objects will be in a single aggregation with predicate pcdm:hasMember. This is consistent with the current implementation.
Defined by:
aggregates :members, :predicate => RDFVocabularies::PCDMTerms.hasMember, :class_name => "ActiveFedora::Base"
NOTE: The same approach will be used for Object pcdm:hasMember Object
Related Objects
The Collection object will have a property with predicate pcdm:hasRelatedObjects which will point to a pcdm:Object that serves as an ORE:aggregation of the related objects.
Defined by:
property :relatedObjects, predicate: RDFVocabularies::PCDMTerms.hasRelatedObjects
NOTE: The predicate is plural because it is a container for the related objects, not the related object itself.
NOTE: The same approach will be used for Object's related objects.
Issues