コード例 #1
0
 def test_authenticated_access_to_not_authenticated_endpoint(self, time, info, greenlet_fetch):
     response = triplestore.query_sparql(SIMPLE_QUERY, triplestore_config)
     self.assertEqual(response, None)
     self.assertEqual(info.call_count, 1)
     log_msg = "POST - http://localhost:8890/sparql-auth - None - dba [tempo: 0] - QUERY - SELECT COUNT(*) WHERE {?s a owl:Class}"
     self.assertTrue(info.call_args, log_msg)
     with self.assertRaises(HTTPError) as error:
         triplestore.query_sparql(SIMPLE_QUERY, modified_dict)
     self.assertEqual(error.status_code, 401)
コード例 #2
0
ファイル: get_class.py プロジェクト: bmentges/brainiak_api
def _query_predicate_without_lang(query_params, superclasses):
    filter_expression = u"FILTER (?domain_class IN (<" + u">, <".join(superclasses) + u">))"
    template_vars = dict(filter_classes_clause=filter_expression,
                         uniqueness_property=settings.ANNOTATION_PROPERTY_HAS_UNIQUE_VALUE,
                         **query_params)
    query = QUERY_PREDICATE_WITHOUT_LANG % template_vars
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #3
0
def list_all_contexts(query_params):
    sparql_response = triplestore.query_sparql(QUERY_LIST_CONTEXT,
                                               query_params.triplestore_config)
    all_contexts_uris = sparql.filter_values(sparql_response, "graph")

    filtered_contexts = filter_and_build_contexts(all_contexts_uris)
    if not filtered_contexts:
        json = {"items": [], "warning": "No contexts were found."}
        return json

    page_index = int(query_params["page"])
    per_page = int(query_params["per_page"])
    contexts_pages = split_into_chunks(filtered_contexts, per_page)
    try:
        contexts = contexts_pages[page_index]
    except IndexError:
        json = {
            "items": [],
            "warning":
            u"No contexts were found in page {0:d}.".format(
                int(query_params["page"]) + 1)
        }
        return json

    json = {
        '_base_url': remove_last_slash(query_params.base_url),
        'items': contexts
    }

    def calculate_total_items():
        return len(filtered_contexts)

    decorate_dict_with_pagination(json, query_params, calculate_total_items)

    return json
コード例 #4
0
ファイル: get_root.py プロジェクト: bmentges/brainiak_api
def list_all_contexts(query_params):
    sparql_response = triplestore.query_sparql(QUERY_LIST_CONTEXT, query_params.triplestore_config)
    all_contexts_uris = sparql.filter_values(sparql_response, "graph")

    filtered_contexts = filter_and_build_contexts(all_contexts_uris)
    if not filtered_contexts:
        json = {
            "items": [],
            "warning": "No contexts were found."
        }
        return json

    page_index = int(query_params["page"])
    per_page = int(query_params["per_page"])
    contexts_pages = split_into_chunks(filtered_contexts, per_page)
    try:
        contexts = contexts_pages[page_index]
    except IndexError:
        json = {
            "items": [],
            "warning": u"No contexts were found in page {0:d}.".format(int(query_params["page"]) + 1)
        }
        return json

    json = {
        '_base_url': remove_last_slash(query_params.base_url),
        'items': contexts
    }

    def calculate_total_items():
        return len(filtered_contexts)
    decorate_dict_with_pagination(json, query_params, calculate_total_items)

    return json
コード例 #5
0
def _get_class_fields_value(query_params, classes, meta_field):
    query = _build_class_fields_query(classes, meta_field)
    class_field_query_response = triplestore.query_sparql(
        query, query_params.triplestore_config)
    class_field_values = filter_values(class_field_query_response,
                                       "field_value")
    return class_field_values
コード例 #6
0
ファイル: get_class.py プロジェクト: bmentges/brainiak_api
def _query_predicate_with_lang(query_params, superclasses):
    filter_expression = "FILTER (?domain_class IN (<" + ">, <".join(superclasses) + ">))"
    template_vars = dict(filter_classes_clause=filter_expression,
                         uniqueness_property=query_params.get_aux_param('uniqueness_property'),
                         **query_params)
    query = QUERY_PREDICATE_WITH_LANG % template_vars
    response = triplestore.query_sparql(query, query_params.triplestore_config)
    return response
コード例 #7
0
def _query_predicate_without_lang(query_params, superclasses):
    filter_expression = u"FILTER (?domain_class IN (<" + u">, <".join(
        superclasses) + u">))"
    template_vars = dict(
        filter_classes_clause=filter_expression,
        uniqueness_property=settings.ANNOTATION_PROPERTY_HAS_UNIQUE_VALUE,
        **query_params)
    query = QUERY_PREDICATE_WITHOUT_LANG % template_vars
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #8
0
def find_graph_from_class(class_uri):
    query = QUERY_FIND_GRAPH_FROM_CLASS % {'class_uri': class_uri}
    result_dict = query_sparql(query,
                               config_parser.parse_section(),
                               async=False)
    graphs = filter_values(result_dict, 'graph')
    try:
        return graphs[0] if (len(graphs) == 1) else None
    except IndexError:
        return None
コード例 #9
0
def _query_predicate_with_lang(query_params, superclasses):
    filter_expression = "FILTER (?domain_class IN (<" + ">, <".join(
        superclasses) + ">))"
    template_vars = dict(
        filter_classes_clause=filter_expression,
        uniqueness_property=query_params.get_aux_param('uniqueness_property'),
        **query_params)
    query = QUERY_PREDICATE_WITH_LANG % template_vars
    response = triplestore.query_sparql(query, query_params.triplestore_config)
    return response
コード例 #10
0
ファイル: sparql.py プロジェクト: rodsenra/brainiak_api
def is_value_already_used(instance_uri, object_value, predicate_uri, class_object, graph_uri, query_params):
    class_uri = class_object['id']
    query = QUERY_VALUE_EXISTS % {
        "graph_uri": graph_uri,
        "class_uri": class_uri,
        "instance_uri": instance_uri,
        "predicate_uri": predicate_uri,
        "object_value": object_value
    }
    query_result = triplestore.query_sparql(query, query_params.triplestore_config)
    return is_result_true(query_result)
コード例 #11
0
ファイル: get_instance.py プロジェクト: bmentges/brainiak_api
def query_all_properties_and_objects_by_instance_uri(query_params):
    template_vars = dict(ruleset=settings.DEFAULT_RULESET_URI, **query_params)
    expand_object_properties = query_params.get("expand_object_properties") == "1"
    if expand_object_properties:
        template_vars["object_label_variable"] = "?object_label"
        template_vars["object_label_optional_clause"] = "OPTIONAL { ?object rdfs:label ?object_label } ."
    else:
        template_vars["object_label_variable"] = ""
        template_vars["object_label_optional_clause"] = ""
    query = QUERY_ALL_PROPERTIES_AND_OBJECTS_TEMPLATE_BY_URI % template_vars
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #12
0
def get_subproperties(super_property):
    params = {
        "ruleset": "http://semantica.globo.com/ruleset",
        "property": super_property
    }
    query = QUERY_SUBPROPERTIES % params
    result_dict = query_sparql(query,
                               config_parser.parse_section(),
                               async=False)
    subproperties = filter_values(result_dict, "property")
    return subproperties
コード例 #13
0
def is_value_already_used(instance_uri, object_value, predicate_uri, class_object, graph_uri, query_params):
    class_uri = class_object['id']
    query = QUERY_VALUE_EXISTS % {
        "graph_uri": graph_uri,
        "class_uri": class_uri,
        "instance_uri": instance_uri,
        "predicate_uri": predicate_uri,
        "object_value": object_value
    }
    query_result = triplestore.query_sparql(query, query_params.triplestore_config)
    return is_result_true(query_result)
コード例 #14
0
def query_all_properties_and_objects_by_instance_uri(query_params):
    template_vars = dict(ruleset=settings.DEFAULT_RULESET_URI, **query_params)
    expand_object_properties = query_params.get(
        "expand_object_properties") == "1"
    if expand_object_properties:
        template_vars["object_label_variable"] = "?object_label"
        template_vars[
            "object_label_optional_clause"] = "OPTIONAL { ?object rdfs:label ?object_label } ."
    else:
        template_vars["object_label_variable"] = ""
        template_vars["object_label_optional_clause"] = ""
    query = QUERY_ALL_PROPERTIES_AND_OBJECTS_TEMPLATE_BY_URI % template_vars
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #15
0
def find_graph_and_class_from_instance(instance_uri):
    query = QUERY_FIND_GRAPH_AND_CLASS_FROM_INSTANCE % {'instance_uri': instance_uri}
    result_dict = query_sparql(query,
                               config_parser.parse_section(),
                               async=False)
    graphs = filter_values(result_dict, 'graph')
    classes = filter_values(result_dict, 'class')
    try:
        graph_uri = graphs[0] if (len(graphs) == 1) else None
    except IndexError:
        graph_uri = None

    try:
        class_uri = classes[0] if (len(classes) == 1) else None
    except IndexError:
        class_uri = None

    return graph_uri, class_uri
コード例 #16
0
ファイル: execution.py プロジェクト: bmentges/brainiak_api
def execute_query(query_id, stored_query, querystring_params):
    query = get_query(stored_query, querystring_params)

    # TODO extract_method?
    request_dict = copy.copy(querystring_params.triplestore_config)
    request_dict.update({"query_id": query_id})
    request_dict.update({"query": query})
    log.logger.info(QUERY_EXECUTION_LOG_FORMAT.format(**request_dict))

    result_dict = query_sparql(query,
                               querystring_params.triplestore_config)
    items = compress_keys_and_values(result_dict)
    if not items:
        message = NO_RESULTS_MESSAGE_FORMAT.format(querystring_params.triplestore_config["url"], query)
        return {
            "items": [],
            # TODO explain in which instance of Virtuoso the query was executed?
            "warning": message}
    return {"items": items}
コード例 #17
0
def execute_query(query_id, stored_query, querystring_params):
    query = get_query(stored_query, querystring_params)

    # TODO extract_method?
    request_dict = copy.copy(querystring_params.triplestore_config)
    request_dict.update({"query_id": query_id})
    request_dict.update({"query": query})
    log.logger.info(QUERY_EXECUTION_LOG_FORMAT.format(**request_dict))

    result_dict = query_sparql(query, querystring_params.triplestore_config)
    items = compress_keys_and_values(result_dict)
    if not items:
        message = NO_RESULTS_MESSAGE_FORMAT.format(
            querystring_params.triplestore_config["url"], query)
        return {
            "items": [],
            # TODO explain in which instance of Virtuoso the query was executed?
            "warning": message
        }
    return {"items": items}
コード例 #18
0
def query_count_filter_instances(query_params):
    query = Query(query_params).to_string(count=True)
    query_response = triplestore.query_sparql(query, query_params.triplestore_config)
    return query_response
コード例 #19
0
ファイル: common.py プロジェクト: rsest/brainiak_api
def get_class_and_graph(query_params):
    query = QUERY_GET_CLASS_AND_GRAPH % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #20
0
ファイル: suggest.py プロジェクト: bmentges/brainiak_api
def _get_class_fields_value(query_params, classes, meta_field):
    query = _build_class_fields_query(classes, meta_field)
    class_field_query_response = triplestore.query_sparql(query, query_params.triplestore_config)
    class_field_values = filter_values(class_field_query_response, "field_value")
    return class_field_values
コード例 #21
0
def query_class_schema(query_params):
    query = build_class_schema_query(query_params)
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #22
0
ファイル: get_context.py プロジェクト: rodsenra/brainiak_api
def query_count_classes(query_params):
    query = QUERY_COUNT_ALL_CLASSES_OF_A_GRAPH % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #23
0
 def test_query_sparql_with_valid_credential(self, mocked_log, greenlet_fetch):
     response = triplestore.query_sparql("", triplestore_config)
     self.assertEqual(greenlet_fetch.call_count, 1)
     self.assertEqual(response, {})
コード例 #24
0
def query_dependants(query_params):
    query = QUERY_DEPENDANTS_TEMPLATE % query_params
    result_dict = triplestore.query_sparql(query,
                                           query_params.triplestore_config)
    return result_dict
コード例 #25
0
 def test_query_sparql_without_error(self, run_query, mock_log):
     response = triplestore.query_sparql("", self.TRIPLESTORE_CONFIG)
     self.assertEqual(response, {})
コード例 #26
0
 def test_malformed_query(self):
     MALFORMED_QUERY = "SELECT A MALFORMED QUERY {?s ?p ?o}"
     with self.assertRaises(ClientHTTPError) as error:
         triplestore.query_sparql(MALFORMED_QUERY, triplestore_config)
     self.assertEqual(str(error.exception), 'HTTP 400: Bad Request')
コード例 #27
0
def _query_superclasses(query_params):
    query = QUERY_SUPERCLASS % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #28
0
 def test_query_sparql_with_valid_credential(self, mocked_log,
                                             greenlet_fetch):
     response = triplestore.query_sparql("", triplestore_config)
     self.assertEqual(greenlet_fetch.call_count, 1)
     self.assertEqual(response, {})
コード例 #29
0
ファイル: get_class.py プロジェクト: bmentges/brainiak_api
def query_cardinalities(query_params):
    query = QUERY_CARDINALITIES % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #30
0
ファイル: get_class.py プロジェクト: bmentges/brainiak_api
def query_class_schema(query_params):
    query = build_class_schema_query(query_params)
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #31
0
def class_exists(query_params):
    query = QUERY_CLASS_EXISTS % query_params
    query_result = triplestore.query_sparql(query, query_params.triplestore_config)
    return is_result_true(query_result)
コード例 #32
0
def _get_predicate_ranges(query_params, search_params):
    query = _build_predicate_ranges_query(query_params, search_params)
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #33
0
ファイル: common.py プロジェクト: bmentges/brainiak_api
def get_class_and_graph(query_params):
    query = QUERY_GET_CLASS_AND_GRAPH % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #34
0
 def test_query_sparql_without_error(self, run_query, mock_log):
     response = triplestore.query_sparql("", self.TRIPLESTORE_CONFIG)
     self.assertEqual(response, {})
コード例 #35
0
ファイル: sparql.py プロジェクト: bmentges/brainiak_api
 def query(self, query_string, graph=None):
     endpoint_dict = parse_section()
     self.process_inference_options()
     response = triplestore.query_sparql(query_string, endpoint_dict, async=False)
     return response
コード例 #36
0
ファイル: get_context.py プロジェクト: rodsenra/brainiak_api
def graph_exists(query_params):
    query = QUERY_GRAPH_EXISTS % query_params
    query_result = triplestore.query_sparql(query, query_params.triplestore_config)
    return is_result_true(query_result)
コード例 #37
0
def query_delete(query_params):
    query = QUERY_DELETE_INSTANCE % query_params
    result_dict = triplestore.query_sparql(query,
                                           query_params.triplestore_config)
    return result_dict
コード例 #38
0
ファイル: get_context.py プロジェクト: rodsenra/brainiak_api
def query_classes_list(query_params):
    offset = calculate_offset(query_params)
    query_params['offset'] = offset
    query = QUERY_ALL_CLASSES_OF_A_GRAPH % query_params
    del query_params['offset']
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #39
0
def query_create_instances(query_params):
    query = QUERY_INSERT_TRIPLES % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #40
0
def query_cardinalities(query_params):
    query = QUERY_CARDINALITIES % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #41
0
ファイル: suggest.py プロジェクト: bmentges/brainiak_api
def _get_predicate_ranges(query_params, search_params):
    query = _build_predicate_ranges_query(query_params, search_params)
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #42
0
 def test_sync_query_not_authenticated_works(self):
     triplestore_config = config_parser.parse_section()
     triplestore_config["url"] = "http://localhost:8890/sparql"
     response = triplestore.query_sparql(SIMPLE_QUERY, triplestore_config, async=False)
     self.assertTrue(response['boolean'])
コード例 #43
0
def query_create_instances(query_params):
    query = QUERY_INSERT_TRIPLES % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #44
0
 def test_query_ok(self):
     response = triplestore.query_sparql(SIMPLE_QUERY, triplestore_config)
     self.assertTrue(response['boolean'])
コード例 #45
0
ファイル: get_class.py プロジェクト: bmentges/brainiak_api
def _query_superclasses(query_params):
    query = QUERY_SUPERCLASS % query_params
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #46
0
    def test_authenticated_access_to_not_authenticated_endpoint(self):
        modified_dict = triplestore_config.copy()
        modified_dict["url"] = 'http://localhost:8890/sparql'

        response = triplestore.query_sparql(SIMPLE_QUERY, modified_dict)
        self.assertTrue(response['boolean'])
コード例 #47
0
def modify_instance(query_params, **kw):
    kw.update(query_params)
    query = MODIFY_QUERY % kw
    return triplestore.query_sparql(query, query_params.triplestore_config)
コード例 #48
0
 def test_sync_query_authenticated_works(self):
     triplestore_config = config_parser.parse_section()
     response = triplestore.query_sparql(SIMPLE_QUERY, triplestore_config, async=False)
     self.assertTrue(response["boolean"])
コード例 #49
0
def instance_exists(query_params):
    query = QUERY_INSTANCE_EXISTS_TEMPLATE % query_params
    result_dict = triplestore.query_sparql(query,
                                           query_params.triplestore_config)
    return is_result_true(result_dict)