Versions Compared

Key

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

...

1 Linked Data Platform: Overview

...

2 Sir Tim's rules

Think of them as opportunities!

...

  • Use URIs as names for things

...

  • Use HTTP URIs so that people can look up those names.

...

  • When someone looks up a URI, provide useful information, using the

...

  • standards (RDF*, SPARQL)

...

  • Include links to other URIs. so that they can discover more things.

...

3 image: promised land of linked data

A graph image shows collections and objects connected, browseable,

...

across repositories, across collections, "data reunification".

...

4 What is the goal of the LDP?

...

  • help publish Sir Tim-compliant linked data

...

  • reduce pain of normalizing your existing data to a standard

...

  • create a shared CRUD API for LD applications

...

  • reduce pain of supporting existing LD query and access applications

...

  • enable enhanced containers with custom schemes

...

5 Why Fedora adopted

...

LDP

...

  • ensure resolveable HTTP URIs (c.f. Sir Tim)

...

  • expand Fedora's shared API to common container use cases

...

  • avoid local reinvention of basic models (folder hierarchy)

...

  • Do so without sacrificing local flexibility (content models)

...

  • leverage performance of ModeShape JMS

...

6 LDP Server

...

7 what an LDP server does

...

  • an API for building and serving RDF and binaries

...

  • an RDF terminology for expressing a tree of resources

...

  • an pattern for arbitrarily enhancing this tree of resources

...

  • an request pattern for RDF subsets (LDPath, Link Prefer)

...

  • Fedora's /rest endpoint is an LDP server

...

8 LDP Types

Fedora supports all of the LDP resource 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.

...

9 Create a LDP-RS RDF Source

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.

...

10 LDP-NR Non-RDF Source (a datastream, binary/text)

Now let's add a surrogate image to the collection that will represent

...

it visually.

[insert Add image REST]

...

11 LDP-C Container

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.

...

12 LDP-BC Basic Container

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.

...

13 Okay, use LDP Containers and you are done!

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.

...

14 LDP-DC Direct Container

[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.

...

15 LDP-IC Indirect Container

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

...

16 uses in Fedora

...

17 content negotiation of formats supported

...

18 turtle, N3, JSON-LD, RDF/XML

...

19 LDPath queries

...

...

Properties of a

...

resource can be selected via XPath-style LDPath queries.

...

Let's you

...

get just the information you need about a resource.

...

20 Simple query example

...

21 Complex query example

Author: Greg Jansen

Created: 2015-03-23 Mon 10:44

Emacs 24.3.1 (Org mode 8.3beta)

Validate