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)
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)
def manager(): types = Type.types() return render_template('manager.tmpl', types=types)