S = I ∪ B
P = I
O = I ∪ B ∪ L
G = I ∪ B
d : S × P × G → O
D = graph(d) = { (x, d(x)) : x ∈ S × P × G } = S × P × G × O
empty : D - empty dataset
R ⊆ D
Graph store functions
get : R × I → R
get(r, i) = (s, p, g, o) ∈ r : g = i
delete : R × I → R
delete(r, i) = r \ get(r, i)
post : R × R → R
post(r, rrequest) = r ∪ rrequest
put : R × R × I → R
put(r, rrequest, i) = post(delete(r, i), rrequest)
Quad store functions
get : R → R
get(r) = r
delete : R → R
delete(r) = r \ get(r) = empty
post : R × R → R
post(r, rrequest) = r ∪ rrequest
put : R × R × I → R
put(r, rrequest) = post(delete(r), rrequest)
r ∈ R =
<s1> <p1> <o1> <g1>
<s1> <p2> <o2> <g1>
<s2> <p1> <o1> <g1>
<s2> <p2> <o2> <g1>
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
rrequest ∈ R =
<s3> <p3> <o3> <g3>
get(r, g1
) =
<s1> <p1> <o1> <g1>
<s1> <p2> <o2> <g1>
<s2> <p1> <o1> <g1>
<s2> <p2> <o2> <g1>
get(r, s1
) = empty
delete(r, g1
) =
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
post(r, rrequest) =
<s1> <p1> <o1> <g1>
<s1> <p2> <o2> <g1>
<s2> <p1> <o1> <g1>
<s2> <p2> <o2> <g1>
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
<s3> <p3> <o3> <g3>
put(r, rrequest, g1
) =
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
<s3> <p3> <o3> <g3>
get(r) =
<s1> <p1> <o1> <g1>
<s1> <p2> <o2> <g1>
<s2> <p1> <o1> <g1>
<s2> <p2> <o2> <g1>
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
delete(r) = empty
post(r, rrequest) =
<s1> <p1> <o1> <g1>
<s1> <p2> <o2> <g1>
<s2> <p1> <o1> <g1>
<s2> <p2> <o2> <g1>
<s1> <p1> <o1> <g2>
<s1> <p2> <o2> <g2>
<s2> <p1> <o1> <g2>
<s2> <p2> <o2> <g2>
<s3> <p3> <o3> <g3>
put(r, rrequest) =
<s3> <p3> <o3> <g3>
For an extended SPARQL-based specification see Linked Data Templates.