Capoluoghi di provincia italiani

Creare un dataset che rappresenti i Capoluoghi di provincia italiani in forma puntuale.

A cura di Totò Fiandaca  | issue #64 | guida/e Andrea Borruso Davide Taibi


Caso d’uso: Creare un dataset che rappresenti i Capoluoghi di provincia italiani in forma puntuale.

geonames

geonames fornisce molti dati in forma tabellare (senza intestazione e ciò rende più difficile la lettura), una possibile soluzione è filtrare la tabella usando feature code PPLA2, PPA e PPLC (per maggiori dettagli leggere issue #64) e usare questo script Miller (110 record):

mlr --n2c --ifs "\t"  filter -S '$8=="PPLA2"||$8=="PPLA"||$8=="PPLC"' IT.txt  >provinceIT2.csv

dove IT.txt è scaricabile da qui

wikidata

Le suddivisioni amministrative in Italia sono complesse: qui una query SPARQL (106 record):

SELECT ?UA ?UALabel ?tipoLabel ?istatIDUA ?capoluogo ?capoluogoLabel ?istatIDCapoluogo ?coordinate ?GeoNamesIDCapoluogo WHERE {
  {
# le "suddivisioni amministrative generiche". In wikidata c'è la provincia del Sud Sardegne
    ?UA wdt:P31 wd:Q56061.
    ?UA wdt:P17 wd:Q38.
    ?UA wdt:P635 ?istatIDUA.
    ?UA p:P31 ?statement.
    ?UA wdt:P31 ?tipo.
    OPTIONAL { ?UA wdt:P36 ?capoluogo.}
    OPTIONAL { ?capoluogo p:P625 ?pc .}
    OPTIONAL { ?pc ps:P625 ?coordinate .}
    OPTIONAL { ?capoluogo p:P1566 ?pg.}
    OPTIONAL { ?pg ps:P1566 ?GeoNamesIDCapoluogo.}
    OPTIONAL { ?capoluogo p:P635 ?pi.}
    OPTIONAL { ?pi ps:P635 ?istatIDCapoluogo.}
    FILTER(REGEX(STR(?istatIDUA), "^[0-9]{3}$"))
        SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],it". }
  } UNION {
# le "province di Italia"
    ?UA wdt:P31 wd:Q15089.
    ?UA wdt:P635 ?istatIDUA.
    ?UA p:P31 ?statement.
    ?UA wdt:P31 ?tipo.
    OPTIONAL { ?UA wdt:P36 ?capoluogo.}
    OPTIONAL { ?capoluogo p:P625 ?pc .}
    OPTIONAL { ?pc ps:P625 ?coordinate .}
    OPTIONAL { ?capoluogo p:P1566 ?pg.}
    OPTIONAL { ?pg ps:P1566 ?GeoNamesIDCapoluogo.}
    OPTIONAL { ?capoluogo p:P635 ?pi.}
    OPTIONAL { ?pi ps:P635 ?istatIDCapoluogo.}
    FILTER(REGEX(STR(?istatIDUA), "^[0-9]{3}$"))
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],it". }
  }
  UNION {
# le "città metropolitane"
    ?UA wdt:P31 wd:Q15110.
    ?UA p:P31 ?statement.
    ?UA wdt:P31 ?tipo.
    ?UA p:P635 ?p.
    ?p ps:P635 ?istatIDUA .
    OPTIONAL { ?UA wdt:P36 ?capoluogo.}
    OPTIONAL { ?capoluogo p:P625 ?pc .}
    OPTIONAL { ?pc ps:P625 ?coordinate .}
    OPTIONAL { ?capoluogo p:P1566 ?pg.}
    OPTIONAL { ?pg ps:P1566 ?GeoNamesIDCapoluogo.}
    OPTIONAL { ?capoluogo p:P635 ?pi.}
    OPTIONAL { ?pi ps:P635 ?istatIDCapoluogo.}
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],it". }
  }
  FILTER NOT EXISTS { ?statement pq:P582 ?x }
}

order by ?istatIDUA

Riferimenti utili

Chi ha cucinato questa ricetta o ne ha tratto ispirazione

Ultima modifica 19/07/2020: close #50 (a1365d8)