"description":"Data Package is a simple specification for data access and delivery.",
"type":"object",
"required":[
"resources"
],
"properties":{
"profile":{
"default":"data-package",
"propertyOrder":10,
"title":"Profile",
"description":"The profile of this descriptor.",
"context":"Every Package and Resource descriptor has a profile. The default profile, if none is declared, is `data-package` for Package and `data-resource` for Resource.",
"description":"An identifier string. Lower case characters with `.`, `_`, `-` and `/` are allowed.",
"type":"string",
"pattern":"^([-a-z0-9._/])+$",
"context":"This is ideally a url-usable and human-readable name. Name `SHOULD` be invariant, meaning it `SHOULD NOT` change when its parent descriptor is updated.",
"examples":[
"{\n \"name\": \"my-nice-name\"\n}\n"
]
},
"id":{
"propertyOrder":30,
"title":"ID",
"description":"A property reserved for globally unique identifiers. Examples of identifiers that are unique include UUIDs and DOIs.",
"context":"A common usage pattern for Data Packages is as a packaging format within the bounds of a system or platform. In these cases, a unique identifier for a package is desired for common data handling workflows, such as updating an existing package. While at the level of the specification, global uniqueness cannot be validated, consumers using the `id` property `MUST` ensure identifiers are globally unique.",
"context":"Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
"email":{
"title":"Email",
"description":"An email address.",
"type":"string",
"format":"email",
"examples":[
"{\n \"email\": \"example@example.com\"\n}\n"
]
},
"organisation":{
"title":"Organization",
"description":"An organizational affiliation for this contributor.",
"type":"string"
},
"role":{
"type":"string",
"enum":[
"publisher",
"author",
"maintainer",
"wrangler",
"contributor"
],
"default":"contributor"
}
},
"required":[
"title"
],
"context":"Use of this property does not imply that the person was the original creator of, or a contributor to, the data in the descriptor, but refers to the composition of the descriptor itself."
"context":"Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
"title":{
"title":"Title",
"description":"A human-readable title.",
"type":"string",
"examples":[
"{\n \"title\": \"My Package Title\"\n}\n"
]
}
},
"context":"Use of this property does not imply that the person was the original creator of, or a contributor to, the data in the descriptor, but refers to the composition of the descriptor itself."
},
"context":"This property is not legally binding and does not guarantee that the package is licensed under the terms defined herein.",
"description":"An `array` of Data Resource objects, each compliant with the [Data Resource](/data-resource/) specification.",
"type":"array",
"minItems":1,
"items":{
"title":"Data Resource",
"description":"Data Resource.",
"type":"object",
"oneOf":[
{
"required":[
"name",
"data"
]
},
{
"required":[
"name",
"path"
]
}
],
"properties":{
"profile":{
"propertyOrder":10,
"default":"data-resource",
"title":"Profile",
"description":"The profile of this descriptor.",
"context":"Every Package and Resource descriptor has a profile. The default profile, if none is declared, is `data-package` for Package and `data-resource` for Resource.",
"description":"An identifier string. Lower case characters with `.`, `_`, `-` and `/` are allowed.",
"type":"string",
"pattern":"^([-a-z0-9._/])+$",
"context":"This is ideally a url-usable and human-readable name. Name `SHOULD` be invariant, meaning it `SHOULD NOT` change when its parent descriptor is updated.",
"examples":[
"{\n \"name\": \"my-nice-name\"\n}\n"
]
},
"path":{
"propertyOrder":30,
"title":"Path",
"description":"A reference to the data for this resource, as either a path as a string, or an array of paths as strings. of valid URIs.",
"oneOf":[
{
"title":"Path",
"description":"A fully qualified URL, or a POSIX file path..",
"context":"Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
"examples":[
"[ \"file.csv\" ]\n",
"[ \"http://example.com/file.csv\" ]\n"
]
}
],
"context":"The dereferenced value of each referenced data source in `path` `MUST` be commensurate with a native, dereferenced representation of the data the resource describes. For example, in a *Tabular* Data Resource, this means that the dereferenced value of `path` `MUST` be an array.",
"context":"Implementations need to negotiate the type of path provided, and dereference the data accordingly."
},
"title":{
"title":"Title",
"description":"A human-readable title.",
"type":"string",
"examples":[
"{\n \"title\": \"My Package Title\"\n}\n"
]
}
},
"context":"Use of this property does not imply that the person was the original creator of, or a contributor to, the data in the descriptor, but refers to the composition of the descriptor itself."
},
"context":"This property is not legally binding and does not guarantee that the package is licensed under the terms defined herein.",
"description":"The file format of this resource.",
"context":"`csv`, `xls`, `json` are examples of common formats.",
"type":"string",
"examples":[
"{\n \"format\": \"xls\"\n}\n"
]
},
"mediatype":{
"propertyOrder":90,
"title":"Media Type",
"description":"The media type of this resource. Can be any valid media type listed with [IANA](https://www.iana.org/assignments/media-types/media-types.xhtml).",
"type":"string",
"pattern":"^(.+)/(.+)$",
"examples":[
"{\n \"mediatype\": \"text/csv\"\n}\n"
]
},
"encoding":{
"propertyOrder":100,
"title":"Encoding",
"description":"The file encoding of this resource.",
"type":"string",
"default":"utf-8",
"examples":[
"{\n \"encoding\": \"utf-8\"\n}\n"
]
},
"bytes":{
"propertyOrder":110,
"options":{
"hidden":true
},
"title":"Bytes",
"description":"The size of this resource in bytes.",
"type":"integer",
"examples":[
"{\n \"bytes\": 2082\n}\n"
]
},
"hash":{
"propertyOrder":120,
"options":{
"hidden":true
},
"title":"Hash",
"type":"string",
"description":"The MD5 hash of this resource. Indicate other hashing algorithms with the {algorithm}:{hash} format.",