Mejores prácticas: Datos en la Web – #4 Proporcione metadatos con información estructural

Y ha llegado el turno de la cuarta mejor práctica que será recomendada en el documento de Mejores Prácticas para Datos en la Web, que también trata sobre metadatos. Si aún no ha leído las primeras mejores prácticas, las puede encontrar aquí: BP1, BP2, BP3.

BP4: Proporcione metadatos con información estructural

Proporcione metadatos que describan el esquema y la estructura interna de los datasets que va a distribuir.

Proporcionar información sobre la estructura interna de una distribución es esencial para otros que deseen explorar o consultar el conjunto de datos. Proporcionar metadatos con información estructural también ayuda a las personas a comprender el significado de los datos.

Resultado esperado

Los seres humanos serán capaces de interpretar el esquema de un conjunto de datos, así como los software agents serán capaces de procesar automáticamente esta información.

Posible implementación

Pero, ¿qué son los metadatos sobre la estructura?

Los metadatos con información estructural que los humanos pueden leer fácilmente generalmente proporcionan propiedades o nombres de las columnas del esquema del dataset. Por otro lado, los datos con información sobre la estructura que son legibles por máquina pueden proporcionarse en documentos separados o incrustarse dentro del propio documento. La documentación de Tabular Metadata, de JSON-LD, de XML-SCHEMA o de Datacube presenta explicaciones completas y alternativas para su uso en la descripción de la estructura de sus datasets.

Ejemplos de uso de estos metadatos:

Legibles por máquina:

John utilizó el Modelo para datos Tabulares y Metadatos en la Web para la publicación del CSV (dataset) sobre paradas de autobús (stops-2015-05-05.csv). Vea cómo se escribieron los metadatos para las estructuras de los datos en el siguiente ejemplo:


{
	"@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 ver un ejemplo de este mismo tipo de metadatos con datos legibles por humanos, consulte esta página.

Para asegurarse de que está utilizando la 4.ª mejor práctica, verifique siempre que los metadatos del dataset estén en un formato que los humanos puedan interpretar. Compruebe que los metadatos incluyan información sobre la estructura de sus datasets en formatos legibles por máquina y, de preferencia, sin errores de sintaxis. :-)