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 >
