Here we will begin to walk through the mechanics of creating the structures that will facilitate creation of the collection and its single member, in this case.
![](/download/attachments/76284864/ldp-pcdm-f4-collection-0.png?version=1&modificationDate=1462026039878&api=v2)
First, create the top-level "collections/" pcdm:Object, which is also an ldp:BasicContainer.
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @pcdm-object.ttl localhost:8080/fcrepo/rest/collections/
Where "pcdm-object.ttl" follows:
@prefix pcdm: <http://pcdm.org/models#>
<> a pcdm:Object .
Second, create the nested "poe/" pcdm:Collection, which is also another ldp:BasicContainer.
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @pcdm-collection.ttl localhost:8080/fcrepo/rest/collections/poe/
Where "pcdm-collection.ttl" follows:
@prefix pcdm: <http://pcdm.org/models#>
<> a pcdm:Collection .
Lastly, create an ldp:IndirectContainer, "members/" that will facilitate the establishment of relationships between "poe/" and the collection members.
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @ldp-indirect.ttl localhost:8080/fcrepo/rest/collections/poe/members/
Where "ldp-indirect.ttl" follows:
@prefix ldp: <http://www.w3.org/ns/ldp#>
@prefix pcdm: <http://pcdm.org/models#>
@prefix ore: <http://www.openarchives.org/ore/terms/>
<> a ldp:IndirectContainer, pcdm:Object ;
ldp:membershipResource </fcrepo/rest/collections/poe/> ;
ldp:hasMemberRelation pcdm:hasMember ;
ldp:insertedContentRelation ore:proxyFor .
Similar to the previously described ldp:DirectContainer, an ldp:IndirectContainer is an LDP construct that also activates the creation of certain RDF triples when a new resource is added as a child of this container.
Just like with a DirectContainer, when a new resource is added inside of the "members/" IndirectContainer, a new triple on the ldp:membershipResource ("poe/") will be created with the predicate defined by the ldp:hasMemberRelation property ("pcdm:hasMember").
However, the difference from a DirectContainer is that the object of the created triple is not the newly added child, but instead the resource defined by the ldp:insertedContentRelation property (ore:proxyFor, in this case) found on the newly added child of this container.
We will see this in action next!