def query(self, one_name="?root_subject", above_type=None, above_uri=None, filter_clause=""): ret = """ BASE <http://smartplatforms.org/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> CONSTRUCT { $construct_triples } FROM $context WHERE { { $query_triples } $filter_clause } """ q = QueryBuilder(self, one_name) if (above_type and above_uri): q.require_above(above_type, above_uri) b = q.build() ret = ret.replace("$construct_triples", q.construct_triples()) ret = ret.replace("$query_triples", b) ret = ret.replace("$filter_clause", filter_clause) return ret