Figure out if we're using PCDM
The direction of PCDM 2.0 seems to introduce unnecessary complexity. We should consider simply using the ORE vocabulary. If we do that, we would use the ore:aggregates
property along with structural typing. A full structure might look like this:
# Top-level resource map
</resources/1> a ore:ResourceMap ;
skos:prefLabel "smth"@en ;
dcterms:description "lots of descriptive metadata here" ;
dcterms:isPartOf </collections/someCollection> ;
ore:describes </resources/resource1/aggregation> .
# Aggregation
</resources/1/aggregation> a ore:Aggregation ;
ldp:contains </resources/1/aggregation/members> ;
iana:first </resources/1/aggregation/members/page1> ;
iana:last </resources/1/aggregation/members/page3> ;
ore:aggregates </resources/1/aggregation/members/page1> , </resources/1/aggregation/members/page2> , </resources/1/aggregation/members/page3> .
# Pages LDP container
</resources/1/aggregation/members> a ldp:DirectContainer ;
ldp:membershipResource </resources/1/aggregation> ;
ldp:hasMemberRelation ore:aggregates ;
ldp:contains </resources/1/aggregation/members/page1> , </resources/1/aggregation/members/page2> , </resources/1/aggregation/members/page3> .
# Individual Pages
</resources/1/aggregation/members/page1> a ore:Aggregation ;
iana:next </resources/1/aggregation/members/page2> ;
ore:aggregates </resources/1/aggregation/members/page1/members/file1> , </resources/1/aggregation/members/page1/members/file2> ;
ldp:contains </resources/1/aggregation/members/page1/members> , </resources/1/aggregation/members/page1/related> .
</resources/1/aggregation/members/page2> a ore:Aggregation ;
iana:prev </resources/1/aggregation/members/page1> ;
iana:next </resources/1/aggregation/members/page3> ;
ore:aggregates </resources/1/aggregation/members/page2/members/file1> , </resources/1/aggregation/members/page2/members/file2> ;
ldp:contains </resources/1/aggregation/members/page2/members> , </resources/1/aggregation/members/page2/related> .
</resources/1/aggregation/members/page3> a ore:Aggregation ;
iana:prev </resources/1/aggregation/members/page2> ;
ore:aggregates </resources/1/aggregation/members/page3/members/file1> , </resources/1/aggregation/members/page3/members/file2> ;
ldp:contains </resources/1/aggregation/members/page3/members> , </resources/1/aggregation/members/page3/related> .
# Files would follow a structure similar to the above structure (FITS metadata goes into a ./related container and uses iana:describedby)....
</resources/1/aggregation/members/page1/members/file1> a fedora:Binary ;
iana:describedby </resources/1/aggregation/members/page1/related/metadata1> .
</resources/1/aggregation/members/page1/members/file2> a fedora:Binary ;
iana:describedby </resources/1/aggregation/members/page1/related/metadata2> .