CINXE.COM
Data Package (v1) | Data Package (v1)
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>Data Package (v1) | Data Package (v1)</title> <meta name="generator" content="VuePress 1.8.2"> <script src="https://plausible.io/js/script.js" data-domain="specs.frictionlessdata.io"></script> <meta name="description" content=""> <link rel="preload" href="/assets/css/0.styles.31ed7ec1.css" as="style"><link rel="preload" href="/assets/js/app.9484773b.js" as="script"><link rel="preload" href="/assets/js/2.d6dd5bfd.js" as="script"><link rel="preload" href="/assets/js/5.02f86579.js" as="script"><link rel="preload" href="/assets/js/13.4768598e.js" as="script"><link rel="preload" href="/assets/js/4.51164d1a.js" as="script"><link rel="prefetch" href="/assets/js/10.b5019115.js"><link rel="prefetch" href="/assets/js/11.95cc6fa2.js"><link rel="prefetch" href="/assets/js/12.a5d52534.js"><link rel="prefetch" href="/assets/js/14.0892c777.js"><link rel="prefetch" href="/assets/js/15.2caf1f67.js"><link rel="prefetch" href="/assets/js/16.8c3fc9b4.js"><link rel="prefetch" href="/assets/js/17.4427245e.js"><link rel="prefetch" href="/assets/js/18.503086c6.js"><link rel="prefetch" href="/assets/js/19.91744755.js"><link rel="prefetch" href="/assets/js/20.6842625d.js"><link rel="prefetch" href="/assets/js/21.a2d11985.js"><link rel="prefetch" href="/assets/js/22.42c47b43.js"><link rel="prefetch" href="/assets/js/23.8e9ba058.js"><link rel="prefetch" href="/assets/js/24.4b6eb9c0.js"><link rel="prefetch" href="/assets/js/25.20ef3828.js"><link rel="prefetch" href="/assets/js/26.a1c36d20.js"><link rel="prefetch" href="/assets/js/27.c781ab80.js"><link rel="prefetch" href="/assets/js/28.31c6f2b0.js"><link rel="prefetch" href="/assets/js/29.34267ca0.js"><link rel="prefetch" href="/assets/js/3.edca0309.js"><link rel="prefetch" href="/assets/js/30.1a4a4bbf.js"><link rel="prefetch" href="/assets/js/31.a4d1fd70.js"><link rel="prefetch" href="/assets/js/32.0857a49b.js"><link rel="prefetch" href="/assets/js/6.03bd64c7.js"><link rel="prefetch" href="/assets/js/7.323437e3.js"><link rel="prefetch" href="/assets/js/8.ad8a6967.js"><link rel="prefetch" href="/assets/js/9.d491b2cb.js"> <link rel="stylesheet" href="/assets/css/0.styles.31ed7ec1.css"> </head> <body> <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" aria-current="page" class="home-link router-link-exact-active router-link-active"><img src="/img/logo-light.svg" alt="Data Package (v1)" class="logo"> <span class="site-name can-hide">Data Package (v1)</span></a> <div class="links"><nav class="nav-links can-hide"><div class="nav-item"><a href="/table-schema/" class="nav-link"> Table Schema </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Data Resource" class="dropdown-title"><span class="title">Data Resource</span> <span class="arrow down"></span></button> <button type="button" aria-label="Data Resource" class="mobile-dropdown-title"><span class="title">Data Resource</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-resource/" class="nav-link"> Data Resource </a></li><li class="dropdown-item"><!----> <a href="/tabular-data-resource/" class="nav-link"> Tabular Data Resource </a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Data Package" class="dropdown-title"><span class="title">Data Package</span> <span class="arrow down"></span></button> <button type="button" aria-label="Data Package" class="mobile-dropdown-title"><span class="title">Data Package</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-package/" class="nav-link"> Data Package </a></li><li class="dropdown-item"><!----> <a href="/tabular-data-package/" class="nav-link"> Tabular Data Package </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package/" class="nav-link"> Fiscal Data Package </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package--budgets/" class="nav-link"> Fiscal Data Package - Budgets </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package--spending/" class="nav-link"> Fiscal Data Package - Spending </a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Other Specs" class="dropdown-title"><span class="title">Other Specs</span> <span class="arrow down"></span></button> <button type="button" aria-label="Other Specs" class="mobile-dropdown-title"><span class="title">Other Specs</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-package-identifier/" class="nav-link"> Data Package Identifier </a></li><li class="dropdown-item"><!----> <a href="/tabular-diff/" class="nav-link"> Tabular Diff Format </a></li><li class="dropdown-item"><!----> <a href="/csv-dialect/" class="nav-link"> CSV Dialect </a></li><li class="dropdown-item"><!----> <a href="/security/" class="nav-link"> Security </a></li><li class="dropdown-item"><!----> <a href="/profiles/" class="nav-link"> Profiles </a></li><li class="dropdown-item"><!----> <a href="/views/" class="nav-link"> Views </a></li></ul></div></div><div class="nav-item"><a href="/patterns/" class="nav-link"> Patterns </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Guides" class="dropdown-title"><span class="title">Guides</span> <span class="arrow down"></span></button> <button type="button" aria-label="Guides" class="mobile-dropdown-title"><span class="title">Guides</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/guides/data-package/" class="nav-link"> Data Package </a></li><li class="dropdown-item"><!----> <a href="/guides/implementation/" class="nav-link"> Implementation </a></li></ul></div></div><div class="nav-item"><a href="https://frictionlessdata.io/" target="_blank" rel="noopener noreferrer" class="nav-link external"> Back to the main site <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <div class="search-box md:pl-4"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <a href="https://discordapp.com/invite/Sewv6av" title="Discord" target="blank" class="navbaricon"><img src="/img/discord-icon.svg" class="px-2 w-5 pt-4"></a> <a href="https://twitter.com/frictionlessd8a" title="Twitter" target="blank" class="navbaricon"><img src="/img/twitter-icon.svg" class="px-2 w-5 pt-4"></a> <a href="https://github.com/frictionlessdata/specs" title="GitHub" target="blank" class="navbaricon"><img src="/img/github-icon.svg" class="px-2 w-5 pt-4"></a></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/table-schema/" class="nav-link"> Table Schema </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Data Resource" class="dropdown-title"><span class="title">Data Resource</span> <span class="arrow down"></span></button> <button type="button" aria-label="Data Resource" class="mobile-dropdown-title"><span class="title">Data Resource</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-resource/" class="nav-link"> Data Resource </a></li><li class="dropdown-item"><!----> <a href="/tabular-data-resource/" class="nav-link"> Tabular Data Resource </a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Data Package" class="dropdown-title"><span class="title">Data Package</span> <span class="arrow down"></span></button> <button type="button" aria-label="Data Package" class="mobile-dropdown-title"><span class="title">Data Package</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-package/" class="nav-link"> Data Package </a></li><li class="dropdown-item"><!----> <a href="/tabular-data-package/" class="nav-link"> Tabular Data Package </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package/" class="nav-link"> Fiscal Data Package </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package--budgets/" class="nav-link"> Fiscal Data Package - Budgets </a></li><li class="dropdown-item"><!----> <a href="/fiscal-data-package--spending/" class="nav-link"> Fiscal Data Package - Spending </a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Other Specs" class="dropdown-title"><span class="title">Other Specs</span> <span class="arrow down"></span></button> <button type="button" aria-label="Other Specs" class="mobile-dropdown-title"><span class="title">Other Specs</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/data-package-identifier/" class="nav-link"> Data Package Identifier </a></li><li class="dropdown-item"><!----> <a href="/tabular-diff/" class="nav-link"> Tabular Diff Format </a></li><li class="dropdown-item"><!----> <a href="/csv-dialect/" class="nav-link"> CSV Dialect </a></li><li class="dropdown-item"><!----> <a href="/security/" class="nav-link"> Security </a></li><li class="dropdown-item"><!----> <a href="/profiles/" class="nav-link"> Profiles </a></li><li class="dropdown-item"><!----> <a href="/views/" class="nav-link"> Views </a></li></ul></div></div><div class="nav-item"><a href="/patterns/" class="nav-link"> Patterns </a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Guides" class="dropdown-title"><span class="title">Guides</span> <span class="arrow down"></span></button> <button type="button" aria-label="Guides" class="mobile-dropdown-title"><span class="title">Guides</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/guides/data-package/" class="nav-link"> Data Package </a></li><li class="dropdown-item"><!----> <a href="/guides/implementation/" class="nav-link"> Implementation </a></li></ul></div></div><div class="nav-item"><a href="https://frictionlessdata.io/" target="_blank" rel="noopener noreferrer" class="nav-link external"> Back to the main site <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Data Package (v1)</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/#what-s-a-data-package" class="sidebar-link">What's a Data Package?</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/#data-package-specs-suite" class="sidebar-link">Data Package Specs Suite</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/#design-philosophy" class="sidebar-link">Design Philosophy</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/#simplicity" class="sidebar-link">Simplicity</a></li><li class="sidebar-sub-header"><a href="/#extensibility" class="sidebar-link">Extensibility</a></li><li class="sidebar-sub-header"><a href="/#human-editable-and-machine-usable" class="sidebar-link">Human-editable and machine-usable</a></li><li class="sidebar-sub-header"><a href="/#reuse" class="sidebar-link">Reuse</a></li><li class="sidebar-sub-header"><a href="/#cross-technology" class="sidebar-link">Cross technology</a></li></ul></li><li><a href="/#contribute" class="sidebar-link">Contribute</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/#for-editors" class="sidebar-link">For Editors</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/#quick-start" class="sidebar-link">Quick start</a></li><li class="sidebar-sub-header"><a href="/#contribute-to-the-specifications" class="sidebar-link">Contribute to the specifications</a></li><li class="sidebar-sub-header"><a href="/#adding-a-new-specification" class="sidebar-link">Adding a new specification</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="data-package-v1"><a href="#data-package-v1" class="header-anchor">#</a> Data Package (v1)</h1> <blockquote><p><a href="https://datapackage.org/" target="_blank" rel="noopener noreferrer">Data Package (v2)<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> is being under active development. Please read the <a href="https://frictionlessdata.io/blog/2023/11/15/frictionless-specs-update/" target="_blank" rel="noopener noreferrer">announcement<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></blockquote> <h2 id="what-s-a-data-package"><a href="#what-s-a-data-package" class="header-anchor">#</a> What’s a Data Package?</h2> <p>A Data Package is a simple container format used to describe and package a collection of data (a dataset).</p> <p>A Data Package can contain any kind of data. At the same time, Data Packages can be specialized and enriched for specific types of data so there are, for example, Tabular Data Packages for tabular data, Geo Data Packages for geo data etc.</p> <h2 id="data-package-specs-suite"><a href="#data-package-specs-suite" class="header-anchor">#</a> Data Package Specs Suite</h2> <p>When you look more closely you’ll see that Data Package is actually a <em>suite</em> of specifications. This suite is made of small specs, many of them usuable on their own, that you can also combine together.</p> <p>This approach also reflects our philosophy of “small pieces, loosely joined” as well as “make the simple things simple and complex things possible”: it easy to just use the piece you need as well to scale up to more complex needs.</p> <p>For example, for tabular data we can create a Tabular Data Package spec by combining three other specs together: the Data Package spec for the dataset, the Table Schema spec to describe the table structure, and finally CSV or JSON for the data itself.</p> <p>We also broke down the Data Package spec into Data Package itself and Data Resource. The Data Resource spec just describes an individual data files and a Data Package is a collection of one or more Data Resources with additional dataset-level metadata.</p> <p><strong>Example: Data Resource spec + Table Schema spec becomes a Tabular Data Resource spec</strong></p> <div class="language-mermaid extra-class"><pre class="language-text"><code> graph TD dr[Data Resource] --add table schema--> tdr[Tabular Data Resource] </code></pre></div><p><strong>Example: How a Tabular Data Package is composed out of other specs</strong></p> <div class="language-mermaid extra-class"><pre class="language-text"><code>graph TD dr[Data Resource] --> tdr tdr[Tabular Data Resource] --> tdp[Tabular Data Package] dp[Data Package] --> tdp jts[Table Schema] --> tdr csvddf[CSV Data Descriptor] -.optional.-> tdr style tdp fill:#f9f,stroke:#333,stroke-width:4px; </code></pre></div><h2 id="design-philosophy"><a href="#design-philosophy" class="header-anchor">#</a> Design Philosophy</h2> <h3 id="simplicity"><a href="#simplicity" class="header-anchor">#</a> Simplicity</h3> <p>Seek zen-like simplicity in which there is nothing to add and nothing to take away.</p> <h3 id="extensibility"><a href="#extensibility" class="header-anchor">#</a> Extensibility</h3> <p>Design for extensibility and customisation. This makes hard things possible and permits future evolution – nothing we build will be perfect.</p> <h3 id="human-editable-and-machine-usable"><a href="#human-editable-and-machine-usable" class="header-anchor">#</a> Human-editable and machine-usable</h3> <p>Specs should preserve human readability and editability whilst making machine-use easy.</p> <h3 id="reuse"><a href="#reuse" class="header-anchor">#</a> Reuse</h3> <p>Reuse and build on existing standards and formats.</p> <h3 id="cross-technology"><a href="#cross-technology" class="header-anchor">#</a> Cross technology</h3> <p>Support a broad range of languages, technologies and infrastructures – avoid being tied to any one specific system.</p> <h2 id="contribute"><a href="#contribute" class="header-anchor">#</a> Contribute</h2> <p>Contributions, comments and corrections are warmly welcomed. Most work proceeds in an RFC-style manner with discussion in the <a href="https://github.com/frictionlessdata/specs/issues" target="_blank" rel="noopener noreferrer">issue tracker<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</p> <p>Material is kept in a <a href="https://github.com/frictionlessdata/specs" target="_blank" rel="noopener noreferrer">git repo on GitHub<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> - fork and submit a pull request to add material. There is also an <a href="https://github.com/frictionlessdata/specs/issues" target="_blank" rel="noopener noreferrer">issue tracker<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> which can be used for specific issues or suggestions.</p> <h2 id="for-editors"><a href="#for-editors" class="header-anchor">#</a> For Editors</h2> <p>This repository is the canonical repository for the core Frictionless Data specifications. The repository features:</p> <ul><li><a href="http://json-schema.org" target="_blank" rel="noopener noreferrer">JSON Schema<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> representations of all specifications. These are used both in the site itself, to generate the specification pages, and likewise in the <em>schema registry</em> that is used by a range of libraries that implement the specifications.</li></ul> <h3 id="quick-start"><a href="#quick-start" class="header-anchor">#</a> Quick start</h3> <ul><li>Clone the repository</li> <li><code>npm install</code> # install the dependencies to build the specifications</li> <li><code>npm run build</code> # build the specifications</li> <li><code>npm run test</code> # test the specifications</li> <li><code>npm start</code> # start the local server</li></ul> <h3 id="contribute-to-the-specifications"><a href="#contribute-to-the-specifications" class="header-anchor">#</a> Contribute to the specifications</h3> <p>All the source data for the specifications is in the <code>/schemas</code> directory. In there, you will find a <code>.json</code> file for each specification and a set of YAML files under <code>/schemas/dictionary/*</code>. There is a <code>build.js</code> script to build the specifications.</p> <ul><li><code>.json</code> files are JSON Schemas for each spec, normalised using the <code>$ref</code> feature of JSON Schema. This normalisation ensures consistency in the way the specifications are written and validated, but is only used directly by the <code>build.js</code> script, which generated denormalised versions.</li> <li><code>/build.js</code> creates denormalised versions of each specification be dereferencing each <code>$ref</code> in the source schemas, and then saves these denormalised versions to <code>/build/schemas</code> directory.</li> <li><code>/schemas/dictionary/*</code> has all the property definitions for each specification. This is the place to add new properties or property collections, to edit contextual information and descriptive examples, and so on. See how this information is rendered in the <a href="https://github.com/frictionlessdata/specs/blob/master/templates/macros.html" target="_blank" rel="noopener noreferrer">macros template<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</li></ul> <h3 id="adding-a-new-specification"><a href="#adding-a-new-specification" class="header-anchor">#</a> Adding a new specification</h3> <p>Yes we welcome and encourage additions to the registry! Any spec that is added must meet the following criteria:</p> <ul><li>Be related to the Data Packages family of specifications.</li> <li>Have a publicly-accessible web page describing the specification.</li> <li>Have a JSON Schema file that describes the specification.</li></ul> <p>See the existing entries in the registry, and then take the following steps to add a new entry:</p> <ol><li>Make a new pull request called <code>registry/{NAME_OF_SPECIFICATION}</code></li> <li>The pull request features a JSON Schema file for the new specification, and adds the spec to <code>registry.csv</code></li> <li>Write a brief description of the spec as part of the pull request.</li></ol> <div></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/frictionlessdata/specs/edit/master/README.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/29/2024, 1:06:15 PM</span></div></footer> <!----> </main></div><div class="global-ui"><!----></div></div> <script src="/assets/js/app.9484773b.js" defer></script><script src="/assets/js/2.d6dd5bfd.js" defer></script><script src="/assets/js/5.02f86579.js" defer></script><script src="/assets/js/13.4768598e.js" defer></script><script src="/assets/js/4.51164d1a.js" defer></script> </body> </html>