Correções para a v1.0 do vocabulário de Localidades. Originais em RDF-v1.
PS: as correções podem ser realizadas manualmente na planilha de revisão colaborativa.
Itens ausentes, para inserir
3 itens.
ausente
name
idibge
br;para;mojui.campos
Mojuí dos Campos (PA)
1504752
br;santa.catarina;balneario.rincao
Balneário Rincão (SC)
4220000
br;santa.catarina;pescaria.brava
Pescaria Brava (SC)
4212650
Itens para satisfazer padrão IBGE vigente
9 itens, três mudanças de nome e 6 de grafia.
about_errado
about_correto
mudança
br;mato.grosso;poxoreo
br;mato.grosso;poxoreu
grafia
br;minas.gerais;brasopolis
br;minas.gerais;brazopolis
grafia
br;paraiba;campo.santana
br;paraiba;tacima
nome
br;paraiba;santarem
br;paraiba;joca.claudino
nome
br;paraiba;serido
br;paraiba;sao.vicente.serido
grafia
br;para;santa.isabel.para
br;para;santa.izabel.para
grafia
br;pernambuco;iguaraci
br;pernambuco;iguaracy
grafia
br;rio.grande.norte;presidente.juscelino
br;rio.grande.norte;serra.caiada
nome
br;sao.paulo;moji.mirim
br;sao.paulo;mogi.mirim
grafia
Scripts e análise
Revisar src/prepV1_step1.sql conforme scripts abaixo, baseados no schema dataset.
Usando a proposta da issue #1 pode-se obter as VIEWS SQL de ambos datasets, localidade e br_city_codes, e então conferir o join entre eles:
CREATE VIEW dataset.vw_br_state_codes_lex AS
SELECT 'br;'||lexlabel as urn_jur, subdivision FROM dataset.vw_br_state_codes;
CREATE VIEW dataset.vw_br_city_codes_full AS
SELECT c.*, x.urn_jur||';'||c.lexlabel as urn_jur
FROM dataset.vw_br_city_codes c INNER JOIN dataset.vw_br_state_codes_lex x
ON x.subdivision=c.state;
CREATE VIEW dataset.vw_br_city_synonyms_full AS
SELECT c.*, x.urn_jur as state_lexlabel,
x.urn_jur ||';'|| lib.name2lex(synonym) as urn_jur
FROM dataset.vw_br_city_synonyms c INNER JOIN dataset.vw_br_state_codes_lex x
ON x.subdivision=c.state;
CREATE VIEW vwtest_geral_urnlex AS
SELECT 'br' as urn_jur
UNION (SELECT 'br;df')
UNION (SELECT urn_jur FROM dataset.vw_br_state_codes_lex)
UNION (SELECT urn_jur FROM dataset.vw_br_city_codes_full)
UNION (SELECT urn_jur FROM dataset.vw_br_city_synonyms_full)
;
-- --
CREATE or replace FUNCTION dataset.br_city_canonic(text) RETURNS text AS $f$
SELECT COALESCE((
SELECT state_lexlabel||';'||lexlabel
FROM dataset.vw_br_city_synonyms_full
WHERE urn_jur=$1),
$1
);
$f$ LANGUAGE SQL IMMUTABLE;
--- Gera listagem de nomes ausentes da base IBGE e dos sinônimos:
SELECT about, faceta
FROM dataset.vw_localidade
WHERE about NOT IN (SELECT urn_jur FROM vwtest_geral_urnlex)
ORDER BY 1
; -- se tudo ok vai retornar apenas justica, etc. nada de cidades
SELECT urn_jur as ausente, concat(name,' (',state,')') as name, idibge
FROM dataset.vw_br_city_codes_full
WHERE urn_jur NOT IN (
SELECT dataset.br_city_canonic(about) FROM dataset.vw_localidade
)
; -- se tudo ok retorna vazio, senão a lista é de itens a serem inclusos em Localidade.
SELECT about as about_errado, canonic as about_correto
FROM (
SELECT about, dataset.br_city_canonic(about) as canonic FROM dataset.vw_localidade
) t
WHERE canonic!=about;
-- se tudo ok retorna vazio, senão é são itens a serem corrigidos conforme canônico.
Correções para a v1.0 do vocabulário de Localidades. Originais em RDF-v1.
PS: as correções podem ser realizadas manualmente na planilha de revisão colaborativa.
Itens ausentes, para inserir
3 itens.
Itens para satisfazer padrão IBGE vigente
9 itens, três mudanças de nome e 6 de grafia.
Scripts e análise
Revisar src/prepV1_step1.sql conforme scripts abaixo, baseados no schema dataset.
Usando a proposta da issue #1 pode-se obter as VIEWS SQL de ambos datasets, localidade e br_city_codes, e então conferir o join entre eles: