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