InterruptorPt / ate-onde-chega-cultura

Mapa interativo dos equipamentos culturais em Portugal
https://interruptorpt.github.io/ate-onde-chega-cultura/
GNU General Public License v3.0
24 stars 16 forks source link

Cache dos dados wikidata #28

Closed tcarreira closed 3 years ago

tcarreira commented 3 years ago

Preparar um script que faça download dos dados das queries, e os guarde em formato estático (eg: json) Publicar esses dados num sítio acessível (outro branch?)

marado commented 3 years ago

Se quiseres uma ferramenta em bash para fazer wikidata queries: https://github.com/transparenciahackday/autores-portugueses/blob/master/wikidata/query-wikidata.sh

waldyrious commented 3 years ago

Publicar esses dados num sítio acessível (outro branch?)

Não vejo razão para não incluir na branch principal. Podem ficar vários ficheiros (um para cada tipo de entidade) numa pasta data/, e assim até podemos colocar um README nessa pasta a explicar como os dados são obtidos e atualizados.

waldyrious commented 3 years ago

☐ download json

Em relação ao formato, penso que guardar diretamente em GeoJSON pode ser a melhor opção, porque não só os dados ficam semanticamente anotados, como quer o Leaflet quer o próprio GitHub conseguem fazer rendering diretamente de dados em GeoJSON, não sendo preciso qualquer processamento. Até dá para configurar o GeoJSON para usar ícones personalizados (do conjunto Maki) e color-coding dos pontos por categoria!

Estive a fazer umas experiências e basicamente basta transformar os dados brutos do Wikidata no GeoJSON equivalente, o que pode ser feito de forma completamente determinística. Por exemplo, esta entrada de uma lista de resultados do Wikidata (exportado como JSON):

{
  "item": "http://www.wikidata.org/entity/Q71890449",
  "itemLabel": "Biblioteca Municipal de Figueiró dos Vinhos",
  "geo": "Point(-8.273731 39.900399)"
}

...seria convertido neste GeoJSON (mostrado em notação diff para salientar as linhas correspondentes ao JSON acima):

 {
   "type": "Feature",
   "geometry": {
     "type": "Point",
+    "coordinates": [-8.273731, 39.900399]
   },
   "properties": {
+    "nome": "Biblioteca Municipal de Figueiró dos Vinhos",
     "tipo": "biblioteca",
+    "wikidata": "<a href='https://www.wikidata.org/wiki/Q71890449'>Q71890449</a>",
     "marker-symbol": "library",
     "marker-color": "#f90"
   }
 }

Criei um gist a mostrar como fica com vários tipos de entidades, ícones e cores personalizadas. Screenshot abaixo para aguçar o apetite :)

Screenshot 2020-10-24 at 23 38 13
tcarreira commented 3 years ago

Isso parece me super interessante. Vou então fazer a parte de guardar os dados em json normal. Depois disso feito, trata-se da conversão para geo json, OK?

tcarreira commented 3 years ago

Vou abrir issue separada para isto:
github actions para atualizar static-data