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 > > >
