Theory
ASK is identical to SELECT but returns a single boolean. It is the perfect grading mechanism for a playground:
ASK { :Donatello a :Ninja . }
Why ASK is the validation primitive of choice: it short-circuits on the first match (so it's cheap), returns a plain true/false (no rows to parse), and the pattern is the spec — you can read the ASK { ... } body as a literal statement of what must be true in the graph. Every validation block in this course is an ASK for exactly that reason.
In production, ASK pairs naturally with negation: ASK { FILTER NOT EXISTS { ?claim :hasPolicy ?p } } is a one-line data-quality assertion ('no claim is missing a policy'). Because ASK ignores projection and ordering, it's the cheapest possible existence check — the engine may stop at the first solution.
