Versions Compared

Key

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

...

In

...

order

...

to

...

consider

...

Fedora's

...

REST

...

API

...

functionally

...

complete,

...

we

...

need

...

to

...

have

...

built-in

...

support

...

for

...

adding,

...

modifying,

...

and

...

removing

...

RDF

...

relationships.

Strawman Proposal

Define a generic method (or set of methods) for applying partial changes to datastreams.

Implement it for RELS-EXT and RELS-INT so that additions and deletions can be made via SPARQL update.

Example:

  • HTTP Verb: PUT
  • URL: /objects/{pid}/fedora-system:/updateDatastream?dsID={dsID}&type=sparql-update

...

  • Body:

...

  • A

...

  • SPARQL/Update

...

  • document

...

  • (UTF-8?)

...

  • to

...

  • apply

...

  • to

...

  • the

...

  • datastream

...

  • Successful

...

  • response:

...

    • Code:

...

    • 201

...

    • Location:

...

    • URL

...

    • to

...

    • datastream

...

  • Failed

...

  • response:

...

    • If

...

    • datastream

...

    • doesn't

...

    • exist:

...

    • TBD

...

    • If

...

    • input

...

    • document

...

    • is

...

    • malformed:

...

    • TBD

Notes from 11/3 Committer Meeting

HTTP PUT/POST to RELS-EXT/INT.
SPARQL Update
URL Parameter, "kind of update" (possibly could be trigger)
....could be alternative to mime type (some clients can't control headers well)
Validation would happen.
Have it use fedora-system:sdef...accept a POST.
Doesn't require that we do it in the general case.
PUT should be idempotent (to replace the entire datastream)
POST has no such requirement (so to add/delete specific relationships)
Important: Make sense of it for users