Beispiel #1
0
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')
Beispiel #2
0
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))
Beispiel #3
0
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')
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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
Beispiel #8
0
    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