Think of them as opportunities!
A graph image shows collections and objects connected, browseable, across repositories, across collections, "data reunification".
Fedora supports all of the LDP resource types. LDP Types RDF Sources are simply RDF documents. They can be retrieved in many forms. Non-RDF Sources are binary and text files, not RDF. Containers are RDF sources that also contain other resources. There are a few kinds of containers, but let's start with the basic use case.
First let's create an RDF document that describes a high-level collection. For this we are making just one REST request. Note: All these REST examples are available as an import files for the POSTMan REST client (JSON format) (Switch to POSTMan, open LDAP collection, load "Create Pythagoras collection")
Let's create a collection for Pythagoras [insert Create collection REST]
Now we have an RDF resource that makes a few assertions about the collection and Pythagoras himself. You can see that the resource may contain arbitrary RDF statements including blank nodes. He is interested in this thing he calls "Geometry", but it is a blank node in this graph. Nothing here says container yet.
Find ldp:RDFSource type in response.
Now let's add a surrogate image to the collection that will represent it visually.
[insert Add image REST]
Now let's GET the Pythagoras collection. Find ldp:Container type in response. Now it is both a container and an RDF source. Find the contains triple in response.
Pythagoras is now an example of a LDP basic container. If you post new resources to a basic container, they become the object of an ldp:Contains triple. When you post new resources to any object in Fedora it will become a ldp:Container and accumulate contains triples for all children.
Okay, so from now on you need to use LDP for containment. Throw away whatever triples you used before.
Just kidding. Nobody wants to have a standard imposed on them. You especially cannot tell RDF people to use any particular terminology. LDP is designed to please RDF people. It gives you the flexibility to continue to use your own vocabulary while adopting the standard. This also helps when supporting legacy applications and domain-specific vocabularies.
Let's look at how this works.
[diagram Direct container graph]
You can migrate to LDP and continue to use your own vocabulary. This is done by establishing what are called membership triples. An LDP direct container allows you to customize this set of membership relationships. You do that by setting a few additional triples on the container:
Let's create a direct container within our pythagoras collection.
We will use it to list the people who cite him as an influence. We will manage the people he influenced within an LDP container, but we will also express the relationship between Pythagoras and each person in FOAF.
Our membership triples will be of the form X#me influencedBy Pythagoras#me
LDPath spec Properties of a resource can be selected via XPath-style LDPath queries. Let's you get just the information you need about a resource.