Boundary (lawql/1)
The structural layer refuses on purpose. Each refusal below is a query that fails with the code named above it; removing any of these bans takes a separate decision, and this topic does not remove any.
No arithmetic
Section titled “No arithmetic”# expect LDC-Q0001from n in nodes select 1 + 2Numbers are atoms for equality, never operands. Whatever needs computation goes to an inference query.
No ordering comparisons
Section titled “No ordering comparisons”# expect LDC-Q0101from n in nodes where n.kind > 1 select n.idRows match or miss; larger-than has no meaning over snapshot rows. Ordering lives in the core that answers inference queries.
No recursion in the structural layer
Section titled “No recursion in the structural layer”# expect LDC-Q4004query q over "demo.lawqlbase" { for a: Applicant; case "verify/ci/gates/release/lawql_reference_fixtures/base/case.json"; where q(a); select q(a);}A question over a package may only use predicates the target package declares. The query above refers to itself instead, and the unknown predicate is refused. Chains across packages are walked one recorded step at a time.
No free negation
Section titled “No free negation”# expect LDC-Q0002from n in nodes where not n.kind == "rule" select n.idAfter not only exists over an already bound variable is allowed. Unbounded denial would silently change meaning when the snapshot grows.
No custom evaluation
Section titled “No custom evaluation”# expect LDC-Q2008from n in nodes select count(n.id) as totalThe structural layer has a closed function list, printed by the schema command. Aggregates and any other computation belong to the core behind an inference query.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.