diff -r 56d84b0c267f -r bc0f26b1acc2 src/hdalab/management/commands/geojson_transform.py --- a/src/hdalab/management/commands/geojson_transform.py Fri Jun 20 17:04:51 2014 +0200 +++ b/src/hdalab/management/commands/geojson_transform.py Tue Jun 24 16:58:34 2014 +0200 @@ -2,9 +2,10 @@ ''' @author: raphv ''' +from django.conf import settings from django.core.management.base import BaseCommand, CommandError from django.utils.http import urlquote -import django.utils.simplejson as json +import json from SPARQLWrapper import SPARQLWrapper, JSON #import pydevd #@UnresolvedImport @@ -30,26 +31,36 @@ geojson = json.loads(f.read()) f.close() - labels = [feature['properties']['name'] for feature in geojson['features']] - uris = dict([(label, 'http://dbpedia.org/resource/' + urlquote(label.replace(' ','_'))) for label in labels]) + labels = [feature['properties']['label_fr'] for feature in geojson['features']] + #uris = dict([(label, 'http://dbpedia.org/resource/' + urlquote(label.replace(' ','_'))) for label in labels]) + uris = dict([(label, settings.DBPEDIA_URI_TEMPLATE % ( 'resource', urlquote(label.replace(' ','_')) )) for label in labels]) uri_list = [uris[label] for label in uris] base_uris = dict([(uris[label],uris[label]) for label in uris]) grp = 10 - endpoint = SPARQLWrapper("http://dbpedia.org/sparql") + #endpoint = SPARQLWrapper("http://dbpedia.org/sparql") + endpoint = SPARQLWrapper(settings.DBPEDIA_URI_TEMPLATE % ( 'sparql', '' )) endpoint.setReturnFormat(JSON) start = 0 while start < len(uri_list): +# sparql = """ +# PREFIX dbpedia-owl: +# SELECT ?source ?target +# WHERE { +# ?source dbpedia-owl:wikiPageRedirects ?target . +# Filter (?source in (<%s>)) . +# } +# """ % '>, <'.join(uri_list[start:start + grp]) sparql = """ - PREFIX dbpedia-owl: + PREFIX dbpedia-owl: <%s> SELECT ?source ?target WHERE { ?source dbpedia-owl:wikiPageRedirects ?target . Filter (?source in (<%s>)) . } - """ % '>, <'.join(uri_list[start:start + grp]) + """ % ((settings.DBPEDIA_URI_TEMPLATE % ( 'ontology', '' )), '>, <'.join(uri_list[start:start + grp])) endpoint.setQuery(sparql) results = endpoint.query().convert() @@ -79,7 +90,7 @@ endpoint.setQuery(sparql) results = endpoint.query().convert() - print repr(results) + #print repr(results) for r in results["results"]["bindings"]: country = r["country"]["value"] @@ -94,7 +105,7 @@ start += grp for feature in geojson['features']: - base_uri = base_uris[uris[feature['properties']['name']]] + base_uri = base_uris[uris[feature['properties']['label_fr']]] feature['properties']['dbpedia_uri'] = base_uri if labels.has_key(base_uri): @@ -105,5 +116,5 @@ print "No label for %s"%base_uri f = open(geojsonfile,"w") - f.write(json.dumps(geojson)) + f.write(json.dumps(geojson, indent=2)) f.close() \ No newline at end of file