src/hdalab/management/commands/geojson_transform.py
changeset 281 bc0f26b1acc2
parent 266 825ff4d6a8ac
child 284 f01235a1dcc2
--- 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: <http://dbpedia.org/ontology/>
+#                 SELECT ?source ?target
+#                 WHERE {
+#                     ?source dbpedia-owl:wikiPageRedirects ?target .
+#                     Filter (?source in (<%s>)) .
+#                 }
+#             """ % '>, <'.join(uri_list[start:start + grp])
             sparql = """
-                PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
+                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