You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Table of Contents

In order to consider Fedora's REST API functionally complete, we need to have built-in support for adding, modifying, and removing RDF relationships.

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

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/
    Unknown macro: {pid}
    /fedora-system:/updateDatastream?dsID=
    Unknown macro: {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
    •  
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
  • No labels