///|
fn main raise {
  let old = @q.quad(
    @q.iri("urn:asset"),
    @q.iri("urn:owner"),
    @q.literal("Alice"),
  )
  let next = @q.quad(
    @q.iri("urn:asset"),
    @q.iri("urn:owner"),
    @q.literal("Bob"),
  )
  let source = @q.Dataset::from_quads([old])
  let patched = source.apply_patch([old], [next])
  let query = @q.prepare("SELECT ?owner {  ?owner}")
  let delta = query.execute(source).binding_delta(query.execute(patched))
  assert_eq(delta.removed[0].get("owner").unwrap().lexical(), "Alice")
  assert_eq(delta.added[0].get("owner").unwrap().lexical(), "Bob")
  assert_eq(
    query.execute(source).rows()[0].get("owner").unwrap().lexical(),
    "Alice",
  )
  println(
    "RDF exact patches preserve old snapshots; SELECT bag deltas expose consumer-visible metadata changes",
  )
}