Open ppKrauss opened 6 years ago
Implementado com php src/etc/dumpWikidata.php chk
. Resultados:
UPDATE io.citybr set "wdId"='Q22062859' WHERE "idIBGE"='2931400'; -- BA
UPDATE io.citybr set "wdId"='Q13109202' WHERE "idIBGE"='3554300'; -- SP
--- check and send pair to Wikidata
SELECT "wdId" as qid, "idIBGE" || concat(' /* ',name,'/',state,' */') as "P1585"
FROM io.citybr WHERE "idIBGE" IN (
'2900702', '1700400', '5200605', '1500859', '5000708', '3502408', '5201306', '4201208',
'5000906', '5201504', '5201702', '5001243', '5103379', '1600212', '3121001', '3301702',
'2204303', '3137007', '1504109', '3531001', '2407708', '2107100', '4116406', '3149952',
'2109270', '2926707', '3156908', '3157005', '3159803', '3158300', '3162302', '3162708',
'3163300', '2412500', '2412807', '3166709', '1304062', '3552700', '3552908', '3168101',
'3168200', '3553500', '3553658', '3553906', '2931400', '3169000', '3169109', '3169208',
'3554755', '5008305', '3554953', '3555208', '2517001', '3171105', '2616308', '2933307'
);
-- ou COPY (...) to '/tmp/quickStatements01.csv' HEADER CSV;
A segunda consulta resulta em
qid | P1585 |
---|---|
Q818261 | 2900702 / Alagoinhas/BA / |
Q566 | 1700400 / Almas/TO / |
Q443583 | 5200605 / Alto Paraíso de Goiás/GO / |
Q486142 | 1500859 / Anapu/PA / |
... | ... |
Q29551446 | 2616308 / Vicência/PE / |
Q330208 | 2933307 / Vitória da Conquista/BA / |
Q22062859 | 2931400 / Teodoro Sampaio/BA / |
(56 registros)
Basta usar o arquivo gerado com quickStatements01.csv
da Wikidata: QuickStatements (help).
Corrigindo erros da Wikidata com base na Wikipedia:
qid | P1585 | nome | qid_correto |
---|---|---|---|
Q818261 | 2900702 | Alagoinhas/BA | Q22050101 |
Q975677 | 4201208 | Antônio Carlos/SC | Q22063985 |
Q608983 | 5201504 | Aporé/GO | Q22067258 |
Q624997 | 5201702 | Aragarças/GO | Q22067256 |
Foram 4 erros de wdId. Ver discussão em Wikidata:Bot_requests#Import_area_codes_P473_from_CSV_file.
O procedimento correto é corrigi-los primeiro:
UPDATE io.citybr SET "wdId"='Q22050101' WHERE "idIBGE"='2900702'
.psql < src/io_console.sql
. Issue contemplada com a implementação do relatório php src/etc/dumpWikidata.php chk
Ao subir as ~50 correções e conferir páginas Wikidata, fica mais evidente
A única solução, no segundo problema, é clicar e conferir um a um: conceitos abandonados em geral nem sequer possuem rótulos, ou são pobres em lista de links Wikipedia. Outra solução que ajuda a destacar os problemáticos é criando um atributo no nosso dump que list o número de links Wikipedia e destaque o link para a Wikipedia Português, que é a "fonte fiável" de auditoria do conceito.
Acrescentar a verificação de P31 - Q3184121
, "instance of municipality of Brazil". Vai garantir que não ocorra caso extremo como o de atribuição na tabela city-codes de Almas/TO a almas do purgatório ao invés da cidade (ou ainda Cotriguaçu Cooperativa Central/Q30926864 no lugar de Cotriguaçu/MT).
Solução por grep: apesar do código IBGE ser "único" numa página Wikidata, será uma garantia a mais conferir "Q3184121".
Software: hora de transferir o JSON Wikidata para o PostgreSQL!
As rotinas de verificação não podem ficar como mero grep
, precisam analisar consistência de forma mais completa e confiável.
O código IBGE tem se mostrado consistente com as fontes primárias utilizadas, de modo que serve também para conferir se houve falha de atribuição do mesmo na Wikidata.
Com relação à completeza na adoção da P1585 foi confirmada:
cd data/dump_wikidata grep -r "P1585" . | wc -l
resultando em 5514, que em 5570 são ~99%, praticamente completo.