-
Notifications
You must be signed in to change notification settings - Fork 1
/
07-dados-sobre-os-dados-metadados.Rmd
94 lines (76 loc) · 8.74 KB
/
07-dados-sobre-os-dados-metadados.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Dados sobre os dados (metadados) {#metadados}
Uma das partes mais importantes de um conjunto de dados são os metadados. Trata-se dos dados sobre os dados, ou seja, informações sobre como os dados foram gerados, desde os aspectos relacionados à estratégia amostral, até os menores detalhes sobre os métodos analíticos usados. Tais informações são necessárias para maximizar a possibilidade de reuso do conjunto de dados sem que seja necessário entrar em contato com os seus autores ou responsáveis. Isso é ainda mais importante no caso de conjuntos de dados produzidos há décadas e cujos autores já não podem mais ser contactados. No **febr**, os dados sobre os dados são armazenados na tabela *metadado*.
Os metadados são também necessários para a escolha de estratégias para a fusão de diferentes conjuntos de dados. Por exemplo, dois conjuntos de dados que contenham a classificação taxonômica do solo segundo a edição do Sistema Brasileiro de Classificação do Solo publicado em 2013. Ambos terão o campo `taxon_sibcs_2013` em sua respectiva tabela *observacao*. Em um primeiro momento, a fusão dos dois conjuntos de dados parece razoável. Contudo, os metadados de um dos conjuntos de dados traz a informação adicional de que a classificação do solo foi feita no campo, a partir de tradagens. Enquanto isso, para o segundo conjuntos de dados, a informação nos metadados é de que a classificação taxonômica fora realizada a partir de dados analíticos obtidos em laboratório. Como os dois métodos podem gerar resultados diferentes, a fusão dos conjuntos de dados agora passa a ser questionável.
A tabela *metadado* possui estrutura diferente das demais tabelas usadas no **febr**. A primeira delas é que existe um número limitado de colunas, as quais estão organizadas em três grupos que serão vistos a seguir. As linhas ficam reservadas a cada um dos campos das tabelas *observacao* e *camada*. Sendo assim, cada coluna serve para descrever um atributo dos campos dessas duas tabelas. A Tabela \@ref(tab:metadado) dá uma ideia da estrutura da tabela *metadado*.
```{r, echo=FALSE}
tabela <-
rbind(
c("observacao", "observacao_id", "Identificação da observação", "Texto"),
c("observacao", "observacao_data", "Data da observação", "Data"),
c("...", "...", "...", "..."),
c("camada", "observacao_id", "Identificação da observação", "Texto"),
c("camada", "camada_numero", "Número da camada", "Inteiro"),
c("...", "...", "...", "...")
)
nomes <- c("tabela_id", "campo_id", "campo_nome", "campo_unidade")
colnames(tabela) <- nomes
pander(tabela, caption = "(\\#tab:metadado) Representação da estrutura da tabela *metadado*.")
```
## Identificação
A tabela *metadado* possui três campos identificadores (Tabela \@ref(tab:metadado-id)). O primeiro deles, `tabela_id`, identifica a qual tabela, se *observacao* ou *camada*, as informações contidas numa determinada linha se referem. Em seguida, `campo_id` identifica o campo da tabela *observacao* ou *camada*. Por fim, `campo_nome` se refere ao nome do campo da tabela *observacao* ou *camada*.
```{r, echo=FALSE}
tabela <-
rbind(
c("tabela_id", "código de identificação da tabela"),
c("campo_id", "código de identificação do campo"),
c("campo_nome", "nome do campo")
)
colnames(tabela) <- c("**campo**", "**valor**")
pander(tabela, caption = "(\\#tab:metadado-id) Campos identificadores dos metadados.")
```
O significado de ambos `tabela_id` e `campo_id` já foram bastante discutidos nos capítulos anteriores. Já `campo_nome` aparece aqui pela primeira vez. Mas nem por isso ser significado é menos claro. Trata-se de uma identificação textual generalista das informações inseridas nas tabelas *observacao* e *camada*, geralmente útil para usuários de dados ainda não familiarizados com o padrão de nomenclatura dos campos. Por exemplo, o campo `taxon_sibcs_2009`, cujo significado pode parecer obscuro para alguém com pouca experiência no **febr**. Basta visitar a tabela *metadado* para verificar que `campo_nome = Classificação taxonômica`, tornando o seu significado evidente. Ademais, `campo_nome` pode ser usado para geração automatizada de relatórios sobre os conjuntos de dados, por exemplo, para a criação de títulos de tabelas e figuras.
A definição do nome dos campos das tabelas *observacao* e *camada* é de inteira responsabilidade do autor ou responsável pelo conjunto de dados. Contudo, deve-se prezar pelo uso de nomes conhecidos e bem estabelecidos, curtos, objetivos e generalistas. Informações adicionais devem ser inseridos na área destinada à descrição dos campos das tabelas *observacao* e *camada* (Seção \@ref(metadado-desc)).
## Descrição {#metadado-desc}
Os detalhes mais importantes sobre os campos das tabelas *observacao* e *camada* são armazenados na tabela *metadado* usando `campo_descricao`, `campo_unidade`, `campo_tipo` e `metodo_id` (Tabela \@ref(tab:metadado-desc)). O primeiro deles, `campo_descricao`, é o mais importante de todos, onde são armazenados todos os detalhes sobre a obtenção das informações armazenadas nas tabelas *observacao* e *camada*. Por exemplo, enquanto o campo `fe_cloridrico_eaa` na tabela *camada* identifica o conteúdo de ferro no solo determinado por espectrofotometria de absorção atômica no extrato de solução de ácido clorídrico, a tabela *metadado* armazena informações sobre como as amostras do solo foram preparadas, a qualidade dos reagentes utilizados e dos equipamentos empregados, a sequência de passos adotados durante a análise laboratorial, as possíveis adaptações realizadas em relação ao método padrão, e assim por diante. Nesse caso, os identificadores `cloridrico` e `eaa` são responsáveis pela maior porção da variação nos resultados -- quando diferentes métodos são comparados --, enquanto as informações em `campo_descricao` explicam as variações de menor magnitude nos resultados.
```{r, echo=FALSE}
tabela <-
rbind(
c("campo_descricao", "descrição textual do campo"),
c("campo_unidade", "unidade de medida do campo"),
c("campo_tipo", "tipo de dado do campo"),
c("metodo_id", "método analítico")
)
colnames(tabela) <- c("**campo**", "**valor**")
pander(tabela, caption = "(\\#tab:metadado-desc) Campos descritores dos metadados.")
```
Os campos `campo_unidade` e `campo_tipo` destinam-se a informações mais específicas sobre os dados armazenados nas tabelas *observacao* e *camada*. O primeiro deles armazena a unidade de medida, a qual também é armazenada na segunda linha de ambas as tabelas *observacao* e *camada*. No momento, o autor ou responsável pelos dados precisa informar a unidade de medida em ambas as tabelas. Como isso pode ser fonte de erros, se pretende implementar no futuro uma rotina automatizada de preenchimento do campo `campo_unidade` a partir das informações inseridas nas tabelas *observacao* e *camada*. O segundo campo, `campo_tipo`, serve para armazenar a categorização das informações contidas nas *observacao* e *camada*. As categorias possíveis são descritas na Tabela \@ref(tab:metadado-tipo).
```{r, echo=FALSE}
tabela <-
rbind(
c("Inteiro", "números positivos ou negativos sem casas decimais"),
c("Real", "números positivos ou negativos com casas decimais"),
c("Texto", "uma cadeia de caracteres alfanuméricos e especiais"),
c("Booleano", "um valor verdadeiro (1) ou falso (0)"),
c("Data", "datas na representação dd-mm-aaaa ou dd/mm/aaaa"),
c("Moeda", "números com casas decimais representando moeda corrente")
)
colnames(tabela) <- c("**campo**", "**valor**")
pander(tabela, caption = "(\\#tab:metadado-tipo) Tipos de dados.")
```
O quarto e último campo, `metodo_id`, está reservado para a identificação do método analítico usado. No momento, ainda não há um padrão estabelecido no **febr** para essa identificação.
## Laboratório
O último grupo de colunas da tabela *metadado* está destinado à identificação do laboratório responsável pela geração dos dados armazenados nas tabelas *observacao* e *camada* (Tabela \@ref(tab:metadado-lab)). Essas informações são necessárias para que os usuários dos dados possam sanar quaisquer dúvidas sobre a consistência dos dados que por ventura surjam durante a sua utilização.
```{r, echo=FALSE}
tabela <-
rbind(
c("lab_nome", "nome do laboratório"),
c("lab_pais_id", "código de identificação do país"),
c("lab_municipio_id", "município do laboratório"),
c("lab_codigo_postal", "código postal"),
c("lab_rua_nome", "rua do laboratório"),
c("lab_rua_numero", "número do laboratório")
)
colnames(tabela) <- c("**campo**", "**valor**")
cap <- "(\\#tab:metadado-lab) Campos para identificação do laboratório responsável pela geração dos dados."
pander(tabela, caption = cap)
```