Table of Contents
Ejemplo en R#
Usa el paquete SPARQL de R para hacer una consulta SPARQL al EndPoint de esDBpedia. En este ejemplo obtiene los recursos que están geolocalizados en la Comunidad de Madrid (en realidad en el rectángulo que cubre la región).
Se clasifican según su tipo. Por simplicidad se elige el tipo de schema.org. Un recurso puede tener varios tipos (e.g. Alcalá de Henares tiene Lugar y Hospital).
library(ggplot2) library(mapproj) library(ggmap) library(SPARQL) endpoint <- "http://es.dbpedia.org/sparql" query <- "SELECT * WHERE { ?uri geo:lat ?lat . ?uri geo:long ?lon . ?uri rdf:type ?thetype . FILTER ( (?lat> 40.0 && ?lat < 41.15) && (?lon> 3.1 && ?lon < 4.5) && regex(?thetype,'^http://schema.org') ) } " reslist <- SPARQL(endpoint,query) df <- reslist$results df$lon <- -df$lon df$thetype <- factor(df$thetype) map.center <- geocode("Madrid, Spain") map <- get_map(c(lon=map.center$lon, lat=map.center$lat), source="google", zoom=9) ggmap(map) + geom_point(data=df, aes(x=lon, y=lat, colour=thetype, position="dodge"), size=6, alpha=0.8 )
El resultado es este gráfico:
![]() |
Observaciones:
- La coordenada lon (longitud) que almacena esDBpedia es positiva, por eso tenemos que cambiarla de signo.
- El parámetro "dodge" intenta que dos puntos que solapan se puedan distinguir visualmente. Para lograrlo, los separa ligeramente. En zonas con muchos puntos es inevitable el solape (caso del centro de Madrid).
- Si alguien sabe cómo poner una paleta de colores con la que se distingan mejor los puntos, que lo diga :-D.