@lew 
To write a SPARQL query with a variable predicate, you can use a property path with a variable predicate. Here is an example of a SPARQL query with a variable predicate:
1 2 3 4 5 6 7  | 
PREFIX ex: <http://example.com/>
SELECT ?subject ?predicate ?object
WHERE {
  ?subject ?predicate ?object .
  FILTER (STRSTARTS(STR(?predicate), "http://example.com/property/"))
}
 | 
In this query, the ?predicate variable is used to match any predicate that starts with a specific prefix (http://example.com/property/ in this case). You can modify the prefix or use a different filter condition based on your specific requirements.