def __create_outer_quer_model(query_model1, query_model2): """ Joins the prefixes, offset, limit, order and select clauses and variables of the two query models. Doesn't add the from clause from both variables :param query_model1: :param query_model2: :return: an outer query model """ query_model = QueryModel() #query_model.from_clause.clear() query_model.add_prefixes(query_model1.prefixes) query_model.add_prefixes(query_model2.prefixes) query_model.set_offset(min(query_model1.offset, query_model2.offset)) query_model.set_limit(max(query_model1.limit, query_model2.limit)) query_model.add_order_columns(query_model1.order_clause) query_model.add_order_columns(query_model2.order_clause) # TODO: WHY do this here? # union the select columns if len(query_model1.select_columns) > 0 and len(query_model1.select_columns) > 0: query_model.select_columns = query_model1.select_columns.union(query_model2.select_columns) elif len(query_model1.select_columns) > 0: query_model.select_columns = query_model1.select_columns.union(query_model2.variables) elif len(query_model2.select_columns) > 0: query_model.select_columns = query_model1.variables.union(query_model2.select_columns) # union the variables query_model.variables = query_model1.variables.union(query_model2.variables) return query_model
"to": "http://twitter.com/ontology/", "dcterms": "http://purl.org/dc/terms/", "xsd": "http://www.example.org/", "foaf": "http://xmlns.com/foaf/0.1/", } twitterquery.add_prefixes(prefixes) twitterquery.add_graphs(["http://twitter.com/"]) twitterquery.add_variable("tweep") twitterquery.add_subquery(subquery) twitterquery.add_triple("tweet", "sioc:has_creater", "tweep") twitterquery.add_triple("tweet", " sioc:content", "text") twitterquery.add_optional_triples("tweet", "sioc:mentions", "mentions") twitterquery.add_triple("tweet", "to:hashashtag", "hashtag") twitterquery.add_triple("tweet", 'dcterms:created', 'date') twitterquery.add_triple("tweet", 'to:hasmedia', 'multimedia') twitterquery.add_order_columns([("tweep", "ASC")]) twitterquery.add_select_column("tweet") twitterquery.add_select_column("tweep") twitterquery.add_select_column("text") twitterquery.add_select_column("date") twitterquery.add_select_column("hashtag") twitterquery.add_select_column("mentions") twitterquery.add_select_column("multimedia") #twitterquery.add_variable("text") #twitterquery.add_variable("hashtag") #twitterquery.add_variable("mentions") #twitterquery.add_filter_condition("hashtag"," < 7") print(twitterquery.to_sparql())