Пример #1
0
def reconcile():
    """ 
    Reconciliation API, emulates Google Refine API. See: 
    http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi
    """
    # TODO: Add proper support for types and namespacing.
    data = request.args.copy()
    data.update(request.form.copy())
    if 'query' in data:
        # single
        q = data.get('query')
        if q.startswith('{'):
            try:
                q = json.loads(q)
            except ValueError:
                abort(400)
        return jsonify(match(q))
    elif 'queries' in data:
        # multiple requests in one query
        qs = data.get('queries')
        try:
            qs = json.loads(qs)
        except ValueError:
            abort(400)
        queries = {}
        for k, q in qs.items():
            queries[k] = match(q)
        return jsonify(queries)
    else:
        domain = url_for('index', _external=True).strip('/')
        urlp = domain + '{{id}}'
        types = [{'name': t.name, 'id': '/' + t.name} for t in Type.types()]
        meta = {
            'name': app.config['TITLE'],
            'identifierSpace': 'http://rdf.freebase.com/ns/type.object.id',
            'schemaSpace': 'http://rdf.freebase.com/ns/type.object.id',
            'view': {
                'url': urlp
            },
            'suggest': {
                'entity': {
                    'service_url': domain,
                    'service_path': '/suggest',
                    'flyout_service_path': '/flyout'
                }
            },
            'preview': {
                'url': urlp + '?preview=true',
                'width': 600,
                'height': 300
            },
            'defaultTypes': types
        }
        return jsonify(meta)
Пример #2
0
def reconcile():
    """ 
    Reconciliation API, emulates Google Refine API. See: 
    http://code.google.com/p/google-refine/wiki/ReconciliationServiceApi
    """
    # TODO: Add proper support for types and namespacing.
    data = request.args.copy()
    data.update(request.form.copy())
    if 'query' in data:
        # single 
        q = data.get('query')
        if q.startswith('{'):
            try:
                q = json.loads(q)
            except ValueError:
                abort(400)
        return jsonify(match(q))
    elif 'queries' in data:
        # multiple requests in one query
        qs = data.get('queries')
        try:
            qs = json.loads(qs)
        except ValueError:
            abort(400)
        queries = {}
        for k, q in qs.items():
            queries[k] = match(q)
        return jsonify(queries)
    else:
        domain = url_for('index', _external=True).strip('/')
        urlp = domain + '{{id}}'
        types = [{'name': t.name, 'id': '/' + t.name} for t in Type.types()]
        meta = {
                'name': app.config['TITLE'],
                'identifierSpace': 'http://rdf.freebase.com/ns/type.object.id',
                'schemaSpace': 'http://rdf.freebase.com/ns/type.object.id',
                'view': {'url': urlp},
                'suggest': {
                    'entity': {
                        'service_url': domain,
                        'service_path': '/suggest',
                        'flyout_service_path': '/flyout'
                        }
                    },
                'preview': {
                    'url': urlp + '?preview=true', 
                    'width': 600,
                    'height': 300
                    },
                'defaultTypes': types
                }
        return jsonify(meta)
Пример #3
0
def manager():
    types = Type.types()
    return render_template('manager.tmpl', types=types)
Пример #4
0
def manager():
    types = Type.types()
    return render_template('manager.tmpl', types=types)