All changes in Ingen (both engine and client) occur as a result of a small set of methods defined in terms of RDF and matching the HTTP and WebDAV standards as closely as possible.
POST
As per HTTP (RFC2616 S9.5).
Append properties to a graph object.
An object can have several properties with a single predicate. POST appends properties without modifying or removing existing properties.
PUT
As per HTTP (RFC2616 S9.6).
Set properties of a graph object, or create an object.
An object can have several properties with a single predicate.
- If the object does not yet exist, the message must contain sufficient information to create the object (e.g. known rdf:type properties, etc.)
- If the object does exist, a PUT removes all existing object properties with predicates that match any property in the message, then adds all properties from the message.
DELETE
As per WebDAV (RFC4918 S9.6).
Remove an object from the engine and destroy it.
- All properties of the object are lost
- All references to the object are lost (e.g. the parent's reference to this child is lost, any connections to the object are removed, etc.)
MOVE
As per WebDAV (RFC4918 S9.9).
Move an object from its current location and insert it at a new location in a single operation.
MOVE to a path with a different parent is currently not supported.