Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleOrdering Creation Details...
Panel
titleBGColorgray
titleOrdering - Create DirectContainer

As in the book example, begin with creating an ldp:DirectContainer, "orderProxies/", as a child of the book, "raven/", resource. This new DirectContainer will facilitate the auto-creation of triples that will define the membership relationship between the book, "raven/", and the proxies. Then, the new proxy resources within this DirectContainer will be used to establish an ordering of the books pages.

Note: This example assumes the previous creation of "/objects/raven/" and the cover and page resources from the Book example in this series.

 

Code Block
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @ldp-ordering-direct.ttl localhost:8080/rest/objects/raven/orderProxies/

Where "ldp-ordering-direct.ttl" follows:

Code Block
titleldp-ordering-direct.ttl
@prefix ldp: <http://www.w3.org/ns/ldp#>
@prefix pcdm: <http://pcdm.org/models#>
@prefix ore: <http://www.openarchives.org/ore/terms/>

<> a ldp:DirectContainer, pcdm:Object ;
  ldp:membershipResource </rest/objects/raven/> ;
  ldp:isMemberOfRelation ore:proxyIn .

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.

Like the "pages/" DirectContainer in an earlier example, the "orderProxies/" includes the ldp:membershipResource property ("raven/"). However, it is important to point out that the "orderProxies/" DirectContainer *does not* have the ldp:hasMemberRelation property defined, but instead uses ldp:isMemberOfRelation of "ore:proxyIn".
By using ldp:isMemberOfRelation, the auto-created triple resulting from the addition of a new child resource within "orderProxies/" will take the form:

No Format
<new-resource> <ore:proxyIn> <http://localhost:8080/rest/objects/raven/>

We will see this in action next!

Panel
titleBGColorgray
titleOrdering - Create Cover Proxy

 Create a new pcdm:Object, "coverProxy/", that is also an ldp:RdfSource within the "orderProxies/" DirectContainer.

Code Block
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @ldp-cover-proxy.ttl localhost:8080/rest/objects/raven/orderProxies/coverProxy

Where "ldp-cover-proxy.ttl" follows:

Code Block
titleldp-cover-proxy.ttl
@prefix pcdm: <http://pcdm.org/models#>
@prefix ore: <http://www.openarchives.org/ore/terms/>

<> a pcdm:Object ;
  ore:proxyFor </rest/objects/raven/pages/cover> .

As described in the previous step, the addition of "coverProxy" automatically creates the following new triple on "coverProxy"

No Format
<http://localhost:8080/rest/objects/raven/orderProxies/coverProxy> ore:proxyIn <http://localhost:8080/rest/objects/raven>

Restating from the previous step,

  • the subject of the triple is the new resource ("coverProxy") that was added to the ldp:DirectContainer ("orderProxies/")
  • the predicate of the triple comes from the "ldp:isMemberOfRelation" defined on "orderProxies/", and
  • the object of the triple comes from the "ldp:membershipResource" defined on "orderProxies/"
Panel
titleBGColorgray
titleOrdering - Create Page0 Proxy

  In the same fashion as the previous step, adding "page0Proxy" to the DirectContainer, "orderProxies/" results in a new auto-generated triple on "page0Proxy" of the form:

No Format
<http://localhost:8080/rest/objects/raven/orderProxies/page0Proxy> ore:proxyIn <http://localhost:8080/rest/objects/raven>

Image Added

Code Block
curl -i -XPUT -H"Content-Type: text/turtle" --data-binary @ldp-page0-proxy.ttl localhost:8080/rest/objects/raven/orderProxies/page0Proxy

Where "ldp-page0-proxy.ttl" follows:

Code Block
titleldp-page0-proxy.ttl
@prefix pcdm: <http://pcdm.org/models#>
@prefix ore: <http://www.openarchives.org/ore/terms/>

<> a pcdm:Object ;
  ore:proxyFor </rest/objects/raven/pages/page0> .