2. Qué
es
el
BIFI
• Ins/tuto
de
Biocomputación
y
Física
de
Sistemas
Complejos
de
la
Universidad
de
Zaragoza
• Mul/disciplinariedad
– Bioquímica
– Física
– Computación
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
2
3. Análisis
de
redes
complejas
• Grafo
con
una
serie
de
caracterís/cas
especiales
(estructura
en
comunidades,
jerarquía,
etc.)
• Las
redes
sociales
(Facebook,
Twi[er,
…)
• Se
pueden
u/lizar
para
extraer
información
sobre
la
sociedad
• Experimentos
dilema
del
prisionero,
análisis
del
movimiento
del
15m,
Kampal,
etc.
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
3
4. Escucha
ac/va
en
Aragón
• ¿De
qué
se
habla
en
Aragón?
• ¿Qué
es
importante
para
los
aragoneses?
• ¿Qué
puede
resultar
interesante
para
los
aragoneses?
• ¿En
qué
se
diferencian
los
aragoneses
del
resto
de
España?
• …
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
4
5. Fuentes
que
se
capturan
• Eventos:
Facebook
Events,
Spain-‐info
• Texto:
Twi[er,
Facebook,
Google+,
Blogger,
Blogia,
Wordpress
• Wiki:
Wikipedia
• Video:
Youtube,
Vimeo
• Imágenes:
Instagram,
Flickr,
Pinterest
• Lugares:
Foursquare
• Código:
Github
• Prensa:
Heraldo
de
Aragón,
El
Periódico
de
Aragón,
Diario
del
Alto
Aragón,
Diario
de
Teruel
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
5
6. Qué
datos
se
capturan
• Siempre
datos
públicos
• Que
cualquier
usuario
puede
encontrar
por
sus
propios
medios
• Se
puede
controlar
el
contenido
tanto
por
la
URL
como
por
el
autor
• Se
puede
solicitar
que
un
usuario
deje
de
ser
escuchado
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
6
7. Criterios
de
captura
• Geoposición
– Dentro
de
Aragón
– Zonas
colindantes
– Nombres
de
municipios
• Palabras/usuarios
clave
– Temas
de
interés
– Usuarios
relevantes
para
Aragón
– Se
realimentan
y
actualizan
con
los
datos
geoposicionados
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
7
8. Criterios
de
captura
II
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
8
9. Criterios
de
captura
III
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
9
10. Cómo
se
captura
• Normalmente
el
usuario
ve
la
información
a
través
de
un
navegador
• Necesitamos
grandes
volúmenes
de
información
• Filtrado
por
diferentes
criterios
• Herramientas
que
las
redes
sociales
y
otras
webs
proveen
• Límites
de
las
fuentes
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
10
11. Cómo
se
captura
II
• Robots
llamados
arañas,
web
crawlers,
scrapers…
• Simulan
las
visitas
que
muchos
usuarios
harían
• Cada
uno
se
ocupa
de
una
tarea
– Una
red
social
– Cierta
información
• Centralizan
la
información
– Filtran
y
“uniformizan”
-‐>
ETL
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
11
12. Cómo
se
filtra
la
información
• Se
solicitan
sólo
los
campos
que
nos
interesan,
se
obvian
los
demás
• 2
/pos:
streaming
o
periódicas
• Las
arañas
no
saben
qué
contenido
es
bueno
o
malo
– Se
captura
mucho
ruido,
especialmente
al
buscar
por
palabra
clave
– No
se
deben
de
usar
palabras
demasiado
cortas
o
sin
significado
(preposiciones,
aruculos…)
– Hay
que
tener
cuidado
con
otros
idiomas.
Ej:
CAI,
USJ
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
12
13. Cómo
se
almacena
• Todos
los
datos
son
guardados
en
una
gran
base
de
datos
distribuida
• La
can/dad
de
información
capturada
es
importante
• En
torno
a
30
GB
al
mes,
que
se
reducen
a
unos
3
GBs
al
filtrar
• Unas
800.000
entradas
al
mes
entre
vídeos,
fotos,
mensajes,
etc.
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
13
14. Procesamiento
• Detección
de
idioma
• Se
almacena
el
criterio
que
ha
hecho
que
cierto
contenido
se
capture
• Se
calculan
ciertos
parámetros
en
base
a
los
datos
capturados:
– Apariciones
por
cada
1000
palabras
de
dentro
y
fuera
de
Aragón:
• Temas
de
interés
dentro
de
Aragón
• Diferenciales
• Acumulados
por
30,
60
y
90
días
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
14
15. Arquitectura
• La
base
de
datos
está
distribuida
en
dos
nodos
para
dividir
la
carga
– Nodo
maestro:
se
realizan
todas
las
tareas
de
recogida
y
procesamiento
de
datos,
además
del
panel
de
administración
– Nodo
esclavo:
es
una
réplica
de
sólo
lectura
sobre
la
que
se
realizan
las
consultas
de
la
API
• En
momentos
puntuales,
se
u/lizan
algunas
máquinas
de
cloud
por
límites
en
las
fuentes
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
15
16. Arquitectura
II
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
16
17. Arquitectura
III
• Nodo
maestro
– PostgreSQL
9.3:
sistema
gestor
de
la
base
de
datos
como
maestro
(+POSTGIS)
– Python
2.7
(pyscopg2,
lxml,
beau/foulsoup4,
json,
urllib)
– Django:
interfaz
de
administración
– Munin:
monitorización
de
recursos
– Celery+Redis:
sistema
de
colas
de
tareas
distribuidas
– Apache:
servidor
web
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
17
18. Arquitectura
IV
• Nodo
esclavo
– PostgreSQL
9.3:
sistema
gestor
de
la
base
de
datos
como
esclavo
de
sólo
lectura
– Python
2.7
(pyscopg2,
json,
mod-‐wsgi)
– Munin:
monitorización
de
recursos
– Celery+Redis:
sistema
de
colas
de
tareas
distribuidas
– Apache:
servidor
web
para
servir
la
API
con
mod-‐
python
y
mod-‐evasive
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
18
19. Arquitectura
V
• Hardware:
los
dos
nodos
son
iguales,
con
especificaciones
similares
a
las
medium
de
Amazon:
– 1U
R1304GZ4GC
– 24
procesadores
Intel(R)
Xeon(R)
CPU
E5-‐2620
@
2.00GHz
– 4
módulos
de
16
GB
de
RAM
DIMM
DDR3
Synchronous
1333
MHz
– 2
discos
SAS
de
7200
RPM
y
2
TB
cada
uno
WD2001FYYG-‐01SL3
par/cionados
en
EXT4
– 4
tarjetas
de
red
Intel
I350
Gigabit
Network
Connec/on
– 1
disco
SSD
Kingston
Serie
V300
240Gb
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
19
20. Arquitectura
VI
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
20
21. El
sistema
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
21
22. El
sistema
II
• Un
script
en
Python
por
cada
scraper
– Cada
uno
se
ocupa
de
una
fuente
– Código
común
separado
(geolocalización,
db,
idioma…)
– En
la
base
de
datos
se
guarda
información
de
cada
uno:
• Tipo:
períodico
o
streaming
• Ruta:
dónde
se
encuentra
el
script
que
lo
ejecuta
• Cada
cuánto
se
ejecuta
• Úl/ma
ejecución
• Resultado
de
la
úl/ma
ejecución
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
22
23. El
sistema
III
• Proceso
/po
demonio
que
consulta
esta
información
y
lanza
en
segundo
plano
conforme
está
configurado
– Controla
el
resultado
– Registra
todo
lo
que
sucede
en
logs
– Manda
emails
a
los
administradores
si
hay
errores
• Desde
el
panel
de
administración
se
modifican
estos
parámetros
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
23
24. El
sistema
IV
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
24
25. El
sistema
V
• Los
scrapers
que
requieren
procesamiento
lo
llevan
integrado
en
el
propio
script
(cambios
en
las
fuentes)
• Una
vez
que
los
datos
están
descargados
– Automá/camente
se
copian
al
esclavo
-‐>
API
– Pueden
ser
monitorizados
y
controlados
desde
el
panel
de
administración
• El
esclavo
es
el
que
soporta
la
carga
de
las
consultas
de
los
usuarios
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
25
26. El
sistema
VI
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
26
36. Qué
ofrecemos
al
público
• Una
API
(Applica/on
Programming
Interface)
que
permite
acceder
a
los
datos
recogidos
y
filtrados
• Totalmente
pública,
sin
necesidad
de
registro
(aunque
con
algún
límite)
• Se
pueden
acceder
a
los
datos
an/guos
hasta
12
meses
(por
el
momento
disponemos
desde
diciembre
de
2013)
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
36
37. Cómo
usar
nuestra
API
• Pe/ciones
HTTP
como
las
que
hace
cualquier
navegador
• El
usuario
sólo
/ene
que
indicar
qué
datos
desea
obtener
y
cómo
los
quiere
filtrar
– Dirección
(/trendings
o
/data)
– Parámetros
(?source=twi[er)
• Librerías
en
dis/ntos
lenguajes
que
hacen
muy
sencillo
su
uso
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
37
38. Qué
formato
/enen
los
resultados
• Actualmente
en
formato
JSON,
próximamente
en
XML,
CSV,
…
• Los
resultados
aparecen
paginados
• Ordenados
cronológicamente
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
38
39. Trendings
• h[p://opendata.aragon.es/socialdata/trendings
– {"status":
"OK",
"results":
[result_1,
result_2,
result_3...]}
– Results:
{"name":
name,
"url":
url}
• /socialdata/trendings?type=aragon
• /socialdata/trendings?type=spain
• /socialdata/trendings?type=30days
• /socialdata/trendings?type=60days
• /socialdata/trendings?type=90days
• /socialdata/trendings?type=diff
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
39
41. Contenido
II
• id:
entero
iden/fica/vo
del
elemento.
• type:
cadena
que
indica
el
/po
de
contenido.
• source:
cadena
de
texto
que
indica
a
qué
fuente
pertenece
el
resultado.
• ,tle:
cadena
con
el
utulo
del
contenido
en
el
caso
de
que
lo
tenga.
• descrip,on:
contenido
del
elemento
(texto
del
tweet,
descripción
del
evento,
descripción
del
vídeo,
etc.)
• url:
dirección
url
directa
al
contenido.
• author:
cadena
de
texto
con
el
nombre
del
autor
en
caso
de
que
lo
haya.
• starts_on:
para
los
eventos,
si
la
tuvieran,
fecha
de
comienzo.
• ends_on:
para
los
eventos,
si
la
tuvieran,
fecha
de
final.
• published_on:
fecha
de
publicación
del
contenido.
• lat:
la/tud
del
contenido
en
formato
real.
• lng:
longitud
del
contenido
en
formato
real.
• thumbnail:
dirección
url
del
thumbnail
asociado
si
lo
hubiera.
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
41
42. Contenido
III
• Dos
/pos
de
paginación:
– Estándar
(máx.
1000)
– since_id
&
max_id
• Todas
las
fechas
/enen
el
formato:
16/01/14
13:03
• Se
puede
especificar
que
la
API
devuelva
los
datos
en
crudo
con
el
parámetro
raw_mode
– /socialdata/data?source=twi[er&raw_mode=true
– Nuevo
campo
en
los
resultados
llamado
raw_data
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
42
43. Cómo
podemos
filtrarla
• Por
/po
de
contenido
• Por
fuente
• Por
conversación
• Por
geoposición
• Por
período
• Por
palabra
clave
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
43
44. Filtro
por
/po
de
contenido
• /socialdata/data?type=content_type
– event
(Facebook
Events,
Spain-‐info)
– text
(Twi[er,
Facebook,
Google+,
Blogger,
Blogia,
Wordpress)
– wiki
(Wikipedia)
– video
(Youtube,
Vimeo)
– picture
(Instagram,
Flickr,
Pinterest)
– venue
(Foursquare)
– code
(Github)
– media
(Heraldo
de
Aragón,
El
Periódico
de
Aragón,
Diario
del
Alto
Aragón,
Diario
de
Teruel)
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
44
45. Filtro
por
fuente
• /socialdata/data?source=source_name
– spain_info
– facebook_events
– twi[er
– youtube
– instagram
– facebook
– wikipedia
– blogger
– wordpress
– blogia
– vimeo
– flickr
– foursquare
– pinterest
– google_plus
– github
– heraldodearagon
– periodicodearagon
– diariodelaltoaragon
– diariodeteruel
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
45
46. Filtro
por
conversación
• /socialdata/data?
conversa/on=conversa/on
_type
– geo:
conversación
sobre
lo
que
se
habla
dentro
de
Aragón
– rel:
conversación
de
temas
y
usuarios
relevantes
para
Aragón
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
46
47. Filtro
por
geoposición
• Filtrado
por
centro
y
radio
– /socialdata/data?center=coordinates&distance=distance_in_km
– /socialdata/data?center=41.35678,-‐0.8148576&distance=5
• Filtrado
por
cuadrado
geográfico
– /socialdata/data?bbox=min_lng,min_lat,man_lng,max_lat
– /socialdata/data?
bbox=-‐0.8148576,41.35678,-‐0.667584,41.78553
• Filtrado
por
municipio
y
radio
– /socialdata/data?locality=locality&distance=distance_in_km
– /socialdata/data?locality=Zaragoza&distance=5
• Sólo
datos
geolocalizados:
– /socialdata/data?source=twi[er&geolocated=true
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
47
48. Otros
filtros
• Por
período:
– /socialdata/data?
start_date=start_date&end_date=end_date
• Por
palabra
clave:
– /socialdata/data?query=query
• Combinaciones!
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
48
50. Qué
puedo
hacer
con
estos
datos
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
50
51. Cómo
va
a
evolucionar
• Se
con/nuarán
añadiendo
nuevas
fuentes
de
datos
• Mayor
volumen
de
datos,
mayor
precisión,
y
mayor
calidad
• Nuevos
formatos
de
salida
• …
(Abiertos
a
sugerencias
de
los
ciudadanos)
26
de
sep/embre
de
2014
Open
Social
Data
-‐
Escucha
Ac/va
51