def statistics(self): """ Get information about triplet store """ self.log.debug("== STATS ==") data = {} pm = ParamManager(self.settings, self.request.session) sqb = SparqlQueryBuilder(self.settings, self.request.session) ql = QueryLauncher(self.settings, self.request.session) tse = TripleStoreExplorer(self.settings, self.request.session) results = ql.process_query(sqb.get_statistics_number_of_triples().query) data["ntriples"] = results[0]["no"] results = ql.process_query(sqb.get_statistics_number_of_entities().query) data["nentities"] = results[0]["no"] results = ql.process_query(sqb.get_statistics_distinct_classes().query) data["nclasses"] = results[0]["no"] # Get the list of classes res_list_classes = ql.process_query(sqb.get_statistics_list_classes().query) data["class"] = {} for obj in res_list_classes: class_name = pm.remove_prefix(obj['class']) data["class"][class_name] = {} # Get the number of instances by class res_nb_instances = ql.process_query(sqb.get_statistics_nb_instances_by_classe().query) for obj in res_nb_instances: if 'class' in obj: class_name = pm.remove_prefix(obj['class']) data["class"][class_name]["count"] = obj['count'] # Get details on relations for each classes for obj in res_list_classes: if 'class' in obj: class_name = pm.remove_prefix(obj['class']) uri = obj['class'] shortcuts_list = tse.has_setting(uri, 'shortcut') src = Node(class_name, # We don't care about counter in stats uri, class_name, shortcuts_list) attributes, nodes, links = tse.get_neighbours_for_node(src, None) data["class"][class_name]["attributes"] = [a.to_dict() for a in attributes] data["class"][class_name]["neighbours"] = [n.to_dict() for n in nodes] data["class"][class_name]["relations"] = [l.to_dict() for l in links] return data
def statistics(self): """ Get information about triplet store """ self.log.debug("== STATS ==") data = {} pm = ParamManager(self.settings, self.request.session) sqb = SparqlQueryBuilder(self.settings, self.request.session) ql = QueryLauncher(self.settings, self.request.session) tse = TripleStoreExplorer(self.settings, self.request.session) results = ql.process_query( sqb.get_statistics_number_of_triples().query) resultsGraphs = ql.process_query( sqb.get_statistics_number_of_triples_AskOmics_graphs().query) data["ntriples"] = int(results[0]["no"]) + int(resultsGraphs[0]["no"]) results = ql.process_query( sqb.get_statistics_number_of_entities().query) data["nentities"] = results[0]["no"] results = ql.process_query(sqb.get_statistics_distinct_classes().query) data["nclasses"] = results[0]["no"] # Get the number of graphs results = ql.process_query(sqb.get_statistics_number_of_graphs().query) data["ngraphs"] = results[0]["no"] self.log.debug("=== LIST OF METADATAS ") # Get the list of named graphs namedGraphsResults = ql.execute_query( sqb.get_list_named_graphs().query) namedGraphsMetadatas = {} # Get a dictionnary containing the metadatas for each graph for indexResult in range(len( namedGraphsResults['results']['bindings'])): metadatasResults = ql.execute_query( sqb.get_metadatas(namedGraphsResults['results']['bindings'] [indexResult]['g']['value']).query) metadatas = {} for indexMetadatasResults in range( len(metadatasResults['results']['bindings'])): if metadatasResults['results']['bindings'][ indexMetadatasResults]['p'][ 'value'] == "http://www.w3.org/ns/prov#generatedAtTime": metadatas['loadDate'] = metadatasResults['results'][ 'bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][ indexMetadatasResults]['p'][ 'value'] == "http://purl.org/dc/elements/1.1/creator": metadatas['username'] = metadatasResults['results'][ 'bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][ indexMetadatasResults]['p'][ 'value'] == "http://purl.org/dc/elements/1.1/hasVersion": metadatas['version'] = metadatasResults['results'][ 'bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][ indexMetadatasResults]['p'][ 'value'] == "http://www.w3.org/ns/prov#describesService": metadatas['server'] = metadatasResults['results'][ 'bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][ indexMetadatasResults]['p'][ 'value'] == "http://www.w3.org/ns/prov#wasDerivedFrom": metadatas['filename'] = metadatasResults['results'][ 'bindings'][indexMetadatasResults]['o']['value'] namedGraphsMetadatas[namedGraphsResults['results']['bindings'] [indexResult]['g']['value']] = metadatas data['metadata'] = namedGraphsMetadatas # Get the list of classes res_list_classes = ql.process_query( sqb.get_statistics_list_classes().query) data["class"] = {} for obj in res_list_classes: print(obj['class']) class_name = pm.remove_prefix(obj['class']) print(class_name) data["class"][class_name] = {} # Get the number of instances by class res_nb_instances = ql.process_query( sqb.get_statistics_nb_instances_by_classe().query) for obj in res_nb_instances: if 'class' in obj: print(data['class']) class_name = pm.remove_prefix(obj['class']) data["class"][class_name]["count"] = obj['count'] return data
def test_remove_prefix(self): m = ParamManager(self.settings, self.request.session) d = m.remove_prefix("SELECT ?a FROM { ?a a http://www.w3.org/2002/07/owl#Class. }") assert d == "SELECT ?a FROM { ?a a owl:Class. }"
def test_remove_prefix(self): m = ParamManager(self.settings, self.request.session) d = m.remove_prefix("SELECT ?a FROM { ?a a http://www.w3.org/2002/07/owl#Class. }") assert d == "SELECT ?a FROM { ?a a owl:Class. }"
def statistics(self): """ Get information about triplet store """ self.log.debug("== STATS ==") data = {} pm = ParamManager(self.settings, self.request.session) sqb = SparqlQueryBuilder(self.settings, self.request.session) ql = QueryLauncher(self.settings, self.request.session) tse = TripleStoreExplorer(self.settings, self.request.session) results = ql.process_query(sqb.get_statistics_number_of_triples().query) resultsGraphs = ql.process_query(sqb.get_statistics_number_of_triples_AskOmics_graphs().query) data["ntriples"] = int(results[0]["no"]) + int(resultsGraphs[0]["no"]) results = ql.process_query(sqb.get_statistics_number_of_entities().query) data["nentities"] = results[0]["no"] results = ql.process_query(sqb.get_statistics_distinct_classes().query) data["nclasses"] = results[0]["no"] # Get the number of graphs results = ql.process_query(sqb.get_statistics_number_of_graphs().query) data["ngraphs"] = results[0]["no"] self.log.debug("=== LIST OF METADATAS ") # Get the list of named graphs namedGraphsResults = ql.execute_query(sqb.get_list_named_graphs().query) namedGraphsMetadatas = {} # Get a dictionnary containing the metadatas for each graph for indexResult in range(len(namedGraphsResults['results']['bindings'])): metadatasResults = ql.execute_query(sqb.get_metadatas(namedGraphsResults['results']['bindings'][indexResult]['g']['value']).query) metadatas = {} for indexMetadatasResults in range(len(metadatasResults['results']['bindings'])): if metadatasResults['results']['bindings'][indexMetadatasResults]['p']['value'] == "http://www.w3.org/ns/prov#generatedAtTime": metadatas['loadDate'] = metadatasResults['results']['bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][indexMetadatasResults]['p']['value'] == "http://purl.org/dc/elements/1.1/creator": metadatas['username'] = metadatasResults['results']['bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][indexMetadatasResults]['p']['value'] == "http://purl.org/dc/elements/1.1/hasVersion": metadatas['version'] = metadatasResults['results']['bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][indexMetadatasResults]['p']['value'] == "http://www.w3.org/ns/prov#describesService": metadatas['server'] = metadatasResults['results']['bindings'][indexMetadatasResults]['o']['value'] if metadatasResults['results']['bindings'][indexMetadatasResults]['p']['value'] == "http://www.w3.org/ns/prov#wasDerivedFrom": metadatas['filename'] = metadatasResults['results']['bindings'][indexMetadatasResults]['o']['value'] namedGraphsMetadatas[namedGraphsResults['results']['bindings'][indexResult]['g']['value']] = metadatas data['metadata'] = namedGraphsMetadatas # Get the list of classes res_list_classes = ql.process_query(sqb.get_statistics_list_classes().query) data["class"] = {} for obj in res_list_classes: print(obj['class']) class_name = pm.remove_prefix(obj['class']) print(class_name) data["class"][class_name] = {} # Get the number of instances by class res_nb_instances = ql.process_query(sqb.get_statistics_nb_instances_by_classe().query) for obj in res_nb_instances: if 'class' in obj: print(data['class']) class_name = pm.remove_prefix(obj['class']) data["class"][class_name]["count"] = obj['count'] return data