def query(request,data): pred= data['pred'] obj= data['obj'] proxy = get_sparql_proxy() pred_resource = RDFResource.objects.filter(label=pred) pred = pred_resource[0].uri sparql_template = TEMPLATE(""" SELECT ?sub, ?label, ?size FROM <{{graph}}> WHERE { ?sub <{{pred}}> <{{obj}}> . ?sub <{{nie:byteSize}}> ?size . OPTIONAL { ?sub <{{rdfs:label}}> ?label . } } """) context = { 'graph' : settings.DATA_GRAPH, 'pred' : pred, 'nie:byteSize' : NIE['bytesize'], 'rdfs:label' : RDFS['label'], } return proxy.query(sparql_template.render(context),output='json')
def proxy(request): query = request.GET['query'] endpoint = request.GET.get('service_uri', settings.VIRTUOSO_ENDPOINT) if endpoint[4:] != "http": endpoint = "http://%s" % endpoint output = request.GET['output'] context = request.GET.get('context', '') user = None if hasattr(request, 'user'): user = request.user if not user.is_authenticated(): user = None base = RecentQuery.objects lastQueries = base.filter(context='userInput').order_by('-creation')[:10] for q in lastQueries: if (q.query == query): q.delete() query_obj = RecentQuery(query=query, endpoint=endpoint, user=user, context=context) query_obj.save() proxy_obj = get_sparql_proxy() return HttpResponse(proxy_obj.query(query, endpoint, output))
def query(request, data): pred = data['pred'] obj = data['obj'] proxy = get_sparql_proxy() pred_resource = RDFResource.objects.filter(label=pred) pred = pred_resource[0].uri sparql_template = TEMPLATE(""" SELECT ?sub, ?label, ?size FROM <{{graph}}> WHERE { ?sub <{{pred}}> <{{obj}}> . ?sub <{{nie:byteSize}}> ?size . OPTIONAL { ?sub <{{rdfs:label}}> ?label . } } """) context = { 'graph': settings.DATA_GRAPH, 'pred': pred, 'nie:byteSize': NIE['bytesize'], 'rdfs:label': RDFS['label'], } return proxy.query(sparql_template.render(context), output='json')
def handle(self, *args, **options): proxy = get_sparql_proxy() sparql = "SELECT DISTINCT ?res, ?label FROM <%s> WHERE { ?res <%s> ?label }" % (settings.SCHEMA_GRAPH, RDFS['label']) resultSet = proxy.query(sparql,output='ResultSet') while resultSet.can_read(): row = resultSet.get_row() RDFResource.objects.get_or_create(uri=row['res'].value, label=row['label'].value)
def handle(self, *args, **options): proxy = get_sparql_proxy() sparql = "SELECT DISTINCT ?res, ?label FROM <%s> WHERE { ?res <%s> ?label }" % ( settings.SCHEMA_GRAPH, RDFS['label']) resultSet = proxy.query(sparql, output='ResultSet') while resultSet.can_read(): row = resultSet.get_row() RDFResource.objects.get_or_create(uri=row['res'].value, label=row['label'].value)
def handle(self, *args, **options): if len(args) > 0: graph = args[0] else: graph = settings.SCHEMA_GRAPH proxy = get_sparql_proxy() sparql = "SELECT DISTINCT ?res, ?label, ?type WHERE { ?res <%s> ?label . ?res <%s> ?type}" % ( RDFS["label"], RDF["type"], ) resultSet = proxy.query(sparql, output="ResultSet") while resultSet.can_read(): row = resultSet.get_row() RDFResource.objects.get_or_create(uri=row["res"].value, label=row["label"].value, type=row["type"].value)
def read(self, request, file_hash): sparql = """ SELECT DISTINCT ?predicate ?object ?range WHERE { <%s> ?predicate ?object . ?predicate rdfs:range ?range . } ORDER BY ?p """ % CLIP[file_hash] proxy = get_sparql_proxy() resource_data = proxy.query(sparql,output='ResultSet') output = {} for row in resource_data: obj = abbreviate(row['object'].value) if row['object'].type =='uri' else row['object'].value ran = abbreviate(row['range'].value) pred = abbreviate(row['predicate'].value) output[pred] = { 'value' : obj, 'type' : ran } return output
def read(self, request, file_hash, predicate): sparql = """ SELECT DISTINCT ?object ?object_prop ?object_range ?label ?object_value WHERE { <%s> %s ?object . OPTIONAL {?object ?object_prop ?object_value } OPTIONAL {?object_prop rdfs:range ?object_range } OPTIONAL { ?object rdfs:label ?object_label } } ORDER BY ?p """ % (CLIP[file_hash], predicate) proxy = get_sparql_proxy() resource_data = proxy.query(sparql,output='ResultSet') output = [] aggregated = {} for row in resource_data: obj = row['object'] if obj.type == 'uri': ran = abbreviate(row['object_range'].value) prop = abbreviate(row['object_prop'].value) obj_val = row['object_value'] value = abbreviate(obj_val.value) if obj_val.type == 'uri' else obj_val.value try: aggregated[obj.value][prop] = value except KeyError: aggregated[obj.value] = {} aggregated[obj.value][prop] = value else: output.append(obj.value) for (key, val) in aggregated.items(): output.append(val) return output