Beispiel #1
0
from django.shortcuts import render
from linda_app.models import DatasourceDescription, get_configuration
from django.core.context_processors import csrf
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.views.decorators.csrf import csrf_exempt
import requests, urllib,re

VISUAL_SERVER = get_configuration().visualization_backend
VISUAL_PROXY = "/visualizations/visual/api"

def visualizations(request):
    params = {}
    params['VISUAL_PROXY'] = VISUAL_PROXY
    params['csrf_token'] = csrf(request)
    params['page'] = 'Visualizations'
    return render(request, 'visual/index.html', params)

# Proxy calls - exist as middle-mans between LinDA visualizations page and the visual server
@csrf_exempt
def get_api_call(request, link):
    print(link)

    if ('sparql-proxy' in link) or ('dataselection' in link) or ('visualizations' in link):
	    endpoint = 'http://localhost:3002/'
    else:
        endpoint = VISUAL_SERVER
	
    #TO-DO Improve request handler
    link = urllib.parse.quote(link)
    link = re.sub(r"\/", "%2F", link)
Beispiel #2
0
def install_repositories():
    sesame_url = get_configuration().sesame_url
    # load existing repositories
    r = requests.get(sesame_url + 'repositories?Accept=' + urlquote('application/json'))

    if r.status_code != 200:
        return HttpResponse('Error loading repositories - ' + r.text, status=r.status_code)

    # parse response & check which repositories already exist
    existing = json.loads(r.text)

    linda_exists = False
    lov_exists = False
    vocabulary_exists = False
    visualization_exists = False
    query_exists = False

    for repository in existing['results']['bindings']:
        rid = repository['id']['value']
        if rid == 'linda':
            linda_exists = True
        elif rid == "lov":
            lov_exists = True
        elif rid == "vocabulary":
            vocabulary_exists = True
        elif rid == "visualization":
            visualization_exists = True
        elif rid == 'QueryRepository':
            query_exists = True

    # Create any repositories that weren't found
    n_of_repositories = 0

    # data sources
    if not linda_exists:
        create_repository_query(sesame_url, 'linda', 'LinDA private data sources repository')
        n_of_repositories += 1

    # query builder
    if not query_exists:
        create_repository_query(sesame_url, 'QueryRepository', 'Query Repository for storing RDF2Any Queries')
        n_of_repositories += 1

    # vocabulary
    if not vocabulary_exists:
        create_repository_query(sesame_url, 'vocabulary', 'LinDA Vocabulary Repository')
        n_of_repositories += 1

    # visualization
    if not visualization_exists:
        vis_contents = open(os.path.join(os.path.dirname(__file__), 'data/visualization-ontology.nt')).read()
        create_repository_query(sesame_url, 'visualization', 'Visualization',
                                initials=[{'data': vis_contents, 'content-type': 'text/plain',
                                           'context': 'http://linda-project.eu/visualization-ontology'}])
        n_of_repositories += 1

    # lov
    if not lov_exists:
        lov_contents = open(os.path.join(os.path.dirname(__file__), 'data/lov.nt')).read()
        create_repository_query(sesame_url, 'lov', 'LOV',
                                initials=[{'data': lov_contents, 'content-type': 'text/plain'}])
        n_of_repositories += 1

    return HttpResponse(json.dumps({'n_of_repositories': n_of_repositories}),
                        status=200, content_type="application/json")
from django import template
from django.utils.http import urlquote
from endpoint_monitor.models import EndpointTest
from linda_app.lists import CATEGORIES
from linda_app.models import Vocabulary, VocabularyClass, VocabularyProperty, get_configuration, \
    datasource_from_endpoint

register = template.Library()

# Load user configurable settings
config = get_configuration()

@register.filter(name="nice_name")
def nice_name(user):
    return user.get_full_name() or user.username

@register.filter(name="vocabularies")
def vocabularies(objects):
    return [elem for elem in objects if isinstance(elem.object, Vocabulary) or isinstance(elem, Vocabulary)]

@register.filter(name="classes")
def vocabulary_classes(objects):
    return [elem for elem in objects if isinstance(elem.object, VocabularyClass) or isinstance(elem, VocabularyClass)]

@register.filter(name="properties")
def vocabulary_properties(objects):
    return [elem for elem in objects if isinstance(elem.object, VocabularyProperty) or isinstance(elem, VocabularyProperty)]

@register.filter(name="get_endpoint")
def get_endpoint(datasource):
    return datasource.get_endpoint()