I want to do this at the algebra level :) The use case is a DDoS protection
request filter that only allows "instantiations" of pre-defined query
templates.

On Fri, Mar 6, 2026 at 12:53 AM Justin Dowdy <[email protected]> wrote:

> It seems like one query is "isomorphic" to another query if and only if
> they produce the same bindings when evaluated against all possible data
> sets.
>
> If you want to do this in the general case you might need a way to simulate
> all possible data sets then evaluate the queries against them, right?
>
> On Thu, Mar 5, 2026, 2:37 PM Martynas Jusevičius <[email protected]>
> wrote:
>
> > Hi,
> >
> > What would be the way to check programatically using Jena that
> >
> > { <http://localhost/> rdf:type ?x }
> >
> > is a substitution of a binding (?s = <http://localhost/>) or VALUES (?s)
> > { <
> > http://localhost/> }
> >
> > on
> >
> > { ?s rdf:type ?type }
> >
> > but
> >
> > { <http://localhost/> another:property ?x }
> >
> > is not?
> >
> > Basically check if a query is "isomorphic" to a given query template?
> >
> > Claude calls this "pattern containment" or "query subsumption".
> >
> >
> > Martynas
> >
>

Reply via email to