Fedora4 (F4) implements the Linked Data Platform (LDP) W3C Recommendation. Additionally, the Portland Common Data Model (PCDM) has increasingly become adopted as a common content modeling approach in Fedora4.
This guide is designed to describe the details of both LDP and PCDM in the context of F4 by walking through a simple example of a single collection, consisting of a single book that implements page ordering.
This diagram depicts the logical structure of resources and relationships of a collection ("poe") that consists of a book ("raven") that consists of three pages that are ordered. The following steps will walk through the process of creating this structure from the ground up. |
The ldp:BasicContainers are simply containers of other resources. BasicContainers can contain both other containers as well as ldp:NonRdfSources (or "binaries"). There are three PCDM types here:
Additionally, there are two PCDM relationships that indicate resource membership and file membership:
The descriptions of these resource types and relationships may be found in the detailed Portland Common Data Model page. |
Here we will begin to walk through the mechanics of creating the structures that will facilitate creation of the book and its pages.
Where "pcdm-object.ttl" follows:
Second, create the nested "raven/" pcdm:Object, which is also another ldp:BasicContainer.
Lastly, create an ldp:DirectContainer, "pages/" that will facilitate the establishment of relationships between "raven/" and its constituent pages.
Where "ldp-direct.ttl" follows:
An ldp:DirectContaner is an LDP construct that activates the creation of certain RDF triples when a new resource is added as a child of this container. We will see this in action next! |
Create a new pcdm:Object, "cover/", that is also an ldp:BasicContainer within the "pages/" DirectContainer.
Where "pcdm-object.ttl" follows:
As described in the previous step, the addition of "cover/" automatically creates the following new triple on "raven/"
Restating from the previous step,
|
In the same fashion as the previous step, adding "page0/" to the DirectContainer, "pages/" results in a new auto-generated triple on "raven/" of the form:
|
This step in creating the final page, "page1/", follows the same pattern shown in the previous two steps.
|
|
|