///|
// Asset ownership and transitive dependencies
fn main raise {
  let data = @q.Dataset::from_turtle(
    "@prefix e:  .\n" +
    "e:portal e:depends e:api .\ne:api e:depends e:database .\n" +
    "e:portal e:owner \"web-team\" .\ne:api e:owner \"platform\" .\n" +
    "e:database e:owner \"data-team\" .\n",
  )
  let result = @q.prepare(
    "PREFIX e:  SELECT ?asset ?owner {" +
    "?asset e:depends+ e:database OPTIONAL {?asset e:owner ?owner}} ORDER BY ?asset",
  ).execute(data)
  assert_eq(result.rows().length(), 2)
  assert_eq(result.rows()[0].get("owner").unwrap().lexical(), "platform")
  println(result.to_tsv())
}