In order to consider Fedora's REST API functionally complete, we need to have built-in support for adding, modifying, and removing RDF relationships. h1. 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 h1. 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 ** |