Blog

Melhores práticas: Dados Na Web – #4 Forneça metadados com informações estruturais

E chegou a vez da quarta melhor prática que vai ser recomendada no documento de Melhores Práticas para Dados na Web, que ainda é sobre metadados.

BP4: Forneça metadados com com informações estruturais

Forneça metadados que descrevam o esquema e a estrutura interna dos datasets que você vai distribuir.

O fornecimento de informações sobre a estrutura interna de uma distribuição é essencial para outros que desejem explorar ou consultar o conjunto de dados. Fornecer metadados com informações estruturais também ajuda as pessoas a compreender o significado dos dados.

Metadados- Medialab Prado – Imagem retirada de https://flic.kr/p/b3bxSv

Metadados- Medialab
Metadados- Medialab Prado – Imagem retirada de https://flic.kr/p/b3bxSv

Resultado esperado:

Humanos serão capazes de interpretar o esquema de um conjunto de dados, bem como os software agents serão capazes de processar automaticamente estas informações.

Possível Implementação

Mas o que são metadados sobre a estrutura?

Metadados com informações estruturais que humans podem ler facilmente geralmente pfornecem propriedades ou nomes das colunas do esquema do dataset. Já dados com informações sobre a estrutura que são legíveis por máquina podem ser fornecidos em documentos separados, ou embedados dentro do próprio documento. A documentação do Tabular Metadata, do JSON-LD, do XML-SCHEMA ou do Datacube apresenta explicações completas e alternativas para uso na descrição da estrutura dos seus datasets.

Exemplos de uso desses metadados:

Legíveis por máquina:

John usou o Modelo para dados Tabulares e Metadados na Web para a publicação do CSV (dataset) sobre paradas de ônibus (stops-2015-05-05.csv). Veja como foram escritos os metadados para as estruturas dos dados no exemplo abaixo:




{
	"@context": ["http://www.w3.org/ns/csvw", {
		"@language": "en"
	}],
	"url": "http://data.mycity.example.com/transport/dataset/bus/stops-2015-05-05.csv",
	"dc:title": "CSV distribution of stops-2015-05-05 dataset",
	"dcat:keyword": ["bus", "stop", "mobility"],
	"dc:publisher": {
		"schema:name": "Transport Agency of MyCity",
		"schema:url": {
			"@id": "http://example.org"
		}
	},
	"dc:license": {
		"@id": "http://opendefinition.org/licenses/cc-by/"
	},
	"dc:modified": {
		"@value": "2015-05-05",
		"@type": "xsd:date"
	},
	"tableSchema": {
		"columns": [{
			"name": "stop_id",
			"titles": "Identifier",
			"dc:description": "An identifier for the bus stop.",
			"datatype": "string",
			"required": true
		}, {
			"name": "stop_name",
			"titles": "Name",
			"dc:description": "The name of the bus stop.",
			"datatype": "string"
		}, {
			"name": "stop_desc",
			"titles": "Description",
			"dc:description": "A description for the bus stop.",
			"datatype": "string"
		}, {
			"name": "stop_lat",
			"titles": ["Latitude"],
			"dc:description": "The latitude of the bus stop.",
			"datatype": "number"
		}, {
			"name": "stop_long",
			"titles": "Longitude",
			"dc:description": "The longitude of the bus stop.",
			"datatype": "number"
		}, {
			"name": "zone_id",
			"titles": "ZONE",
			"dc:description": "An identifier for the zone where the bus stop is located.",
			"datatype": "string"
		}, {
			"name": "stop_url",
			"titles": "URL",
			"dc:description": "URL that identifies the bus stop.",
			"datatype": "string"
		}],
		"primaryKey": "stop_id"
	}
}

Para um exemplo desse mesmo tipo de metadados com dados legíveis por humanos, veja esta página.

Para ter certeza de que está fazendo uso da 4a melhor prática, verifique sempre se os metadados do dataset estão em formato que humanos consigam interpretar. Confira se os metadados incluem informações sobre a estrutura dos seus datasets em formatos que sejam legíveis por máquina e sem erros de sintaxe, de preferência 🙂

Mais uma vez, precisamos do seu feedback!

Se quiser comentar ou melhorar esse post, pode também sugerir mudanças direto no Github, eu ficarei muito feliz em receber pull requests 🙂

Para acessar outros posts da série, acesse o acervo no Blog! Ou, assine os feeds do website!

Lembrando que esse post reproduz parte de uma especificação do W3C traduzida e que por causa disso, está sob a mesma licença para documentos do W3C. O importante é: a reprodução é livre, desde que citada a fonte.