<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang=""> <head> <meta charset="utf-8" /> <meta name="generator" content="pandoc" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> <title>RO-Crate Metadata Specification 1.1</title> <style> html { line-height: 1.7; font-family: Georgia, serif; font-size: 20px; color: #1a1a1a; background-color: #fdfdfd; } body { margin: 0 auto; max-width: 40em; padding-left: 50px; padding-right: 50px; padding-top: 50px; padding-bottom: 50px; hyphens: auto; word-wrap: break-word; text-rendering: optimizeLegibility; font-kerning: normal; } @media (max-width: 600px) { body { font-size: 0.9em; padding: 1em; } } @media print { body { background-color: transparent; color: black; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3, h4 { page-break-after: avoid; } } p { margin-top: 1.7em; } a { color: #1a1a1a; } a:visited { color: #1a1a1a; } img { max-width: 100%; } h1, h2, h3, h4, h5, h6 { margin-top: 1.7em; } ol, ul { padding-left: 1.7em; margin-top: 1.7em; } li > ol, li > ul { margin-top: 0; } blockquote { margin: 1.7em 0 1.7em 1.7em; padding-left: 1em; border-left: 2px solid #e6e6e6; font-style: italic; } code { font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace; background-color: #f0f0f0; font-size: 85%; margin: 0; padding: .2em .4em; } pre { line-height: 1.5em; padding: 1em; background-color: #f0f0f0; overflow: auto; } pre code { padding: 0; overflow: visible; } hr { background-color: #1a1a1a; border: none; height: 1px; margin-top: 1.7em; } table { border-collapse: collapse; width: 100%; overflow-x: auto; display: block; } th, td { border-bottom: 1px solid lightgray; padding: 1em 3em 1em 0; } header { margin-bottom: 6em; text-align: center; } nav a:not(:hover) { text-decoration: none; } code{white-space: pre-wrap;} span.smallcaps{font-variant: small-caps;} span.underline{text-decoration: underline;} div.column{display: inline-block; vertical-align: top; width: 50%;} div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} ul.task-list{list-style: none;} pre > code.sourceCode { white-space: pre; position: relative; } pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } pre > code.sourceCode > span:empty { height: 1.2em; } code.sourceCode > span { color: inherit; text-decoration: inherit; } div.sourceCode { margin: 1em 0; } pre.sourceCode { margin: 0; } @media screen { div.sourceCode { overflow: auto; } } @media print { pre > code.sourceCode { white-space: pre-wrap; } pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } pre.numberSource code > span { position: relative; left: -4em; counter-increment: source-line; } pre.numberSource code > span > a:first-child::before { content: counter(source-line); position: relative; left: -1em; text-align: right; vertical-align: baseline; border: none; display: inline-block; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; padding: 0 4px; width: 4em; color: #aaaaaa; } pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } div.sourceCode { } @media screen { pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } } code span.al { color: #ff0000; font-weight: bold; } /* Alert */ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code span.at { color: #7d9029; } /* Attribute */ code span.bn { color: #40a070; } /* BaseN */ code span.bu { } /* BuiltIn */ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code span.ch { color: #4070a0; } /* Char */ code span.cn { color: #880000; } /* Constant */ code span.co { color: #60a0b0; font-style: italic; } /* Comment */ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code span.do { color: #ba2121; font-style: italic; } /* Documentation */ code span.dt { color: #902000; } /* DataType */ code span.dv { color: #40a070; } /* DecVal */ code span.er { color: #ff0000; font-weight: bold; } /* Error */ code span.ex { } /* Extension */ code span.fl { color: #40a070; } /* Float */ code span.fu { color: #06287e; } /* Function */ code span.im { } /* Import */ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ code span.kw { color: #007020; font-weight: bold; } /* Keyword */ code span.op { color: #666666; } /* Operator */ code span.ot { color: #007020; } /* Other */ code span.pp { color: #bc7a00; } /* Preprocessor */ code span.sc { color: #4070a0; } /* SpecialChar */ code span.ss { color: #bb6688; } /* SpecialString */ code span.st { color: #4070a0; } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ .display.math{display: block; text-align: center; margin: 0.5rem auto;} </style> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> <![endif]--> </head> <body> <nav id="TOC" role="doc-toc"> <ul> <li><a href="#ro-crate-metadata-specification-11"><span class="toc-section-number">1</span> RO-Crate Metadata Specification 1.1</a></li> <li><a href="#introduction"><span class="toc-section-number">2</span> Introduction</a></li> <li><a href="#terminology"><span class="toc-section-number">3</span> Terminology</a> <ul> <li><a href="#linked-data-conventions"><span class="toc-section-number">3.1</span> Linked Data conventions</a></li> </ul></li> <li><a href="#ro-crate-structure"><span class="toc-section-number">4</span> RO-Crate Structure</a> <ul> <li><a href="#ro-crate-metadata-file-ro-crate-metadatajson"><span class="toc-section-number">4.1</span> RO-Crate Metadata File (<code>ro-crate-metadata.json</code>)</a></li> <li><a href="#ro-crate-website-ro-crate-previewhtml-and-ro-crate-preview_files"><span class="toc-section-number">4.2</span> RO-Crate Website (<code>ro-crate-preview.html</code> and <code>ro-crate-preview_files/</code>)</a></li> <li><a href="#payload-files-and-directories"><span class="toc-section-number">4.3</span> Payload files and directories</a></li> <li><a href="#self-describing-and-self-contained"><span class="toc-section-number">4.4</span> Self-describing and self-contained</a></li> </ul></li> <li><a href="#ro-crate-metadata"><span class="toc-section-number">5</span> RO-Crate Metadata</a> <ul> <li><a href="#ro-crate-uses-linked-data-principles"><span class="toc-section-number">5.1</span> RO-Crate uses Linked Data principles</a></li> <li><a href="#base-metadata-standard-schemaorg"><span class="toc-section-number">5.2</span> Base metadata standard: Schema.org</a> <ul> <li><a href="#differences-from-schemaorg"><span class="toc-section-number">5.2.1</span> Differences from Schema.org</a></li> </ul></li> <li><a href="#additional-metadata-standards"><span class="toc-section-number">5.3</span> Additional metadata standards</a></li> <li><a href="#summary-of-coverage"><span class="toc-section-number">5.4</span> Summary of Coverage</a></li> <li><a href="#future-coverage"><span class="toc-section-number">5.5</span> Future coverage</a></li> <li><a href="#recommended-identifiers"><span class="toc-section-number">5.6</span> Recommended Identifiers</a></li> </ul></li> <li><a href="#root-data-entity"><span class="toc-section-number">6</span> Root Data Entity</a> <ul> <li><a href="#ro-crate-metadata-file-descriptor"><span class="toc-section-number">6.1</span> RO-Crate Metadata File Descriptor</a> <ul> <li><a href="#finding-the-root-data-entity"><span class="toc-section-number">6.1.1</span> Finding the Root Data Entity</a></li> <li><a href="#purpose-of-metadata-file"><span class="toc-section-number">6.1.2</span> Purpose of Metadata File</a></li> </ul></li> <li><a href="#direct-properties-of-the-root-data-entity"><span class="toc-section-number">6.2</span> Direct properties of the Root Data Entity</a></li> <li><a href="#minimal-example-of-ro-crate"><span class="toc-section-number">6.3</span> Minimal example of RO-Crate</a></li> </ul></li> <li><a href="#data-entities"><span class="toc-section-number">7</span> Data Entities</a> <ul> <li><a href="#referencing-files-and-folders-from-the-root-data-entity"><span class="toc-section-number">7.1</span> Referencing files and folders from the Root Data Entity</a> <ul> <li><a href="#example-linking-to-a-file-and-folders"><span class="toc-section-number">7.1.1</span> Example linking to a file and folders</a></li> <li><a href="#adding-detailed-descriptions-of-encodings"><span class="toc-section-number">7.1.2</span> Adding detailed descriptions of encodings</a></li> </ul></li> <li><a href="#core-metadata-for-data-entities"><span class="toc-section-number">7.2</span> Core Metadata for Data Entities</a> <ul> <li><a href="#encoding-file-paths"><span class="toc-section-number">7.2.1</span> Encoding file paths</a></li> <li><a href="#file-data-entity"><span class="toc-section-number">7.2.2</span> File Data Entity</a></li> <li><a href="#directory-file-entity"><span class="toc-section-number">7.2.3</span> Directory File Entity</a></li> </ul></li> <li><a href="#web-based-data-entities"><span class="toc-section-number">7.3</span> Web-based Data Entities</a> <ul> <li><a href="#embedded-data-entities-that-are-also-on-the-web"><span class="toc-section-number">7.3.1</span> Embedded data entities that are also on the web</a></li> <li><a href="#directories-on-the-web-dataset-distributions"><span class="toc-section-number">7.3.2</span> Directories on the web; dataset distributions</a></li> </ul></li> </ul></li> <li><a href="#representing-contextual-entities"><span class="toc-section-number">8</span> Representing Contextual Entities</a> <ul> <li><a href="#contextual-vs-data-entities"><span class="toc-section-number">8.1</span> Contextual vs Data entities</a></li> <li><a href="#identifiers-for-contextual-entities"><span class="toc-section-number">8.2</span> Identifiers for contextual entities</a></li> <li><a href="#people"><span class="toc-section-number">8.3</span> People</a></li> <li><a href="#organizations-as-values"><span class="toc-section-number">8.4</span> Organizations as values</a></li> <li><a href="#contact-information"><span class="toc-section-number">8.5</span> Contact information</a></li> <li><a href="#publications-via-citation-property"><span class="toc-section-number">8.6</span> Publications via citation property</a></li> <li><a href="#publisher"><span class="toc-section-number">8.7</span> Publisher</a></li> <li><a href="#funding-and-grants"><span class="toc-section-number">8.8</span> Funding and grants</a></li> <li><a href="#licensing-access-control-and-copyright"><span class="toc-section-number">8.9</span> Licensing, Access control and copyright</a> <ul> <li><a href="#metadata-license"><span class="toc-section-number">8.9.1</span> Metadata license</a></li> </ul></li> <li><a href="#places"><span class="toc-section-number">8.10</span> Places</a></li> <li><a href="#subjects--keywords"><span class="toc-section-number">8.11</span> Subjects & keywords</a></li> <li><a href="#time"><span class="toc-section-number">8.12</span> Time</a></li> <li><a href="#thumbnails"><span class="toc-section-number">8.13</span> Thumbnails</a></li> </ul></li> <li><a href="#detailing-provenance-of-entities"><span class="toc-section-number">9</span> Detailing provenance of entities</a> <ul> <li><a href="#equipment-used-to-create-files"><span class="toc-section-number">9.1</span> Equipment used to create files</a></li> <li><a href="#software-used-to-create-files"><span class="toc-section-number">9.2</span> Software used to create files</a></li> <li><a href="#recording-changes-to-ro-crates"><span class="toc-section-number">9.3</span> Recording changes to RO-Crates</a></li> <li><a href="#digital-library-and-repository-content"><span class="toc-section-number">9.4</span> Digital Library and Repository content</a></li> </ul></li> <li><a href="#workflows-and-scripts"><span class="toc-section-number">10</span> Workflows and Scripts</a> <ul> <li><a href="#describing-scripts-and-workflows"><span class="toc-section-number">10.1</span> Describing scripts and workflows</a></li> <li><a href="#workflow-runtime-and-programming-language"><span class="toc-section-number">10.2</span> Workflow Runtime and Programming Language</a></li> <li><a href="#workflow-diagramsketch"><span class="toc-section-number">10.3</span> Workflow diagram/sketch</a></li> <li><a href="#complying-with-bioschemas-computational-workflow-profile"><span class="toc-section-number">10.4</span> Complying with Bioschemas Computational Workflow profile</a> <ul> <li><a href="#describing-inputs-and-outputs"><span class="toc-section-number">10.4.1</span> Describing inputs and outputs</a></li> </ul></li> <li><a href="#complete-workflow-example"><span class="toc-section-number">10.5</span> Complete Workflow Example</a></li> <li><a href="#appendixes"><span class="toc-section-number">10.6</span> Appendixes</a></li> </ul></li> <li><a href="#appendix-changelog"><span class="toc-section-number">11</span> APPENDIX: Changelog</a></li> <li><a href="#appendix-implementation-notes"><span class="toc-section-number">12</span> APPENDIX: Implementation notes</a> <ul> <li><a href="#programming-with-json-ld"><span class="toc-section-number">12.1</span> Programming with JSON-LD</a></li> <li><a href="#combining-with-other-packaging-schemes"><span class="toc-section-number">12.2</span> Combining with other packaging schemes</a> <ul> <li><a href="#adding-ro-crate-to-bagit"><span class="toc-section-number">12.2.1</span> Adding RO-Crate to Bagit</a></li> <li><a href="#example-of-wrapping-a-bagit-bag-in-an-ro-crate"><span class="toc-section-number">12.2.2</span> Example of wrapping a BagIt bag in an RO-Crate</a></li> </ul></li> <li><a href="#repository-specific-identifiers"><span class="toc-section-number">12.3</span> Repository-specific identifiers</a></li> </ul></li> <li><a href="#appendix-ro-crate-json-ld"><span class="toc-section-number">13</span> APPENDIX: RO-Crate JSON-LD</a> <ul> <li><a href="#describing-entities-in-json-ld"><span class="toc-section-number">13.1</span> Describing entities in JSON-LD</a></li> <li><a href="#ro-crate-json-ld-context"><span class="toc-section-number">13.2</span> RO-Crate JSON-LD Context</a></li> <li><a href="#ro-crate-json-ld-media-type"><span class="toc-section-number">13.3</span> RO-Crate JSON-LD Media type</a></li> <li><a href="#extending-ro-crate"><span class="toc-section-number">13.4</span> Extending RO-Crate</a></li> <li><a href="#adding-new-or-ad-hoc-vocabulary-terms"><span class="toc-section-number">13.5</span> Adding new or ad hoc vocabulary terms</a> <ul> <li><a href="#choosing-urls-for-ad-hoc-terms"><span class="toc-section-number">13.5.1</span> Choosing URLs for ad hoc terms</a></li> <li><a href="#add-local-definitions-of-ad-hoc-terms"><span class="toc-section-number">13.5.2</span> Add local definitions of ad hoc terms</a></li> </ul></li> </ul></li> <li><a href="#appendix-handling-relative-uri-references"><span class="toc-section-number">14</span> APPENDIX: Handling relative URI references</a> <ul> <li><a href="#flattening-json-ld-from-nested-json"><span class="toc-section-number">14.1</span> Flattening JSON-LD from nested JSON</a></li> <li><a href="#expandingparsing-json-ld-keeping-relative-referencing"><span class="toc-section-number">14.2</span> Expanding/parsing JSON-LD keeping relative referencing</a></li> <li><a href="#establishing-absolute-uri-for-ro-crate-root"><span class="toc-section-number">14.3</span> Establishing absolute URI for RO-Crate Root</a></li> <li><a href="#finding-ro-crate-root-in-rdf-triple-stores"><span class="toc-section-number">14.4</span> Finding RO-Crate Root in RDF triple stores</a></li> <li><a href="#parsing-as-rdf-with-a-different-ro-crate-root"><span class="toc-section-number">14.5</span> Parsing as RDF with a different RO-Crate Root</a></li> <li><a href="#establishing-a-base-uri-inside-a-zip-file"><span class="toc-section-number">14.6</span> Establishing a base URI inside a ZIP file</a></li> <li><a href="#relativizing-absolute-uris-within-ro-crate-root"><span class="toc-section-number">14.7</span> Relativizing absolute URIs within RO-Crate Root</a></li> </ul></li> <li><a href="#references"><span class="toc-section-number">15</span> References</a></li> </ul> </nav> <section id="ro-crate-metadata-specification-11" class="level1" data-number="1"> <h1 data-number="1"><span class="header-section-number">1</span> RO-Crate Metadata Specification 1.1</h1> <ul> <li>Permalink: <a href="https://w3id.org/ro/crate/1.1" class="uri">https://w3id.org/ro/crate/1.1</a></li> <li>Published: 2020-10-30</li> <li>Publisher: <a href="https://www.researchobject.org/">researchobject.org</a> community</li> <li>Status: Recommendation</li> <li>JSON-LD context: <a href="https://w3id.org/ro/crate/1.1/context" class="uri">https://w3id.org/ro/crate/1.1/context</a></li> <li>This version: <a href="https://w3id.org/ro/crate/1.1" class="uri">https://w3id.org/ro/crate/1.1</a></li> <li>Alternate formats: <a href="https://www.researchobject.org/ro-crate/1.1/">Web pages</a>, <a href="https://github.com/ResearchObject/ro-crate/releases/download/1.1.0/ro-crate-1.1.0.html">single-page HTML</a>, <a href="https://github.com/ResearchObject/ro-crate/releases/download/1.1.0/ro-crate-1.1.0.html">PDF</a>, <a href="ro-crate-metadata.json">RO-Crate JSON-LD</a>, <a href="ro-crate-preview.html">RO-Crate HTML</a></li> <li>Previous version: <a href="https://w3id.org/ro/crate/1.0" class="uri">https://w3id.org/ro/crate/1.0</a></li> <li>Cite as: <a href="https://doi.org/10.5281/zenodo.4031327" class="uri">https://doi.org/10.5281/zenodo.4031327</a> (this version) <a href="https://doi.org/10.5281/zenodo.3406497" class="uri">https://doi.org/10.5281/zenodo.3406497</a> (any version)</li> <li>Editors: <a href="https://orcid.org/0000-0002-3545-944X">Peter Sefton</a>, <a href="https://orcid.org/0000-0001-8131-2150">Eoghan Ó Carragáin</a>, <a href="https://orcid.org/0000-0001-9842-9718">Stian Soiland-Reyes</a></li> <li>Authors: <a href="https://orcid.org/0000-0002-3545-944X">Peter Sefton</a>, <a href="https://orcid.org/0000-0001-8131-2150">Eoghan Ó Carragáin</a>, <a href="https://orcid.org/0000-0001-9842-9718">Stian Soiland-Reyes</a>, <a href="https://orcid.org/0000-0002-9260-0753">Oscar Corcho</a>, <a href="https://orcid.org/0000-0003-0454-7145">Daniel Garijo</a>, <a href="https://orcid.org/0000-0003-4289-4922">Raul Palma</a>, <a href="https://orcid.org/0000-0001-6565-5145">Frederik Coppens</a>, <a href="https://orcid.org/0000-0003-1219-2137">Carole Goble</a>, <a href="https://orcid.org/0000-0002-4806-5140">José María Fernández</a>, <a href="https://orcid.org/0000-0002-7370-4805">Kyle Chard</a>, <a href="https://orcid.org/0000-0002-5491-6431">Jose Manuel Gomez-Perez</a>, <a href="https://orcid.org/0000-0002-2961-9670">Michael R Crusoe</a>, <a href="https://orcid.org/0000-0002-6190-122X">Ignacio Eguinoa</a>, <a href="https://orcid.org/0000-0002-2036-8350">Nick Juty</a>, <a href="https://orcid.org/0000-0001-8420-5254">Kristi Holmes</a>, <a href="https://orcid.org/0000-0002-3588-6257">Jason A. Clark</a>, <a href="https://orcid.org/0000-0002-0309-604X">Salvador Capella-Gutierrez</a>, <a href="https://orcid.org/0000-0002-5711-4872">Alasdair J. G. Gray</a>, <a href="https://orcid.org/0000-0003-2130-0865">Stuart Owen</a>, <a href="https://orcid.org/0000-0003-3156-2105">Alan R Williams</a>, <a href="https://orcid.org/0000-0003-1130-2154">Giacomo Tartari</a>, <a href="https://orcid.org/0000-0002-0048-3300">Finn Bacall</a>, <a href="https://orcid.org/0000-0002-1756-2128">Thomas Thelen</a>, <a href="https://orcid.org/0000-0002-7552-1009">Hervé Ménager</a>, <a href="https://orcid.org/0000-0003-4929-1219">Laura Rodríguez Navas</a>, <a href="https://orcid.org/0000-0003-1541-5631">Paul Walk</a>, <a href="https://orcid.org/0000-0002-0337-8610">brandon whitehead</a>, <a href="https://orcid.org/0000-0001-6960-357X">Mark Wilkinson</a>, <a href="https://orcid.org/0000-0003-0183-6910">Paul Groth</a>, <a href="https://orcid.org/0000-0003-0223-1059">Erich Bremer</a>, <a href="https://orcid.org/0000-0003-3986-0510">LJ Garcia Castro</a>, <a href="https://orcid.org/0000-0001-6022-9825">Karl Sebby</a>, <a href="https://orcid.org/0000-0002-3468-0652">Alexander Kanitz</a>, <a href="https://orcid.org/0000-0003-1991-0533">Ana Trisovic</a>, <a href="https://orcid.org/0000-0003-3910-0474">Gavin Kennedy</a>, <a href="https://orcid.org/0000-0003-3486-8193">Mark Graves</a>, <a href="https://orcid.org/0000-0001-8172-8981">Jasper Koehorst</a>, <a href="https://orcid.org/0000-0001-8271-5429">Simone Leo</a></li> </ul> <!-- Add new RO-Crate team members at end --> <p>See <a href="https://w3id.org/ro/crate" class="uri">https://w3id.org/ro/crate</a> for further details about RO-Crate.</p> <p><small> This specification is Copyright 2017-2020 University of Technology Sydney, The University of Manchester UK and the RO-Crate contributors. </small></p> <p><small> Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at </small></p> <p><small> <a href="http://www.apache.org/licenses/LICENSE-2.0" class="uri">http://www.apache.org/licenses/LICENSE-2.0</a> </small></p> <p><small> Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </small></p> <p><strong>Note</strong>: The RO-Crate <a href="https://w3id.org/ro/crate/1.1/context">JSON-LD context</a> and JSON-LD examples within this specification are distributed under <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication</a>.</p> <blockquote> <p>The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in <a href="https://tools.ietf.org/html/rfc2119">RFC 2119</a>.</p> </blockquote> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> <section id="introduction" class="level1" data-number="2"> <h1 data-number="2"><span class="header-section-number">2</span> Introduction</h1> <p>This document specifies a method, known as <em>RO-Crate</em> (Research Object Crate), of organizing file-based data with associated metadata, using <a href="https://en.wikipedia.org/wiki/Linked_data">linked data</a> principles, in both human and machine readable formats, with the ability to include additional domain-specific metadata.</p> <p>The core of RO-Crate is a JSON-LD file, the <em>RO-Crate Metadata File</em>, named <code>ro-crate-metadata.json</code>. This file contains structured metadata about the dataset as a whole (the <em>Root Data Entity</em>) and, optionally, about some or all of its files. This provides a simple way to, for example, assert the authors (e.g. people, organizations) of the RO-Crate or one its files, or to capture more complex provenance for files, such as how they were created using software and equipment.</p> <p>While providing the formal specification for RO-Crate, this document also aims to be a practical guide for software authors to create tools for generating and consuming research data packages, with explanation by examples.</p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> <section id="terminology" class="level1" data-number="3"> <h1 data-number="3"><span class="header-section-number">3</span> Terminology</h1> <p><em>RO-Crate</em>: A directory structure that contains a dataset, which is described in an <em>RO-Crate Metadata File</em>.</p> <p><em>RO-Crate Root</em>: The top-level directory of the <em>RO-Crate</em>, indicated by the presence of the <em>RO-Crate Metadata File</em> <code>ro-crate-metadata.json</code> (or <code>ro-crate-metadata.jsonld</code> for crates that comply with versions before v1.1 of this specification)</p> <p><em>RO-Crate Metadata File</em>: A JSON-LD file stored as <code>ro-crate-metadata.json</code> in the <em>RO-Crate Root</em>. The metadata file describes the <em>RO-Crate</em> with structured data in form of <em>RO-Crate JSON-LD</em>. (In version 1.0 this file was named <code>ro-crate-metadata.jsonld</code> but has been renamed to improve the usability of crates.)</p> <p><em>RO-Crate Website</em>: Human-readable HTML pages which describe the RO-Crate (i.e. the <em>Root Data Entity</em>, its <em>Data Entities</em> and <em>Context Entities</em>), with a home-page at <code>ro-crate-preview.html</code> (any additional files reside in <code>ro-crate-preview_files/</code>)</p> <p><em>Entity</em>: An identified object, which have a given <em>type</em> and may be described using a set of <em>properties</em>.</p> <p><em>Type</em>: A classification of objects or their descriptions. The type (or <em>class</em>) is identified by a <em>URI</em>, mapped to a <em>key</em> by <em>JSON-LD</em>.</p> <p><em>Property</em>: A relationship from one <em>entity</em> to another entity, or to a <em>value</em>. The type of relationship is identified by a <em>URI</em>, mapped to a <em>key</em> by <em>JSON-LD</em>.</p> <p><em>Data Entity</em>: A JSON-LD representation, in the <em>RO-Crate Metadata File</em>, of a directory, file or other resource contained or described by the RO-Crate.</p> <p><em>Root Data Entity</em>: A <em>Data Entity</em> of <em>type</em> <a href="http://schema.org/Dataset">Dataset</a>, representing the RO-Crate as a whole.</p> <p><em>RO-Crate Metadata File Descriptor</em>: A <em>Contextual Entity</em> of type <a href="http://schema.org/CreativeWork">CreativeWork</a>, which describes the <em>RO-Crate Metadata File</em> and links it to the <em>Root Data Entity</em>.</p> <p><em>JSON-LD</em>: A JSON-based file format for storing <em>Linked Data</em>. This document assumes <a href="https://www.w3.org/TR/2014/REC-json-ld-20140116/">JSON-LD 1.0</a>. JSON-LD use a <em>context</em> to map from JSON keys to <em>URIs</em>.</p> <p><em>JSON</em>: The <em>JavaScript Object Notation (JSON) Data Interchange Format</em> as defined by <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>; a structured text file format that can be programmatically consumed and generated in a wide range of programming languages. The main JSON structures are <em>objects</em> (<code>{}</code>) indexed by <em>keys</em>, sequential <em>arrays</em> (<code>[]</code>) and literal <em>values</em> (<code>""</code>).</p> <p><em>Contextual Entity</em>: A JSON-LD representation of an entity associated with a <em>Data Entity</em>, needed to adequately describe that <em>Data Entity</em>. For example, a <a href="http://schema.org/Person">Person</a>, <a href="http://schema.org/Organization">Organization</a> (including research projects), item of equipment (<a href="http://schema.org/IndividualProduct">IndividualProduct</a>), <a href="http://schema.org/license">license</a> or any other <em>thing</em> or <em>event</em> that forms part of the metadata for a <em>Data Entity</em> or supporting information.</p> <p><em>Linked Data</em>: A data structure where properties, types and resources are identified with <em>URIs</em>, which if retrieved over the Web, further describe or provide the identified property/type/resource.</p> <p><em>URI</em>: A <em>Uniform Resource Identifier</em> as defined in <a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>, for example <code>http://example.com/path/file.html</code> - commonly known as <em>URL</em>. In this document the term <em>URI</em> includes <em>IRI</em>, which also permit international Unicode characters.</p> <p><em>URI Path</em>: The relative <em>path</em> element of an <em>URI</em> as defined in <a href="https://tools.ietf.org/html/rfc3986#section-3.3">RFC3986 section 3.3</a>, e.g. <code>path/file.html</code></p> <p><em>RO-Crate JSON-LD Context</em>: A JSON-LD <a href="https://www.w3.org/TR/json-ld/#the-context">context</a> that provides Linked Data mapping for RO-Crate metadata to vocabularies like <a href="http://schema.org">Schema.org</a>.</p> <p><em>RO-Crate JSON-LD</em>: JSON-LD structure using the <em>RO-Crate JSON-LD Context</em> and containing RO-Crate metadata, written as if <a href="https://www.w3.org/TR/json-ld/#flattened-document-form">flattened</a> and then <a href="https://www.w3.org/TR/json-ld/#compacted-document-form">compacted</a> according to the rules in JSON-LD 1.0. The <em>RO-Crate JSON-LD</em> for an <em>RO-Crate</em> is stored in the <em>RO-Crate Metadata File</em>.</p> <section id="linked-data-conventions" class="level2" data-number="3.1"> <h2 data-number="3.1"><span class="header-section-number">3.1</span> Linked Data conventions</h2> <p>Throughout this specification, RDF terms (<em>properties</em>, <em>types</em>) are referred to using the <em>keys</em> defined in the <em>RO-Crate JSON-LD Context</em>.</p> <p>Following <a href="http://schema.org">Schema.org</a> practice, <code>property</code> names start with lowercase letters and <code>Type</code> names start with uppercase letters.</p> <p>In the <em>RO-Crate Metadata File</em> the RDF terms use their RO-Crate JSON-LD names as defined in the <em>RO-Crate JSON-LD Context</em>, which is available at <a href="https://w3id.org/ro/crate/1.1/context" class="uri">https://w3id.org/ro/crate/1.1/context</a></p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="structure"> </div> </section> </section> <section id="ro-crate-structure" class="level1" data-number="4"> <h1 data-number="4"><span class="header-section-number">4</span> RO-Crate Structure</h1> <p>The structure an <em>RO-Crate</em> MUST follow is:</p> <pre><code><RO-Crate root directory>/ | ro-crate-metadata.json # RO-Crate Metadata File MUST be present | ro-crate-preview.html # RO-Crate Website homepage MAY be present | ro-crate-preview_files/ # MAY be present | | [other RO-Crate Website files] | [payload files and directories] # 0 or more</code></pre> <p>The name of the <em>RO-Crate root</em> directory is not defined, but a root directory is identifiable by the presence of the <em>RO-Crate Metadata File</em>, <code>ro-crate-metadata.json</code>. For instance, if an <em>RO-Crate</em> is archived in a ZIP-file, the ZIP root directory is an <em>RO-Crate root</em> directory if it contains <code>ro-crate-metadata.json</code>.</p> <p><a href="#data-entities">Data Entities</a> in the RO-Crate MUST either be <em>payload files/directories</em> present within the RO-Crate root directory or its subdirectories, or be <a href="data-entities.html#web-based-data-entities">Web-based Data Entities</a>.</p> <!-- RO-Crates can be _nested_ by including payload directories that themselves contain an _RO-Crate Metadata File_. --> <section id="ro-crate-metadata-file-ro-crate-metadatajson" class="level2" data-number="4.1"> <h2 data-number="4.1"><span class="header-section-number">4.1</span> RO-Crate Metadata File (<code>ro-crate-metadata.json</code>)</h2> <ul> <li>In new RO-Crates the <em>RO-Crate Metadata File</em> MUST be named <code>ro-crate-metadata.json</code> and appear in the <em>RO-Crate Root</em></li> <li>The <em>RO-Crate Metadata File</em> MUST contain <em>RO-Crate JSON-LD</em>; a valid <a href="https://www.w3.org/TR/2014/REC-json-ld-20140116/">JSON-LD 1.0</a> document in <a href="https://www.w3.org/TR/json-ld/#flattened-document-form">flattened</a> and <a href="https://www.w3.org/TR/json-ld/#compacted-document-form">compacted</a> form</li> <li>The <em>RO-Crate JSON-LD</em> SHOULD use the <em>RO-Crate JSON-LD Context</em> <a href="https://w3id.org/ro/crate/1.1/context" class="uri">https://w3id.org/ro/crate/1.1/context</a> by reference.</li> <li>If an RO-Crate conforming to version 1.0 or earlier contains a file named <code>ro-crate-metadata.jsonld</code> instead of <code>ro-crate-metadata.json</code> then processing software should treat this as the <em>RO-Crate Metadata File</em>. If the crate is updated then the file SHOULD be renamed to <code>ro-crate-metadata.json</code> and the <em>RO-Crate Metadata File Descriptor</em> SHOULD be updated to to reference it, with an up to date <a href="http://purl.org/dc/terms/conformsTo">conformsTo</a> property naming an appropriate version of this specification.</li> </ul> <p><a href="https://json-ld.org/">JSON-LD</a> is a structured form of <a href="http://json.org/">JSON</a> that can represent a <em>Linked Data</em> graph.</p> <p>A valid <em>RO-Crate JSON-LD</em> graph MUST describe:</p> <ol type="1"> <li>The <a href="#ro-crate-metadata-file-descriptor">RO-Crate Metadata File Descriptor</a></li> <li>The <a href="#direct-properties-of-the-root-data-entity">Root Data Entity</a></li> <li>Zero or more <a href="#data-entities">Data Entities</a></li> <li>Zero or more <a href="#contextual-entities">Contextual Entities</a></li> </ol> <p>It is RECOMMENDED that any referenced <em>contextual entities</em> are also described in the <em>RO-Crate Metadata File</em> with the same identifier. Similarly it is RECOMMENDED that any <em>contextual entity</em> in the <em>RO-Crate Metadata file</em> is linked to from at least one of the other entities using the same identifier.</p> <p>The appendix <a href="#jsonld">RO-Crate JSON-LD</a> details the general structure of the JSON-LD that is expected in the <em>RO-Crate Metadata File</em>. In short, the rest of this specification describe the different types of entities that can be added as <code>{}</code> objects to the <em>RO-Crate JSON-LD</em> <code>@graph</code> array below:</p> <div class="sourceCode" id="cb2"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a></span> <span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="ro-crate-website-ro-crate-previewhtml-and-ro-crate-preview_files" class="level2" data-number="4.2"> <h2 data-number="4.2"><span class="header-section-number">4.2</span> RO-Crate Website (<code>ro-crate-preview.html</code> and <code>ro-crate-preview_files/</code>)</h2> <p>In addition to the machine-oriented <em>RO-Crate Metadata File</em>, the RO-Crate MAY include a human-readable HTML rendering of the same information, known as the <em>RO-Crate Website</em>.</p> <p>If present in the root directory, <code>ro-crate-preview.html</code> MUST:</p> <ul> <li><p>Be a valid <a href="https://www.w3.org/TR/html52/">HTML 5</a> document</p></li> <li><p>Be useful to users of the RO-Crate - this will vary by community and intended use, but in general the aim to assist users in reusing data by explaining what it is, how it was created how it can be used and how to cite it. One simple approach to this is to expose <em>all</em> the metadata in the <em>RO-Crate Metadata File</em>.</p></li> <li><p>Contain a copy of the <em>RO-Crate JSON-LD</em> in a <code>script</code> element of the <code>head</code> element of the HTML, for example:</p> <div class="sourceCode" id="cb3"><pre class="sourceCode html"><code class="sourceCode html"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a> <span class="kw"><script</span><span class="ot"> type=</span><span class="st">"application/ld+json"</span><span class="kw">></span></span> <span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a> {</span> <span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"@context"</span><span class="op">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="op">,</span></span> <span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a> <span class="st">"@graph"</span><span class="op">:</span> [ <span class="op">...</span>]</span> <span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a> }</span> <span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a> <span class="kw"></script></span></span></code></pre></div></li> </ul> <p><code>ro-crate-preview.html</code> SHOULD:</p> <ul> <li>Display at least the metadata relating to the <em>Root Data Enity</em> as static HTML without the need for scripting. It MAY contain extra features enabled by JavaScript.</li> <li>When a <em>Data Entity</em> or <em>Contextual Entity</em> is referenced by its ID: <ul> <li>If it has a <a href="http://schema.org/name">name</a> property, provide a link to its HTML version.</li> <li>If it does not have a name (e.g. a <a href="http://schema.org/GeoCoordinates">GeoCoordinates</a> location), show it embedded in the HTML for the entity.</li> <li>For external URI values, provide a link.</li> </ul></li> <li>For keys that resolve in the <code>RO-Crate JSON-LD Context</code> to a URI, indicate this (the simplest way is to link the key to its definition).</li> <li>If there is sufficient metadata, contain a prominent <em>“Cite-as”</em> text with a natural language data citation (see for example the <a href="https://doi.org/10.25490/a97f-egyk">FORCE11 Data Citation Principles</a>).</li> <li>If there are additional resources necessary to render the preview (e.g. CSS, JSON, HTML), link to them in a subdirectory <code>ro-crate-preview-files/</code></li> </ul> </section> <section id="payload-files-and-directories" class="level2" data-number="4.3"> <h2 data-number="4.3"><span class="header-section-number">4.3</span> Payload files and directories</h2> <p>These are the actual files and directories that make up the dataset being described.</p> <p>The base RO-Crate specification makes no assumptions about the presence of any specific files or folders beyond the reserved RO-Crate files described above. Payload files may appear directly in the <em>RO-Crate Root</em> alongside the <em>RO-Crate Metadata File</em>, and/or appear in sub-directories of the <em>RO-Crate Root</em>. Each file and directory MAY be represented as <a href="#data-entities">Data Entities</a> in the <em>RO-Crate Metadata File</em>.</p> </section> <section id="self-describing-and-self-contained" class="level2" data-number="4.4"> <h2 data-number="4.4"><span class="header-section-number">4.4</span> Self-describing and self-contained</h2> <p>RO-Crates SHOULD be self-describing and self-contained.</p> <p>A minimal RO-Crate is a directory containing a single <a href="#root-data-entity">RO-Crate Metadata File</a> <code>ro-crate-metadata.json</code>.</p> <p>At the basic level, an RO-Crate is a collection of files and resources represented as a Schema.org <a href="http://schema.org/Dataset">Dataset</a>, that together form a meaningful unit for the purposes of communication, citation, distribution, preservation, etc. The <em>RO-Crate Metadata File</em> describes the RO-Crate, and MUST be stored in the <em>RO-Crate Root</em>.</p> <p>While RO-Crate is well catered for describing a <em>Dataset</em> as files and relevant metadata that are <em>contained</em> by the RO-Crate in the sense of living within the same root directory, RO-Crates can also reference external resources which are stored or accessed separately, via absolute URIs. This is particularly recommended where some resources cannot be co-hosted for practical or legal reasons, or if the RO-Crate itself is primarily web-based.</p> <p>It is important to note that the <em>RO-Crate Metadata File</em> is <strong>not an exhaustive manifest</strong> or inventory, that is, it does not necessarily list or describe all files in the package. Rather it is focused on providing sufficient amount of metadata to understand and use the content, and is designed to be compatible with existing and future approaches that <em>do</em> have full inventories / manifest and integrity checks, e.g. by using checksums, such as <a href="https://en.wikipedia.org/wiki/BagIt">BagIt</a> and Oxford Common File Layout <a href="https://ocfl.io/1.0/spec/#object-spec">OCFL Objects</a>.</p> <p>The intention is that RO-Crates can work well with a variety of archive file formats, e.g. tar, zip, etc., and approaches to capturing file manifests and file fixity, such as <a href="https://en.wikipedia.org/wiki/BagIt">BagIt</a>, <a href="https://ocfl.io/">OCFL</a> and <a href="https://git-scm.com/">git</a> (see also appendix <a href="#combining-with-other-packaging-schemes">Combining with other packaging schemes</a>). An RO-Crate can also be hosted on the web or mainly refer to web resources, although extra care to ensure persistence and consistency should be taken for archiving such RO-Crates.</p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="metadata"> </div> </section> </section> <section id="ro-crate-metadata" class="level1" data-number="5"> <h1 data-number="5"><span class="header-section-number">5</span> RO-Crate Metadata</h1> <p>RO-Crate aims to capture and describe the <a href="https://www.researchobject.org/">Research Object</a> using structured <em>metadata</em>.</p> <p>The <em>RO-Crate Metadata File Descriptor</em> contains the metadata that describes the RO-Crate and its content, in particular:</p> <ul> <li><a href="#root-data-entity">Root Data Entity</a> - the RO-Crate <code>Dataset</code> itself, a gathering of data</li> <li><a href="#data-entities">Data Entities</a> - the <em>data</em> payload, in the form of files and folders</li> <li><a href="#contextual-entities">Contextual Entities</a> - related things in the world (e.g. people, organizations, places), providing provenance for the data entities and the RO-Crate.</li> </ul> <p>This machine-readable metadata can also be represented for human consumption in the <em>RO-Crate Website</em>, linking to data and Web resources.</p> <section id="ro-crate-uses-linked-data-principles" class="level2" data-number="5.1"> <h2 data-number="5.1"><span class="header-section-number">5.1</span> RO-Crate uses Linked Data principles</h2> <p>RO-Crate makes use of the <a href="https://5stardata.info/en/">Linked Data principles</a> for its description. In particular:</p> <ol type="1"> <li>(Meta)data should be made available as <strong>Open Data</strong> on the web.</li> <li>(Meta)data should be <strong>machine-readable</strong> in a structured format.</li> <li>(Meta)data should <em>not</em> require proprietary software packages.</li> <li>(Meta)data should use <a href="https://www.w3.org/standards/">open standards from W3C</a>, such as RDF and SPARQL.</li> <li>(Meta)data should <strong>link</strong> to other people’s data to provide context, using <em>URIs</em> as global identifiers</li> </ol> <p>RO-Crate realize these principles using a particular set of technologies and best practices:</p> <ol type="1"> <li>The <em>RO-Crate Metadata File</em> and <em>RO-Crate Website</em> can be directly published on the web together with the RO-Crate payload. In addition, a data package (e.g. BagIt Zip archive) that contain the RO-Crate can also be published on the web.</li> <li>The <em>RO-Crate Metadata File</em> is based on the structured data format <a href="https://json-ld.org/">JSON-LD</a>.</li> <li>Multiple open source tools/libraries are available <a href="http://json.org/">for JSON</a> and <a href="https://json-ld.org/">for JSON-LD</a>.</li> <li>The <em>RO-Crate Website</em> is <a href="https://www.w3.org/TR/html52/">HTML 5</a>, and the <em>RO-Crate Metadata File</em> is <a href="https://json-ld.org/">JSON-LD</a>, one of the <a href="https://www.w3.org/TR/rdf11-primer/">W3C RDF 1.1 formats</a>.</li> <li>The <em>RO-Crate Metadata File</em> reuse common vocabularies like <a href="http://schema.org">Schema.org</a>, and this specification <a href="#recommended-identifiers">recommend identifiers</a> it should link to.</li> </ol> </section> <section id="base-metadata-standard-schemaorg" class="level2" data-number="5.2"> <h2 data-number="5.2"><span class="header-section-number">5.2</span> Base metadata standard: Schema.org</h2> <p><a href="http://schema.org">Schema.org</a> is the base metadata standard for RO-Crate. Schema.org was chosen because it is widely used on the World Wide Web and supported by search engines, on the assumption that discovery is likely to be maximized if search engines index the content.</p> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>As far as we know there is no alternative, well-maintained linked-data schema for research data with the coverage needed for this project - i.e. a single standard for expressing all the examples presented in this specification. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>RO-Crate relies heavily on <a href="http://schema.org">Schema.org</a>, using a constrained subset of <a href="https://json-ld.org/">JSON-LD</a>, and this document gives opinionated recommendations on how to represent the metadata using existing <a href="https://en.wikipedia.org/wiki/Linked_data">linked data</a> best practices.</p> <section id="differences-from-schemaorg" class="level3" data-number="5.2.1"> <h3 data-number="5.2.1"><span class="header-section-number">5.2.1</span> Differences from Schema.org</h3> <p>Generally, the standard <em>type</em> and <em>property</em> names (<em>terms</em>) from <a href="http://schema.org">Schema.org</a> should be used. However, RO-Crate uses variant names for some elements, specifically:</p> <ul> <li><code>File</code> is mapped to <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a> which was chosen as a compromise as it has many of the properties that are needed to describe a generic file. Future versions of Schema.org or a research data extension may re-define <code>File</code>.</li> <li><code>Journal</code> is mapped to <a href="http://schema.org/Periodical" class="uri">http://schema.org/Periodical</a>.</li> </ul> <div class="a d m o n i t i o n w a r n i n g"> <div class="line-block"><span class="smallcaps">⚠️ Warning</span></div> <div> <p>JSON-LD examples given on the [Schema.org website] may not be in <em>flattened</em> form; any nested entities in <em>RO-Crate JSON-LD</em> SHOULD be described as separate contextual entities in the flat <code>@graph</code> list. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>To simplify processing and avoid confusion with string values, the <em>RO-Crate JSON-LD Context</em> requires URIs and entity references to be given in the form <code>"author": {"@id": "http://example.com/alice"}</code>, even where <a href="http://schema.org">Schema.org</a> for some properties otherwise permit shorter forms like <code>"author": "http://example.com/alice"</code>.</p> <p>See the appendix <a href="#jsonld">RO-Crate JSON-LD</a> for details.</p> </section> </section> <section id="additional-metadata-standards" class="level2" data-number="5.3"> <h2 data-number="5.3"><span class="header-section-number">5.3</span> Additional metadata standards</h2> <p>RO-Crate also uses the <em>Portland Common Data Model</em> (<a href="https://github.com/duraspace/pcdm/wiki">PCDM</a> version <a href="https://pcdm.org/2016/04/18/models" class="uri">https://pcdm.org/2016/04/18/models</a>) to describe repositories or collections of digital objects and imports these terms:</p> <ul> <li><code>RepositoryObject</code> mapped to <a href="http://pcdm.org/models#Object" class="uri">http://pcdm.org/models#Object</a></li> <li><code>RepositoryCollection</code> mapped to <a href="http://pcdm.org/models#Collection" class="uri">http://pcdm.org/models#Collection</a></li> <li><code>RepositoryFile</code> mapped to <a href="http://pcdm.org/models#File" class="uri">http://pcdm.org/models#File</a></li> <li><code>hasMember</code> mapped to <a href="http://pcdm.org/models#hasMember" class="uri">http://pcdm.org/models#hasMember</a></li> <li><code>hasFile</code> mapped to <a href="http://pcdm.org/models#hasFile" class="uri">http://pcdm.org/models#hasFile</a></li> </ul> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>The terms <code>RepositoryObject</code> and <code>RepositoryCollection</code> are renamed to avoid collision between other vocabularies and the PCDM terms <code>Collection</code> and <code>Object</code>. The term <code>RepositoryFile</code> is renamed to avoid clash with RO-Crate’s <code>File</code> mapping to <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a>. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>From <a href="http://purl.org/dc/terms/">Dublin Core Terms</a> RO-Crate use:</p> <ul> <li><code>conformsTo</code> mapped to <a href="http://purl.org/dc/terms/conformsTo" class="uri">http://purl.org/dc/terms/conformsTo</a></li> </ul> <p>These terms are being proposed by <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21">Bioschemas profile ComputationalWorkflow 0.5-DRAFT</a> and <a href="https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21">FormalParameter 0.1-DRAFT</a> to be integrated into Schema.org:</p> <ul> <li><code>ComputationalWorkflow</code> mapped to <a href="https://bioschemas.org/ComputationalWorkflow" class="uri">https://bioschemas.org/ComputationalWorkflow</a></li> <li><code>FormalParameter</code> mapped to <a href="https://bioschemas.org/FormalParameter" class="uri">https://bioschemas.org/FormalParameter</a></li> <li><code>input</code> mapped to <a href="https://bioschemas.org/ComputationalWorkflow#input" class="uri">https://bioschemas.org/ComputationalWorkflow#input</a></li> <li><code>output</code> mapped to <a href="https://bioschemas.org/ComputationalWorkflow#output" class="uri">https://bioschemas.org/ComputationalWorkflow#output</a></li> <li><code>funding</code> mapped to <a href="http://schema.org/funding" class="uri">http://schema.org/funding</a> (<a href="https://github.com/schemaorg/schemaorg/issues/383">schemaorg #383</a>)</li> </ul> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>In this specification the proposed Bioschemas terms use the temporary <a href="https://bioschemas.org/" class="uri">https://bioschemas.org/</a> namespace; future releases of RO-Crate may reflect mapping to the <a href="http://schema.org/" class="uri">http://schema.org/</a> namespace. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="summary-of-coverage" class="level2" data-number="5.4"> <h2 data-number="5.4"><span class="header-section-number">5.4</span> Summary of Coverage</h2> <p>RO-Crate is simply a way to make metadata assertions about a set of files and folders that make up a <em>Dataset</em>. These assertions can be made at two levels:</p> <ul> <li>Assertions at the RO-Crate level: for an RO-Crate to be useful, some metadata should be provided about the dataset as a whole (see minimum requirements for different use-cases below). In the <em>RO-Crate Metadata File</em>, we distinguish the <em>Root Data Entity</em> which represents the RO-Crate as a whole, from other <em>Data Entities</em> (files and folders contained in the RO-Crate) and <em>Contextual Entities</em>, e.g. a person, organisation, place related to an RO-Crate <em>Data Entity</em></li> <li>Assertions about files and folders contained in the RO-Crate: in addition to providing metadata about the RO-Crate as a whole, RO-Crate allows metadata assertions to be made about any other <em>Data Entity</em></li> </ul> <p>This document has guidelines for ways to represent common requirements for describing data in a research context, e.g.:</p> <ul> <li>Contact information for a data set.</li> <li>Descriptive information for a dataset and the files within it and their contexts such as an abstract, spatial and temporal coverage.</li> <li>Associated publications.</li> <li>Funding relationships.</li> <li>Provenance information of various kinds; who (people and organizations) and what (instruments and computer programs) created or contributed to the data set and individual files within it.</li> <li>Workflows that operate on the data using standard workflow descriptions including ‘single step workflows’; executable files or environments such as singularity containers or Jupyter notebooks.</li> </ul> <p>However, as RO-Crate uses the <a href="https://5stardata.info/en/">Linked Data principles</a>, adopters of RO-Crate are free to supplement RO-Crate using <a href="http://schema.org">Schema.org</a> metadata and/or assertions using other <em>Linked Data</em> vocabularies.</p> </section> <section id="future-coverage" class="level2" data-number="5.5"> <h2 data-number="5.5"><span class="header-section-number">5.5</span> Future coverage</h2> <p>A future version of this specification aim to cater for variable-level assertions: In some cases, e.g. for tabular data, additional metadata may be provided about the structure and variables within a given file. See the use case <a href="https://github.com/ResearchObject/ro-crate/issues/27">Describe a tabular data file directly in RO-Crate metadata</a> for work-in-progress.</p> </section> <section id="recommended-identifiers" class="level2" data-number="5.6"> <h2 data-number="5.6"><span class="header-section-number">5.6</span> Recommended Identifiers</h2> <p><em>RO-Crate JSON-LD</em> SHOULD use the following IDs where possible:</p> <ul> <li>For a <em>Root Data Entity</em>, an <code>identifier</code> which is RECOMMENDED to be a <a href="https://doi.org/" class="uri">https://doi.org/</a> URI.</li> <li>For a <a href="http://schema.org/Person">Person</a> participating in the research process: <a href="https://orcid.org">ORCID</a> identifiers, e.g. <a href="https://orcid.org/0000-0002-1825-0097" class="uri">https://orcid.org/0000-0002-1825-0097</a></li> <li>For <a href="http://schema.org/Organization">Organization</a>s including <a href="http://schema.org/funder">funder</a>s, <a href="https://ror.org/">Research Organization Registry URIs</a>, e.g. <a href="https://ror.org/0384j8v12" class="uri">https://ror.org/0384j8v12</a></li> <li>For entities of type <a href="http://schema.org/Place">Place</a>, a <a href="https://www.geonames.org/">geonames</a> URL, e.g. <a href="http://sws.geonames.org/8152662/" class="uri">http://sws.geonames.org/8152662/</a></li> <li>For file formats, a <a href="https://www.nationalarchives.gov.uk/PRONOM/Default.aspx">Pronom</a> URL, for example <a href="https://www.nationalarchives.gov.uk/PRONOM/fmt/831" class="uri">https://www.nationalarchives.gov.uk/PRONOM/fmt/831</a>.</li> </ul> <p>In the absence of the above, RO-Crates SHOULD contain stable persistent URIs to identify all entities wherever possible.</p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> </section> <section id="root-data-entity" class="level1" data-number="6"> <h1 data-number="6"><span class="header-section-number">6</span> Root Data Entity</h1> <p>The <strong>Root Data Entity</strong> is a <a href="http://schema.org/Dataset">Dataset</a> that represent the RO-Crate as a whole; a <em>Research Object</em> that includes the <em>Data Entities</em> and the related <em>Contextual Entities</em>.</p> <p>As explained in section <a href="#structure">RO-Crate structure</a>, the RO-Crate description is stored as <em>JSON-LD</em> in the <em>RO-Crate Metadata File</em> <code>ro-crate-metadata.json</code> in the <em>RO-Crate root</em> directory.</p> <section id="ro-crate-metadata-file-descriptor" class="level2" data-number="6.1"> <h2 data-number="6.1"><span class="header-section-number">6.1</span> RO-Crate Metadata File Descriptor</h2> <p>The <em>RO-Crate JSON-LD</em> MUST contain a self-describing <strong>RO-Crate Metadata File Descriptor</strong> with the <code>@id</code> value <code>ro-crate-metadata.json</code> (or <code>ro-crate-metadata.jsonld</code> in legacy crates) and <code>@type</code> <a href="http://schema.org/CreativeWork">CreativeWork</a>. This descriptor MUST have an <a href="http://schema.org/about">about</a> property referencing the <em>Root Data Entity</em>, which SHOULD have an <code>@id</code> of <code>./</code>.</p> <div class="sourceCode" id="cb4"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span> </span> <span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a> </span> <span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a> <span class="er">...</span></span> <span id="cb4-14"><a href="#cb4-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb4-15"><a href="#cb4-15" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb4-16"><a href="#cb4-16" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>The <a href="http://purl.org/dc/terms/conformsTo">conformsTo</a> of the <em>RO-Crate Metadata File Descriptor</em> SHOULD be a versioned permalink URI of the RO-Crate specification that the <em>RO-Crate JSON-LD</em> conforms to. The URI SHOULD start with <code>https://w3id.org/ro/crate/</code>.</p> <section id="finding-the-root-data-entity" class="level3" data-number="6.1.1"> <h3 data-number="6.1.1"><span class="header-section-number">6.1.1</span> Finding the Root Data Entity</h3> <p>Consumers processing the RO-Crate as an JSON-LD graph can thus reliably find the <em>Root Data Entity</em> by following this algorithm:</p> <ol type="1"> <li>For each entity in <code>@graph</code> array</li> <li>..if the <code>conformsTo</code> property is a URI that starts with <code>https://w3id.org/ro/crate/</code></li> <li>….from this entity’s <code>about</code> object keep the <code>@id</code> URI as variable <em>root</em></li> <li>For each entity in <code>@graph</code> array</li> <li>.. if the entity has an <code>@id</code> URI that matches <em>root</em> return it</li> </ol> <p>See also the appendix on <a href="#finding-ro-crate-root-in-rdf-triple-stores">finding RO-Crate Root in RDF triple stores</a>.</p> </section> <section id="purpose-of-metadata-file" class="level3" data-number="6.1.2"> <h3 data-number="6.1.2"><span class="header-section-number">6.1.2</span> Purpose of Metadata File</h3> <p>To ensure a base-line interoperability between RO-Crates, and for an RO-Crate to be considered a <em>Valid RO-Crate</em>, a minimum set of metadata is required for the <em>Root Data Entity</em>. As <a href="#self-describing-and-self-contained">stated earlier</a> the <em>RO-Crate Metadata File</em> is not an exhaustive manifest or inventory, that is, it does not necessarily list or describe all files in the package. For this reason, there are no minimum metadata requirements in terms of describing <a href="#data-entities">Data Entities</a> (files and folders) other than the <em>Root Data Entity</em>. Extensions of RO-Crate dealing with specific types of dataset may put further constraints or requirements of metadata beyond the Root Data Entity (see the appendix <a href="#extending-ro-crate">Extending RO-Crate</a>).</p> <p>The <em>RO-Crate Metadata File Descriptor</em> MAY contain information such as licensing for the <em>RO-Crate Metadata File</em> so metadata can be licensed separately from Data.</p> <p>The table below outlines the properties that the <em>Root Data Entity</em> MUST have to be minimally valid and additionally highlights properties required to meet other common use-cases:</p> </section> </section> <section id="direct-properties-of-the-root-data-entity" class="level2" data-number="6.2"> <h2 data-number="6.2"><span class="header-section-number">6.2</span> Direct properties of the Root Data Entity</h2> <p>The <em>Root Data Entity</em> MUST have the following properties:</p> <ul> <li><code>@type</code>: MUST be <a href="http://schema.org/Dataset">Dataset</a></li> <li><code>@id</code>: MUST end with <code>/</code> and SHOULD be the string <code>./</code></li> <li><code>name</code>: SHOULD identify the dataset to humans well enough to disambiguate it from other RO-Crates</li> <li><code>description</code>: SHOULD further elaborate on the name to provide a summary of the context in which the dataset is important.</li> <li><code>datePublished</code>: MUST be a string in <a href="https://schema.org/DateTime">ISO 8601 date format</a> and SHOULD be specified to at least the precision of a day, MAY be a timestamp down to the millisecond.</li> <li><code>license</code>: SHOULD link to a <em>Contextual Entity</em> in the <em>RO-Crate Metadata File</em> with a name and description. MAY have a URI (eg for Creative Commons or Open Source licenses). MAY, if necessary be a textual description of how the RO-Crate may be used.</li> </ul> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>These requirements are stricter than those published for <a href="https://developers.google.com/search/docs/data-types/dataset">Google Dataset Search</a> which requires a <code>Dataset</code> to have a <code>name</code> and <code>description</code>, <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <div class="a d m o n i t i o n w a r n i n g"> <div class="line-block"><span class="smallcaps">⚠️ Warning</span></div> <div> <p>The properties above are not sufficient to generate a <a href="https://schema.datacite.org/">DataCite</a> citation. Advice on integrating with <a href="https://www.datacite.org/">DataCite</a> will be provided in a future version of this specification, or as an implementation guide. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="minimal-example-of-ro-crate" class="level2" data-number="6.3"> <h2 data-number="6.3"><span class="header-section-number">6.3</span> Minimal example of RO-Crate</h2> <p>The following <em>RO-Crate Metadata File</em> represents a minimal description of an <em>RO-Crate</em>.</p> <div class="sourceCode" id="cb5"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span> </span> <span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a></span> <span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb5-6"><a href="#cb5-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb5-7"><a href="#cb5-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb5-8"><a href="#cb5-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb5-9"><a href="#cb5-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span> </span> <span id="cb5-10"><a href="#cb5-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb5-11"><a href="#cb5-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb5-12"><a href="#cb5-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.4225/59/59672c09f4a4b"</span><span class="fu">,</span></span> <span id="cb5-13"><a href="#cb5-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb5-14"><a href="#cb5-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"datePublished"</span><span class="fu">:</span> <span class="st">"2017"</span><span class="fu">,</span></span> <span id="cb5-15"><a href="#cb5-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Data files associated with the manuscript:Effects of facilitated family case conferencing for ..."</span><span class="fu">,</span></span> <span id="cb5-16"><a href="#cb5-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Palliative care planning for nursing home residents with advanced dementia ..."</span><span class="fu">,</span></span> <span id="cb5-17"><a href="#cb5-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by-nc-sa/3.0/au/"</span><span class="fu">}</span></span> <span id="cb5-18"><a href="#cb5-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb5-19"><a href="#cb5-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb5-20"><a href="#cb5-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by-nc-sa/3.0/au/"</span><span class="fu">,</span></span> <span id="cb5-21"><a href="#cb5-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb5-22"><a href="#cb5-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Australia License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/au/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA."</span><span class="fu">,</span></span> <span id="cb5-23"><a href="#cb5-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by-nc-sa/3.0/au/"</span><span class="fu">,</span></span> <span id="cb5-24"><a href="#cb5-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Attribution-NonCommercial-ShareAlike 3.0 Australia (CC BY-NC-SA 3.0 AU)"</span></span> <span id="cb5-25"><a href="#cb5-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb5-26"><a href="#cb5-26" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb5-27"><a href="#cb5-27" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> </section> <section id="data-entities" class="level1" data-number="7"> <h1 data-number="7"><span class="header-section-number">7</span> Data Entities</h1> <p>The primary purpose for RO-Crate is to gather and describe a set of <em>Data entities</em> in the form of:</p> <ul> <li>Files</li> <li>Directories</li> <li>Web resources</li> </ul> <p>The data entities can be further described by referencing <a href="#contextual-entities">contextual entitites</a> such as persons, organizations and publications.</p> <section id="referencing-files-and-folders-from-the-root-data-entity" class="level2" data-number="7.1"> <h2 data-number="7.1"><span class="header-section-number">7.1</span> Referencing files and folders from the Root Data Entity</h2> <p>Where files and folders are represented as <em>Data Entities</em> in the RO-Crate JSON-LD, these MUST be linked to, either directly or indirectly, from the <a href="#root-data-entity">Root Data Entity</a> using the <a href="http://schema.org/hasPart">hasPart</a> property. Directory hierarchies MAY be represented with nested <a href="http://schema.org/Dataset">Dataset</a> <em>Data Entities</em>, or the Root Dataset MAY refer to files anywhere in the hierarchy using <a href="http://schema.org/hasPart">hasPart</a>.</p> <p><em>Data Entities</em> representing files MUST have <code>"File"</code> as a value for <code>@type</code>. <code>File</code> is an RO-Crate alias for <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a>. The term <em>File</em> here is liberal, and includes “downloadable” resources where <code>@id</code> is an absolute URI.</p> <p><em>Data Entities</em> representing directories MUST be of <code>"@type": "Dataset"</code>. The term <em>directory</em> here includes HTTP file listings where <code>@id</code> is an absolute URI, however “external” directories SHOULD have a programmatic listing of their content (e.g. another RO-Crate).</p> <p><em>Data Entities</em> can also be other types, for instance an online database. These SHOULD be of <code>"@type": "CreativeWork"</code> and typically have a <code>@id</code> which is an absolute URI.</p> <p>In all cases, <code>@type</code> MAY be an array in order to also specify a more specific type, e.g. <code>"@type": ["File", "ComputationalWorkflow"]</code></p> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>There is no requirement to represent <em>every</em> file and folder in an RO-Crate as Data Entities in the RO-Crate JSON-LD. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <section id="example-linking-to-a-file-and-folders" class="level3" data-number="7.1.1"> <h3 data-number="7.1.1"><span class="header-section-number">7.1.1</span> Example linking to a file and folders</h3> <pre><code><RO-Crate root>/ | ro-crate-metadata.json | cp7glop.ai | lots_of_little_files/ | | file1 | | file2 | | ... | | file54</code></pre> <p>An example <em>RO-Crate JSON-LD</em> for the above would be as follows:</p> <div class="sourceCode" id="cb7"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb7-2"><a href="#cb7-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb7-3"><a href="#cb7-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-4"><a href="#cb7-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb7-5"><a href="#cb7-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb7-6"><a href="#cb7-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb7-7"><a href="#cb7-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb7-8"><a href="#cb7-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span> </span> <span id="cb7-9"><a href="#cb7-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-10"><a href="#cb7-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb7-11"><a href="#cb7-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb7-12"><a href="#cb7-12" aria-hidden="true" tabindex="-1"></a> <span class="st">"Dataset"</span></span> <span id="cb7-13"><a href="#cb7-13" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb7-14"><a href="#cb7-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb7-15"><a href="#cb7-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-16"><a href="#cb7-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"cp7glop.ai"</span></span> <span id="cb7-17"><a href="#cb7-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb7-18"><a href="#cb7-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-19"><a href="#cb7-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"lots_of_little_files/"</span></span> <span id="cb7-20"><a href="#cb7-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb7-21"><a href="#cb7-21" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb7-22"><a href="#cb7-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb7-23"><a href="#cb7-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-24"><a href="#cb7-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"cp7glop.ai"</span><span class="fu">,</span></span> <span id="cb7-25"><a href="#cb7-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb7-26"><a href="#cb7-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Diagram showing trend to increase"</span><span class="fu">,</span></span> <span id="cb7-27"><a href="#cb7-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"383766"</span><span class="fu">,</span></span> <span id="cb7-28"><a href="#cb7-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Illustrator file for Glop Pot"</span><span class="fu">,</span></span> <span id="cb7-29"><a href="#cb7-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"application/pdf"</span></span> <span id="cb7-30"><a href="#cb7-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb7-31"><a href="#cb7-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb7-32"><a href="#cb7-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"lots_of_little_files/"</span><span class="fu">,</span></span> <span id="cb7-33"><a href="#cb7-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb7-34"><a href="#cb7-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Too many files"</span><span class="fu">,</span></span> <span id="cb7-35"><a href="#cb7-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"This directory contains many small files, that we're not going to describe in detail."</span></span> <span id="cb7-36"><a href="#cb7-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb7-37"><a href="#cb7-37" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb7-38"><a href="#cb7-38" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="adding-detailed-descriptions-of-encodings" class="level3" data-number="7.1.2"> <h3 data-number="7.1.2"><span class="header-section-number">7.1.2</span> Adding detailed descriptions of encodings</h3> <p>The above example provides a media type for the file <code>cp7glop.ai</code> - which is useful as it may not be apparent that the file is readable as a PDF file from the extension alone. To add more detail, encodings SHOULD be linked using a <a href="https://www.nationalarchives.gov.uk/PRONOM/Default.aspx">PRONOM</a> identifier to a <em>Contextual Entity</em> of <code>@type</code> <a href="http://schema.org/WebSite">WebSite</a>.</p> <div class="sourceCode" id="cb8"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"cp7glop.ai"</span><span class="fu">,</span></span> <span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb8-4"><a href="#cb8-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Diagram showing trend to increase"</span><span class="fu">,</span></span> <span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"383766"</span><span class="fu">,</span></span> <span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Illustrator file for Glop Pot"</span><span class="fu">,</span></span> <span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"application/pdf"</span><span class="ot">,</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.nationalarchives.gov.uk/PRONOM/fmt/19"</span><span class="fu">}</span><span class="ot">]</span></span> <span id="cb8-8"><a href="#cb8-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb8-9"><a href="#cb8-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb8-10"><a href="#cb8-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.nationalarchives.gov.uk/PRONOM/fmt/19"</span><span class="fu">,</span></span> <span id="cb8-11"><a href="#cb8-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Acrobat PDF 1.5 - Portable Document Format"</span><span class="fu">,</span></span> <span id="cb8-12"><a href="#cb8-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"WebSite"</span></span> <span id="cb8-13"><a href="#cb8-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <p>If there is no PRONOM identifier, then a contextual entity with a URL as an <code>@id</code> MAY be used:</p> <p>For example:</p> <div class="sourceCode" id="cb9"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"1st-tool.cwl"</span><span class="fu">,</span></span> <span id="cb9-3"><a href="#cb9-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb9-4"><a href="#cb9-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"First executable tool"</span><span class="fu">,</span></span> <span id="cb9-5"><a href="#cb9-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"An example Common Workflow Language File"</span><span class="fu">,</span></span> <span id="cb9-6"><a href="#cb9-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"120"</span><span class="fu">,</span></span> <span id="cb9-7"><a href="#cb9-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"text/plain"</span><span class="ot">,</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.commonwl.org/v1.0/Workflow.html"</span><span class="fu">}</span><span class="ot">]</span></span> <span id="cb9-8"><a href="#cb9-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb9-9"><a href="#cb9-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb9-10"><a href="#cb9-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.commonwl.org/v1.0/Workflow.html"</span><span class="fu">,</span></span> <span id="cb9-11"><a href="#cb9-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"WebSite"</span><span class="fu">,</span></span> <span id="cb9-12"><a href="#cb9-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Common Workflow Language (CWL) Workflow Description, v1.0.2"</span></span> <span id="cb9-13"><a href="#cb9-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <p>If there is no web-accessible description for a file format it SHOULD be described locally in the dataset, for example in a file:</p> <div class="sourceCode" id="cb10"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb10-2"><a href="#cb10-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"some-file.some_extension"</span><span class="fu">,</span></span> <span id="cb10-3"><a href="#cb10-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb10-4"><a href="#cb10-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Some file"</span><span class="fu">,</span></span> <span id="cb10-5"><a href="#cb10-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"A file in a non-standard format"</span><span class="fu">,</span></span> <span id="cb10-6"><a href="#cb10-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"120"</span><span class="fu">,</span></span> <span id="cb10-7"><a href="#cb10-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"text/plain"</span><span class="ot">,</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"some_extension.md"</span><span class="fu">}</span><span class="ot">]</span></span> <span id="cb10-8"><a href="#cb10-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb10-9"><a href="#cb10-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb10-10"><a href="#cb10-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"some_extension.md"</span><span class="fu">,</span></span> <span id="cb10-11"><a href="#cb10-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"CreativeWork"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb10-12"><a href="#cb10-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Description of some_extension file format"</span><span class="fu">,</span></span> <span id="cb10-13"><a href="#cb10-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"text/markdown"</span></span> <span id="cb10-14"><a href="#cb10-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> </section> </section> <section id="core-metadata-for-data-entities" class="level2" data-number="7.2"> <h2 data-number="7.2"><span class="header-section-number">7.2</span> Core Metadata for Data Entities</h2> <p>The table below outlines the properties that Data Entities, when present, MUST have to be minimally valid.</p> <section id="encoding-file-paths" class="level3" data-number="7.2.1"> <h3 data-number="7.2.1"><span class="header-section-number">7.2.1</span> Encoding file paths</h3> <p>Note that all <code>@id</code> <a href="appendix/jsonld.html#describing-entities-in-json-ld">identifiers must be valid URI references</a>, care must be taken to express any relative paths using <code>/</code> separator, correct casing, and escape special characters like space (<code>%20</code>) and percent (<code>%25</code>), for instance a <em>File Data Entity</em> from the Windows path <code>Results and Diagrams\almost-50%.png</code> becomes <code>"@id": "Results%20and%20Diagrams/almost-50%25.png"</code> in the <em>RO-Crate JSON-LD</em>.</p> <p>In this document the term <em>URI</em> includes international <em>IRI</em>s; the <em>RO-Crate Metadata File</em> is always UTF-8 and international characters in identifiers SHOULD be written using native UTF-8 characters (<em>IRI</em>s), however traditional URL encoding of Unicode characters with <code>%</code> MAY appear in <code>@id</code> strings. Example: <code>"@id": "面试.mp4"</code> is preferred over the equivalent <code>"@id": "%E9%9D%A2%E8%AF%95.mp4"</code></p> </section> <section id="file-data-entity" class="level3" data-number="7.2.2"> <h3 data-number="7.2.2"><span class="header-section-number">7.2.2</span> File Data Entity</h3> <p>A <a href="http://schema.org/MediaObject">File</a> <em>Data Entity</em> MUST have the following properties:</p> <ul> <li><code>@type</code>: MUST be <code>File</code>, or an array where <code>File</code> is one of the values.</li> <li><code>@id</code> MUST be either a <em>URI Path</em> relative to the <em>RO Crate root</em>, or an absolute URI.</li> </ul> </section> <section id="directory-file-entity" class="level3" data-number="7.2.3"> <h3 data-number="7.2.3"><span class="header-section-number">7.2.3</span> Directory File Entity</h3> <p>A <a href="http://schema.org/Dataset">Dataset</a> (directory) <em>Data Entity</em> MUST have the following properties:</p> <ul> <li><code>@type</code> MUST be <code>Dataset</code> or an array where <code>Dataset</code> is one of the values.</li> <li><code>@id</code> MUST be either an a <em>URI Path</em> relative to the <em>RO Crate root</em>, or an absolute URI. The id SHOULD end with <code>/</code></li> </ul> </section> </section> <section id="web-based-data-entities" class="level2" data-number="7.3"> <h2 data-number="7.3"><span class="header-section-number">7.3</span> Web-based Data Entities</h2> <p>While one use-case of RO-Crates is to describe <em>files</em> contained within the <em>RO-Crate root</em> directory, RO-Crates can also gather resources from the web identified by <em>absolute URIs</em> instead of relative <em>URI paths</em>, i.e. Web-based data entities.</p> <p>Using Web-based data entities can be important particularly where a file can’t be included in the <em>RO-Crate root</em> because of licensing concerns, large data sizes, privacy, or where it is desirable to link to the latest online version.</p> <p>Example of an RO-Crate including a <em>File Data Entity</em> external to the <em>RO-Crate root</em> (file entity <a href="https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf" class="uri">https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf</a>):</p> <div class="sourceCode" id="cb11"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb11-2"><a href="#cb11-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb11-3"><a href="#cb11-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-4"><a href="#cb11-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb11-5"><a href="#cb11-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb11-6"><a href="#cb11-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb11-7"><a href="#cb11-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb11-8"><a href="#cb11-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span> </span> <span id="cb11-9"><a href="#cb11-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-10"><a href="#cb11-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb11-11"><a href="#cb11-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb11-12"><a href="#cb11-12" aria-hidden="true" tabindex="-1"></a> <span class="st">"Dataset"</span></span> <span id="cb11-13"><a href="#cb11-13" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb11-14"><a href="#cb11-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb11-15"><a href="#cb11-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-16"><a href="#cb11-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"survey-responses-2019.csv"</span></span> <span id="cb11-17"><a href="#cb11-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb11-18"><a href="#cb11-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-19"><a href="#cb11-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf"</span></span> <span id="cb11-20"><a href="#cb11-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb11-21"><a href="#cb11-21" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb11-22"><a href="#cb11-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb11-23"><a href="#cb11-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-24"><a href="#cb11-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"survey-responses-2019.csv"</span><span class="fu">,</span></span> <span id="cb11-25"><a href="#cb11-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb11-26"><a href="#cb11-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Survey responses"</span><span class="fu">,</span></span> <span id="cb11-27"><a href="#cb11-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"26452"</span><span class="fu">,</span></span> <span id="cb11-28"><a href="#cb11-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"text/csv"</span></span> <span id="cb11-29"><a href="#cb11-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb11-30"><a href="#cb11-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb11-31"><a href="#cb11-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf"</span><span class="fu">,</span></span> <span id="cb11-32"><a href="#cb11-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb11-33"><a href="#cb11-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate specification"</span><span class="fu">,</span></span> <span id="cb11-34"><a href="#cb11-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"310691"</span><span class="fu">,</span></span> <span id="cb11-35"><a href="#cb11-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate specification"</span><span class="fu">,</span></span> <span id="cb11-36"><a href="#cb11-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"application/pdf"</span></span> <span id="cb11-37"><a href="#cb11-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb11-38"><a href="#cb11-38" aria-hidden="true" tabindex="-1"></a><span class="ot">]</span></span> <span id="cb11-39"><a href="#cb11-39" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Additional care SHOULD be taken to improve persistence and long-term preservation of web resources included in an RO-Crate as they can be more difficult to archive or move along with the <em>RO-Crate root</em>, and may change intentionally or unintentionally leaving the RO-Crate with incomplete or outdated information.</p> <p>File Data Entries with an <code>@id</code> URI outside the <em>RO-Crate Root</em> SHOULD at the time of RO-Crate creation be directly downloadable by a simple retrieval (e.g. HTTP GET), permitting redirections and HTTP/HTTPS authentication. For instance, in the example above, <a href="https://zenodo.org/record/3541888" class="uri">https://zenodo.org/record/3541888</a> and <a href="https://doi.org/10.5281/zenodo.3541888" class="uri">https://doi.org/10.5281/zenodo.3541888</a> cannot be used as <code>@id</code> above as retrieving these URLs give a HTML landing page rather than the desired PDF as indicated by <code>encodingFormat</code>.</p> <p>As files on the web may change, the timestamp property <a href="https://schema.org/sdDatePublished">sdDatePublished</a> SHOULD be included to indicate when the absolute URL was accessed, and derived metadata like <a href="http://schema.org/encodingFormat">encodingFormat</a> and <a href="http://schema.org/contentSize">contentSize</a> were considered to be representative:</p> <div class="sourceCode" id="cb12"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf"</span><span class="fu">,</span></span> <span id="cb12-3"><a href="#cb12-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb12-4"><a href="#cb12-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate specification"</span><span class="fu">,</span></span> <span id="cb12-5"><a href="#cb12-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"310691"</span><span class="fu">,</span></span> <span id="cb12-6"><a href="#cb12-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"application/pdf"</span><span class="fu">,</span></span> <span id="cb12-7"><a href="#cb12-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"sdDatePublished"</span><span class="fu">:</span> <span class="st">"2020-04-09T13:09:21+01:00Z"</span></span> <span id="cb12-8"><a href="#cb12-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <section id="embedded-data-entities-that-are-also-on-the-web" class="level3" data-number="7.3.1"> <h3 data-number="7.3.1"><span class="header-section-number">7.3.1</span> Embedded data entities that are also on the web</h3> <p>File Data Entities may already have a corresponding web presence, for instance a landing page that describes the file, including persistent identifiers (e.g. DOI) resolving to an intermediate HTML page instead of the downloadable file directly.</p> <p>These can be included for File Data Entities as additional metadata, regardless of whether the File is included in the <em>RO-Crate Root</em> directory or exists on the Web, by using the properties:</p> <ul> <li><a href="http://schema.org/identifier">identifier</a> for formal identifier strings such as DOIs</li> <li><a href="http://schema.org/url">url</a> with a string URL corresponding to a <em>download</em> link (if not available, a download landing page) for this file</li> <li><a href="http://schema.org/subjectOf">subjectOf</a> to a <a href="http://schema.org/CreativeWork">CreativeWork</a> (or <a href="https://schema.org/WebPage">WebPage</a>) that mentions this file or its content (but also other resources)</li> <li><a href="http://schema.org/mainEntityOfPage">mainEntityOfPage</a> to a <a href="http://schema.org/CreativeWork">CreativeWork</a> (or <a href="https://schema.org/WebPage">WebPage</a>) that primarily describes this file (or its content)</li> </ul> <div class="sourceCode" id="cb13"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb13-2"><a href="#cb13-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"survey-responses-2019.csv"</span><span class="fu">,</span></span> <span id="cb13-3"><a href="#cb13-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb13-4"><a href="#cb13-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Survey responses"</span><span class="fu">,</span></span> <span id="cb13-5"><a href="#cb13-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"text/csv"</span><span class="fu">,</span></span> <span id="cb13-6"><a href="#cb13-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"http://example.com/downloads/2019/survey-responses-2019.csv"</span><span class="fu">,</span></span> <span id="cb13-7"><a href="#cb13-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"subjectOf"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/reports/2019/annual-survey.html"</span><span class="fu">}</span></span> <span id="cb13-8"><a href="#cb13-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb13-9"><a href="#cb13-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb13-10"><a href="#cb13-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://zenodo.org/record/3541888/files/ro-crate-1.0.0.pdf"</span><span class="fu">,</span></span> <span id="cb13-11"><a href="#cb13-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb13-12"><a href="#cb13-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate specification"</span><span class="fu">,</span></span> <span id="cb13-13"><a href="#cb13-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"application/pdf"</span><span class="fu">,</span></span> <span id="cb13-14"><a href="#cb13-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.3541888"</span><span class="fu">,</span></span> <span id="cb13-15"><a href="#cb13-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://zenodo.org/record/3541888"</span></span> <span id="cb13-16"><a href="#cb13-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> </section> <section id="directories-on-the-web-dataset-distributions" class="level3" data-number="7.3.2"> <h3 data-number="7.3.2"><span class="header-section-number">7.3.2</span> Directories on the web; dataset distributions</h3> <p>A <em>Directory File Entry</em> or <a href="http://schema.org/Dataset">Dataset</a> identifier expressed as an absolute URL on the web can be harder to download than a <a href="http://schema.org/MediaObject">File</a> because it consists of multiple resources. It is RECOMMENDED that such directories have a complete listing of their content in <a href="http://schema.org/hasPart">hasPart</a>, enabling download traversal.</p> <p>Alternatively, a common mechanism to provide downloads of a reasonably sized directory is as an archive file in formats such as <code>.zip</code> or <code>.tar.gz</code>, described as a <a href="http://schema.org/DataDownload">DataDownload</a>.</p> <div class="sourceCode" id="cb14"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb14-2"><a href="#cb14-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"lots_of_little_files/"</span><span class="fu">,</span></span> <span id="cb14-3"><a href="#cb14-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb14-4"><a href="#cb14-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Too many files"</span><span class="fu">,</span></span> <span id="cb14-5"><a href="#cb14-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"This directory contains many small files, that we're not going to describe in detail."</span><span class="fu">,</span></span> <span id="cb14-6"><a href="#cb14-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"distribution"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/downloads/2020/lots_of_little_files.zip"</span><span class="fu">}</span></span> <span id="cb14-7"><a href="#cb14-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb14-8"><a href="#cb14-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb14-9"><a href="#cb14-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/downloads/2020/lots_of_little_files.zip"</span><span class="fu">,</span></span> <span id="cb14-10"><a href="#cb14-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"DataDownload"</span><span class="fu">,</span></span> <span id="cb14-11"><a href="#cb14-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"application/zip"</span><span class="fu">,</span></span> <span id="cb14-12"><a href="#cb14-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"82818928"</span></span> <span id="cb14-13"><a href="#cb14-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <p>Similarly, the <em>RO-Crate root</em> entity may also provide a <a href="http://schema.org/distribution">distribution</a> URL, in which case the download SHOULD be an archive that contains the <em>RO-Crate Metadata file</em>.</p> <p>In all cases, consumers should be aware that a <code>DataDownload</code> is a snapshot that may not reflect the current state of the <code>Dataset</code> or RO-Crate.</p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="contextual-entities"> </div> </section> </section> </section> <section id="representing-contextual-entities" class="level1" data-number="8"> <h1 data-number="8"><span class="header-section-number">8</span> Representing Contextual Entities</h1> <p>The RO-Crate SHOULD contain additional information about <em>Contextual Entities</em> for the use of both humans (in <code>ro-crate-preview.html</code>) and machines (in <code>ro-crate-metadata.json</code>). This also helps to maximize the extent to which an <em>RO-Crate</em> is self-contained and self-describing, in that it reduces the need for the consumer of an RO-Crate to refer to external information which may change or become unavailable over time.</p> <section id="contextual-vs-data-entities" class="level2" data-number="8.1"> <h2 data-number="8.1"><span class="header-section-number">8.1</span> Contextual vs Data entities</h2> <!-- https://github.com/ResearchObject/ro-crate/pull/94/ START --> <p>RO-Crate distinguishes between <em>Contextual entities</em> and <em>Data entities</em>.</p> <p><strong><a href="#data-entities">Data entities</a></strong> primarily exist in their own right as a file or directory (which may be in the <em>RO-Crate Root</em> directory or downloadable by URL).</p> <p><strong>Contextual entities</strong> however primarily exist outside the digital sphere (e.g. <a href="#people">People</a>, <a href="#places">Places</a>) or are conceptual descriptions that primarily exists as metadata, like <a href="http://schema.org/GeoCoordinates">GeoCoordinates</a> and <a href="#contact-information">ContactPoint</a>.</p> <p>Some contextual entities can also be considered data entities - for instance the <a href="#licensing-access-control-and-copyright">license</a> property refers to a <a href="http://schema.org/CreativeWork">CreativeWork</a> that can reasonably be downloaded, however a license document is not usually considered as part of research outputs and would therefore typically not be included in <a href="http://schema.org/hasPart">hasPart</a> on the <a href="#root-data-entity">root data entity</a>.</p> <p>Likewise, some data entities may also be described as contextual entities, for instance a <code>File</code> that is also a <a href="http://schema.org/ScholarlyArticle">ScholarlyArticle</a>. In such cases the <em>Contextual Data Entity</em> MUST be described as a single JSON object in the RO-Crate Metadata JSON <code>@graph</code> and SHOULD list both relevant data and contextual types in a <code>@type</code> array.</p> <p>The RO-Crate Metadata JSON <code>@graph</code> MUST NOT list multiple entities with the same <code>@id</code>; behaviour of consumers of an RO-Crate encountering multiple entities with the same <code>@id</code> is undefined.</p> <!-- https://github.com/ResearchObject/ro-crate/pull/94/ END --> </section> <section id="identifiers-for-contextual-entities" class="level2" data-number="8.2"> <h2 data-number="8.2"><span class="header-section-number">8.2</span> Identifiers for contextual entities</h2> <p>A challenge can be how to assign <a href="#describing-entities-in-json-ld">identifiers for contextual entities</a>, that is deciding on their <code>@id</code> value.</p> <p>RO-Crate recommend that if an existing permalink (e.g. <code>https://orcid.org/0000-0002-1825-0097</code>) or other absolute URI (e.g. <code>https://en.wikipedia.org/wiki/Josiah_S._Carberry</code>) is reasonably unique for that entity, that URI should be used as identifier for the contextual entity in preference of an identifier local to the RO-Crate (e.g. <code>#josiah</code> or <code>#0fa587c6-4580-4ece-a5df-69af3c5590e3</code>).</p> <p>Care should be taken to not describe two conceptually different contextual entities with the same identifier - e.g. if <code>https://en.wikipedia.org/wiki/Josiah_S._Carberry</code> is a <a href="http://schema.org/Person">Person</a> it should not also be a <a href="http://schema.org/CreativeWork">CreativeWork</a> (although this example is a fictional person!).</p> <p>Where a related URL exist that may not be unique enough to serve as identifier, it can instead be added to a contextual entity using the property <a href="http://schema.org/url">url</a>.</p> <p>See the <a href="#describing-entities-in-json-ld">appendix on JSON-LD identifiers</a> for details.</p> </section> <section id="people" class="level2" data-number="8.3"> <h2 data-number="8.3"><span class="header-section-number">8.3</span> People</h2> <p>A core principle of Linked data is to use URIs to identify important entities such as people. The following is the minimum recommended way of representing a <a href="http://schema.org/author">author</a> of a RO-Crate. The <a href="http://schema.org/author">author</a> property MAY also be applied to a directory (<a href="http://schema.org/Dataset">Dataset</a>), a <a href="http://schema.org/MediaObject">File</a> or other <a href="http://schema.org/CreativeWork">CreativeWork</a> entities.</p> <div class="sourceCode" id="cb15"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-8367-6908"</span><span class="fu">}</span></span> <span id="cb15-5"><a href="#cb15-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span> <span id="cb15-6"><a href="#cb15-6" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb15-7"><a href="#cb15-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-8367-6908"</span><span class="fu">,</span></span> <span id="cb15-8"><a href="#cb15-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb15-9"><a href="#cb15-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"affiliation"</span><span class="fu">:</span> <span class="st">"University of Technology Sydney"</span><span class="fu">,</span></span> <span id="cb15-10"><a href="#cb15-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"J. Xuan"</span></span> <span id="cb15-11"><a href="#cb15-11" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>This uses an <a href="https://orcid.org">ORCID</a> to unambiguously identify an author, represented as a <em>Contextual Entity</em> of type <a href="http://schema.org/Person">Person</a>.</p> <p>Note the string <em>value</em> for the organizational affiliation. This SHOULD be improved by also providing a <em>Contextual Entity</em> for the organization (see example below).</p> </section> <section id="organizations-as-values" class="level2" data-number="8.4"> <h2 data-number="8.4"><span class="header-section-number">8.4</span> Organizations as values</h2> <p>An <a href="http://schema.org/Organization">Organization</a> SHOULD be the value for the <a href="http://schema.org/publisher">publisher</a> property of a <a href="http://schema.org/Dataset">Dataset</a> or <a href="http://schema.org/ScholarlyArticle">ScholarlyArticle</a> or <a href="http://schema.org/affiliation">affiliation</a> property of a <a href="http://schema.org/Person">Person</a>.</p> <div class="sourceCode" id="cb16"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb16-2"><a href="#cb16-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb16-3"><a href="#cb16-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb16-4"><a href="#cb16-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">}</span></span> <span id="cb16-5"><a href="#cb16-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span> <span id="cb16-6"><a href="#cb16-6" aria-hidden="true" tabindex="-1"></a></span> <span id="cb16-7"><a href="#cb16-7" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb16-8"><a href="#cb16-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb16-9"><a href="#cb16-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb16-10"><a href="#cb16-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"University of Technology Sydney"</span><span class="fu">,</span></span> <span id="cb16-11"><a href="#cb16-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span></span> <span id="cb16-12"><a href="#cb16-12" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>An <a href="http://schema.org/Organization">Organization</a> SHOULD also be used for a <a href="http://schema.org/Person">Person</a>’s <a href="http://schema.org/affiliation">affiliation</a> property.</p> <div class="sourceCode" id="cb17"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb17-3"><a href="#cb17-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb17-4"><a href="#cb17-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">},</span></span> <span id="cb17-5"><a href="#cb17-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-3545-944X"</span><span class="fu">}</span></span> <span id="cb17-6"><a href="#cb17-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb17-7"><a href="#cb17-7" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb17-8"><a href="#cb17-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb17-9"><a href="#cb17-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb17-10"><a href="#cb17-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"University of Technology Sydney"</span></span> <span id="cb17-11"><a href="#cb17-11" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb17-12"><a href="#cb17-12" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb17-13"><a href="#cb17-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-3545-944X"</span><span class="fu">,</span></span> <span id="cb17-14"><a href="#cb17-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb17-15"><a href="#cb17-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"affiliation"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">},</span></span> <span id="cb17-16"><a href="#cb17-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"email"</span><span class="fu">:</span> <span class="st">"peter.sefton@uts.edu.au"</span><span class="fu">,</span></span> <span id="cb17-17"><a href="#cb17-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Peter Sefton"</span></span> <span id="cb17-18"><a href="#cb17-18" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="contact-information" class="level2" data-number="8.5"> <h2 data-number="8.5"><span class="header-section-number">8.5</span> Contact information</h2> <p>A RO-Crate SHOULD have contact information, using a contextual entity of type <a href="http://schema.org/contactPoint">ContactPoint</a>. Note that in Schema.org <a href="http://schema.org/Dataset">Dataset</a> does not currently have the corresponding <a href="http://schema.org/contactPoint">contactPoint</a> property, so the contact point would need to be given through a <a href="http://schema.org/Person">Person</a> or <a href="http://schema.org/Organization">Organization</a> contextual entity which are related to the Dataset via a <a href="http://schema.org/author">author</a> or <a href="http://schema.org/publisher">publisher</a> property.</p> <div class="sourceCode" id="cb18"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb18-3"><a href="#cb18-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb18-4"><a href="#cb18-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-6121-5409"</span><span class="fu">}</span></span> <span id="cb18-5"><a href="#cb18-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb18-6"><a href="#cb18-6" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb18-7"><a href="#cb18-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-6121-5409"</span><span class="fu">,</span></span> <span id="cb18-8"><a href="#cb18-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb18-9"><a href="#cb18-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contactPoint"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb18-10"><a href="#cb18-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"mailto:tim.luckett@uts.edu.au"</span></span> <span id="cb18-11"><a href="#cb18-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb18-12"><a href="#cb18-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"familyName"</span><span class="fu">:</span> <span class="st">"Luckett"</span><span class="fu">,</span></span> <span id="cb18-13"><a href="#cb18-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"givenName"</span><span class="fu">:</span> <span class="st">"Tim"</span><span class="fu">,</span></span> <span id="cb18-14"><a href="#cb18-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-6121-5409"</span><span class="fu">,</span></span> <span id="cb18-15"><a href="#cb18-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Tim Luckett"</span></span> <span id="cb18-16"><a href="#cb18-16" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb18-17"><a href="#cb18-17" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb18-18"><a href="#cb18-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"mailto:tim.luckett@uts.edu.au"</span><span class="fu">,</span></span> <span id="cb18-19"><a href="#cb18-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"ContactPoint"</span><span class="fu">,</span></span> <span id="cb18-20"><a href="#cb18-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contactType"</span><span class="fu">:</span> <span class="st">"customer service"</span><span class="fu">,</span></span> <span id="cb18-21"><a href="#cb18-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"email"</span><span class="fu">:</span> <span class="st">"tim.luckett@uts.edu.au"</span><span class="fu">,</span></span> <span id="cb18-22"><a href="#cb18-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"tim.luckett@uts.edu.au"</span><span class="fu">,</span></span> <span id="cb18-23"><a href="#cb18-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-6121-5409"</span></span> <span id="cb18-24"><a href="#cb18-24" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="publications-via-citation-property" class="level2" data-number="8.6"> <h2 data-number="8.6"><span class="header-section-number">8.6</span> Publications via citation property</h2> <p>To associate a publication with a dataset the <em>RO-Crate JSON-LD</em> MUST include a URL (for example a DOI URL) as the <code>@id</code> of a publication using the <a href="http://schema.org/citation">citation</a> property.</p> <p>For example:</p> <div class="sourceCode" id="cb19"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb19-2"><a href="#cb19-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb19-3"><a href="#cb19-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb19-4"><a href="#cb19-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"citation"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.1109/TCYB.2014.2386282"</span><span class="fu">}</span></span> <span id="cb19-5"><a href="#cb19-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>The publication SHOULD be described further as an additional contextual entity of type <a href="http://schema.org/ScholarlyArticle">ScholarlyArticle</a> or <a href="http://schema.org/CreativeWork">CreativeWork</a>.</p> <div class="sourceCode" id="cb20"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb20-2"><a href="#cb20-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.1109/TCYB.2014.2386282"</span><span class="fu">,</span></span> <span id="cb20-3"><a href="#cb20-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"ScholarlyArticle"</span><span class="fu">,</span></span> <span id="cb20-4"><a href="#cb20-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb20-5"><a href="#cb20-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb20-6"><a href="#cb20-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-8367-6908"</span></span> <span id="cb20-7"><a href="#cb20-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb20-8"><a href="#cb20-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb20-9"><a href="#cb20-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0003-0690-4732"</span></span> <span id="cb20-10"><a href="#cb20-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb20-11"><a href="#cb20-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb20-12"><a href="#cb20-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0003-3960-0583"</span></span> <span id="cb20-13"><a href="#cb20-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb20-14"><a href="#cb20-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb20-15"><a href="#cb20-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-6953-3986"</span></span> <span id="cb20-16"><a href="#cb20-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb20-17"><a href="#cb20-17" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb20-18"><a href="#cb20-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.1109/TCYB.2014.2386282"</span><span class="fu">,</span></span> <span id="cb20-19"><a href="#cb20-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"issn"</span><span class="fu">:</span> <span class="st">"2168-2267"</span><span class="fu">,</span></span> <span id="cb20-20"><a href="#cb20-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Topic Model for Graph Mining"</span><span class="fu">,</span></span> <span id="cb20-21"><a href="#cb20-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"journal"</span><span class="fu">:</span> <span class="st">"IEEE Transactions on Cybernetics"</span><span class="fu">,</span></span> <span id="cb20-22"><a href="#cb20-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"datePublished"</span><span class="fu">:</span> <span class="st">"2015"</span></span> <span id="cb20-23"><a href="#cb20-23" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p><a href="http://schema.org/citation">citation</a> MAY also be used with other data and contextual entities:</p> <div class="sourceCode" id="cb21"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb21-2"><a href="#cb21-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"communities-2018.csv"</span><span class="fu">,</span></span> <span id="cb21-3"><a href="#cb21-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb21-4"><a href="#cb21-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Snapshot of RO Community efforts"</span><span class="fu">,</span></span> <span id="cb21-5"><a href="#cb21-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"citation"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1313066"</span><span class="fu">},</span></span> <span id="cb21-6"><a href="#cb21-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"text/csv"</span></span> <span id="cb21-7"><a href="#cb21-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>A <a href="#data-entities">data entity</a> MAY provide a published DOI <a href="http://schema.org/identifier">identifier</a> that, compared with any related publication in <a href="http://schema.org/citation">citation</a>, primarily captures that file or dataset:</p> <div class="sourceCode" id="cb22"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb22-2"><a href="#cb22-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"figure.png"</span><span class="fu">,</span></span> <span id="cb22-3"><a href="#cb22-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"ImageObject"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb22-4"><a href="#cb22-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"XXL-CT-scan of an XXL Tyrannosaurus rex skull"</span><span class="fu">,</span></span> <span id="cb22-5"><a href="#cb22-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.3479743"</span><span class="fu">,</span></span> <span id="cb22-6"><a href="#cb22-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"citation"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://ndt.net/?id=19249"</span><span class="fu">},</span></span> <span id="cb22-7"><a href="#cb22-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"image/png"</span></span> <span id="cb22-8"><a href="#cb22-8" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="publisher" class="level2" data-number="8.7"> <h2 data-number="8.7"><span class="header-section-number">8.7</span> Publisher</h2> <p>The <a href="#root-data-entity">Root Data Entity</a> SHOULD have a <a href="http://schema.org/publisher">publisher</a> property. This SHOULD be an <a href="http://schema.org/Organization">Organization</a> though it MAY be a <a href="http://schema.org/Person">Person</a>.</p> <div class="sourceCode" id="cb23"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb23-2"><a href="#cb23-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1009240"</span><span class="fu">,</span></span> <span id="cb23-3"><a href="#cb23-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb23-4"><a href="#cb23-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Sample dataset for RO-Crate v0.2"</span><span class="fu">,</span></span> <span id="cb23-5"><a href="#cb23-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb23-6"><a href="#cb23-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span></span> <span id="cb23-7"><a href="#cb23-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb23-8"><a href="#cb23-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"temporalCoverage"</span><span class="fu">:</span> <span class="st">"2017"</span></span> <span id="cb23-9"><a href="#cb23-9" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb23-10"><a href="#cb23-10" aria-hidden="true" tabindex="-1"></a></span> <span id="cb23-11"><a href="#cb23-11" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb23-12"><a href="#cb23-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb23-13"><a href="#cb23-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb23-14"><a href="#cb23-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb23-15"><a href="#cb23-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"University of Technology Sydney"</span></span> <span id="cb23-16"><a href="#cb23-16" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span></code></pre></div> </section> <section id="funding-and-grants" class="level2" data-number="8.8"> <h2 data-number="8.8"><span class="header-section-number">8.8</span> Funding and grants</h2> <p>To associate a research project with a <a href="http://schema.org/Dataset">Dataset</a>, the <em>RO-Crate JSON-LD</em> SHOULD contain an entity for the project using type <a href="http://schema.org/Organization">Organization</a>, referenced by a <a href="http://schema.org/funder">funder</a> property. The project <code>Organization</code> SHOULD in turn reference any external <a href="http://schema.org/funder">funder</a>, either by using its URL as an <code>@id</code> or via a <em>Contextual Entity</em> describing the funder.</p> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>To make it very clear where funding is coming from, the <em>Root Data Entity</em> SHOULD also reference funders directly, as well as via a chain of references. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <div class="sourceCode" id="cb24"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb24-2"><a href="#cb24-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1009240"</span><span class="fu">,</span></span> <span id="cb24-3"><a href="#cb24-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb24-4"><a href="#cb24-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"funder"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb24-5"><a href="#cb24-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/038sjwq14"</span></span> <span id="cb24-6"><a href="#cb24-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb24-7"><a href="#cb24-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb24-8"><a href="#cb24-8" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb24-9"><a href="#cb24-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://eresearch.uts.edu.au/projects/provisioner"</span><span class="fu">,</span></span> <span id="cb24-10"><a href="#cb24-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb24-11"><a href="#cb24-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The University of Technology Sydney Provisioner project is ..."</span><span class="fu">,</span></span> <span id="cb24-12"><a href="#cb24-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"funder"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb24-13"><a href="#cb24-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb24-14"><a href="#cb24-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span></span> <span id="cb24-15"><a href="#cb24-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb24-16"><a href="#cb24-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb24-17"><a href="#cb24-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ands.org.au"</span></span> <span id="cb24-18"><a href="#cb24-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb24-19"><a href="#cb24-19" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb24-20"><a href="#cb24-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://eresearch.uts.edu.au/projects/provisioner"</span><span class="fu">,</span></span> <span id="cb24-21"><a href="#cb24-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Provisioner"</span></span> <span id="cb24-22"><a href="#cb24-22" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb24-23"><a href="#cb24-23" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb24-24"><a href="#cb24-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb24-25"><a href="#cb24-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organisation"</span><span class="fu">,</span></span> <span id="cb24-26"><a href="#cb24-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://ror.org/03f0f6041"</span><span class="fu">,</span></span> <span id="cb24-27"><a href="#cb24-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"University of Technology Sydney"</span></span> <span id="cb24-28"><a href="#cb24-28" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb24-29"><a href="#cb24-29" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb24-30"><a href="#cb24-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://ands.org.au"</span><span class="fu">,</span></span> <span id="cb24-31"><a href="#cb24-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb24-32"><a href="#cb24-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The core purpose of the Australian National Data Service (ANDS) is ..."</span><span class="fu">,</span></span> <span id="cb24-33"><a href="#cb24-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://ands.org.au"</span><span class="fu">,</span></span> <span id="cb24-34"><a href="#cb24-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Australian National Data Service"</span></span> <span id="cb24-35"><a href="#cb24-35" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span></code></pre></div> </section> <section id="licensing-access-control-and-copyright" class="level2" data-number="8.9"> <h2 data-number="8.9"><span class="header-section-number">8.9</span> Licensing, Access control and copyright</h2> <p>If a <a href="#data-entities">Data Entity</a> has a <a href="http://schema.org/license">license</a> that is different from the license on the <em>Root Data Entity</em>, the entity SHOULD have a <a href="http://schema.org/license">license</a> property referencing a <em>Contextual Entity</em> with a type <a href="http://schema.org/CreativeWork">CreativeWork</a> to describe the license. The <code>@id</code> of the license SHOULD be its URL (e.g. a Creative Commons License URL) and, when possible, a summary of the license included using the <a href="http://schema.org/description">description</a> property.</p> <p>The below <em>Data Entity</em> has a <a href="http://schema.org/copyrightHolder">copyrightHolder</a> which is different from its <a href="http://schema.org/author">author</a>. There is a reference to an <a href="http://schema.org/Organization">Organization</a> describing the copyright holder and, to give credit, a <a href="http://schema.org/sameAs">sameAs</a> relation to a web page. The <a href="http://schema.org/license">license</a> property here refers to <a href="https://creativecommons.org/licenses/by/4.0/" class="uri">https://creativecommons.org/licenses/by/4.0/</a> which is expanded in a separate contextual entity.</p> <div class="sourceCode" id="cb25"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb25-2"><a href="#cb25-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"SciDataCon Presentations/AAA_Pilot_Project_Abstract.html"</span><span class="fu">,</span></span> <span id="cb25-3"><a href="#cb25-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb25-4"><a href="#cb25-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"17085"</span><span class="fu">,</span></span> <span id="cb25-5"><a href="#cb25-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"copyrightHolder"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb25-6"><a href="#cb25-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.idrc.ca/"</span></span> <span id="cb25-7"><a href="#cb25-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb25-8"><a href="#cb25-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb25-9"><a href="#cb25-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-0068-716X"</span></span> <span id="cb25-10"><a href="#cb25-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb25-11"><a href="#cb25-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Abstract for the Pilot Project initial findings"</span><span class="fu">,</span></span> <span id="cb25-12"><a href="#cb25-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"text/html"</span><span class="fu">,</span></span> <span id="cb25-13"><a href="#cb25-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb25-14"><a href="#cb25-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by/4.0/"</span></span> <span id="cb25-15"><a href="#cb25-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb25-16"><a href="#cb25-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"sameAs"</span><span class="fu">:</span> <span class="st">"https://www.scidatacon.org/2016/sessions/56/paper/265/"</span></span> <span id="cb25-17"><a href="#cb25-17" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb25-18"><a href="#cb25-18" aria-hidden="true" tabindex="-1"></a></span> <span id="cb25-19"><a href="#cb25-19" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb25-20"><a href="#cb25-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by/4.0/"</span><span class="fu">,</span></span> <span id="cb25-21"><a href="#cb25-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb25-22"><a href="#cb25-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"CC BY 4.0"</span><span class="fu">,</span></span> <span id="cb25-23"><a href="#cb25-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Creative Commons Attribution 4.0 International License"</span></span> <span id="cb25-24"><a href="#cb25-24" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb25-25"><a href="#cb25-25" aria-hidden="true" tabindex="-1"></a></span> <span id="cb25-26"><a href="#cb25-26" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb25-27"><a href="#cb25-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-0068-716X"</span><span class="fu">,</span></span> <span id="cb25-28"><a href="#cb25-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb25-29"><a href="#cb25-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-0068-716X"</span><span class="fu">,</span></span> <span id="cb25-30"><a href="#cb25-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Cameron Neylon"</span></span> <span id="cb25-31"><a href="#cb25-31" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb25-32"><a href="#cb25-32" aria-hidden="true" tabindex="-1"></a></span> <span id="cb25-33"><a href="#cb25-33" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb25-34"><a href="#cb25-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.idrc.ca/"</span><span class="fu">,</span></span> <span id="cb25-35"><a href="#cb25-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb25-36"><a href="#cb25-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Canadian Frown Corporation and funder of development research"</span><span class="fu">,</span></span> <span id="cb25-37"><a href="#cb25-37" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"IDRC"</span><span class="fu">,</span></span> <span id="cb25-38"><a href="#cb25-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"International Development Research Center"</span></span> <span id="cb25-39"><a href="#cb25-39" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <section id="metadata-license" class="level3" data-number="8.9.1"> <h3 data-number="8.9.1"><span class="header-section-number">8.9.1</span> Metadata license</h3> <p>In some cases the license of the <a href="#root-data-entity">RO-Crate metadata</a> (the JSON-LD statements in the <em>RO-Crate Metadata File Descriptor</em>) is different from the license on the <a href="#root-data-entity">Root Data Entity</a> and its content (<em>data entities</em> indicated by <a href="http://schema.org/hasPart">hasPart</a>).</p> <p>For instance, a common pattern for repositories is to license metadata as <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 Public Domain Dedication</a>, while data is licensed as <a href="https://creativecommons.org/licenses/by/4.0/">CC-BY</a> or similar. This pattern allow metadata to be combined freely (e.g. the <a href="https://www.datacite.org/">DataCite</a> knowledge graph), while redistribution of data files would require explicit attribution and statement of their license.</p> <p>To express the metadata license is different from the <em>Root Data Entity</em>, expand the <em>RO-Crate Metadata File Descriptor</em> to include <code>license</code>:</p> <div class="sourceCode" id="cb26"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb26-2"><a href="#cb26-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb26-3"><a href="#cb26-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb26-4"><a href="#cb26-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb26-5"><a href="#cb26-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">},</span></span> <span id="cb26-6"><a href="#cb26-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb26-7"><a href="#cb26-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/publicdomain/zero/1.0/"</span></span> <span id="cb26-8"><a href="#cb26-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb26-9"><a href="#cb26-9" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb26-10"><a href="#cb26-10" aria-hidden="true" tabindex="-1"></a></span> <span id="cb26-11"><a href="#cb26-11" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb26-12"><a href="#cb26-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb26-13"><a href="#cb26-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb26-14"><a href="#cb26-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb26-15"><a href="#cb26-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by/4.0/"</span></span> <span id="cb26-16"><a href="#cb26-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb26-17"><a href="#cb26-17" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>If no explicit <code>license</code> is expressed on the <em>RO-Crate Metadata File Descriptor</em>, the <code>license</code> expressed on the <em>Root Data Entity</em> apply also on the RO-Crate metadata.</p> <!-- TODO: This got a bit to complicated, commented out for 1.0 ## License of contextual entity metadata In some cases, the JSON-LD metadata for some entities have been imported under a different (possibly more restrictive) license than the license of the _RO-Crate Metadata File Descriptor_ overall. For this the property [sdLicense] ("structured data license") MAY be used on the affected data entities or contextual entities. In this case it is RECOMMENDED to use [sdPublisher] ("structured data publisher") for attribution of the imported metadata: ```json { "@id": "./", "@type": "Dataset", "license": { "@id": "https://www.gnu.org/licenses/gpl-3.0" }, "contentLocation": { "@id": "http://sws.geonames.org/8152662/" } }, { "@id": "http://sws.geonames.org/8152662/", "@type": "Place", "sdLicense": { "@id": "https://creativecommons.org/licenses/by/4.0/" }, "sdPublisher": { "@id": "http://www.geonames.org" }, "http://www.geonames.org/ontology#countryCode": "AU", "http://www.geonames.org/ontology#wikipediaArticle": { "@id": "https://en.wikipedia.org/wiki/Catalina_Park" }, ... } <p>In the above (abridged) example, there is no explicit license on the <em>RO-Crate Metadata File Description</em>, so the <em>Root Data Entity</em> license [GPL 3.0] would apply to RO-Crate JSON-LD statements, except for the statements on the imported <a href="http://sws.geonames.org/8152662/" class="uri">http://sws.geonames.org/8152662/</a>, which metadata is re-distributed under license <a href="https://creativecommons.org/licenses/by/4.0/" class="uri">https://creativecommons.org/licenses/by/4.0/</a>.</p> <p>In this example the CC-BY license requires retaining “a notice that refers to this Public License” and “identification of the creator(s) of the Licensed Material”, here respected using <code>sdLicense</code> and <code>sdPublisher</code>.</p> <p>As the RO-Crate uses <em>flattened</em> JSON-LD, <code>sdLicense</code> should be expressed directly on each data/contextual entities where required.</p> <p><strong>Tip</strong>: If metadata is imported from a source licensed as [CC0 Public Domain Dedication][CC0], no <code>sdLicense</code> statement is required.</p> <p>–></p> <pre><code>Extra metadata such as Exif --------------------------- Schema.org has a generic extension mechanism for encoding arbitrary properties and values which are not available as Schema.org properties. An example of of this is the Schema.org [recommended way (see example 2)](http://schema.org/ImageObject) of including [Exif](https://en.wikipedia.org/wiki/Exif) technical image metadata. To include EXIF, or other data which can be encoded as property/value pairs, add an array of references to *Anonymous Entities* which encode each property. This example shows one property of several hundred. ``` {.json} { "@id": "pics/2017-06-11%2012.56.14.jpg", "@type": ["File", "ImageObject"], "contentSize": "5114778", "author": { "@id": "https://orcid.org/0000-0002-3545-944X" }, "description": "Depicts a fence at a disused motor racing venue with the front part of a slightly out of focus black dog in the foreground.", "encodingFormat": "image/jpeg", "exifData": [ { "@id": "#2eb90b09-a8b8-4946-805b-8cba077a7137" }, { "@id": "#c2521494-9b94-4b23-a713-6b281f540823" }, ] { "@id": "#c2521494-9b94-4b23-a713-6b281f540823", "@type": "PropertyValue", "name": "InternalSerialNumber", "value": "4102011002108002 " },</code></pre> </section> </section> <section id="places" class="level2" data-number="8.10"> <h2 data-number="8.10"><span class="header-section-number">8.10</span> Places</h2> <p>To associate a <a href="#data-entities">Data Entity</a> with a <em>Contextual Entity</em> representing a <em>geographical location or region</em> the entity SHOULD have a property of <a href="http://schema.org/contentLocation">contentLocation</a> with a value of type <a href="http://schema.org/Place">Place</a>.</p> <p>This example shows how to define a place, using a <a href="https://www.geonames.org/">geonames</a> ID:</p> <div class="sourceCode" id="cb28"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb28-2"><a href="#cb28-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">,</span></span> <span id="cb28-3"><a href="#cb28-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Place"</span><span class="fu">,</span></span> <span id="cb28-4"><a href="#cb28-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Catalina Park is a disused motor racing venue, located at Katoomba ..."</span><span class="fu">,</span></span> <span id="cb28-5"><a href="#cb28-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"geo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb28-6"><a href="#cb28-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#b4168a98-8534-4c6d-a568-64a55157b656"</span></span> <span id="cb28-7"><a href="#cb28-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb28-8"><a href="#cb28-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">,</span></span> <span id="cb28-9"><a href="#cb28-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"uri"</span><span class="fu">:</span> <span class="st">"https://www.geonames.org/8152662/catalina-park.html"</span><span class="fu">,</span></span> <span id="cb28-10"><a href="#cb28-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Catalina Park"</span></span> <span id="cb28-11"><a href="#cb28-11" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span></code></pre></div> <p><strong>Tip</strong>: To find the <code>@id</code> and <code>identifier</code> corresponding to a GeoNames HTML page like <a href="https://www.geonames.org/8152662/catalina-park.html" class="uri">https://www.geonames.org/8152662/catalina-park.html</a> click its <code>.rdf</code> button to find the identifier <a href="http://sws.geonames.org/8152662/" class="uri">http://sws.geonames.org/8152662/</a> referred from <a href="https://sws.geonames.org/8152662/about.rdf" class="uri">https://sws.geonames.org/8152662/about.rdf</a>:</p> <div class="sourceCode" id="cb29"><pre class="sourceCode xml"><code class="sourceCode xml"><span id="cb29-1"><a href="#cb29-1" aria-hidden="true" tabindex="-1"></a><span class="kw"><gn:Feature</span><span class="ot"> rdf:about=</span><span class="st">"http://sws.geonames.org/8152662/"</span><span class="kw">></span></span> <span id="cb29-2"><a href="#cb29-2" aria-hidden="true" tabindex="-1"></a><span class="co"><!--... --></span></span></code></pre></div> <p>The place has a <a href="http://schema.org/geo">geo</a> property, referencing an <em>Contextual Entity</em> of <code>@type</code> <a href="http://schema.org/GeoCoordinates">GeoCoordinates</a>:</p> <div class="sourceCode" id="cb30"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb30-2"><a href="#cb30-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#b4168a98-8534-4c6d-a568-64a55157b656"</span><span class="fu">,</span></span> <span id="cb30-3"><a href="#cb30-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"GeoCoordinates"</span><span class="fu">,</span></span> <span id="cb30-4"><a href="#cb30-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"latitude"</span><span class="fu">:</span> <span class="st">"-33.7152"</span><span class="fu">,</span></span> <span id="cb30-5"><a href="#cb30-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"longitude"</span><span class="fu">:</span> <span class="st">"150.30119"</span><span class="fu">,</span></span> <span id="cb30-6"><a href="#cb30-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Latitude: -33.7152 Longitude: 150.30119"</span></span> <span id="cb30-7"><a href="#cb30-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span></code></pre></div> <p>The <a href="http://schema.org/GeoCoordinates">GeoCoordinates</a> contextual entity SHOULD have a human readable <a href="http://schema.org/name">name</a>, which is used in generating the <code>ro-crate-preview.html</code> file.</p> <p>And the place is referenced from the <a href="http://schema.org/contentLocation">contentLocation</a> property of the dataset.</p> <div class="sourceCode" id="cb31"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb31-1"><a href="#cb31-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb31-2"><a href="#cb31-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb31-3"><a href="#cb31-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb31-4"><a href="#cb31-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"outputOf"</span><span class="fu">:</span> <span class="st">"RO-Crate"</span><span class="fu">,</span></span> <span id="cb31-5"><a href="#cb31-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contact"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb31-6"><a href="#cb31-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-3545-944X"</span></span> <span id="cb31-7"><a href="#cb31-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb31-8"><a href="#cb31-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentLocation"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb31-9"><a href="#cb31-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">,</span></span> <span id="cb31-10"><a href="#cb31-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb31-11"><a href="#cb31-11" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span> <span id="cb31-12"><a href="#cb31-12" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb31-13"><a href="#cb31-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">,</span></span> <span id="cb31-14"><a href="#cb31-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Catalina Park"</span><span class="fu">,</span></span> <span id="cb31-15"><a href="#cb31-15" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p><a href="http://schema.org/Place">Place</a> MAY use any of the <a href="http://schema.org/geo">resources available in Schema.org</a> to describe places. Future profiles of RO-Crate may mandate the use of a subset of these. Any directory or file or <em>Contextual Entity</em> may be geo-located. For example this file:</p> <div class="sourceCode" id="cb32"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb32-2"><a href="#cb32-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"pics/19093074_10155469333581584_5707039334816454031_o.jpg"</span><span class="fu">,</span></span> <span id="cb32-3"><a href="#cb32-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb32-4"><a href="#cb32-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentLocation"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb32-5"><a href="#cb32-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span></span> <span id="cb32-6"><a href="#cb32-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb32-7"><a href="#cb32-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentSize"</span><span class="fu">:</span> <span class="st">"132765"</span><span class="fu">,</span></span> <span id="cb32-8"><a href="#cb32-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb32-9"><a href="#cb32-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-3545-944X"</span></span> <span id="cb32-10"><a href="#cb32-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span></code></pre></div> </section> <section id="subjects--keywords" class="level2" data-number="8.11"> <h2 data-number="8.11"><span class="header-section-number">8.11</span> Subjects & keywords</h2> <p>Subject properties (equivalent to a Dublin Core Subject) on the <a href="#root-data-entity">root data entity</a> or a <a href="#data-entities">data entity</a> MUST use the <a href="http://schema.org/about">about</a> property.</p> <p>Keyword properties MUST use <a href="http://schema.org/keywords">keywords</a>. Note that by Schema.org convention, keywords are given as a single JSON string, with individual keywords separated by commas.</p> <div class="sourceCode" id="cb33"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb33-2"><a href="#cb33-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"keywords"</span><span class="fu">:</span> <span class="st">"Gibraltar, Spain, British Overseas Territory, city, map"</span><span class="fu">,</span></span> <span id="cb33-3"><a href="#cb33-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://dbpedia.org/resource/Gibraltar"</span> <span class="fu">},</span></span> <span id="cb33-4"><a href="#cb33-4" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="time" class="level2" data-number="8.12"> <h2 data-number="8.12"><span class="header-section-number">8.12</span> Time</h2> <p>To describe the <em>time period</em> which a RO-Crate <a href="#data-entities">Data Entity</a> (or the <a href="#root-data-entity">root data entity</a>) is <em>about</em>, use <a href="http://schema.org/temporalCoverage">temporalCoverage</a>:</p> <div class="sourceCode" id="cb34"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb34-2"><a href="#cb34-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"photos/"</span><span class="fu">,</span></span> <span id="cb34-3"><a href="#cb34-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb34-4"><a href="#cb34-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Photos of Gibraltar from 1950 till 1975"</span><span class="fu">,</span></span> <span id="cb34-5"><a href="#cb34-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://dbpedia.org/resource/Gibraltar"</span><span class="fu">},</span></span> <span id="cb34-6"><a href="#cb34-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"temporalCoverage"</span><span class="fu">:</span> <span class="st">"1950/1975"</span></span> <span id="cb34-7"><a href="#cb34-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="thumbnails" class="level2" data-number="8.13"> <h2 data-number="8.13"><span class="header-section-number">8.13</span> Thumbnails</h2> <p>A <a href="http://schema.org/MediaObject">File</a> or any other entity MAY have a <a href="http://schema.org/thumbnail">thumbnail</a> property which references another file.</p> <p>For example, the below <a href="https://pcdm.org/2016/04/18/models#Object">RepositoryObject</a> is related to four files which are all versions of the same image (via <a href="https://pcdm.org/2016/04/18/models#hasFile">hasFile</a>) one of which is a thumbnail. The thumbnail MUST be included in the RO-Crate.</p> <p>If <a href="http://schema.org/thumbnail">thumbnail</a>s are incidental to the data set, they need not be referenced by <a href="http://schema.org/hasPart">hasPart</a> or <a href="https://pcdm.org/2016/04/18/models#hasFile">hasFile</a> relationships. but must be in the BagIt manifest if in a <em>Bagged RO-Crate</em>.</p> <div class="sourceCode" id="cb35"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb35-2"><a href="#cb35-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/383"</span><span class="fu">,</span></span> <span id="cb35-3"><a href="#cb35-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-4"><a href="#cb35-4" aria-hidden="true" tabindex="-1"></a> <span class="st">"RepositoryObject"</span><span class="ot">,</span></span> <span id="cb35-5"><a href="#cb35-5" aria-hidden="true" tabindex="-1"></a> <span class="st">"ImageObject"</span></span> <span id="cb35-6"><a href="#cb35-6" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-7"><a href="#cb35-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-8"><a href="#cb35-8" aria-hidden="true" tabindex="-1"></a> <span class="st">"ftf_photo_stapleton1"</span></span> <span id="cb35-9"><a href="#cb35-9" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-10"><a href="#cb35-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"interviewee"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-11"><a href="#cb35-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-12"><a href="#cb35-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/595"</span><span class="fu">,</span></span> <span id="cb35-13"><a href="#cb35-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb35-14"><a href="#cb35-14" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-15"><a href="#cb35-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-16"><a href="#cb35-16" aria-hidden="true" tabindex="-1"></a> <span class="st">"Photo of Eugenie Stapleton inside her home"</span></span> <span id="cb35-17"><a href="#cb35-17" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-18"><a href="#cb35-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-19"><a href="#cb35-19" aria-hidden="true" tabindex="-1"></a> <span class="st">"Content in the Western Sydney Women's Oral History Project: From farms to freeways collection is licensed under a Creative Commons CC BY 3.0 AU licence (https://creativecommons.org/licenses/by/3.0/au/)."</span></span> <span id="cb35-20"><a href="#cb35-20" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-21"><a href="#cb35-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-22"><a href="#cb35-22" aria-hidden="true" tabindex="-1"></a> <span class="st">"University of Western Sydney"</span></span> <span id="cb35-23"><a href="#cb35-23" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-24"><a href="#cb35-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasFile"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-25"><a href="#cb35-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-26"><a href="#cb35-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/383/original_c0f1189ec13ca936e8f556161663d4ba.jpg"</span></span> <span id="cb35-27"><a href="#cb35-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb35-28"><a href="#cb35-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-29"><a href="#cb35-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/383/fullsize_c0f1189ec13ca936e8f556161663d4ba.jpg"</span></span> <span id="cb35-30"><a href="#cb35-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb35-31"><a href="#cb35-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-32"><a href="#cb35-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/383/thumbnail_c0f1189ec13ca936e8f556161663d4ba.jpg"</span></span> <span id="cb35-33"><a href="#cb35-33" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb35-34"><a href="#cb35-34" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-35"><a href="#cb35-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/383/square_thumbnail_c0f1189ec13ca936e8f556161663d4ba.jpg"</span></span> <span id="cb35-36"><a href="#cb35-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb35-37"><a href="#cb35-37" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-38"><a href="#cb35-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"thumbnail"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-39"><a href="#cb35-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb35-40"><a href="#cb35-40" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/383/thumbnail_c0f1189ec13ca936e8f556161663d4ba.jpg"</span></span> <span id="cb35-41"><a href="#cb35-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb35-42"><a href="#cb35-42" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-43"><a href="#cb35-43" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-44"><a href="#cb35-44" aria-hidden="true" tabindex="-1"></a> <span class="st">"Photo of Eugenie Stapleton 1"</span></span> <span id="cb35-45"><a href="#cb35-45" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-46"><a href="#cb35-46" aria-hidden="true" tabindex="-1"></a> <span class="dt">"copyrightHolder"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-47"><a href="#cb35-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://westernsydney.edu.au"</span><span class="fu">}</span></span> <span id="cb35-48"><a href="#cb35-48" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb35-49"><a href="#cb35-49" aria-hidden="true" tabindex="-1"></a> <span class="dt">"copyright"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb35-50"><a href="#cb35-50" aria-hidden="true" tabindex="-1"></a> <span class="st">"Copyright University of Western Sydney 2015"</span></span> <span id="cb35-51"><a href="#cb35-51" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb35-52"><a href="#cb35-52" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb35-53"><a href="#cb35-53" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb35-54"><a href="#cb35-54" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb35-55"><a href="#cb35-55" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/384/original_2ebbe681aa6ec138776343974ce8a3dd.jpg"</span></span> <span id="cb35-56"><a href="#cb35-56" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb35-57"><a href="#cb35-57" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb35-58"><a href="#cb35-58" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb35-59"><a href="#cb35-59" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/384/fullsize_2ebbe681aa6ec138776343974ce8a3dd.jpg"</span></span> <span id="cb35-60"><a href="#cb35-60" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb35-61"><a href="#cb35-61" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb35-62"><a href="#cb35-62" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb35-63"><a href="#cb35-63" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/384/thumbnail_2ebbe681aa6ec138776343974ce8a3dd.jpg"</span></span> <span id="cb35-64"><a href="#cb35-64" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb35-65"><a href="#cb35-65" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb35-66"><a href="#cb35-66" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb35-67"><a href="#cb35-67" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"files/384/square_thumbnail_2ebbe681aa6ec138776343974ce8a3dd.jpg"</span></span> <span id="cb35-68"><a href="#cb35-68" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="provenance"> </div> </section> </section> <section id="detailing-provenance-of-entities" class="level1" data-number="9"> <h1 data-number="9"><span class="header-section-number">9</span> Detailing provenance of entities</h1> <section id="equipment-used-to-create-files" class="level2" data-number="9.1"> <h2 data-number="9.1"><span class="header-section-number">9.1</span> Equipment used to create files</h2> <p>To specify which <strong>equipment</strong> was used to create or update a <a href="#data-entities">Data Entity</a>, the <em>RO-Crate JSON-LD</em> SHOULD have a <em>Context Entity</em> for each item of equipment which SHOULD be of <code>@type</code> <a href="http://schema.org/IndividualProduct">IndividualProduct</a>. The entity SHOULD have a serial number, manufacturer that identifies it as completely as possible. In this case the equipment is a bespoke machine. The equipment SHOULD be described on a web page, and the address of the description SHOULD be used as its <code>@id</code>.</p> <div class="sourceCode" id="cb36"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://confluence.csiro.au/display/ASL/Hovermap"</span><span class="fu">,</span></span> <span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"IndividualProduct"</span><span class="fu">,</span></span> <span id="cb36-4"><a href="#cb36-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The CSIRO bentwing is an unmanned aerial vehicle (UAV, commonly known as a drone) with a LIDAR ... "</span><span class="fu">,</span></span> <span id="cb36-5"><a href="#cb36-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://confluence.csiro.au/display/ASL/Hovermap"</span><span class="fu">,</span></span> <span id="cb36-6"><a href="#cb36-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Bentwing"</span></span> <span id="cb36-7"><a href="#cb36-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Uses <a href="http://schema.org/CreateAction">CreateAction</a> and <a href="http://schema.org/UpdateAction">UpdateAction</a> type to model the contributions of <em>Context Entities</em> of type <a href="http://schema.org/Person">Person</a> or <a href="http://schema.org/Organization">Organization</a> in the creation of files.</p> <p>In this example the CreateAction has a human <a href="http://schema.org/agent">agent</a>, the object is a Place (a cave) and the Hovermap drone is the <a href="http://schema.org/instrument">instrument</a> used in the file creation event.</p> <div class="sourceCode" id="cb37"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#DataCapture_wcc02"</span><span class="fu">,</span></span> <span id="cb37-3"><a href="#cb37-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreateAction"</span><span class="fu">,</span></span> <span id="cb37-4"><a href="#cb37-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb37-5"><a href="#cb37-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-1672-552X"</span></span> <span id="cb37-6"><a href="#cb37-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb37-7"><a href="#cb37-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb37-8"><a href="#cb37-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://confluence.csiro.au/display/ASL/Hovermap"</span></span> <span id="cb37-9"><a href="#cb37-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb37-10"><a href="#cb37-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb37-11"><a href="#cb37-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#victoria_arch"</span></span> <span id="cb37-12"><a href="#cb37-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb37-13"><a href="#cb37-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"result"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb37-14"><a href="#cb37-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb37-15"><a href="#cb37-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"wcc02_arch.laz"</span></span> <span id="cb37-16"><a href="#cb37-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb37-17"><a href="#cb37-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb37-18"><a href="#cb37-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"wcc02_arch_traj.txt"</span></span> <span id="cb37-19"><a href="#cb37-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb37-20"><a href="#cb37-20" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb37-21"><a href="#cb37-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb37-22"><a href="#cb37-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb37-23"><a href="#cb37-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#victoria_arch"</span><span class="fu">,</span></span> <span id="cb37-24"><a href="#cb37-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Place"</span><span class="fu">,</span></span> <span id="cb37-25"><a href="#cb37-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"address"</span><span class="fu">:</span> <span class="st">"Wombeyan Caves, NSW 2580"</span><span class="fu">,</span></span> <span id="cb37-26"><a href="#cb37-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Victoria Arch"</span></span> <span id="cb37-27"><a href="#cb37-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> </section> <section id="software-used-to-create-files" class="level2" data-number="9.2"> <h2 data-number="9.2"><span class="header-section-number">9.2</span> Software used to create files</h2> <p>To specify which software was used to create or update a file, the software application SHOULD be represented with an entity of type <a href="http://schema.org/SoftwareApplication">SoftwareApplication</a>, with a <a href="http://schema.org/version">version</a> property, e.g. from <code>tool --version</code>.</p> <p>For example:</p> <div class="sourceCode" id="cb38"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb38-1"><a href="#cb38-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb38-2"><a href="#cb38-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.imagemagick.org/"</span><span class="fu">,</span></span> <span id="cb38-3"><a href="#cb38-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"SoftwareApplication"</span><span class="fu">,</span></span> <span id="cb38-4"><a href="#cb38-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://www.imagemagick.org/"</span><span class="fu">,</span></span> <span id="cb38-5"><a href="#cb38-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"ImageMagick"</span><span class="fu">,</span></span> <span id="cb38-6"><a href="#cb38-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"version"</span><span class="fu">:</span> <span class="st">"ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org"</span></span> <span id="cb38-7"><a href="#cb38-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>The software SHOULD be associated with the <a href="s">File</a> (or other <a href="#data-entities">data entities</a>) it created as an <a href="http://schema.org/instrument">instrument</a> of a <a href="http://schema.org/CreateAction">CreateAction</a>, with the <a href="http://schema.org/MediaObject">File</a> referenced by a <a href="http://schema.org/result">result</a> property. Any input files SHOULD be referenced by the <a href="http://schema.org/object">object</a> property.</p> <p>In the below example, an image with the <code>@id</code> of <code>pics/2017-06-11%2012.56.14.jpg</code> was transformed into an new image <code>pics/sepia_fence.jpg</code> using the <em>ImageMagick</em> software application as “instrument”. Actions MAY have human-readable names, which MAY be machine generated for use at scale.</p> <div class="sourceCode" id="cb39"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb39-1"><a href="#cb39-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb39-2"><a href="#cb39-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#Photo_Capture_1"</span><span class="fu">,</span></span> <span id="cb39-3"><a href="#cb39-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreateAction"</span><span class="fu">,</span></span> <span id="cb39-4"><a href="#cb39-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb39-5"><a href="#cb39-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0002-3545-944X"</span></span> <span id="cb39-6"><a href="#cb39-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb39-7"><a href="#cb39-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Photo snapped on a photo walk on a misty day"</span><span class="fu">,</span></span> <span id="cb39-8"><a href="#cb39-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2017-06-11T12:56:14+10:00"</span><span class="fu">,</span></span> <span id="cb39-9"><a href="#cb39-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb39-10"><a href="#cb39-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb39-11"><a href="#cb39-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#EPL1"</span></span> <span id="cb39-12"><a href="#cb39-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb39-13"><a href="#cb39-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb39-14"><a href="#cb39-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#Panny20mm"</span></span> <span id="cb39-15"><a href="#cb39-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb39-16"><a href="#cb39-16" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb39-17"><a href="#cb39-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"result"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb39-18"><a href="#cb39-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"pics/2017-06-11%2012.56.14.jpg"</span></span> <span id="cb39-19"><a href="#cb39-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb39-20"><a href="#cb39-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span> <span id="cb39-21"><a href="#cb39-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb39-22"><a href="#cb39-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#SepiaConversion_1"</span><span class="fu">,</span></span> <span id="cb39-23"><a href="#cb39-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreateAction"</span><span class="fu">,</span></span> <span id="cb39-24"><a href="#cb39-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Convert dog image to sepia"</span><span class="fu">,</span></span> <span id="cb39-25"><a href="#cb39-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"convert -sepia-tone 80% test_data/sample/pics/2017-06-11</span><span class="ch">\\</span><span class="st"> 12.56.14.jpg test_data/sample/pics/sepia_fence.jpg"</span><span class="fu">,</span></span> <span id="cb39-26"><a href="#cb39-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2018-09-19T17:01:07+10:00"</span><span class="fu">,</span></span> <span id="cb39-27"><a href="#cb39-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb39-28"><a href="#cb39-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.imagemagick.org/"</span></span> <span id="cb39-29"><a href="#cb39-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb39-30"><a href="#cb39-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb39-31"><a href="#cb39-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"pics/2017-06-11%2012.56.14.jpg"</span></span> <span id="cb39-32"><a href="#cb39-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb39-33"><a href="#cb39-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"result"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb39-34"><a href="#cb39-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"pics/sepia_fence.jpg"</span></span> <span id="cb39-35"><a href="#cb39-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb39-36"><a href="#cb39-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="er">,</span></span></code></pre></div> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>If representing command lines, double escape <code>\\</code> so that JSON preserves the <code>\</code> character. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>If multiple <a href="http://schema.org/SoftwareApplication">SoftwareApplication</a>s have been used in composition, such as from a script or workflow, then the <code>CreateAction</code>’s <a href="http://schema.org/instrument">instrument</a> SHOULD rather reference a <a href="http://schema.org/SoftwareSourceCode">SoftwareSourceCode</a> which can be further described as explained in the <a href="#workflows">Workflows and scripts</a> section.</p> </section> <section id="recording-changes-to-ro-crates" class="level2" data-number="9.3"> <h2 data-number="9.3"><span class="header-section-number">9.3</span> Recording changes to RO-Crates</h2> <p>To record an action which changes an entity’s metadata, or changes its state in a publication or other workflow, a <a href="http://schema.org/CreateAction">CreateAction</a> or <a href="http://schema.org/UpdateAction">UpdateAction</a> SHOULD be associated with a <a href="#data-entities">Data Entity</a> or, for the RO-Crate itself, with the <a href="#root-data-entity">root data entity</a>.</p> <p>A curation Action MUST have at least one <a href="http://schema.org/object">object</a> which associates it with either the root data entity <code>Dataset</code> or one of its components.</p> <p>An Action which creates new <em>Data entities</em> - for example, the creation of a new metadata file - SHOULD have these as <a href="http://schema.org/result">result</a>s.</p> <p>An Action SHOULD have a <a href="http://schema.org/name">name</a> and MAY have a <a href="http://schema.org/description">description</a>.</p> <p>An Action SHOULD have an <a href="http://schema.org/endTime">endTime</a>, which MUST be in <a href="https://schema.org/DateTime">ISO 8601 date format</a> and SHOULD be specified to at least the precision of a day. An Action MAY have a <a href="http://schema.org/startTime">startTime</a> meeting the same specifications.</p> <p>An Action SHOULD have a human <a href="http://schema.org/agent">agent</a> who was responsible for authorizing the action, and MAY have an <a href="http://schema.org/instrument">instrument</a> which associates the action with a particular piece of software (for example, the content management system or data catalogue through which an update was approved) which SHOULD be of <code>@type</code> SoftwareApplication.</p> <p>An Action’s status MAY be recorded in an <a href="http://schema.org/actionStatus">actionStatus</a> property. The status must be one of the values enumerated by <a href="http://schema.org/ActionStatusType">ActionStatusType</a>: <a href="http://schema.org/ActiveActionStatus">ActiveActionStatus</a>, <a href="http://schema.org/CompletedActionStatus">CompletedActionStatus</a>, <a href="http://schema.org/FailedActionStatus">FailedActionStatus</a> or <a href="http://schema.org/PotentialActionStatus">PotentialActionStatus</a>.</p> <p>An Action which has failed MAY record any error information in an <a href="http://schema.org/error">error</a> property.</p> <p><a href="http://schema.org/UpdateAction">UpdateAction</a> SHOULD only be used for actions which affect the Dataset as a whole, such as movement through a workflow.</p> <p>To record curation actions which modify a <a href="http://schema.org/MediaObject">File</a> within a Dataset - for example, by correcting or enhancing metadata - the old version of the <a href="http://schema.org/MediaObject">File</a> SHOULD be retained, and a <a href="http://schema.org/CreateAction">CreateAction</a> added which has the original version as its <a href="http://schema.org/object">object</a> and the new version as its <a href="http://schema.org/result">result</a>.</p> <div class="sourceCode" id="cb40"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb40-1"><a href="#cb40-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb40-2"><a href="#cb40-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#history-01"</span><span class="fu">,</span></span> <span id="cb40-3"><a href="#cb40-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreateAction"</span><span class="fu">,</span></span> <span id="cb40-4"><a href="#cb40-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1009240"</span> <span class="fu">},</span></span> <span id="cb40-5"><a href="#cb40-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate created"</span><span class="fu">,</span></span> <span id="cb40-6"><a href="#cb40-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2018-08-31"</span><span class="fu">,</span></span> <span id="cb40-7"><a href="#cb40-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-5152-5307"</span> <span class="fu">},</span></span> <span id="cb40-8"><a href="#cb40-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span> <span class="fu">},</span></span> <span id="cb40-9"><a href="#cb40-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"actionStatus"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://schema.org/CompletedActionStatus"</span> <span class="fu">}</span></span> <span id="cb40-10"><a href="#cb40-10" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb40-11"><a href="#cb40-11" aria-hidden="true" tabindex="-1"></a></span> <span id="cb40-12"><a href="#cb40-12" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb40-13"><a href="#cb40-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#history-02"</span><span class="fu">,</span></span> <span id="cb40-14"><a href="#cb40-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"UpdateAction"</span><span class="fu">,</span></span> <span id="cb40-15"><a href="#cb40-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1009240"</span> <span class="fu">},</span></span> <span id="cb40-16"><a href="#cb40-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate published"</span><span class="fu">,</span></span> <span id="cb40-17"><a href="#cb40-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2018-09-10"</span><span class="fu">,</span></span> <span id="cb40-18"><a href="#cb40-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-5152-5307"</span> <span class="fu">},</span></span> <span id="cb40-19"><a href="#cb40-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span> <span class="fu">},</span></span> <span id="cb40-20"><a href="#cb40-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"actionStatus"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span><span class="st">" http://schema.org/CompletedActionStatus"</span> <span class="fu">}</span></span> <span id="cb40-21"><a href="#cb40-21" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb40-22"><a href="#cb40-22" aria-hidden="true" tabindex="-1"></a></span> <span id="cb40-23"><a href="#cb40-23" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> </span> <span id="cb40-24"><a href="#cb40-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#history-03"</span><span class="fu">,</span></span> <span id="cb40-25"><a href="#cb40-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreateAction"</span><span class="fu">,</span></span> <span id="cb40-26"><a href="#cb40-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"metadata.xml.v0.1"</span> <span class="fu">},</span></span> <span id="cb40-27"><a href="#cb40-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"result"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"metadata.xml"</span> <span class="fu">},</span></span> <span id="cb40-28"><a href="#cb40-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"metadata update"</span><span class="fu">,</span></span> <span id="cb40-29"><a href="#cb40-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2018-09-12"</span><span class="fu">,</span></span> <span id="cb40-30"><a href="#cb40-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-5152-5307"</span> <span class="fu">},</span></span> <span id="cb40-31"><a href="#cb40-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span> <span class="fu">},</span></span> <span id="cb40-32"><a href="#cb40-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"actionStatus"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://schema.org/CompletedActionStatus"</span> <span class="fu">}</span></span> <span id="cb40-33"><a href="#cb40-33" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb40-34"><a href="#cb40-34" aria-hidden="true" tabindex="-1"></a></span> <span id="cb40-35"><a href="#cb40-35" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb40-36"><a href="#cb40-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#history-04"</span><span class="fu">,</span></span> <span id="cb40-37"><a href="#cb40-37" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"UpdateAction"</span><span class="fu">,</span></span> <span id="cb40-38"><a href="#cb40-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"object"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.5281/zenodo.1009240"</span> <span class="fu">},</span></span> <span id="cb40-39"><a href="#cb40-39" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RO-Crate published"</span><span class="fu">,</span></span> <span id="cb40-40"><a href="#cb40-40" aria-hidden="true" tabindex="-1"></a> <span class="dt">"endTime"</span><span class="fu">:</span> <span class="st">"2018-09-13"</span><span class="fu">,</span></span> <span id="cb40-41"><a href="#cb40-41" aria-hidden="true" tabindex="-1"></a> <span class="dt">"agent"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://orcid.org/0000-0001-5152-5307"</span> <span class="fu">},</span></span> <span id="cb40-42"><a href="#cb40-42" aria-hidden="true" tabindex="-1"></a> <span class="dt">"instrument"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span> <span class="fu">},</span></span> <span id="cb40-43"><a href="#cb40-43" aria-hidden="true" tabindex="-1"></a> <span class="dt">"actionStatus"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://schema.org/FailedActionStatus"</span> <span class="fu">},</span></span> <span id="cb40-44"><a href="#cb40-44" aria-hidden="true" tabindex="-1"></a> <span class="dt">"error"</span><span class="fu">:</span> <span class="st">"Record is already published"</span></span> <span id="cb40-45"><a href="#cb40-45" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb40-46"><a href="#cb40-46" aria-hidden="true" tabindex="-1"></a></span> <span id="cb40-47"><a href="#cb40-47" aria-hidden="true" tabindex="-1"></a></span> <span id="cb40-48"><a href="#cb40-48" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb40-49"><a href="#cb40-49" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span><span class="fu">,</span></span> <span id="cb40-50"><a href="#cb40-50" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"IndividualProduct"</span><span class="fu">,</span></span> <span id="cb40-51"><a href="#cb40-51" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Stash"</span><span class="fu">,</span></span> <span id="cb40-52"><a href="#cb40-52" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"UTS Research Data Catalogue"</span><span class="fu">,</span></span> <span id="cb40-53"><a href="#cb40-53" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"https://stash.research.uts.edu.au"</span></span> <span id="cb40-54"><a href="#cb40-54" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="digital-library-and-repository-content" class="level2" data-number="9.4"> <h2 data-number="9.4"><span class="header-section-number">9.4</span> Digital Library and Repository content</h2> <p>To describe an export from a Digital Library or repository system, RO-Crate uses the <em>Portland Common Data Model</em> (<a href="https://github.com/duraspace/pcdm/wiki">PCDM</a>).</p> <p>A <a href="#contextual-entities">Contextual Entity</a> from a repository, representing an abstract entity such as a person, or a work, or a place SHOULD have a <code>@type</code> of <a href="https://pcdm.org/2016/04/18/models#Object">RepositoryObject</a>, in addition to any other types.</p> <p>Objects MAY be grouped together in <a href="https://pcdm.org/2016/04/18/models#Collection">RepositoryCollection</a>s with <a href="https://pcdm.org/2016/04/18/models#hasMember">hasMember</a> pointing to the <a href="https://pcdm.org/2016/04/18/models#Object">RepositoryObject</a>.</p> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>The terms <code>RepositoryObject</code> and <code>RepositoryCollection</code> are renamed in RO-Crate to avoid collision between other vocabularies and the PCDM terms <code>Collection</code> and <code>Object</code>. The term <code>RepositoryFile</code> is renamed to avoid clash with RO-Crate’s <code>File</code> mapping to <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a>. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <div class="a d m o n i t i o n w a r n i n g"> <div class="line-block"><span class="smallcaps">⚠️ Warning</span></div> <div> <p>PCDM specifies that files should have only technical metadata, not descriptive metadata, which is <em>not</em> a restriction in RO-Crate. If the RO-Crate is to be imported into a strict PCDM repository, modeling of object/file relationships will be necessary. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>For example, this data is exported from an <a href="https://omeka.org">Omeka</a> repository:</p> <div class="sourceCode" id="cb41"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb41-2"><a href="#cb41-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/collections/6"</span><span class="fu">,</span></span> <span id="cb41-3"><a href="#cb41-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"RepositoryCollection"</span><span class="fu">,</span></span> <span id="cb41-4"><a href="#cb41-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"title"</span><span class="fu">:</span> <span class="st">"Project Materials"</span><span class="fu">,</span> </span> <span id="cb41-5"><a href="#cb41-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-6"><a href="#cb41-6" aria-hidden="true" tabindex="-1"></a> <span class="st">"Materials associated with the project, including fliers seeking participants, lists of sources and question outline. "</span></span> <span id="cb41-7"><a href="#cb41-7" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb41-8"><a href="#cb41-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"University of Western Sydney"</span><span class="fu">},</span></span> <span id="cb41-9"><a href="#cb41-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"rights"</span><span class="fu">:</span> <span class="st">"Copyright University of Western Sydney 2015"</span><span class="fu">,</span></span> <span id="cb41-10"><a href="#cb41-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasMember"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-11"><a href="#cb41-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb41-12"><a href="#cb41-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/166"</span></span> <span id="cb41-13"><a href="#cb41-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb41-14"><a href="#cb41-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb41-15"><a href="#cb41-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/167"</span></span> <span id="cb41-16"><a href="#cb41-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb41-17"><a href="#cb41-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb41-18"><a href="#cb41-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/168"</span></span> <span id="cb41-19"><a href="#cb41-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb41-20"><a href="#cb41-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb41-21"><a href="#cb41-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/169"</span></span> <span id="cb41-22"><a href="#cb41-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb41-23"><a href="#cb41-23" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb41-24"><a href="#cb41-24" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb41-25"><a href="#cb41-25" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb41-26"><a href="#cb41-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://omeka.uws.edu.au/farmstofreeways/api/items/166"</span><span class="fu">,</span></span> <span id="cb41-27"><a href="#cb41-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"RepositoryObject"</span><span class="fu">,</span></span> <span id="cb41-28"><a href="#cb41-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"title"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-29"><a href="#cb41-29" aria-hidden="true" tabindex="-1"></a> <span class="st">"Western Sydney Women's Oral History Project: Flier (illustrated)"</span></span> <span id="cb41-30"><a href="#cb41-30" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb41-31"><a href="#cb41-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-32"><a href="#cb41-32" aria-hidden="true" tabindex="-1"></a> <span class="st">"Flier (illustrated) seeking participants for the project."</span></span> <span id="cb41-33"><a href="#cb41-33" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb41-34"><a href="#cb41-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"publisher"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://westernsydney.edu.au"</span><span class="fu">},</span></span> <span id="cb41-35"><a href="#cb41-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"rights"</span><span class="fu">:</span> <span class="st">"Copyright University of Western Sydney 2015"</span><span class="fu">,</span></span> <span id="cb41-36"><a href="#cb41-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"originalFormat"</span><span class="fu">:</span> <span class="st">"Paper"</span><span class="fu">,</span></span> <span id="cb41-37"><a href="#cb41-37" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="st">"FTF_flier_illust"</span><span class="fu">,</span> </span> <span id="cb41-38"><a href="#cb41-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"rightsHolder"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-39"><a href="#cb41-39" aria-hidden="true" tabindex="-1"></a> <span class="st">"Western Sydney University"</span></span> <span id="cb41-40"><a href="#cb41-40" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb41-41"><a href="#cb41-41" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span> </span> <span id="cb41-42"><a href="#cb41-42" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://creativecommons.org/licenses/by/3.0/au/"</span></span> <span id="cb41-43"><a href="#cb41-43" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb41-44"><a href="#cb41-44" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasFile"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb41-45"><a href="#cb41-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb41-46"><a href="#cb41-46" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"content/166/original_eece70f73bf8979c0bcfb97065948531.pdf"</span></span> <span id="cb41-47"><a href="#cb41-47" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb41-48"><a href="#cb41-48" aria-hidden="true" tabindex="-1"></a> <span class="er">...</span></span> <span id="cb41-49"><a href="#cb41-49" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb41-50"><a href="#cb41-50" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb41-51"><a href="#cb41-51" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb41-52"><a href="#cb41-52" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb41-53"><a href="#cb41-53" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"content/166/original_eece70f73bf8979c0bcfb97065948531.pdf"</span></span> <span id="cb41-54"><a href="#cb41-54" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="workflows"> </div> </section> </section> <section id="workflows-and-scripts" class="level1" data-number="10"> <h1 data-number="10"><span class="header-section-number">10</span> Workflows and Scripts</h1> <p>Scientific workflows and scripts that were used (or can be used) to analyze or generate files contained in an RO-Crate MAY be embedded in an RO-Crate. See also the Provenance section on <a href="#software-used-to-create-files">Software Used to Create Files</a>.</p> <p><em>Workflows</em> and <em>scripts</em> SHOULD be described using <a href="#data-entities">data entities</a> of type <a href="http://schema.org/SoftwareSourceCode">SoftwareSourceCode</a>.</p> <p>The distinction between <a href="http://schema.org/SoftwareSourceCode">SoftwareSourceCode</a> and <a href="http://schema.org/SoftwareApplication">SoftwareApplication</a> for <a href="#software-used-to-create-files">software</a> is fluid, and comes down to availability and understandability. For instance, office spreadsheet applications are generally available and do not need further explanation (<code>SoftwareApplication</code>); while a Python script that is customized for a particular data analysis might be important to understand deeper and should therefore be included as <code>SoftwareSourceCode</code> in the RO-Crate dataset.</p> <section id="describing-scripts-and-workflows" class="level2" data-number="10.1"> <h2 data-number="10.1"><span class="header-section-number">10.1</span> Describing scripts and workflows</h2> <p>A script is a <em>Data Entity</em> which MUST have the following properties:</p> <ul> <li><code>@type</code> is an array with at least <code>File</code> and <code>SoftwareSourceCode</code> as values</li> <li><code>@id</code> is a File URI linking to the executable script</li> <li><code>name</code>: a human-readable <a href="http://schema.org/name">name</a> for the script.</li> </ul> <p>A workflow is a <em>Data Entity</em> which MUST have the following properties:</p> <ul> <li><code>@type</code> is an array with at least <code>File</code>, <code>SoftwareSourceCode</code> and <code>ComputationalWorkflow</code> as values</li> <li><code>@id</code> is a File URI linking to the workflow entry-point.</li> <li><code>name</code>: a human-readable <a href="http://schema.org/name">name</a> for the workflow.</li> </ul> <p>Short example describing a <em>script</em>:</p> <div class="sourceCode" id="cb42"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb42-2"><a href="#cb42-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"scripts/analyse_csv.py"</span><span class="fu">,</span></span> <span id="cb42-3"><a href="#cb42-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb42-4"><a href="#cb42-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Analyze CSV files"</span><span class="fu">,</span></span> <span id="cb42-5"><a href="#cb42-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"programmingLanguage"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.python.org/downloads/release/python-380/"</span><span class="fu">},</span></span> <span id="cb42-6"><a href="#cb42-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Short example describing a <em>workflow</em>:</p> <div class="sourceCode" id="cb43"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb43-1"><a href="#cb43-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb43-2"><a href="#cb43-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/retropath.knime"</span><span class="fu">,</span> </span> <span id="cb43-3"><a href="#cb43-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">,</span> <span class="st">"ComputationalWorkflow"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb43-4"><a href="#cb43-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#thomas"</span><span class="fu">},</span></span> <span id="cb43-5"><a href="#cb43-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RetroPath Knime workflow"</span><span class="fu">,</span></span> <span id="cb43-6"><a href="#cb43-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"Retrosynthesis workflow calculating chemical reactions"</span><span class="fu">,</span></span> <span id="cb43-7"><a href="#cb43-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://spdx.org/licenses/CC-BY-NC-SA-4.0"</span><span class="fu">},</span></span> <span id="cb43-8"><a href="#cb43-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"programmingLanguage"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#knime"</span><span class="fu">}</span></span> <span id="cb43-9"><a href="#cb43-9" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>There is no strong distinction between a <em>script</em> and a <em>workflow</em>; many computational workflows are written in script-like languages, and many scripts perform a <em>pipeline</em> of steps.</p> <p>Here are some indicators for when a script should be considered a <em>workflow</em>:</p> <ul> <li>It performs a series of steps (<em>pipeline</em>)</li> <li>The executed steps are mainly external tools or services</li> <li>The main work is performed by the steps (script is not algorithmic)</li> <li>The steps exchange data in a <em>dataflow</em>, typically file inputs/outputs</li> <li>The script has well-defined <em>inputs</em> and <em>outputs</em>, e.g. file arguments</li> </ul> <p>Here are some counter-indicators for when a script might <strong>not</strong> be a workflow:</p> <ul> <li>The script contains mainly algorithms or logic</li> <li>Data is exchanged out of bands, e.g. a SQL database</li> <li>The script relies on a particular state of the system (e.g. appends existing files)</li> <li>An interactive user interface that controls the actions</li> </ul> </section> <section id="workflow-runtime-and-programming-language" class="level2" data-number="10.2"> <h2 data-number="10.2"><span class="header-section-number">10.2</span> Workflow Runtime and Programming Language</h2> <p>Scripts written in a <em>programming language</em>, as well as workflows, generally need a <em>runtime</em>; in RO-Crate the runtime SHOULD be indicated using a liberal interpretation of <a href="http://schema.org/programmingLanguage">programmingLanguage</a>.</p> <p>Note that the language and its runtime MAY differ (e.g. different C++ compilers), but for scripts and workflows, frequently the language and runtime are essentially the same, and thus the <code>programmingLanguage</code>, implied to be a <a href="http://schema.org/ComputerLanguage">ComputerLanguage</a>, can also be described as an executable <a href="http://schema.org/SoftwareApplication">SoftwareApplication</a>:</p> <div class="sourceCode" id="cb44"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb44-2"><a href="#cb44-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"scripts/analyse_csv.py"</span><span class="fu">,</span></span> <span id="cb44-3"><a href="#cb44-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb44-4"><a href="#cb44-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Analyze CSV files"</span><span class="fu">,</span></span> <span id="cb44-5"><a href="#cb44-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"programmingLanguage"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.python.org/downloads/release/python-380/"</span><span class="fu">},</span></span> <span id="cb44-6"><a href="#cb44-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb44-7"><a href="#cb44-7" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb44-8"><a href="#cb44-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.python.org/downloads/release/python-380/"</span><span class="fu">,</span></span> <span id="cb44-9"><a href="#cb44-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"ComputerLanguage"</span><span class="ot">,</span> <span class="st">"SoftwareApplication"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb44-10"><a href="#cb44-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Python 3.8.0"</span><span class="fu">,</span></span> <span id="cb44-11"><a href="#cb44-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"version"</span><span class="fu">:</span> <span class="st">"3.8.0"</span></span> <span id="cb44-12"><a href="#cb44-12" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>A <em>contextual entity</em> representing a <a href="http://schema.org/ComputerLanguage">ComputerLanguage</a> and/or <a href="http://schema.org/SoftwareApplication">SoftwareApplication</a> MUST have a <a href="http://schema.org/name">name</a>, <a href="http://schema.org/url">url</a> and <a href="http://schema.org/version">version</a>, which should indicate a known version the workflow/script was developed or tested with. <a href="http://schema.org/alternateName">alternateName</a> MAY be provided if there is a shorter colloquial name, for instance <em>“R”</em> instead of <em>“The R Project for Statistical Computing”</em>.</p> <p>It is possible to indicate <em>steps</em> that are executed as part of an <code>ComputationalWorkflow</code> or <code>Script</code>, by using <a href="http://schema.org/hasPart">hasPart</a> to relate additional <code>SoftwareApplication</code> or nested <code>SoftwareSourceCode</code> contextual entities:</p> <div class="sourceCode" id="cb45"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb45-2"><a href="#cb45-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/analyze.cwl"</span><span class="fu">,</span> </span> <span id="cb45-3"><a href="#cb45-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">,</span> <span class="st">"ComputationalWorkflow"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb45-4"><a href="#cb45-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"CWL workflow to analyze CSV and make PNG"</span><span class="fu">,</span></span> <span id="cb45-5"><a href="#cb45-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"programmingLanguage"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/cwl/v1.1/"</span><span class="fu">},</span></span> <span id="cb45-6"><a href="#cb45-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb45-7"><a href="#cb45-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"scripts/analyse_csv.py"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb45-8"><a href="#cb45-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://www.imagemagick.org/"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb45-9"><a href="#cb45-9" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb45-10"><a href="#cb45-10" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="workflow-diagramsketch" class="level2" data-number="10.3"> <h2 data-number="10.3"><span class="header-section-number">10.3</span> Workflow diagram/sketch</h2> <p>It can be beneficial to show a diagram or sketch to explain the script/workflow. This may have been generated from a workflow management system, or drawn manually as a diagram. This diagram MAY be included from the <code>SoftwareSourceCode</code> data entity by using <code>image</code>, pointing to an <a href="http://schema.org/ImageObject">ImageObject</a> data entity which is <a href="http://schema.org/about">about</a> the <code>SoftwareSourceCode</code>:</p> <div class="sourceCode" id="cb46"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb46-2"><a href="#cb46-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.knime"</span><span class="fu">,</span> </span> <span id="cb46-3"><a href="#cb46-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">,</span> <span class="st">"ComputationalWorkflow"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb46-4"><a href="#cb46-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"RetroPath2.0 workflow"</span><span class="fu">,</span></span> <span id="cb46-5"><a href="#cb46-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"image"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.svg"</span> <span class="fu">}</span> </span> <span id="cb46-6"><a href="#cb46-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span> <span id="cb46-7"><a href="#cb46-7" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb46-8"><a href="#cb46-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.svg"</span><span class="fu">,</span></span> <span id="cb46-9"><a href="#cb46-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"ImageObject"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb46-10"><a href="#cb46-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="st">"image/svg+xml"</span><span class="fu">,</span></span> <span id="cb46-11"><a href="#cb46-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Diagram of RetroPath2.0 workflow"</span><span class="fu">,</span></span> <span id="cb46-12"><a href="#cb46-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.knime"</span><span class="fu">}</span></span> <span id="cb46-13"><a href="#cb46-13" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>The image file format SHOULD be indicated with <a href="http://schema.org/encodingFormat">encodingFormat</a> using an IANA registered <a href="https://www.iana.org/assignments/media-types">media type</a> like <code>image/svg+xml</code> or <code>image/png</code>. Additionally a reference to a <a href="https://www.nationalarchives.gov.uk/PRONOM/Default.aspx">Pronom</a> identifier SHOULD be provided, which MAY be described as an additional contextual entity to give human-readable name to the format:</p> <div class="sourceCode" id="cb47"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb47-2"><a href="#cb47-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.svg"</span><span class="fu">,</span></span> <span id="cb47-3"><a href="#cb47-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"ImageObject"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb47-4"><a href="#cb47-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"image/svg+xml"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb47-5"><a href="#cb47-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Diagram of RetroPath2.0 workflow"</span><span class="fu">,</span></span> <span id="cb47-6"><a href="#cb47-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.knime"</span><span class="fu">}</span></span> <span id="cb47-7"><a href="#cb47-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span><span class="er">,</span></span></code></pre></div> <p>A workflow diagram may still be provided even if there is no programmatic <code>SoftwareSourceCode</code> that can be executed (e.g. because the workflow was done by hand). In this case the sketch itself is a proxy for the workflow and SHOULD have an <code>about</code> property referring to the <em>RO-Crate dataset</em> as a whole (assuming the RO-Crate represents the outcome of a single workflow), or to other <a href="#data-entities">Data Entities</a> otherwise:</p> <div class="sourceCode" id="cb48"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb48-2"><a href="#cb48-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/workflow.svg"</span><span class="fu">,</span></span> <span id="cb48-3"><a href="#cb48-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"ImageObject"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb48-4"><a href="#cb48-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"image/svg+xml"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb48-5"><a href="#cb48-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Diagram of an ad hoc workflow"</span><span class="fu">,</span></span> <span id="cb48-6"><a href="#cb48-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb48-7"><a href="#cb48-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="complying-with-bioschemas-computational-workflow-profile" class="level2" data-number="10.4"> <h2 data-number="10.4"><span class="header-section-number">10.4</span> Complying with Bioschemas Computational Workflow profile</h2> <p>Data entities representing <em>workflows</em> (<code>@type: ComputationalWorkflow</code>) SHOULD comply with the Bioschemas <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/">ComputationalWorkflow profile</a>, where possible.</p> <p>When complying with this profile, the workflow data entities MUST describe these properties and their related contextual entities: <a href="http://schema.org/name">name</a>, <a href="http://schema.org/programmingLanguage">programmingLanguage</a>, <a href="http://schema.org/creator">creator</a>, <a href="http://schema.org/dateCreated">dateCreated</a>, <a href="http://schema.org/license">license</a>, <a href="http://schema.org/sdPublisher">sdPublisher</a>, <a href="http://schema.org/url">url</a>, <a href="http://schema.org/version">version</a>.</p> <p>The <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/">ComputationalWorkflow profile</a> explains the above and list additional properties that a compliant <a href="https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/">ComputationalWorkflow</a> data entity SHOULD include: <a href="http://schema.org/citation">citation</a>, <a href="http://schema.org/contributor">contributor</a>, <a href="http://schema.org/creativeWorkStatus">creativeWorkStatus</a>, <a href="http://schema.org/description">description</a>, <a href="https://github.com/schemaorg/schemaorg/pull/2618">funding</a>, <a href="http://schema.org/hasPart">hasPart</a>, <a href="http://schema.org/isBasedOn">isBasedOn</a>, <a href="http://schema.org/keywords">keywords</a>, <a href="http://schema.org/maintainer">maintainer</a>, <a href="http://schema.org/producer">producer</a>, <a href="http://schema.org/publisher">publisher</a>, <a href="http://schema.org/runtimePlatform">runtimePlatform</a>, <a href="http://schema.org/softwareRequirements">softwareRequirements</a>, <a href="http://schema.org/targetProduct">targetProduct</a></p> <p>A data entity conforming to the <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/">ComputationalWorkflow profile</a> SHOULD declare the versioned profile URI using <a href="http://purl.org/dc/terms/conformsTo">conformsTo</a>:</p> <div class="sourceCode" id="cb49"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/alignment.knime"</span><span class="fu">,</span> </span> <span id="cb49-2"><a href="#cb49-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">,</span> <span class="st">"ComputationalWorkflow"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb49-3"><a href="#cb49-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> </span> <span id="cb49-4"><a href="#cb49-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb49-5"><a href="#cb49-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">".."</span><span class="fu">:</span> <span class="st">""</span></span> <span id="cb49-6"><a href="#cb49-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <section id="describing-inputs-and-outputs" class="level3" data-number="10.4.1"> <h3 data-number="10.4.1"><span class="header-section-number">10.4.1</span> Describing inputs and outputs</h3> <p>The input and output <em>parameters</em> for a workflow or script can be given with <code>input</code> and <code>output</code> to <a href="https://bioschemas.org/types/FormalParameter/0.1-DRAFT-2020_07_21/">FormalParameter</a> contextual entities. Note that this entity usually represent a <em>potential</em> input/output value in a reusable workflow, much like <a href="https://en.wikipedia.org/wiki/Parameter_(computer_programming)">function parameter definitions</a> in general programming.</p> <p>If complying with the Bioschemas <a href="https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/">FormalParameter profile</a>, the <em>contextual entities</em> for <a href="https://bioschemas.org/types/FormalParameter/0.1-DRAFT-2020_07_21/">FormalParameter</a>, referenced by <code>input</code> or <code>output</code>, MUST describe: <a href="http://schema.org/name">name</a>, <a href="http://schema.org/additionalType">additionalType</a>, <a href="http://schema.org/encodingFormat">encodingFormat</a></p> <p>The Bioschemas <a href="https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/">FormalParameter profile</a> explains the above and lists additional properties that can be used, including <a href="http://schema.org/description">description</a>, <a href="http://schema.org/valueRequired">valueRequired</a>, <a href="http://schema.org/defaultValue">defaultValue</a> and <a href="http://schema.org/identifier">identifier</a>.</p> <p>A contextual entity conforming to the <a href="https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/">FormalParameter profile</a> SHOULD declare the versioned profile URI using <a href="http://purl.org/dc/terms/conformsTo">conformsTo</a>, e.g.:</p> <div class="sourceCode" id="cb50"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb50-1"><a href="#cb50-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb50-2"><a href="#cb50-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#36aadbd4-4a2d-4e33-83b4-0cbf6a6a8c5b"</span><span class="fu">,</span></span> <span id="cb50-3"><a href="#cb50-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"FormalParameter"</span><span class="fu">,</span></span> <span id="cb50-4"><a href="#cb50-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> </span> <span id="cb50-5"><a href="#cb50-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb50-6"><a href="#cb50-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">".."</span><span class="fu">:</span> <span class="st">""</span></span> <span id="cb50-7"><a href="#cb50-7" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p><code>input</code>, <code>output</code> and <code>FormalParameter</code> are at time of writing proposed by Bioschemas and not yet integrated in Schema.org <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> </section> <section id="complete-workflow-example" class="level2" data-number="10.5"> <h2 data-number="10.5"><span class="header-section-number">10.5</span> Complete Workflow Example</h2> <p>The below is an example of an RO-Crate complying with the <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/">Bioschemas ComputationalWorkflow profile 0.5</a>:</p> <div class="sourceCode" id="cb51"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span> </span> <span id="cb51-2"><a href="#cb51-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb51-3"><a href="#cb51-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-4"><a href="#cb51-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb51-5"><a href="#cb51-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb51-6"><a href="#cb51-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb51-7"><a href="#cb51-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb51-8"><a href="#cb51-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-9"><a href="#cb51-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-10"><a href="#cb51-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb51-11"><a href="#cb51-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb51-12"><a href="#cb51-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb51-13"><a href="#cb51-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/retropath.knime"</span> <span class="fu">}</span></span> <span id="cb51-14"><a href="#cb51-14" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb51-15"><a href="#cb51-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-16"><a href="#cb51-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-17"><a href="#cb51-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"workflow/alignment.knime"</span><span class="fu">,</span> </span> <span id="cb51-18"><a href="#cb51-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"File"</span><span class="ot">,</span> <span class="st">"SoftwareSourceCode"</span><span class="ot">,</span> <span class="st">"ComputationalWorkflow"</span><span class="ot">]</span><span class="fu">,</span></span> <span id="cb51-19"><a href="#cb51-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> </span> <span id="cb51-20"><a href="#cb51-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb51-21"><a href="#cb51-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Sequence alignment workflow"</span><span class="fu">,</span></span> <span id="cb51-22"><a href="#cb51-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"programmingLanguage"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#knime"</span><span class="fu">},</span></span> <span id="cb51-23"><a href="#cb51-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"creator"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#alice"</span><span class="fu">},</span></span> <span id="cb51-24"><a href="#cb51-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"dateCreated"</span><span class="fu">:</span> <span class="st">"2020-05-23"</span><span class="fu">,</span></span> <span id="cb51-25"><a href="#cb51-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"license"</span><span class="fu">:</span> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://spdx.org/licenses/CC-BY-NC-SA-4.0"</span><span class="fu">},</span></span> <span id="cb51-26"><a href="#cb51-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"input"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb51-27"><a href="#cb51-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#36aadbd4-4a2d-4e33-83b4-0cbf6a6a8c5b"</span><span class="fu">}</span></span> <span id="cb51-28"><a href="#cb51-28" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb51-29"><a href="#cb51-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"output"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb51-30"><a href="#cb51-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#6c703fee-6af7-4fdb-a57d-9e8bc4486044"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-31"><a href="#cb51-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#2f32b861-e43c-401f-8c42-04fd84273bdf"</span><span class="fu">}</span></span> <span id="cb51-32"><a href="#cb51-32" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb51-33"><a href="#cb51-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"sdPublisher"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#workflow-hub"</span><span class="fu">},</span></span> <span id="cb51-34"><a href="#cb51-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"http://example.com/workflows/alignment"</span><span class="fu">,</span></span> <span id="cb51-35"><a href="#cb51-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"version"</span><span class="fu">:</span> <span class="st">"0.5.0"</span></span> <span id="cb51-36"><a href="#cb51-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-37"><a href="#cb51-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-38"><a href="#cb51-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#36aadbd4-4a2d-4e33-83b4-0cbf6a6a8c5b"</span><span class="fu">,</span></span> <span id="cb51-39"><a href="#cb51-39" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"FormalParameter"</span><span class="fu">,</span></span> <span id="cb51-40"><a href="#cb51-40" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb51-41"><a href="#cb51-41" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"genome_sequence"</span><span class="fu">,</span></span> <span id="cb51-42"><a href="#cb51-42" aria-hidden="true" tabindex="-1"></a> <span class="dt">"valueRequired"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span></span> <span id="cb51-43"><a href="#cb51-43" aria-hidden="true" tabindex="-1"></a> <span class="dt">"additionalType"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/data_2977"</span><span class="fu">},</span></span> <span id="cb51-44"><a href="#cb51-44" aria-hidden="true" tabindex="-1"></a> <span class="dt">"format"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_1929"</span><span class="fu">}</span></span> <span id="cb51-45"><a href="#cb51-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-46"><a href="#cb51-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-47"><a href="#cb51-47" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#6c703fee-6af7-4fdb-a57d-9e8bc4486044"</span><span class="fu">,</span></span> <span id="cb51-48"><a href="#cb51-48" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"FormalParameter"</span><span class="fu">,</span></span> <span id="cb51-49"><a href="#cb51-49" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb51-50"><a href="#cb51-50" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"cleaned_sequence"</span><span class="fu">,</span></span> <span id="cb51-51"><a href="#cb51-51" aria-hidden="true" tabindex="-1"></a> <span class="dt">"additionalType"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/data_2977"</span><span class="fu">},</span></span> <span id="cb51-52"><a href="#cb51-52" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_2572"</span><span class="fu">}</span></span> <span id="cb51-53"><a href="#cb51-53" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-54"><a href="#cb51-54" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-55"><a href="#cb51-55" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#2f32b861-e43c-401f-8c42-04fd84273bdf"</span><span class="fu">,</span></span> <span id="cb51-56"><a href="#cb51-56" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"FormalParameter"</span><span class="fu">,</span></span> <span id="cb51-57"><a href="#cb51-57" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/"</span><span class="fu">},</span></span> <span id="cb51-58"><a href="#cb51-58" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"sequence_alignment"</span><span class="fu">,</span></span> <span id="cb51-59"><a href="#cb51-59" aria-hidden="true" tabindex="-1"></a> <span class="dt">"additionalType"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/data_1383"</span><span class="fu">},</span></span> <span id="cb51-60"><a href="#cb51-60" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_1982"</span><span class="fu">}</span></span> <span id="cb51-61"><a href="#cb51-61" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-62"><a href="#cb51-62" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-63"><a href="#cb51-63" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://spdx.org/licenses/CC-BY-NC-SA-4.0"</span><span class="fu">,</span></span> <span id="cb51-64"><a href="#cb51-64" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb51-65"><a href="#cb51-65" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Creative Commons Attribution Non Commercial Share Alike 4.0 International"</span><span class="fu">,</span></span> <span id="cb51-66"><a href="#cb51-66" aria-hidden="true" tabindex="-1"></a> <span class="dt">"alternateName"</span><span class="fu">:</span> <span class="st">"CC-BY-NC-SA-4.0"</span></span> <span id="cb51-67"><a href="#cb51-67" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-68"><a href="#cb51-68" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-69"><a href="#cb51-69" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#knime"</span><span class="fu">,</span></span> <span id="cb51-70"><a href="#cb51-70" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"ProgrammingLanguage"</span><span class="fu">,</span></span> <span id="cb51-71"><a href="#cb51-71" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"KNIME Analytics Platform"</span><span class="fu">,</span></span> <span id="cb51-72"><a href="#cb51-72" aria-hidden="true" tabindex="-1"></a> <span class="dt">"alternateName"</span><span class="fu">:</span> <span class="st">"KNIME"</span><span class="fu">,</span></span> <span id="cb51-73"><a href="#cb51-73" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://www.knime.com/whats-new-in-knime-41"</span><span class="fu">,</span></span> <span id="cb51-74"><a href="#cb51-74" aria-hidden="true" tabindex="-1"></a> <span class="dt">"version"</span><span class="fu">:</span> <span class="st">"4.1.3"</span></span> <span id="cb51-75"><a href="#cb51-75" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-76"><a href="#cb51-76" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-77"><a href="#cb51-77" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#alice"</span><span class="fu">,</span></span> <span id="cb51-78"><a href="#cb51-78" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb51-79"><a href="#cb51-79" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Alice Brown"</span></span> <span id="cb51-80"><a href="#cb51-80" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-81"><a href="#cb51-81" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-82"><a href="#cb51-82" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#workflow-hub"</span><span class="fu">,</span></span> <span id="cb51-83"><a href="#cb51-83" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Organization"</span><span class="fu">,</span></span> <span id="cb51-84"><a href="#cb51-84" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example Workflow Hub"</span><span class="fu">,</span></span> <span id="cb51-85"><a href="#cb51-85" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span><span class="st">"http://example.com/workflows/"</span></span> <span id="cb51-86"><a href="#cb51-86" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-87"><a href="#cb51-87" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-88"><a href="#cb51-88" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_1929"</span><span class="fu">,</span></span> <span id="cb51-89"><a href="#cb51-89" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span><span class="fu">,</span></span> <span id="cb51-90"><a href="#cb51-90" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"FASTA sequence format"</span></span> <span id="cb51-91"><a href="#cb51-91" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-92"><a href="#cb51-92" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-93"><a href="#cb51-93" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_1982"</span><span class="fu">,</span></span> <span id="cb51-94"><a href="#cb51-94" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span><span class="fu">,</span></span> <span id="cb51-95"><a href="#cb51-95" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"ClustalW alignment format"</span></span> <span id="cb51-96"><a href="#cb51-96" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-97"><a href="#cb51-97" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-98"><a href="#cb51-98" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_2572"</span><span class="fu">,</span></span> <span id="cb51-99"><a href="#cb51-99" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span><span class="fu">,</span></span> <span id="cb51-100"><a href="#cb51-100" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"BAM format"</span></span> <span id="cb51-101"><a href="#cb51-101" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-102"><a href="#cb51-102" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-103"><a href="#cb51-103" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/data_2977"</span><span class="fu">,</span></span> <span id="cb51-104"><a href="#cb51-104" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span><span class="fu">,</span></span> <span id="cb51-105"><a href="#cb51-105" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Nucleic acid sequence"</span></span> <span id="cb51-106"><a href="#cb51-106" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb51-107"><a href="#cb51-107" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb51-108"><a href="#cb51-108" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/data_1383"</span><span class="fu">,</span></span> <span id="cb51-109"><a href="#cb51-109" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span><span class="fu">,</span></span> <span id="cb51-110"><a href="#cb51-110" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Nucleic acid sequence alignment"</span></span> <span id="cb51-111"><a href="#cb51-111" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb51-112"><a href="#cb51-112" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb51-113"><a href="#cb51-113" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> <section id="appendixes" class="level2" data-number="10.6"> <h2 data-number="10.6"><span class="header-section-number">10.6</span> Appendixes</h2> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> </section> <section id="appendix-changelog" class="level1" data-number="11"> <h1 data-number="11"><span class="header-section-number">11</span> APPENDIX: Changelog</h1> <ul> <li><a href="https://github.com/ResearchObject/ro-crate/releases/tag/1.1.0">RO-Crate 1.1.0</a> <a href="https://w3id.org/ro/crate/1.1" class="uri">https://w3id.org/ro/crate/1.1</a> <ul> <li><strong>Note</strong>: The RO-Crate metadata file is renamed to <code>ro-crate-metadata.json</code> to facilitate use of JSON editors. <a href="https://github.com/ResearchObject/ro-crate/issues/82">#82</a> <a href="https://github.com/ResearchObject/ro-crate/issues/84">#84</a></li> <li><a href="#data-entities">Data entities</a> can reference external resources with absolute URI <a href="https://github.com/ResearchObject/ro-crate/issues/74">#74</a></li> <li>Added section on considerations for <a href="#web-based-data-entities">Web-based Data Entities</a> <a href="https://github.com/ResearchObject/ro-crate/issues/74">#74</a></li> <li>The <a href="#direct-properties-of-the-root-data-entity">root dataset</a> is no longer required to be <code>./</code> <a href="https://github.com/ResearchObject/ro-crate/issues/74">#74</a></li> <li><a href="#structure">RO-Crate Root</a> directory no longer requires payload files <a href="https://github.com/ResearchObject/ro-crate/issues/74">#74</a></li> <li><a href="#workflows">Workflows and scripts</a> section now aligned with <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/">BioSchemas ComputationalWorkflow profile</a> <a href="https://github.com/ResearchObject/ro-crate/issues/81">#81</a> <a href="https://github.com/ResearchObject/ro-crate/pull/100">#100</a></li> <li>Added section <a href="#programming-with-json-ld">Programming with JSON-LD</a> and note that <code>@type</code> might be an array <a href="https://github.com/ResearchObject/ro-crate/issues/85">#85</a></li> <li>Added new section <a href="#handling-relative-uri-references">Handling relative URI references</a> <a href="https://github.com/ResearchObject/ro-crate/issues/73">#73</a></li> <li>JSON-LD context no longer sets <code>@base: null</code> <a href="https://github.com/ResearchObject/ro-crate/issues/73">#73</a></li> <li>Added note on <a href="#encoding-file-paths">Encoding file paths</a> <a href="https://github.com/ResearchObject/ro-crate/issues/77">#77</a> <a href="https://github.com/ResearchObject/ro-crate/issues/80">#80</a></li> <li>Added section <a href="#adding-new-or-ad-hoc-vocabulary-terms">Choosing URLs for ad hoc terms</a> <a href="https://github.com/ResearchObject/ro-crate/issues/71">#71</a> <a href="https://github.com/ResearchObject/ro-crate/issues/90">#90</a></li> <li>Section <a href="#ro-crate-json-ld-media-type">RO-Crate JSON-LD Media type</a> expanded to suggest HTTP server configuration</li> <li>Update JSON-LD context to <a href="http://schema.org/version/10.0/">Schema.org 10.0</a></li> <li>Remove HTML use of <code>relatedLink</code> property in <a href="#digital-library-and-repository-content">RepositoryCollection example</a> <a href="https://github.com/ResearchObject/ro-crate/pull/91">#91</a></li> <li>Distinguish between <a href="#contextual-vs-data-entities">contextual/data entities</a> <a href="https://github.com/ResearchObject/ro-crate/pull/94">#94</a></li> <li>RO-Crate preview HTML no longer needs to “contain same information as JSON-LD” <a href="https://github.com/ResearchObject/ro-crate/issues/108">#108</a></li> <li>Change theme to <code>jekyll-rtd-theme</code> and split into multiple pages <a href="https://github.com/ResearchObject/ro-crate/pull/95">#95</a></li> <li>Fixed typos in JSON and English</li> <li><a href="#additional-metadata-standards">Additional metadata standards</a> showed wrong PCDM namespace <a href="https://github.com/ResearchObject/ro-crate/pull/112">#112</a></li> <li><a href="#publications-via-citation-property">Citation example</a> expanded 12a6754</li> <li><a href="#terminology">Terminology</a> adds property, type, entity cc10e28</li> <li>In <a href="#people">People</a> <code>author</code> can also be applied to <code>CreativeWork</code> e086b8b</li> <li><a href="#provenance">Provenance section</a> on Software-used now points to <a href="#workflows">Workflows</a> section (and vice versa) 5d89872 40de6c7</li> <li>In <a href="#jsonld">JSON-LD appendix</a> <code>@id</code> should not include <code>../</code> 74ef6f1</li> <li>Several sections reviewed to improve language and examples <a href="https://github.com/ResearchObject/ro-crate/pull/91">#91</a> <a href="https://github.com/ResearchObject/ro-crate/pull/92">#92</a> <a href="https://github.com/ResearchObject/ro-crate/pull/93">#93</a> <a href="https://github.com/ResearchObject/ro-crate/pull/94">#94</a> <a href="https://github.com/ResearchObject/ro-crate/pull/96">#96</a> <a href="https://github.com/ResearchObject/ro-crate/pull/97">#97</a> <a href="https://github.com/ResearchObject/ro-crate/pull/98">#98</a> <a href="https://github.com/ResearchObject/ro-crate/pull/101">#101</a> <a href="https://github.com/ResearchObject/ro-crate/pull/102">#102</a> <a href="https://github.com/ResearchObject/ro-crate/pull/103">#103</a> <a href="https://github.com/ResearchObject/ro-crate/pull/104">#104</a> <a href="https://github.com/ResearchObject/ro-crate/pull/105">#105</a> <a href="https://github.com/ResearchObject/ro-crate/pull/111">#111</a> <a href="https://github.com/ResearchObject/ro-crate/pull/114">#114</a></li> </ul></li> <li><a href="https://github.com/ResearchObject/ro-crate/releases/tag/1.0.1">RO-Crate 1.0.1</a> <ul> <li>Fix JSON typo in example<br /> </li> </ul></li> <li><a href="https://github.com/ResearchObject/ro-crate/releases/tag/1.0.0">RO-Crate 1.0.0</a> <a href="https://w3id.org/ro/crate/1.0" class="uri">https://w3id.org/ro/crate/1.0</a> <ul> <li>Description of RO-Crate Metadata File now required <ul> <li>.. must use <code>conformsTo</code> to indicate RO-Crate version</li> </ul></li> <li>Clarified use of RO-Crate JSON-LD Context</li> <li>Linked Data principles added</li> <li>RO-Crate JSON-LD Context updated to use <a href="http://schema.org/version/5.0/">Schema.org 5.0</a></li> <li>Workflow and Script now typed with <code>@type</code> array instead of <code>additionalType</code></li> <li>Simplified tables of direct properties to list of properties</li> <li>Simplified example of <code>affiliation</code></li> <li>Clarified <code>#identifiers</code> and <code>_:identifiers</code></li> <li>Removed links to data.research.uts.edu.au examples</li> <li>Added licensing of metadata</li> <li>Expanded on <em>Equipment used to create files</em></li> <li>Simplified Workflow and Script section</li> <li>Added appendix on JSON-LD</li> <li>Added BagIt implementation notes</li> <li>Added Repository-specific identifiers</li> <li>RO-Crate JSON-LD now licensed CC0</li> <li>RO-Crate JSON-LD self-identifies its version</li> </ul></li> <li><a href="https://github.com/ResearchObject/ro-crate/releases/tag/0.2.1">RO-Crate 0.2.1</a> <ul> <li>Added DOI and document metadata</li> </ul></li> <li><a href="https://github.com/ResearchObject/ro-crate/releases/tag/0.2.0">RO-Crate 0.2.0</a> <a href="https://w3id.org/ro/crate/0.2" class="uri">https://w3id.org/ro/crate/0.2</a> <ul> <li>Based on two earlier specifications: <ul> <li><a href="https://www.researchobject.org/ro-crate/0.1.0/">RO Lite 0.1.0</a></li> <li><a href="https://github.com/UTS-eResearch/datacrate/blob/47a5046b6fb54fc8f2e751f67fb98b8b2216c955/spec/1.0/data_crate_specification_v1.0.md">DataCrate Specification version 1.0.0 2019-04-12</a></li> </ul></li> <li>RO-Crate Metadata file has been renamed to <code>ro-crate-metadata.jsonld</code> instead of <code>CATALOG.json</code> (DataCrate) or <code>manifest.jsonld</code> (RO-Lite)</li> <li>RO Crate Website renamed to <code>ro-crate-metadata.html</code> instead of DataCrate’s <code>CATALOG.html</code></li> <li>“RO-Lite” and “DataCrate” renamed to “RO-Crate”</li> <li>Multiple examples and clarifications added</li> <li>RO-Crate directory no longer requires BagIt structure</li> <li>Added section on Workflows and scripts</li> <li>RO-Crate Metadata File must describe itself as being <code>about</code> the RO-Crate Dataset.</li> <li>JSON-LD should now be flattened and then compacted (RO-Lite allowed any JSON-LD, DataCrate required flattened)</li> </ul></li> </ul> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> </section> <section id="appendix-implementation-notes" class="level1" data-number="12"> <h1 data-number="12"><span class="header-section-number">12</span> APPENDIX: Implementation notes</h1> <section id="programming-with-json-ld" class="level2" data-number="12.1"> <h2 data-number="12.1"><span class="header-section-number">12.1</span> Programming with JSON-LD</h2> <p>When implementing tools to work with RO-Crate it is not necessary to use JSON-LD software libraries, however, programmers should keep in mind the following:</p> <ul> <li><p><strong><em>RO-Crate JSON-lD</em> has a flat structure</strong>; every entity is a JSON object directly within the <code>@graph</code> array in the <em>RO-Crate Metadata File</em>. A useful strategy when processing a crate is to build a look-up table and/or function so that entities can be found via their ID, for example provide a method such as <code>getEntity(id)</code> which returns an entity by its id or a <code>null</code> value if it’s not there.</p></li> <li><p><strong>Code defensively</strong>. Code should not assume that values will always be a String; values for properties may be single scalar values such as strings or integers (<code>"2"</code> or 2), or references to other entities such as <code>{"@id", "_:1"}</code> (where the referenced entity may or may not be described in the crate, see the point above about having a <code>getEntity()</code> method).</p></li> <li><p><strong>Read the <em>whole</em> specification</strong>. The RO-Crate specification addresses common use cases individually, introducing aspects of the specification as in a progressive manner. Some key points, such as <em>entities may have more than one value for <code>@type</code></em>, may not be apparent from a quick reading.</p></li> </ul> </section> <section id="combining-with-other-packaging-schemes" class="level2" data-number="12.2"> <h2 data-number="12.2"><span class="header-section-number">12.2</span> Combining with other packaging schemes</h2> <p>RO-Crates may co-exist with other packaging schemes, such as <a href="https://en.wikipedia.org/wiki/BagIt">BagIt</a> using two general approaches; either (a) <em>adding</em> RO-Crate into a package as part of the payload or (b) <em>wrapping</em> another kind of package. Examples using BagIt follow.</p> <p>BagIt is described in <a href="https://tools.ietf.org/html/rfc8493">RFC 8493</a>:</p> <blockquote> <p>[BagIt is] … a set of hierarchical file layout conventions for storage and transfer of arbitrary digital content. A “bag” has just enough structure to enclose descriptive metadata “tags” and a file “payload” but does not require knowledge of the payload’s internal semantics. This BagIt format is suitable for reliable storage and transfer.</p> </blockquote> <p>BagIt and RO-Crate have largely separate concerns - RO-Crate is focussed on rich metadata, the semantics of data, while BagIt is about reliable transfer.</p> <section id="adding-ro-crate-to-bagit" class="level3" data-number="12.2.1"> <h3 data-number="12.2.1"><span class="header-section-number">12.2.1</span> Adding RO-Crate to Bagit</h3> <p>RO-Crate can be combined with BagIt simply by placing the RO-Crate files within the BagIt payload (<code>data/</code>) directory.</p> <pre><code><BagIt base directory>/ | bagit.txt # As per BagIt specification | bag-info.txt # As per BagIt specification | manifest-<algorithm>.txt # As per BagIt specification | fetch.txt # Optional, per BagIt Specification | data/ # Payload: RO-Crate root directory | ro-crate-metadata.json # RO-Crate Metadata File MUST be present | ro-crate-preview.html # RO-Crate Website homepage MAY be present | ro-crate-preview_files/ # MAY be present | [payload files and directories] # 1 or more SHOULD be present</code></pre> <p>The <a href="https://www.rfc-editor.org/rfc/rfc8493.html#section-2.1.1">Bag declaration</a> <code>bagit.txt</code> MUST be present, the main role of this file is to mark the folder as a bag according to <a href="https://www.rfc-editor.org/rfc/rfc8493.html">RFC8493</a>. The file SHOULD have this fixed content in UTF-8:</p> <pre><code>BagIt-version: 1.0 Tag-File-Character-Encoding: UTF-8</code></pre> <p>The <em>BagIt base directory</em> containing <code>bagit.txt</code> can have any name, and can be archived/transferred in any way, e.g. within a ZIP archive, SFTP or even be exposed on the web.</p> <p>The manifest file contains file checksums; the BagIt specifications <a href="https://www.rfc-editor.org/rfc/rfc8493.html#section-2.4">recommends SHA-512</a> as default algorithm, that is <code>manifest-sha512.txt</code> SHOULD be present.</p> <p>The BagIt manifest file MUST list the checksum of <em>all</em> payload files in <code>data/</code> and its subdirectories. Where <code>data/</code> is also the <a href="#structure">RO-Crate Root</a> the manifest therefore MUST include <code>ro-crate-metadata.json</code>:</p> <pre><code>41846747…ee71 data/ro-crate-metadata.json e1105ed0…5e13 data/chipseq_20200910.json 37fd3a02…bb95 data/results/pipeline_info/design_reads.csv</code></pre> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>The SHA-512 checksums have been shortened in the above example. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>Creating the manifest file without using BagIt tools/libraries can be done using the equivalent of:</p> <div class="sourceCode" id="cb55"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb55-1"><a href="#cb55-1" aria-hidden="true" tabindex="-1"></a>$ <span class="fu">find</span> data -type f -print0 <span class="kw">|</span> <span class="fu">xargs</span> -0 sha512sum <span class="op">></span> manifest-sha512.txt</span></code></pre></div> <p>Similarly checking the payload directory:</p> <div class="sourceCode" id="cb56"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb56-1"><a href="#cb56-1" aria-hidden="true" tabindex="-1"></a>$ <span class="ex">sha512sum</span> --quiet -c manifest-sha512.txt</span> <span id="cb56-2"><a href="#cb56-2" aria-hidden="true" tabindex="-1"></a><span class="ex">data</span>/chipseq_20200910.json: <span class="ex">FAILED</span></span> <span id="cb56-3"><a href="#cb56-3" aria-hidden="true" tabindex="-1"></a><span class="ex">data</span>/ro-crate-metadata.json: <span class="ex">FAILED</span></span> <span id="cb56-4"><a href="#cb56-4" aria-hidden="true" tabindex="-1"></a><span class="ex">sha512sum</span>: WARNING: 2 computed checksums did NOT match</span></code></pre></div> <p>The BagIt manifest complements the <a href="#structure">RO-Crate structure</a> as it provide a complete listing of all payload files with cryptographically strong checksums, ensuring the crate has been fully archived/transferred, which the weak CRC-32 checksum (TCP/IP, ZIP, gzip) is insufficient to guarantee, particularly for large crates.</p> <p>To ensure the manifest file itself is complete, it is RECOMMENDED to include its checksum in <code>tagmanifest-sha512.txt</code>:</p> <pre><code>b0556450…8802 bag-info.txt 000b27e3…c52e manifest-sha512.txt</code></pre> <div class="a d m o n i t i o n w a r n i n g"> <div class="line-block"><span class="smallcaps">⚠️ Warning</span></div> <div> <p>The BagIt manifest is intended to detect “bit rot” and accidental damage, it does not provide proof the RO-Crate has not been deliberately tampered with, as a malicious actor can also update the checksums.</p> <p>Guarding against such scenarious would require additional cryptographic measures, e.g.<br /> <code>gpg --detach-sign --armor --output tagmanifest-sha512.txt.asc tagmanifest-sha512.txt</code> in combination with a secure PGP key exchange or equivalent trust network. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <section id="base-uri-in-bagit" class="level4" data-number="12.2.1.1"> <h4 data-number="12.2.1.1"><span class="header-section-number">12.2.1.1</span> Base URI in BagIt</h4> <p>The arcp specification suggests how <a href="https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4">BagIt UUID identifiers</a> can be used to calculate the base URI of a bag, see section <a href="#establishing-a-base-uri-inside-a-zip-file">Establishing a base URI inside a ZIP file</a>. For this purpose it is RECOMMENDED that <code>bag-info.txt</code> includes a fresh UUID like:</p> <pre><code>External-Identifier: urn:uuid:24e51ca2-5067-4598-935a-dac4e327d05a</code></pre> </section> <section id="referencing-external-files" class="level4" data-number="12.2.1.2"> <h4 data-number="12.2.1.2"><span class="header-section-number">12.2.1.2</span> Referencing external files</h4> <p>The <a href="https://www.rfc-editor.org/rfc/rfc8493.html#section-2.2.3">BagIt fetch file</a> MAY be used to reference files to be downloaded into particular <code>data/</code> paths to <em>complete</em> the bag. These files may be large, require authentication or otherwise inconvenient to transfer within the BagIt folder.</p> <p>Example <code>fetch.txt</code> using <a href="https://git-lfs.github.com/">Git LFS</a>:</p> <pre><code>https://media.githubusercontent.com/…/SPT5_INPUT_R1.bigWig 963489 data/results/SPT5_INPUT_R1.bigWig</code></pre> <p>BagIt tools can help complete the bag and verify the checksum of the downloaded files according to the manifest.</p> <p>The RO-Crate contained in <code>data/</code> MAY describe the bag with <a href="#embedded-data-entities-that-are-also-on-the-web">data entities</a> as if the bag was <em>complete</em>, even if the large file is not (yet) present:</p> <div class="sourceCode" id="cb60"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb60-1"><a href="#cb60-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb60-2"><a href="#cb60-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"results/SPT5_INPUT_R1.bigWig"</span><span class="fu">,</span></span> <span id="cb60-3"><a href="#cb60-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb60-4"><a href="#cb60-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Normalized SPT5_INPUT_R1 bigWig for genome browsers"</span><span class="fu">,</span></span> <span id="cb60-5"><a href="#cb60-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_3006"</span><span class="fu">},</span></span> <span id="cb60-6"><a href="#cb60-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"https://media.githubusercontent.com/media/biocompute-objects/bco-ro-example-chipseq/main/data/results/bwa/mergedLibrary/bigwig/SPT5_INPUT_R1.bigWig"</span><span class="fu">}</span></span> <span id="cb60-7"><a href="#cb60-7" aria-hidden="true" tabindex="-1"></a> <span class="er">}</span></span></code></pre></div> <p>It is RECOMMENDED that the <code>url</code> is provided in the data entity and consistent with the line in <code>fetch.txt</code> in case the RO-Crate is transferred outside its BagIt container.</p> <p>The <code>fetch.txt</code> approach can also be useful where other files in the RO-Crate reference a downloadable file by relative paths within <code>data/</code>, even if this file is not itself described in the RO-Crate metadata.</p> </section> <section id="snapshots-of-external-files" class="level4" data-number="12.2.1.3"> <h4 data-number="12.2.1.3"><span class="header-section-number">12.2.1.3</span> Snapshots of external files</h4> <p>As an alternative to the above, <a href="#web-based-data-entities">web-based data entities</a> can be used in the RO-Crate:</p> <div class="sourceCode" id="cb61"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb61-1"><a href="#cb61-1" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb61-2"><a href="#cb61-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://media.githubusercontent.com/media/biocompute-objects/bco-ro-example-chipseq/main/data/results/bwa/mergedLibrary/bigwig/SPT5_INPUT_R1.bigWig"</span><span class="fu">,</span></span> <span id="cb61-3"><a href="#cb61-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb61-4"><a href="#cb61-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Normalized SPT5_INPUT_R1 bigWig for genome browsers"</span><span class="fu">,</span></span> <span id="cb61-5"><a href="#cb61-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"encodingFormat"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://edamontology.org/format_3006"</span><span class="fu">}</span></span> <span id="cb61-6"><a href="#cb61-6" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <p>The above data entity MAY be combined with <code>fetch.txt</code> in the BagIt base directory:</p> <pre><code>https://media.githubusercontent.com/…/SPT5_INPUT_R1.bigWig 963489 data/snapshots/SPT5_INPUT_R1.bigWig</code></pre> <p>In this case the file <code>data/snapshots/SPT5_INPUT_R1.bigWig</code> may be present, but unknown by RO-Crate; BagIt contains a checksummed snapshot of the web resource. Compared with the first approach, the RO-Crate is here primarily pointing at a web resource which is allowed to change without causing a BagIt checksum error.</p> </section> </section> <section id="example-of-wrapping-a-bagit-bag-in-an-ro-crate" class="level3" data-number="12.2.2"> <h3 data-number="12.2.2"><span class="header-section-number">12.2.2</span> Example of wrapping a BagIt bag in an RO-Crate</h3> <p>Alternatively, an RO-Crate can <em>wrap</em> a BagIt bag, so that the RO-Crate metadata is outside of the bag directory and can be changed without changing the payload’s checksums.</p> <pre><code><RO-Crate root directory>/ | ro-crate-metadata.json # RO-Crate Metadata File MUST be present | ro-crate-preview.html # RO-Crate Website homepage MAY be present | ro-crate-preview_files/ # MAY be present | bag1/ # "Wrapped" bag - could have any name | bagit.txt # As per BagIt specification | bag-info.txt # As per BagIt specification | manifest-<algorithm>.txt # As per BagIt specification | fetch.txt # Optional, per BagIt Specification | data/ | [payload files and directories] # 1 or more SHOULD be present | example.txt </code></pre> <p>A <a href="#data-entities">Data Entity</a> describing <code>example.txt</code> in this scenario would have an <code>@id</code> of <code>bag1/data/example.txt</code>:</p> <div class="sourceCode" id="cb64"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb64-1"><a href="#cb64-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb64-2"><a href="#cb64-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"bag1/data/example.txt"</span><span class="fu">,</span></span> <span id="cb64-3"><a href="#cb64-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example file"</span></span> <span id="cb64-4"><a href="#cb64-4" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> </section> <section id="repository-specific-identifiers" class="level2" data-number="12.3"> <h2 data-number="12.3"><span class="header-section-number">12.3</span> Repository-specific identifiers</h2> <p><em>Root Data Entities</em> MAY include repository-specific identifiers, described using <a href="#contextual-entities">Contextual Entities</a> using a <a href="http://schema.org/PropertyValue">PropertyValue</a>, with a <a href="http://schema.org/name">name</a> that identifies the repository and the <a href="http://schema.org/identifier">identifier</a> as a value. The <em>same</em> identifier MAY be used in multiple different repositories and effectively namespaced using the <code>name</code> of the <code>ProperyValue</code>.</p> <div class="sourceCode" id="cb65"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb65-1"><a href="#cb65-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb65-2"><a href="#cb65-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb65-3"><a href="#cb65-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb65-4"><a href="#cb65-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"identifier"</span><span class="fu">:</span> <span class="ot">[</span><span class="st">"https://doi.org/10.4225/59/59672c09f4a4b"</span><span class="ot">,</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"_:localid:my-repo:my-id"</span><span class="fu">}</span><span class="ot">,</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"_:localid:other-repo:https://doi.org/10.4225/59/59672c09f4a4b"</span><span class="fu">}</span><span class="ot">]</span></span> <span id="cb65-5"><a href="#cb65-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span> <span id="cb65-6"><a href="#cb65-6" aria-hidden="true" tabindex="-1"></a></span> <span id="cb65-7"><a href="#cb65-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb65-8"><a href="#cb65-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"_:localid:my-repo:my-id"</span><span class="fu">,</span></span> <span id="cb65-9"><a href="#cb65-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"PropertyValue"</span><span class="fu">,</span></span> <span id="cb65-10"><a href="#cb65-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"my-repo"</span><span class="fu">,</span></span> <span id="cb65-11"><a href="#cb65-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"value"</span><span class="fu">:</span> <span class="st">"my-id"</span></span> <span id="cb65-12"><a href="#cb65-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb65-13"><a href="#cb65-13" aria-hidden="true" tabindex="-1"></a></span> <span id="cb65-14"><a href="#cb65-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb65-15"><a href="#cb65-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"_:localid:other-repo:https://doi.org/10.4225/59/59672c09f4a4b"</span><span class="fu">,</span></span> <span id="cb65-16"><a href="#cb65-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"PropertyValue"</span><span class="fu">,</span></span> <span id="cb65-17"><a href="#cb65-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"other-repo"</span><span class="fu">,</span></span> <span id="cb65-18"><a href="#cb65-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"value"</span><span class="fu">:</span> <span class="st">"https://doi.org/10.4225/59/59672c09f4a4b"</span></span> <span id="cb65-19"><a href="#cb65-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span></code></pre></div> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="jsonld"> </div> </section> </section> <section id="appendix-ro-crate-json-ld" class="level1" data-number="13"> <h1 data-number="13"><span class="header-section-number">13</span> APPENDIX: RO-Crate JSON-LD</h1> <p>It is not necessary to use <a href="https://json-ld.org/#developers">JSON-LD tooling</a> to generate or parse the <em>RO-Crate Metadata File</em>, although JSON-LD tools may make it easier to conform to this specification, e.g. handling relative URIs. It is however RECOMMENDED to use <a href="http://json.org/">JSON tooling</a> to handle <a href="https://tools.ietf.org/html/rfc7159">JSON</a> syntax and escaping rules.</p> <p>This appendix shows a brief JSON-LD introduction for complying with the <em>RO-Crate Metadata File</em> requirements.</p> <p>The example below shows the overall structure of a flattened, compacted <em>RO-Crate Metadata File</em> where <code>@context</code> refers to the <em>RO-Crate JSON-LD Context</em>, while <code>@graph</code> is a flat array of the entities that constitute this RO-Crate.</p> <div class="sourceCode" id="cb66"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb66-1"><a href="#cb66-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb66-2"><a href="#cb66-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb66-3"><a href="#cb66-3" aria-hidden="true" tabindex="-1"></a></span> <span id="cb66-4"><a href="#cb66-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-5"><a href="#cb66-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb66-6"><a href="#cb66-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb66-7"><a href="#cb66-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb66-8"><a href="#cb66-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">},</span></span> <span id="cb66-9"><a href="#cb66-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span></span> <span id="cb66-10"><a href="#cb66-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-11"><a href="#cb66-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-12"><a href="#cb66-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb66-13"><a href="#cb66-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb66-14"><a href="#cb66-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span><span class="fu">,</span></span> <span id="cb66-15"><a href="#cb66-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb66-16"><a href="#cb66-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb66-17"><a href="#cb66-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-18"><a href="#cb66-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data2.txt"</span><span class="fu">}</span></span> <span id="cb66-19"><a href="#cb66-19" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb66-20"><a href="#cb66-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-21"><a href="#cb66-21" aria-hidden="true" tabindex="-1"></a></span> <span id="cb66-22"><a href="#cb66-22" aria-hidden="true" tabindex="-1"></a></span> <span id="cb66-23"><a href="#cb66-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-24"><a href="#cb66-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">,</span></span> <span id="cb66-25"><a href="#cb66-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb66-26"><a href="#cb66-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Data Entities"</span><span class="fu">,</span></span> <span id="cb66-27"><a href="#cb66-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"author"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#alice"</span><span class="fu">},</span></span> <span id="cb66-28"><a href="#cb66-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"contentLocation"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">}</span></span> <span id="cb66-29"><a href="#cb66-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-30"><a href="#cb66-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-31"><a href="#cb66-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data2.txt"</span><span class="fu">,</span></span> <span id="cb66-32"><a href="#cb66-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span></span> <span id="cb66-33"><a href="#cb66-33" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-34"><a href="#cb66-34" aria-hidden="true" tabindex="-1"></a></span> <span id="cb66-35"><a href="#cb66-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-36"><a href="#cb66-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"#alice"</span><span class="fu">,</span></span> <span id="cb66-37"><a href="#cb66-37" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Person"</span><span class="fu">,</span></span> <span id="cb66-38"><a href="#cb66-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Alice"</span><span class="fu">,</span></span> <span id="cb66-39"><a href="#cb66-39" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Contextual Entities"</span></span> <span id="cb66-40"><a href="#cb66-40" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb66-41"><a href="#cb66-41" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb66-42"><a href="#cb66-42" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://sws.geonames.org/8152662/"</span><span class="fu">,</span></span> <span id="cb66-43"><a href="#cb66-43" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Place"</span><span class="fu">,</span></span> <span id="cb66-44"><a href="#cb66-44" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Catalina Park"</span></span> <span id="cb66-45"><a href="#cb66-45" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb66-46"><a href="#cb66-46" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb66-47"><a href="#cb66-47" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p><strong>Note</strong>: entities above have been shortened for brevity, see the individual sections for <a href="#data-entities">data entities</a> and <a href="#contextual-entities">contextual entities</a>.</p> <p>The order of the <code>@graph</code> array is not significant. Above we see that the RO-Crate JSON-LD graph contains the <em>RO-Crate Metadata File Descriptor</em>, the <em>Root Data Entity</em>, any <em>Data Entities</em> and any <em>Contextual Entities</em>.</p> <section id="describing-entities-in-json-ld" class="level2" data-number="13.1"> <h2 data-number="13.1"><span class="header-section-number">13.1</span> Describing entities in JSON-LD</h2> <p>Properties of an entity can refer to another URL or entity by using the form <code>{"@id": "uri-reference"}</code> as in the example above, where the <a href="http://schema.org/author">author</a> property in the <a href="http://schema.org/MediaObject">File</a> entity refer to the <a href="http://schema.org/Person">Person</a> entity, identified as <code>#alice</code>.</p> <p>Identifiers in <code>@id</code> SHOULD be either a valid <em>absolute URI</em> like <a href="http://example.com/" class="uri">http://example.com/</a>, or a <em>URI path</em> relative to the RO-Crate root directory. Although legal in JSON-LD, <code>@id</code> paths in RO-Crate SHOULD NOT use <code>../</code> to climb out of the <em>RO-Crate Root</em>, rather such references SHOULD be translated to absolute URIs. See also section <a href="#core-metadata-for-data-entities">Core Metadata for Data Entities</a>.</p> <p>Care must be taken to express any relative paths using <code>/</code> separator and escape special characters like space (<code>%20</code>). As JSON-LD supports <em>IRIs</em>, international characters in identifiers SHOULD be encoded in UTF-8 rather than <code>%</code>-escaped.</p> <p>Because the <em>RO-Crate JSON-LD</em> is <em>flattened</em>, all described entities must be JSON objects as direct children of the <code>@graph</code> element rather than being nested under another object or array. Properties referencing entities must use a JSON object with <code>@id</code> as the only key, e.g. <code>"author": {"@id": "https://orcid.org/0000-0002-1825-0097"}</code></p> <p>If no obvious identifier is available for a contextual entity, an identifier local to the <em>RO-Crate Metadata File</em> can be generated, for instance <code>{"@id": "#alice"}</code> or <code>{"@id": "#ac0bd781-7d91-4cdf-b2ad-7305921c7650"}</code>. Although it is RECOMMENDED to use <code>#</code>-based local identifiers, identifiers in <code>@id</code> MAY alternatively be a <em>blank node</em> identifier (e.g. <code>_:alice</code>).</p> <p>Multiple values and references can be represented using JSON arrays, as exemplified in <code>hasPart</code> above; however as the <code>RO-Crate JSON-LD</code> is in <em>compacted form</em>, any single-element arrays like <code>"author": [{"@id": "#alice"}]</code> SHOULD be unpacked to a single value like <code>"author": {"@id": "#alice"}</code>.</p> </section> <section id="ro-crate-json-ld-context" class="level2" data-number="13.2"> <h2 data-number="13.2"><span class="header-section-number">13.2</span> RO-Crate JSON-LD Context</h2> <p>The main purpose of the <code>@context</code> is to relate JSON property keys and <code>@type</code> references to their Linked Data identifiers, which in RO-Crate is based primarily on <a href="http://schema.org/" class="uri">http://schema.org/</a> URIs.</p> <p>In other uses of JSON-LD the context may perform more automatic or detailed mapping, but the <code>RO-Crate JSON-LD context</code> is deliberately flat, listing every property and type.</p> <p>To find the full description of a particular property or type, follow its URI from the context. For instance, we can find within the context <a href="https://w3id.org/ro/crate/1.1/context" class="uri">https://w3id.org/ro/crate/1.1/context</a> that <code>author</code> above is mapped to <a href="http://schema.org/author" class="uri">http://schema.org/author</a>:</p> <div class="sourceCode" id="cb67"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb67-1"><a href="#cb67-1" aria-hidden="true" tabindex="-1"></a> <span class="er">"author":</span> <span class="er">"http://schema.org/author",</span></span></code></pre></div> <p>The <em>RO-Crate JSON-LD Context</em> may either be set by reference to <a href="https://w3id.org/ro/crate/1.1/context" class="uri">https://w3id.org/ro/crate/1.1/context</a> or by value (merging the two documents).</p> <p>Consider the below (simplified) example of <em>by reference</em> using a versioned permalink:</p> <div class="sourceCode" id="cb68"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb68-1"><a href="#cb68-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb68-2"><a href="#cb68-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb68-3"><a href="#cb68-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb68-4"><a href="#cb68-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb68-5"><a href="#cb68-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb68-6"><a href="#cb68-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span><span class="fu">,</span></span> <span id="cb68-7"><a href="#cb68-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb68-8"><a href="#cb68-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb68-9"><a href="#cb68-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb68-10"><a href="#cb68-10" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb68-11"><a href="#cb68-11" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>The above is equivalent to the following JSON-LD using an embedded context, by adding the subset of corresponding keys from the external <code>@context</code>:</p> <div class="sourceCode" id="cb69"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb69-1"><a href="#cb69-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb69-2"><a href="#cb69-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"CreativeWork"</span><span class="fu">:</span> <span class="st">"http://schema.org/CreativeWork"</span><span class="fu">,</span></span> <span id="cb69-3"><a href="#cb69-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="st">"http://schema.org/about"</span><span class="fu">,</span></span> <span id="cb69-4"><a href="#cb69-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"http://schema.org/description"</span><span class="fu">,</span></span> <span id="cb69-5"><a href="#cb69-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="st">"http://purl.org/dc/terms/conformsTo"</span><span class="fu">,</span></span> <span id="cb69-6"><a href="#cb69-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="st">"http://schema.org/about"</span></span> <span id="cb69-7"><a href="#cb69-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb69-8"><a href="#cb69-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb69-9"><a href="#cb69-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb69-10"><a href="#cb69-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb69-11"><a href="#cb69-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb69-12"><a href="#cb69-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span><span class="fu">,</span></span> <span id="cb69-13"><a href="#cb69-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb69-14"><a href="#cb69-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">}</span></span> <span id="cb69-15"><a href="#cb69-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb69-16"><a href="#cb69-16" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb69-17"><a href="#cb69-17" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Note that <code>conformsTo</code> is retained to indicate which version of RO-Crate specification the <a href="#root-data-entity">root data entity</a> conforms to.</p> <p>While the second form is more verbose, one advantage is that it is “archivable” as it does not require Internet access for retrieving the <code>@context</code> permalink. Tools consuming or archiving RO-Crate MAY replace by-reference <code>@context</code> URIs with an embedded context by using version-specific hard-coded contexts. See <a href="https://github.com/ResearchObject/ro-crate/releases" class="uri">https://github.com/ResearchObject/ro-crate/releases</a> to download the JSON-LD contexts corresponding to each version of this specification.</p> <p>To check which RO-Crate version is used (in terms of properties and types expected), clients SHOULD check the property <code>conformsTo</code> on the <em>RO-Crate Metadata File Descriptor</em> rather than the value of <code>@context</code>.</p> <p>RO-Crate consumers SHOULD NOT do the opposite substitution from an embedded context, but MAY use the <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm">JSON-LD flattening</a> algorithm with <em>compaction</em> to a referenced <em>RO-Crate JSON-LD context</em> (see also notes on <a href="#relative-uris">handling relative URI references</a> below).</p> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>The <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm">JSON-LD flattening & compaction</a> algorithms can be used to rewrite to a different <code>@context</code>, e.g. to <code>https://schema.org/docs/jsonldcontext.jsonld</code> or a different version of the <em>RO-Crate JSON-LD Context</em>. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="ro-crate-json-ld-media-type" class="level2" data-number="13.3"> <h2 data-number="13.3"><span class="header-section-number">13.3</span> RO-Crate JSON-LD Media type</h2> <p>The <a href="https://tools.ietf.org/html/rfc6838">media type</a> <code>application/ld+json</code> for <code>ro-crate-metadata.json</code> will, when following this specification, comply with the <a href="https://www.w3.org/TR/json-ld/#application-ld-json">flattened/compacted JSON-LD profiles</a> as well as <code>https://w3id.org/ro/crate</code>, which may be indicated in a <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.5">HTTP response</a> as:</p> <pre class="http"><code>HEAD http://example.com/ro-123/ro-crate-metadata.json HTTP/1.1 HTTP/1.1 200 OK Content-Type: application/ld+json; profile="http://www.w3.org/ns/json-ld#flattened http://www.w3.org/ns/json-ld#compacted https://w3id.org/ro/crate"</code></pre> <p>Note that most web servers will however serve <code>*.json</code> as <code>Content-Type: application/json</code>.</p> <p>Requesting the RO-Crate metadata file from a browser may also need permission through CORS header <code>Access-Control-Allow-Origin</code> (however extra care should be taken if the RO-Crates require access control).</p> <p>To change the configuration of <strong>Apache HTTPD 2</strong>, add the following to <code>.htaccess</code> or equivalent config file:</p> <pre class="conf"><code><Files "ro-crate-metadata.json"> ForceType 'application/ld+json;profile="http://www.w3.org/ns/json-ld#flattened http://www.w3.org/ns/json-ld#compacted https://w3id.org/ro/crate"' Header set Access-Control-Allow-Origin * Header set Access-Control-Expose-Headers "Content-Length,Content-Range,Content-Type" </Files></code></pre> <p>For <strong>NGINX</strong>, try:</p> <pre class="nginx"><code>location ~ ro-crate-metadata.json$ { types { } default_type 'application/ld+json;profile="http://www.w3.org/ns/json-ld#flattened http://www.w3.org/ns/json-ld#compacted https://w3id.org/ro/crate"'; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range,Content-Type'; }</code></pre> <p>For <strong>Content-Delivery Networks</strong> (e.g. GitHub pages) a symbolic link to <code>ro-crate-metadata.jsonld</code> may help to create an alias that can be served as <code>application/ld+json</code>:</p> <div class="sourceCode" id="cb73"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb73-1"><a href="#cb73-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ln</span> -s ro-crate-metadata.json ro-crate-metadata.jsonld</span></code></pre></div> </section> <section id="extending-ro-crate" class="level2" data-number="13.4"> <h2 data-number="13.4"><span class="header-section-number">13.4</span> Extending RO-Crate</h2> <p>To extend RO-Crate, implementers SHOULD try to use existing <a href="http://schema.org/" class="uri">http://schema.org/</a> properties and classes and MAY use terms from other vocabularies and ontologies when this is not possible.</p> <p>The <em>terms</em> (properties and types) used SHOULD be added as keys to the <code>@context</code> in the <em>RO-Crate JSON-LD</em> (if not present). To avoid duplicating the <em>RO-Crate JSON-LD Context</em> the <code>@context: []</code> array form SHOULD be used as shown below.</p> <p>URIs in the <code>@context</code> SHOULD resolve to a useful human readable page. When this is not possible - for example if the URI resolves to an RDF ontology file, a human-readable URI SHOULD be provided using a <a href="http://schema.org/sameAs">sameAs</a> description.</p> <p>For example. The <code>@id</code> URI <a href="http://purl.org/ontology/bibo/interviewee" class="uri">http://purl.org/ontology/bibo/interviewee</a> from the <a href="http://neologism.ecs.soton.ac.uk/bibo.html">BIBO ontology</a> ontology intends to resolve to an ontology file, which is not useful for humans, however the HTML section <a href="http://neologism.ecs.soton.ac.uk/bibo.html#interviewee" class="uri">http://neologism.ecs.soton.ac.uk/bibo.html#interviewee</a> is human-readable. To read more about best practices for content negotiation of vocabularies, we refer the reader to <a href="https://www.w3.org/TR/swbp-vocab-pub/">Best Practice Recipes for Publishing RDF Vocabularies</a>.</p> <div class="sourceCode" id="cb74"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb74-1"><a href="#cb74-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb74-2"><a href="#cb74-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span> </span> <span id="cb74-3"><a href="#cb74-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="ot">,</span></span> <span id="cb74-4"><a href="#cb74-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"interviewee"</span><span class="fu">:</span> <span class="st">"http://purl.org/ontology/bibo/interviewee"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb74-5"><a href="#cb74-5" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb74-6"><a href="#cb74-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb74-7"><a href="#cb74-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb74-8"><a href="#cb74-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://purl.org/ontology/bibo/interviewee"</span><span class="fu">,</span></span> <span id="cb74-9"><a href="#cb74-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"sameAs"</span><span class="fu">:</span> <span class="st">"http://neologism.ecs.soton.ac.uk/bibo.html#interviewee"</span><span class="fu">,</span></span> <span id="cb74-10"><a href="#cb74-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Thing"</span></span> <span id="cb74-11"><a href="#cb74-11" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb74-12"><a href="#cb74-12" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb74-13"><a href="#cb74-13" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>When generating the <em>RO-Crate Website</em> from <em>RO-Crate JSON-LD</em>, the code MUST use a <a href="http://schema.org/sameAs">sameAs</a> URI (if present) as a target for an explanatory link for the term instead of the Linked Data URI supplied in the <code>@context</code>.</p> <p>Where there is no RDF ontology available, then implementors SHOULD attempt to provide context by creating stable web-accessible URIs to document properties and classes, for example, by linking to a page describing an XML element or an attribute from an XML schema, pending the publication of a formal ontology.</p> </section> <section id="adding-new-or-ad-hoc-vocabulary-terms" class="level2" data-number="13.5"> <h2 data-number="13.5"><span class="header-section-number">13.5</span> Adding new or ad hoc vocabulary terms</h2> <p>Context terms must ultimately map to HTTP(s) URIs which poses challenges for crate-authors wishing to use their own vocabularies.</p> <p>RO-Crate provides some strategies to add a new term (a <a href="http://schema.org/Class">Class</a> or <a href="http://schema.org/Property">Property</a>) that is not in Schema.org or another published vocabulary, so that there is a stable URI that can be added to the <span class="citation" data-cites="context">@context</span>.</p> <section id="choosing-urls-for-ad-hoc-terms" class="level3" data-number="13.5.1"> <h3 data-number="13.5.1"><span class="header-section-number">13.5.1</span> Choosing URLs for ad hoc terms</h3> <p>For projects that have their own web-presence, URLs MAY be defined there and SHOULD resolve to useful content. For example for a project with web page <a href="https://criminalcharacters.com/" class="uri">https://criminalcharacters.com/</a> the property <code>education</code> could have a URL: <a href="https://criminalcharacters.com/vocab#education" class="uri">https://criminalcharacters.com/vocab#education</a> which resolves to an HTML page that explains the term using HTML anchors:</p> <div class="sourceCode" id="cb75"><pre class="sourceCode html"><code class="sourceCode html"><span id="cb75-1"><a href="#cb75-1" aria-hidden="true" tabindex="-1"></a><span class="kw"><div</span><span class="ot"> id=</span><span class="st">"education"</span><span class="kw">></span></span> <span id="cb75-2"><a href="#cb75-2" aria-hidden="true" tabindex="-1"></a> <span class="kw"><h1></span>Property: education<span class="kw"></h1></span></span> <span id="cb75-3"><a href="#cb75-3" aria-hidden="true" tabindex="-1"></a> <span class="kw"><p></span>Literacy of prisoner. Prison authorities would record the prisoner’s statement as to whether they could read and write …</span> <span id="cb75-4"><a href="#cb75-4" aria-hidden="true" tabindex="-1"></a> <span class="kw"></p></span></span> <span id="cb75-5"><a href="#cb75-5" aria-hidden="true" tabindex="-1"></a><span class="kw"></div></span></span></code></pre></div> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>Ensure you have a consistent use of <code>http</code> or <code>https</code> (preferring https) as well as consistent path <code>/vocab</code> vs <code>/vocab/</code> vs <code>/vocab/index.html</code> (preferring the shortest that is also visible in browser). <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>For ad hoc terms where the crate author does not have the resources to create and maintain an HTML page, authors may use the RO-Crate public namespace (<code>https://w3id.org/ro/terms/</code>) to reserve their terms. For example, an ad-hoc URL MAY be used in the form <code>https://w3id.org/ro/terms/criminalcharacters#education</code> where <code>criminalcharacters</code> is acting as a <em>namespace</em> for one or more related terms like <code>education</code>. Ad-hoc namespaces under <code>https://w3id.org/ro/terms/</code> are available on first-come-first-serve basis; to avoid clashes, namespaces SHOULD be registered by <a href="https://github.com/ResearchObject/ro-terms">submitting terms and definitions</a> to the RO-Crate terms project.</p> <p>In both cases, to use an ad-hoc term in an RO-Crate, the URI MUST be included in the local context:</p> <div class="sourceCode" id="cb76"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb76-1"><a href="#cb76-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb76-2"><a href="#cb76-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span> </span> <span id="cb76-3"><a href="#cb76-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="ot">,</span></span> <span id="cb76-4"><a href="#cb76-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"education"</span><span class="fu">:</span> <span class="st">"https://criminalcharacters.com/vocab#education"</span><span class="fu">,</span></span> <span id="cb76-5"><a href="#cb76-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"interests"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/terms/criminalcharacters#interests"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb76-6"><a href="#cb76-6" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb76-7"><a href="#cb76-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span> <span class="er">...</span> <span class="ot">]</span></span> <span id="cb76-8"><a href="#cb76-8" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> </section> <section id="add-local-definitions-of-ad-hoc-terms" class="level3" data-number="13.5.2"> <h3 data-number="13.5.2"><span class="header-section-number">13.5.2</span> Add local definitions of ad hoc terms</h3> <p>Following the conventions used by Schema.org, ad-hoc terms SHOULD also include definitions in the RO-Crate with at minimum:</p> <ul> <li><code>@type</code> of either <code>Class</code> (contextual entity type) or <code>Property</code> (attribute of an contextual entity)</li> <li><code>rdfs:label</code> with the human readable version of the term, e.g. <code>makesFood</code> has label <code>makes food</code></li> <li><code>rdf:comment</code> documenting and clarifying the meaning of the term. For instance the term <code>sentence</code> in a prisoner vocabulary will have a different explanation than <code>sentence</code> in a linguistic vocabulary.</li> </ul> <div class="sourceCode" id="cb77"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb77-1"><a href="#cb77-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb77-2"><a href="#cb77-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://criminalcharacters.com/vocab#education"</span><span class="fu">,</span></span> <span id="cb77-3"><a href="#cb77-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"rdf:Property"</span><span class="fu">,</span></span> <span id="cb77-4"><a href="#cb77-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"rdfs:label"</span><span class="fu">:</span> <span class="st">"education"</span><span class="fu">,</span></span> <span id="cb77-5"><a href="#cb77-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"rdf:comment"</span><span class="fu">:</span> <span class="st">"Literacy of prisoner. ..."</span></span> <span id="cb77-6"><a href="#cb77-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>It is <strong>not</strong> a requirement to use English for the terms, labels or comments. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>More information about the relationship of this term to other terms MAY be provided using <a href="http://schema.org/domainIncludes">domainIncludes</a>, <a href="http://schema.org/rangeIncludes">rangeIncludes</a>, <a href="https://www.w3.org/TR/rdf-schema/#ch_subclassof">rdfs:subClassOf</a> following the conventions used in the <a href="https://schema.org/version/latest/schemaorg-current-http.jsonld">Schema.org schema</a>.</p> <!-- Copyright 2019-2020 University of Technology Sydney Copyright 2019-2020 The University of Manchester UK Copyright 2019-2020 RO-Crate contributors <https://github.com/ResearchObject/ro-crate/graphs/contributors> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <div id="relative-uris"> </div> </section> </section> </section> <section id="appendix-handling-relative-uri-references" class="level1" data-number="14"> <h1 data-number="14"><span class="header-section-number">14</span> APPENDIX: Handling relative URI references</h1> <p>The <em>RO-Crate Metadata File</em> use <em>relative URI references</em> to identify files and directories contained within the <em>RO-Crate Root</em> and its children. As described in section <a href="#describing-entities-in-json-ld">Describing entities in JSON-LD</a> above, relative URI references are also frequently used for identifying <em>Contextual entities</em>.</p> <p>When using JSON-LD tooling and RDF libraries to consume or generate RO-Crates, extra care should be taken to ensure these URI references are handled correctly.</p> <p>For this, a couple of scenarios are sketched below with recommendations for consistent handling:</p> <section id="flattening-json-ld-from-nested-json" class="level2" data-number="14.1"> <h2 data-number="14.1"><span class="header-section-number">14.1</span> Flattening JSON-LD from nested JSON</h2> <p>If performing <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm">JSON-LD flattening</a> to generate a valid <em>RO-Crate Metadata File</em>, add <code>@base: null</code> to the input JSON-LD <code>@context</code> array to avoid expanding relative URI references. The flattening <code>@context</code> SHOULD NOT need <code>@base: null</code>.</p> <p>Example, this JSON-LD is in <a href="https://www.w3.org/TR/json-ld/#compacted-document-form">compacted form</a> which may be beneficial for processing, but is not yet valid <em>RO-Crate Metadata File</em> as it has not been flattened into a <code>@graph</code> array.</p> <div class="sourceCode" id="cb78"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb78-1"><a href="#cb78-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> </span> <span id="cb78-2"><a href="#cb78-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb78-3"><a href="#cb78-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@base"</span><span class="fu">:</span> <span class="kw">null</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb78-4"><a href="#cb78-4" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span></span> <span id="cb78-5"><a href="#cb78-5" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb78-6"><a href="#cb78-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb78-7"><a href="#cb78-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb78-8"><a href="#cb78-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span><span class="fu">,</span></span> <span id="cb78-9"><a href="#cb78-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span><span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">},</span></span> <span id="cb78-10"><a href="#cb78-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb78-11"><a href="#cb78-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb78-12"><a href="#cb78-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb78-13"><a href="#cb78-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span><span class="fu">,</span></span> <span id="cb78-14"><a href="#cb78-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb78-15"><a href="#cb78-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb78-16"><a href="#cb78-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">,</span></span> <span id="cb78-17"><a href="#cb78-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb78-18"><a href="#cb78-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Data Entities"</span><span class="fu">,</span></span> <span id="cb78-19"><a href="#cb78-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb78-20"><a href="#cb78-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span><span class="fu">,</span></span> <span id="cb78-21"><a href="#cb78-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span></span> <span id="cb78-22"><a href="#cb78-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb78-23"><a href="#cb78-23" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb78-24"><a href="#cb78-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb78-25"><a href="#cb78-25" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Performing <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm">JSON-LD flattening</a> with:</p> <div class="sourceCode" id="cb79"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb79-1"><a href="#cb79-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> </span> <span id="cb79-2"><a href="#cb79-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span></span> <span id="cb79-3"><a href="#cb79-3" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Results in a valid <em>RO-Crate JSON-LD</em> (actual order in <code>@graph</code> may differ):</p> <div class="sourceCode" id="cb80"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb80-1"><a href="#cb80-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb80-2"><a href="#cb80-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="fu">,</span></span> <span id="cb80-3"><a href="#cb80-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb80-4"><a href="#cb80-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-5"><a href="#cb80-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb80-6"><a href="#cb80-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb80-7"><a href="#cb80-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb80-8"><a href="#cb80-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb80-9"><a href="#cb80-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb80-10"><a href="#cb80-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb80-11"><a href="#cb80-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb80-12"><a href="#cb80-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb80-13"><a href="#cb80-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span></span> <span id="cb80-14"><a href="#cb80-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb80-15"><a href="#cb80-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-16"><a href="#cb80-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb80-17"><a href="#cb80-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb80-18"><a href="#cb80-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb80-19"><a href="#cb80-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb80-20"><a href="#cb80-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-21"><a href="#cb80-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span></span> <span id="cb80-22"><a href="#cb80-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb80-23"><a href="#cb80-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-24"><a href="#cb80-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span></span> <span id="cb80-25"><a href="#cb80-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb80-26"><a href="#cb80-26" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb80-27"><a href="#cb80-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb80-28"><a href="#cb80-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb80-29"><a href="#cb80-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-30"><a href="#cb80-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">,</span></span> <span id="cb80-31"><a href="#cb80-31" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb80-32"><a href="#cb80-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Data Entities"</span></span> <span id="cb80-33"><a href="#cb80-33" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb80-34"><a href="#cb80-34" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb80-35"><a href="#cb80-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span><span class="fu">,</span></span> <span id="cb80-36"><a href="#cb80-36" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span></span> <span id="cb80-37"><a href="#cb80-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb80-38"><a href="#cb80-38" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb80-39"><a href="#cb80-39" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>The saved <em>RO-Crate JSON-LD</em> SHOULD NOT include <code>{@base: null}</code> in its <code>@context</code>. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="expandingparsing-json-ld-keeping-relative-referencing" class="level2" data-number="14.2"> <h2 data-number="14.2"><span class="header-section-number">14.2</span> Expanding/parsing JSON-LD keeping relative referencing</h2> <p><a href="https://www.w3.org/TR/json-ld-api/#expansion">JSON-LD Expansion</a> can be used to resolve terms from the <code>@context</code> to absolute URIs, e.g. <code>http://schema.org/description</code>. This may be needed to parse <a href="#extending-ro-crate">extended properties</a> or for combinations with other Linked Data.</p> <p>This algorithm would normally also expand <code>@id</code> fields based on the current <a href="https://www.w3.org/TR/json-ld11/#base-iri">base URI</a> of the <em>RO-Crate Metadata File</em>, but this may be a temporary location like <code>file:///tmp/rocrate54/ro-crate-metadata.json</code>, meaning <code>@id</code>: <code>subfolder/</code> becomes <code>file:///tmp/rocrate54/subfolder/</code> after JSON-LD expansion.</p> <p>To avoid absoluting local identifiers, before expanding, augment the JSON-LD <code>@context</code> to ensure it is an array that includes <code>{"@base": null}</code>.</p> <p>For example, expanding this JSON-LD:</p> <div class="sourceCode" id="cb81"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb81-1"><a href="#cb81-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb81-2"><a href="#cb81-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb81-3"><a href="#cb81-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="ot">,</span></span> <span id="cb81-4"><a href="#cb81-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@base"</span><span class="fu">:</span> <span class="kw">null</span><span class="fu">}</span></span> <span id="cb81-5"><a href="#cb81-5" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb81-6"><a href="#cb81-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb81-7"><a href="#cb81-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb81-8"><a href="#cb81-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb81-9"><a href="#cb81-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb81-10"><a href="#cb81-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb81-11"><a href="#cb81-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb81-12"><a href="#cb81-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb81-13"><a href="#cb81-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb81-14"><a href="#cb81-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb81-15"><a href="#cb81-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb81-16"><a href="#cb81-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span></span> <span id="cb81-17"><a href="#cb81-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb81-18"><a href="#cb81-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb81-19"><a href="#cb81-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb81-20"><a href="#cb81-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb81-21"><a href="#cb81-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb81-22"><a href="#cb81-22" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb81-23"><a href="#cb81-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb81-24"><a href="#cb81-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span></span> <span id="cb81-25"><a href="#cb81-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb81-26"><a href="#cb81-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb81-27"><a href="#cb81-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span></span> <span id="cb81-28"><a href="#cb81-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb81-29"><a href="#cb81-29" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb81-30"><a href="#cb81-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb81-31"><a href="#cb81-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb81-32"><a href="#cb81-32" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb81-33"><a href="#cb81-33" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Results in a <a href="https://www.w3.org/TR/json-ld11/#expanded-document-form">expanded form</a> without <code>@context</code>, using absolute URIs for properties and types, but retains relative URI references for entities within the <em>RO-Crate Root</em>:</p> <div class="sourceCode" id="cb82"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb82-1"><a href="#cb82-1" aria-hidden="true" tabindex="-1"></a><span class="ot">[</span></span> <span id="cb82-2"><a href="#cb82-2" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-3"><a href="#cb82-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb82-4"><a href="#cb82-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-5"><a href="#cb82-5" aria-hidden="true" tabindex="-1"></a> <span class="st">"http://schema.org/CreativeWork"</span></span> <span id="cb82-6"><a href="#cb82-6" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-7"><a href="#cb82-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://schema.org/about"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-8"><a href="#cb82-8" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-9"><a href="#cb82-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb82-10"><a href="#cb82-10" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-11"><a href="#cb82-11" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-12"><a href="#cb82-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://purl.org/dc/terms/conformsTo"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-13"><a href="#cb82-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-14"><a href="#cb82-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb82-15"><a href="#cb82-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-16"><a href="#cb82-16" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-17"><a href="#cb82-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://schema.org/description"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-18"><a href="#cb82-18" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-19"><a href="#cb82-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@value"</span><span class="fu">:</span> <span class="st">"RO-Crate Metadata File Descriptor (this file)"</span></span> <span id="cb82-20"><a href="#cb82-20" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-21"><a href="#cb82-21" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb82-22"><a href="#cb82-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb82-23"><a href="#cb82-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-24"><a href="#cb82-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb82-25"><a href="#cb82-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-26"><a href="#cb82-26" aria-hidden="true" tabindex="-1"></a> <span class="st">"http://schema.org/Dataset"</span></span> <span id="cb82-27"><a href="#cb82-27" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-28"><a href="#cb82-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://schema.org/description"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-29"><a href="#cb82-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-30"><a href="#cb82-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@value"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span></span> <span id="cb82-31"><a href="#cb82-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-32"><a href="#cb82-32" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-33"><a href="#cb82-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://schema.org/hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-34"><a href="#cb82-34" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-35"><a href="#cb82-35" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span></span> <span id="cb82-36"><a href="#cb82-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb82-37"><a href="#cb82-37" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-38"><a href="#cb82-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span></span> <span id="cb82-39"><a href="#cb82-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-40"><a href="#cb82-40" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb82-41"><a href="#cb82-41" aria-hidden="true" tabindex="-1"></a> <span class="dt">"http://schema.org/name"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb82-42"><a href="#cb82-42" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb82-43"><a href="#cb82-43" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@value"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb82-44"><a href="#cb82-44" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-45"><a href="#cb82-45" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb82-46"><a href="#cb82-46" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb82-47"><a href="#cb82-47" aria-hidden="true" tabindex="-1"></a><span class="ot">]</span></span></code></pre></div> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p><code>@base: null</code> will not relativize existing absolute URIs that happen to be contained by the <em>RO-Crate Root</em> (see section <a href="#relativizing-absolute-uris-within-ro-crate-root">Relativizing absolute URIs within RO-Crate Root</a>). <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>Most RDF parsers supporting JSON-LD will perform this kind of expansion before generating triples, but not all RDF stores or serializations support relative URI references. Consider using an alternative <code>@base</code> as detailed in sections below. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="establishing-absolute-uri-for-ro-crate-root" class="level2" data-number="14.3"> <h2 data-number="14.3"><span class="header-section-number">14.3</span> Establishing absolute URI for RO-Crate Root</h2> <p>When loading <em>RO-Crate JSON-LD</em> as RDF, or combining the crate’s Linked Data into a larger JSON-LD, it is important to ensure correct <a href="https://www.w3.org/TR/json-ld11/#base-iri">base URI</a> to resolve URI references that are relative to the <em>RO-Crate Root</em>.</p> <div class="a d m o n i t i o n n o t e"> <div class="line-block"><span class="smallcaps">🛈 Note</span></div> <div> <p>When retrieving an RO-Crate over the web, servers might have performed HTTP redirections so that the base URI is different from what was requested. It is RECOMMENDED to follow section <a href="http://tools.ietf.org/html/rfc3986#section-5.1">Establishing a Base URI of RFC3986</a> before resolving relative links from the <em>RO-Crate Metadata File</em>. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>For instance, consider this HTTP redirection from a permalink (simplified):</p> <pre class="http"><code>GET https://w3id.org/ro/crate/1.0/crate HTTP/1.1 HTTP/1.1 301 Moved Permanently Location: https://www.researchobject.org/ro-crate/1.0/ro-crate-metadata.jsonld</code></pre> <pre class="http"><code>GET https://www.researchobject.org/ro-crate/1.0/ro-crate-metadata.jsonld HTTP/1.1 HTTP/1.1 200 OK Content-Type: application/ld+json { "@context": "https://w3id.org/ro/crate/1.0/context", "@graph": [ { "@id": "ro-crate-metadata.jsonld", "@type": "CreativeWork", "conformsTo": { "@id": "https://w3id.org/ro/crate/1.0" }, "about": { "@id": "./" }, "license": { "@id": "https://creativecommons.org/publicdomain/zero/1.0/" } }, { "@id": "./", "@type": "Dataset", "hasPart": [ { "@id": "index.html" } } ] }</code></pre> <p>Following redirection we see that:</p> <ul> <li><em>Base URI</em> of the <em>RO-Crate Metadata File</em> becomes <code>https://www.researchobject.org/ro-crate/1.0/ro-crate-metadata.jsonld</code></li> <li>The absolute URI for <code>index.html</code> resolves to <code>https://www.researchobject.org/ro-crate/1.0/index.html</code> <ul> <li>..rather than <code>https://w3id.org/ro/crate/1.0/index.html</code> which would not redirect correctly</li> </ul></li> </ul> <p>This example also use RO-Crate 1.0, where the <em>RO-Crate Metadata File</em> is called <code>ro-crate-metadata.jsonld</code> instead of <code>ro-crate-metadata.json</code>. Note that the recommended <a href="#finding-the-root-data-entity">algorithm to find the Root Data Entity</a> is agnostic to the actual filename.</p> </section> <section id="finding-ro-crate-root-in-rdf-triple-stores" class="level2" data-number="14.4"> <h2 data-number="14.4"><span class="header-section-number">14.4</span> Finding RO-Crate Root in RDF triple stores</h2> <p>When parsing <em>RO-Crate JSON-LD</em> as RDF, where the RDF framework performs resolution to absolute URIs, it may be difficult to find the <em>RO-Crate Root</em> in the parsed triples.</p> <p>The algoritm proposed in section <a href="#finding-the-root-data-entity">Root Data Entity</a> allows finding the RDF resource describing <code>ro-crate-metadata.json</code>, independent of its parsed base URI. We can adopt this for RDF triples, thus finding crates conforming to this specification can be queried with <a href="https://www.w3.org/TR/sparql11-query/">SPARQL</a>:</p> <pre class="sparql"><code>PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX schema: <http://schema.org/> SELECT ?crate ?metadatafile WHERE { ?crate a schema:Dataset . ?metadatafile schema:about ?crate . ?metadatafile dcterms:conformsTo <https://w3id.org/ro/crate/1.1> . }</code></pre> <p>..or (less efficient) for any RO-Crate version:</p> <pre class="sparql"><code>PREFIX dcterms: <http://purl.org/dc/terms/> PREFIX schema: <http://schema.org/> SELECT ?crate ?metadatafile ?spec WHERE { ?crate a schema:Dataset . ?metadatafile schema:about ?crate . ?metadatafile dcterms:conformsTo ?spec . FILTER STRSTARTS(str(?spec), "https://w3id.org/ro/crate/") }</code></pre> </section> <section id="parsing-as-rdf-with-a-different-ro-crate-root" class="level2" data-number="14.5"> <h2 data-number="14.5"><span class="header-section-number">14.5</span> Parsing as RDF with a different RO-Crate Root</h2> <p>When parsing a <em>RO-Crate Metadata File</em> into <a href="https://www.w3.org/TR/rdf11-concepts/">RDF triples</a>, for instance uploading it to a <em>graph store</em> like <a href="https://jena.apache.org/">Apache Jena</a>’s <a href="https://jena.apache.org/documentation/fuseki2/">Fuseki</a>, it is important to ensure consistent <em>base URI</em>:</p> <ul> <li>Some RDF stores and RDF formats don’t support relative URI references in triples (see <a href="https://www.w3.org/TR/rdf11-concepts/#note-iris">RDF 1.1 note on IRIs</a>)</li> <li>The <em>RO-Crate Root</em> may depend on where the <em>RO-Crate Metadata File</em> was parsed from, e.g. <code><file:///tmp/ro-crate-metadata.json></code> (file) or <code><http://localhost:3030/test/ro-crate-metadata.json></code> (web upload)</li> <li>Parsing multiple RO-Crates into the same RDF graph, using same base URI, may merge them into the same RO-Crate</li> <li><code>ro-crate-metadata.json</code> may not be recognized as JSON-LD and must be renamed to <code>ro-crate-metadata.jsonld</code></li> <li>Web servers hosting <code>ro-crate-metadata.json</code> may not send the <a href="#ro-crate-json-ld-media-type">JSON-LD <em>Content-Type</em></a></li> <li>If base URI is not correct it may be difficult to find the corresponding file and directory paths from an RDF query returning absolute URIs</li> </ul> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p>If the RDF library can parse the <em>RO-Crate JSON-LD</em> directly by retrieving from a <code>http</code>/<code>https</code> URI of the <em>RO-Crate Metadata File</em> it should calculate the correct base URI as detailed in section <a href="#establishing-absolute-uri-for-ro-crate-root">Establishing absolute URI for RO-Crate Root</a> and you should <strong>not</strong> need to override the base URI as detailed here. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <p>If a web-based URI for the <em>RO-Crate root</em> is known, then this can be supplied as a <em>base URI</em>. Most RDF tools support a <code>--base</code> option or similar. If this is not possible, then the <code>@context</code> of the <code>RO-Crate JSON-LD</code> can be modified by ensuring the <code>@context</code> is an array that sets the desired <code>@base</code>:</p> <div class="sourceCode" id="cb87"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb87-1"><a href="#cb87-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb87-2"><a href="#cb87-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb87-3"><a href="#cb87-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="ot">,</span></span> <span id="cb87-4"><a href="#cb87-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@base"</span><span class="fu">:</span> <span class="st">"http://example.com/crate255/"</span><span class="fu">}</span></span> <span id="cb87-5"><a href="#cb87-5" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb87-6"><a href="#cb87-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb87-7"><a href="#cb87-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb87-8"><a href="#cb87-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb87-9"><a href="#cb87-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb87-10"><a href="#cb87-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb87-11"><a href="#cb87-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb87-12"><a href="#cb87-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb87-13"><a href="#cb87-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb87-14"><a href="#cb87-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb87-15"><a href="#cb87-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb87-16"><a href="#cb87-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb87-17"><a href="#cb87-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb87-18"><a href="#cb87-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb87-19"><a href="#cb87-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb87-20"><a href="#cb87-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb87-21"><a href="#cb87-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb87-22"><a href="#cb87-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb87-23"><a href="#cb87-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">,</span></span> <span id="cb87-24"><a href="#cb87-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb87-25"><a href="#cb87-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Data Entities"</span></span> <span id="cb87-26"><a href="#cb87-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb87-27"><a href="#cb87-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb87-28"><a href="#cb87-28" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span><span class="fu">,</span></span> <span id="cb87-29"><a href="#cb87-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span></span> <span id="cb87-30"><a href="#cb87-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb87-31"><a href="#cb87-31" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb87-32"><a href="#cb87-32" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Parsing this will generate triples like below using <code>http://example.com/crate255/</code> as the <em>RO-Crate Root</em> (shortened):</p> <pre class="turtle"><code><http://example.com/crate255/ro-crate-metadata.json> <http://purl.org/dc/terms/conformsTo> <https://w3id.org/ro/crate/1.1> . <http://example.com/crate255/ro-crate-metadata.json> <http://schema.org/about> <http://example.com/crate255/> . <http://example.com/crate255/> <http://schema.org/name> "Example RO-Crate" . <http://example.com/crate255/> <http://schema.org/hasPart> <http://example.com/crate255/data1.txt> . <http://example.com/crate255/> <http://schema.org/hasPart> <http://example.com/crate255/subfolder/> . <http://example.com/crate255/data1.txt> <http://schema.org/description> "One of hopefully many Data Entities" .</code></pre> <p>Generating a <em>RO-Crate JSON-LD</em> from such triples can be done by first <a href="#finding-ro-crate-root-in-rdf-triple-stores">finding the RO-Crate Root</a> and then use it as base URI to <a href="#relativizing-absolute-uris-within-ro-crate-root">relativize absolute URIs within RO-Crate Root</a>.</p> </section> <section id="establishing-a-base-uri-inside-a-zip-file" class="level2" data-number="14.6"> <h2 data-number="14.6"><span class="header-section-number">14.6</span> Establishing a base URI inside a ZIP file</h2> <p>An RO-Crate may have been packaged as a ZIP file or similar archive. RO-Crates may exist in a temporary file path which should not determine its identifiers.</p> <p>When parsing such crates it is recommended to use the <a href="https://tools.ietf.org/id/draft-soilandreyes-arcp-03.html">Archive and Package (arcp) URI scheme</a> to establish a temporary/location-based UUID or hash-based (SHA256) <em>base URI</em>.</p> <p>For instance, given a randomly generated UUID <code>b7749d0b-0e47-5fc4-999d-f154abe68065</code> we can use <code>arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/</code> as the <code>@base</code>:</p> <div class="sourceCode" id="cb89"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb89-1"><a href="#cb89-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb89-2"><a href="#cb89-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb89-3"><a href="#cb89-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1/context"</span><span class="ot">,</span></span> <span id="cb89-4"><a href="#cb89-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@base"</span><span class="fu">:</span> <span class="st">"arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/"</span><span class="fu">}</span></span> <span id="cb89-5"><a href="#cb89-5" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb89-6"><a href="#cb89-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb89-7"><a href="#cb89-7" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-8"><a href="#cb89-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb89-9"><a href="#cb89-9" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb89-10"><a href="#cb89-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb89-11"><a href="#cb89-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb89-12"><a href="#cb89-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb89-13"><a href="#cb89-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb89-14"><a href="#cb89-14" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb89-15"><a href="#cb89-15" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb89-16"><a href="#cb89-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb89-17"><a href="#cb89-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-18"><a href="#cb89-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb89-19"><a href="#cb89-19" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb89-20"><a href="#cb89-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb89-21"><a href="#cb89-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb89-22"><a href="#cb89-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-23"><a href="#cb89-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span></span> <span id="cb89-24"><a href="#cb89-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb89-25"><a href="#cb89-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-26"><a href="#cb89-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span></span> <span id="cb89-27"><a href="#cb89-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb89-28"><a href="#cb89-28" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb89-29"><a href="#cb89-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb89-30"><a href="#cb89-30" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb89-31"><a href="#cb89-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-32"><a href="#cb89-32" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span><span class="fu">,</span></span> <span id="cb89-33"><a href="#cb89-33" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"File"</span><span class="fu">,</span></span> <span id="cb89-34"><a href="#cb89-34" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"One of hopefully many Data Entities"</span></span> <span id="cb89-35"><a href="#cb89-35" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb89-36"><a href="#cb89-36" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb89-37"><a href="#cb89-37" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span><span class="fu">,</span></span> <span id="cb89-38"><a href="#cb89-38" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span></span> <span id="cb89-39"><a href="#cb89-39" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb89-40"><a href="#cb89-40" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb89-41"><a href="#cb89-41" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Parsing this as RDF will generate triples including:</p> <pre class="turtle"><code><arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/ro-crate-metadata.json> <http://schema.org/about> <arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/> . <arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/> <http://schema.org/hasPart> <arcp://uuid,b7749d0b-0e47-5fc4-999d-f154abe68065/data1.txt> .</code></pre> <p>Here consumers can assume <code>/</code> is the <em>RO-Crate Root</em> and generating relative URIs can safely be achieved by search-replace as the arcp URI is unique. Saving <em>RO-Crate JSON-LD</em> from the triples can be done by using the arcp URI to <a href="#relativizing-absolute-uris-within-ro-crate-root">relativize absolute URIs within RO-Crate Root</a>.</p> <div class="a d m o n i t i o n t i p"> <div class="line-block"><span class="smallcaps">✅ Tip</span></div> <div> <p><strong>Bagit</strong>: The arcp specification suggests how <a href="https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4">BagIt identifiers</a> can be used to calculate the base URI. See also section <a href="#combining-with-other-packaging-schemes">Combining with other packaging schemes</a> - note that in this approach the <em>RO-Crate Root</em> will be the payload folder <code>/data/</code> under the calculated arcp base URI. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> </section> <section id="relativizing-absolute-uris-within-ro-crate-root" class="level2" data-number="14.7"> <h2 data-number="14.7"><span class="header-section-number">14.7</span> Relativizing absolute URIs within RO-Crate Root</h2> <p>Some applications may prefer working with absolute URIs, e.g. in a joint graph store or web-based repository, but should relativize URIs within the <em>RO-Crate Root</em> before generating the <em>RO-Crate Metadata File</em>.</p> <p>Assuming a repository at <code>example.com</code> has JSON-LD with absolute URIs:</p> <div class="sourceCode" id="cb91"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb91-1"><a href="#cb91-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb91-2"><a href="#cb91-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span><span class="fu">,</span></span> <span id="cb91-3"><a href="#cb91-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb91-4"><a href="#cb91-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb91-5"><a href="#cb91-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb91-6"><a href="#cb91-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb91-7"><a href="#cb91-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb91-8"><a href="#cb91-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb91-9"><a href="#cb91-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb91-10"><a href="#cb91-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb91-11"><a href="#cb91-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/"</span></span> <span id="cb91-12"><a href="#cb91-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb91-13"><a href="#cb91-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb91-14"><a href="#cb91-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb91-15"><a href="#cb91-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/"</span><span class="fu">,</span></span> <span id="cb91-16"><a href="#cb91-16" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb91-17"><a href="#cb91-17" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb91-18"><a href="#cb91-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb91-19"><a href="#cb91-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb91-20"><a href="#cb91-20" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/data1.txt"</span></span> <span id="cb91-21"><a href="#cb91-21" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb91-22"><a href="#cb91-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb91-23"><a href="#cb91-23" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/subfolder/"</span></span> <span id="cb91-24"><a href="#cb91-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb91-25"><a href="#cb91-25" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb91-26"><a href="#cb91-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb91-27"><a href="#cb91-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb91-28"><a href="#cb91-28" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb91-29"><a href="#cb91-29" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Then performing <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm">JSON-LD flattening</a> with this <code>@context</code>:</p> <div class="sourceCode" id="cb92"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb92-1"><a href="#cb92-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb92-2"><a href="#cb92-2" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span><span class="dt">"@base"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/"</span><span class="fu">}</span><span class="ot">,</span></span> <span id="cb92-3"><a href="#cb92-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb92-4"><a href="#cb92-4" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb92-5"><a href="#cb92-5" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <p>Will output <em>RO-Crate JSON-LD</em> with relative URIs:</p> <div class="sourceCode" id="cb93"><pre class="sourceCode json"><code class="sourceCode json"><span id="cb93-1"><a href="#cb93-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span> <span id="cb93-2"><a href="#cb93-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@context"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb93-3"><a href="#cb93-3" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb93-4"><a href="#cb93-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@base"</span><span class="fu">:</span> <span class="st">"http://example.com/crate415/"</span></span> <span id="cb93-5"><a href="#cb93-5" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb93-6"><a href="#cb93-6" aria-hidden="true" tabindex="-1"></a> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb93-7"><a href="#cb93-7" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb93-8"><a href="#cb93-8" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@graph"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb93-9"><a href="#cb93-9" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb93-10"><a href="#cb93-10" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span><span class="fu">,</span></span> <span id="cb93-11"><a href="#cb93-11" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"Dataset"</span><span class="fu">,</span></span> <span id="cb93-12"><a href="#cb93-12" aria-hidden="true" tabindex="-1"></a> <span class="dt">"description"</span><span class="fu">:</span> <span class="st">"The RO-Crate Root Data Entity"</span><span class="fu">,</span></span> <span id="cb93-13"><a href="#cb93-13" aria-hidden="true" tabindex="-1"></a> <span class="dt">"hasPart"</span><span class="fu">:</span> <span class="ot">[</span></span> <span id="cb93-14"><a href="#cb93-14" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb93-15"><a href="#cb93-15" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"data1.txt"</span></span> <span id="cb93-16"><a href="#cb93-16" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb93-17"><a href="#cb93-17" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb93-18"><a href="#cb93-18" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"subfolder/"</span></span> <span id="cb93-19"><a href="#cb93-19" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb93-20"><a href="#cb93-20" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span><span class="fu">,</span></span> <span id="cb93-21"><a href="#cb93-21" aria-hidden="true" tabindex="-1"></a> <span class="dt">"name"</span><span class="fu">:</span> <span class="st">"Example RO-Crate"</span></span> <span id="cb93-22"><a href="#cb93-22" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span><span class="ot">,</span></span> <span id="cb93-23"><a href="#cb93-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">{</span></span> <span id="cb93-24"><a href="#cb93-24" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"ro-crate-metadata.json"</span><span class="fu">,</span></span> <span id="cb93-25"><a href="#cb93-25" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@type"</span><span class="fu">:</span> <span class="st">"CreativeWork"</span><span class="fu">,</span></span> <span id="cb93-26"><a href="#cb93-26" aria-hidden="true" tabindex="-1"></a> <span class="dt">"conformsTo"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb93-27"><a href="#cb93-27" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"https://w3id.org/ro/crate/1.1"</span></span> <span id="cb93-28"><a href="#cb93-28" aria-hidden="true" tabindex="-1"></a> <span class="fu">},</span></span> <span id="cb93-29"><a href="#cb93-29" aria-hidden="true" tabindex="-1"></a> <span class="dt">"about"</span><span class="fu">:</span> <span class="fu">{</span></span> <span id="cb93-30"><a href="#cb93-30" aria-hidden="true" tabindex="-1"></a> <span class="dt">"@id"</span><span class="fu">:</span> <span class="st">"./"</span></span> <span id="cb93-31"><a href="#cb93-31" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb93-32"><a href="#cb93-32" aria-hidden="true" tabindex="-1"></a> <span class="fu">}</span></span> <span id="cb93-33"><a href="#cb93-33" aria-hidden="true" tabindex="-1"></a> <span class="ot">]</span></span> <span id="cb93-34"><a href="#cb93-34" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div> <div class="a d m o n i t i o n w a r n i n g"> <div class="line-block"><span class="smallcaps">⚠️ Warning</span></div> <div> <p>This method would also relativize URIs outside the <em>RO-Crate Root</em> that are on the same host, e.g. <code>http://example.com/crate255/other.txt</code> would become <code>../create255/other.txt</code> - this can particularly be a challenge with local <code>file:///</code> URIs. <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. {% comment %} {% include references.liquid %} {% endcomment %} --></p> </div> </div> <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. --> </section> </section> <section id="references" class="level1" data-number="15"> <h1 data-number="15"><span class="header-section-number">15</span> References</h1> <!-- Below are reference links not rendered in HTML, see https://kramdown.gettalong.org/syntax.html#reference-links Be aware that this file is used by RO-Crate 1.1 and later versions of the specification, DO NOT DELETE entries and DO NOT change VERSIONED links. This file is included by the others using this %include line (excluding comment/endcomment) and is also rendered into the end of the PDF. --> <ul> <li><p>[BagIt]: <a href="https://en.wikipedia.org/wiki/BagIt" class="uri">https://en.wikipedia.org/wiki/BagIt</a></p></li> <li><p>[BagIt profile]: <a href="https://github.com/ruebot/bagit-profiles" class="uri">https://github.com/ruebot/bagit-profiles</a></p></li> <li><p>[BIBO]: <a href="http://purl.org/ontology/bibo/interviewee" class="uri">http://purl.org/ontology/bibo/interviewee</a></p></li> <li><p>[conformsTo]: <a href="http://purl.org/dc/terms/conformsTo" class="uri">http://purl.org/dc/terms/conformsTo</a></p></li> <li><p>[CURIE]: <a href="https://www.w3.org/TR/curie/" class="uri">https://www.w3.org/TR/curie/</a></p></li> <li><p>[DataCite]: <a href="https://www.datacite.org/" class="uri">https://www.datacite.org/</a></p></li> <li><p>[DataCite Schema]: <a href="https://schema.datacite.org/" class="uri">https://schema.datacite.org/</a></p></li> <li><p>[DataCite Schema v4.0]: <a href="https://schema.datacite.org/meta/kernel-4.0/metadata.xsd" class="uri">https://schema.datacite.org/meta/kernel-4.0/metadata.xsd</a></p></li> <li><p>[DCAT]: <a href="https://www.w3.org/TR/vocab-dcat/" class="uri">https://www.w3.org/TR/vocab-dcat/</a></p></li> <li><p>[Exif]: <a href="https://en.wikipedia.org/wiki/Exif" class="uri">https://en.wikipedia.org/wiki/Exif</a></p></li> <li><p>[Flattened Document Form]: <a href="https://json-ld.org/spec/latest/json-ld/#flattened-document-form" class="uri">https://json-ld.org/spec/latest/json-ld/#flattened-document-form</a></p></li> <li><p>[FRAPO]: <a href="https://www.sparontologies.net/ontologies/frapo" class="uri">https://www.sparontologies.net/ontologies/frapo</a></p></li> <li><p>[geonames]: <a href="https://www.geonames.org/" class="uri">https://www.geonames.org/</a></p></li> <li><p>[git]: <a href="https://git-scm.com/" class="uri">https://git-scm.com/</a></p></li> <li><p>[hasFile]: <a href="https://pcdm.org/2016/04/18/models#hasFile" class="uri">https://pcdm.org/2016/04/18/models#hasFile</a></p></li> <li><p>[hasMember]: <a href="https://pcdm.org/2016/04/18/models#hasMember" class="uri">https://pcdm.org/2016/04/18/models#hasMember</a></p></li> <li><p>[isOutputOf]: <a href="https://sparontologies.github.io/frapo/current/frapo.html#d4e526" class="uri">https://sparontologies.github.io/frapo/current/frapo.html#d4e526</a></p></li> <li><p>[JSON]: <a href="http://json.org/" class="uri">http://json.org/</a></p></li> <li><p>[JSON-LD]: <a href="https://json-ld.org/" class="uri">https://json-ld.org/</a></p></li> <li><p>[linked data]: <a href="https://en.wikipedia.org/wiki/Linked_data" class="uri">https://en.wikipedia.org/wiki/Linked_data</a></p></li> <li><p>[OCFL]: <a href="https://ocfl.io/" class="uri">https://ocfl.io/</a></p></li> <li><p>[OCFL Object]: <a href="https://ocfl.io/1.0/spec/#object-spec" class="uri">https://ocfl.io/1.0/spec/#object-spec</a></p></li> <li><p>[ORCID]: <a href="https://orcid.org" class="uri">https://orcid.org</a></p></li> <li><p>[Pairtree]: <a href="https://confluence.ucop.edu/display/Curation/PairTree" class="uri">https://confluence.ucop.edu/display/Curation/PairTree</a></p></li> <li><p>[Pairtree specification]: <a href="https://confluence.ucop.edu/display/Curation/PairTree?preview=/14254128/16973838/PairtreeSpec.pdf" class="uri">https://confluence.ucop.edu/display/Curation/PairTree?preview=/14254128/16973838/PairtreeSpec.pdf</a></p></li> <li><p>[PCDM]: <a href="https://github.com/duraspace/pcdm/wiki" class="uri">https://github.com/duraspace/pcdm/wiki</a></p></li> <li><p>[Pronom]: <a href="https://www.nationalarchives.gov.uk/PRONOM/Default.aspx" class="uri">https://www.nationalarchives.gov.uk/PRONOM/Default.aspx</a></p></li> <li><p>[RepositoryCollection]: <a href="https://pcdm.org/2016/04/18/models#Collection" class="uri">https://pcdm.org/2016/04/18/models#Collection</a></p></li> <li><p>[RepositoryObject]: <a href="https://pcdm.org/2016/04/18/models#Object" class="uri">https://pcdm.org/2016/04/18/models#Object</a></p></li> <li><p>[ResearchObject]: <a href="https://www.researchobject.org/" class="uri">https://www.researchobject.org/</a></p></li> <li><p>[Schema.org]: <a href="http://schema.org" class="uri">http://schema.org</a></p></li> <li><p>[WorkflowSketch]: <a href="http://wf4ever.github.io/ro/2016-01-28/roterms/#Sketch" class="uri">http://wf4ever.github.io/ro/2016-01-28/roterms/#Sketch</a></p></li> <li><p>[Omeka]: <a href="https://omeka.org" class="uri">https://omeka.org</a></p></li> <li><p>[Linked Data principles]: <a href="https://5stardata.info/en/" class="uri">https://5stardata.info/en/</a></p></li> <li><p>[open standards from W3C]: <a href="https://www.w3.org/standards/" class="uri">https://www.w3.org/standards/</a></p></li> <li><p>[CC-BY]: <a href="https://creativecommons.org/licenses/by/4.0/" class="uri">https://creativecommons.org/licenses/by/4.0/</a></p></li> <li><p>[GPL 3.0]: <a href="https://www.gnu.org/licenses/gpl-3.0" class="uri">https://www.gnu.org/licenses/gpl-3.0</a></p></li> <li><p>[CC0]: <a href="https://creativecommons.org/publicdomain/zero/1.0/" class="uri">https://creativecommons.org/publicdomain/zero/1.0/</a></p></li> <li><p>[Exif]: <a href="https://en.wikipedia.org/wiki/Exif" class="uri">https://en.wikipedia.org/wiki/Exif</a></p></li> <li><p>[HTML 5]: <a href="https://www.w3.org/TR/html52/" class="uri">https://www.w3.org/TR/html52/</a></p></li> <li><p>[W3C RDF 1.1 formats]: <a href="https://www.w3.org/TR/rdf11-primer/" class="uri">https://www.w3.org/TR/rdf11-primer/</a></p></li> <li><p>[Research Organization Registry URIs]: <a href="https://ror.org/" class="uri">https://ror.org/</a></p></li> <li><p>[Google Dataset Search]: <a href="https://developers.google.com/search/docs/data-types/dataset" class="uri">https://developers.google.com/search/docs/data-types/dataset</a></p></li> <li><p>[JSON-LD 1.0]: <a href="https://www.w3.org/TR/2014/REC-json-ld-20140116/" class="uri">https://www.w3.org/TR/2014/REC-json-ld-20140116/</a></p></li> <li><p>[flattened]: <a href="https://www.w3.org/TR/json-ld/#flattened-document-form" class="uri">https://www.w3.org/TR/json-ld/#flattened-document-form</a></p></li> <li><p>[compacted]: <a href="https://www.w3.org/TR/json-ld/#compacted-document-form" class="uri">https://www.w3.org/TR/json-ld/#compacted-document-form</a></p></li> <li><p>[FORCE11 Data Citation Principles]: <a href="https://doi.org/10.25490/a97f-egyk" class="uri">https://doi.org/10.25490/a97f-egyk</a></p></li> <li><p>[RFC3986 section 3.3]: <a href="https://tools.ietf.org/html/rfc3986#section-3.3" class="uri">https://tools.ietf.org/html/rfc3986#section-3.3</a></p></li> <li><p>[JSON-LD context]: <a href="https://www.w3.org/TR/json-ld/#the-context" class="uri">https://www.w3.org/TR/json-ld/#the-context</a></p></li> <li><p>[BagIt UUID identifiers]: <a href="https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4" class="uri">https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4</a></p></li> <li><p>[domainIncludes]: <a href="http://schema.org/domainIncludes" class="uri">http://schema.org/domainIncludes</a></p></li> <li><p>[rangeIncludes]: <a href="http://schema.org/rangeIncludes" class="uri">http://schema.org/rangeIncludes</a></p></li> <li><p>[Schema.org schema]: <a href="https://schema.org/version/latest/schemaorg-current-http.jsonld" class="uri">https://schema.org/version/latest/schemaorg-current-http.jsonld</a></p></li> <li><p>[rdfs:subClassOf]: <a href="https://www.w3.org/TR/rdf-schema/#ch_subclassof" class="uri">https://www.w3.org/TR/rdf-schema/#ch_subclassof</a></p></li> <li><p>[JSON-LD tooling]: <a href="https://json-ld.org/#developers" class="uri">https://json-ld.org/#developers</a></p></li> <li><p>[JSON-LD flattening]: <a href="https://www.w3.org/TR/json-ld-api/#flattening-algorithm" class="uri">https://www.w3.org/TR/json-ld-api/#flattening-algorithm</a></p></li> <li><p>[JSON-LD Expansion]: <a href="https://www.w3.org/TR/json-ld-api/#expansion" class="uri">https://www.w3.org/TR/json-ld-api/#expansion</a></p></li> <li><p>[JSON-LD base URI]: <a href="https://www.w3.org/TR/json-ld11/#base-iri" class="uri">https://www.w3.org/TR/json-ld11/#base-iri</a></p></li> <li><p>[JSON-LD expanded form]: <a href="https://www.w3.org/TR/json-ld11/#expanded-document-form" class="uri">https://www.w3.org/TR/json-ld11/#expanded-document-form</a></p></li> <li><p>[RFC3986 base URI]: <a href="http://tools.ietf.org/html/rfc3986#section-5.1" class="uri">http://tools.ietf.org/html/rfc3986#section-5.1</a></p></li> <li><p>[SPARQL]: <a href="https://www.w3.org/TR/sparql11-query/" class="uri">https://www.w3.org/TR/sparql11-query/</a></p></li> <li><p>[RDF triples]: <a href="https://www.w3.org/TR/rdf11-concepts/" class="uri">https://www.w3.org/TR/rdf11-concepts/</a></p></li> <li><p>[Apache Jena]: <a href="https://jena.apache.org/" class="uri">https://jena.apache.org/</a></p></li> <li><p>[Fuseki]: <a href="https://jena.apache.org/documentation/fuseki2/" class="uri">https://jena.apache.org/documentation/fuseki2/</a></p></li> <li><p>[RDF 1.1 note on IRIs]: <a href="https://www.w3.org/TR/rdf11-concepts/#note-iris" class="uri">https://www.w3.org/TR/rdf11-concepts/#note-iris</a></p></li> <li><p>[ARCP]: <a href="https://tools.ietf.org/id/draft-soilandreyes-arcp-03.html" class="uri">https://tools.ietf.org/id/draft-soilandreyes-arcp-03.html</a></p></li> <li><p>[ARCP BagIt]: <a href="https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4" class="uri">https://tools.ietf.org/html/draft-soilandreyes-arcp-03#appendix-A.4</a></p></li> <li><p>[media type]: <a href="https://www.iana.org/assignments/media-types" class="uri">https://www.iana.org/assignments/media-types</a></p></li> <li><p>[JSON-LD media type]: <a href="https://www.w3.org/TR/json-ld/#application-ld-json" class="uri">https://www.w3.org/TR/json-ld/#application-ld-json</a></p></li> <li><p>[RFC7231 response]: <a href="https://tools.ietf.org/html/rfc7231#section-3.1.1.5" class="uri">https://tools.ietf.org/html/rfc7231#section-3.1.1.5</a></p></li> <li><p>[BIBO ontology]: <a href="http://neologism.ecs.soton.ac.uk/bibo.html" class="uri">http://neologism.ecs.soton.ac.uk/bibo.html</a></p></li> <li><p>[ro-terms]: <a href="https://github.com/ResearchObject/ro-terms" class="uri">https://github.com/ResearchObject/ro-terms</a></p></li> <li><p>[function parameter definitions]: <a href="https://en.wikipedia.org/wiki/Parameter_(computer_programming)" class="uri">https://en.wikipedia.org/wiki/Parameter_(computer_programming)</a></p></li> <li><p>[Best Practice Recipes for Publishing RDF Vocabularies]: <a href="https://www.w3.org/TR/swbp-vocab-pub/" class="uri">https://www.w3.org/TR/swbp-vocab-pub/</a></p></li> <li><p>[Action]: <a href="http://schema.org/Action" class="uri">http://schema.org/Action</a></p></li> <li><p>[ActionStatusType]: <a href="http://schema.org/ActionStatusType" class="uri">http://schema.org/ActionStatusType</a></p></li> <li><p>[ActiveActionStatus]: <a href="http://schema.org/ActiveActionStatus" class="uri">http://schema.org/ActiveActionStatus</a></p></li> <li><p>[Class]: <a href="http://schema.org/Class" class="uri">http://schema.org/Class</a></p></li> <li><p>[CompletedActionStatus]: <a href="http://schema.org/CompletedActionStatus" class="uri">http://schema.org/CompletedActionStatus</a></p></li> <li><p>[ComputerLanguage]: <a href="http://schema.org/ComputerLanguage" class="uri">http://schema.org/ComputerLanguage</a></p></li> <li><p>[CreateAction]: <a href="http://schema.org/CreateAction" class="uri">http://schema.org/CreateAction</a></p></li> <li><p>[CreativeWork]: <a href="http://schema.org/CreativeWork" class="uri">http://schema.org/CreativeWork</a></p></li> <li><p>[DataDownload]: <a href="http://schema.org/DataDownload" class="uri">http://schema.org/DataDownload</a></p></li> <li><p>[DateTime]: <a href="https://schema.org/DateTime" class="uri">https://schema.org/DateTime</a></p></li> <li><p>[Dataset]: <a href="http://schema.org/Dataset" class="uri">http://schema.org/Dataset</a></p></li> <li><p>[FailedActionStatus]: <a href="http://schema.org/FailedActionStatus" class="uri">http://schema.org/FailedActionStatus</a></p></li> <li><p>[File]: <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a></p></li> <li><p>[Journal]: <a href="http://schema.org/Periodical" class="uri">http://schema.org/Periodical</a></p></li> <li><p>[GeoCoordinates]: <a href="http://schema.org/GeoCoordinates" class="uri">http://schema.org/GeoCoordinates</a></p></li> <li><p>[ImageObject]: <a href="http://schema.org/ImageObject" class="uri">http://schema.org/ImageObject</a></p></li> <li><p>[MediaObject]: <a href="http://schema.org/MediaObject" class="uri">http://schema.org/MediaObject</a></p></li> <li><p>[Organization]: <a href="http://schema.org/Organization" class="uri">http://schema.org/Organization</a></p></li> <li><p>[Person]: <a href="http://schema.org/Person" class="uri">http://schema.org/Person</a></p></li> <li><p>[PotentialActionStatus]: <a href="http://schema.org/PotentialActionStatus" class="uri">http://schema.org/PotentialActionStatus</a></p></li> <li><p>[Place]: <a href="http://schema.org/Place" class="uri">http://schema.org/Place</a></p></li> <li><p>[Product]: <a href="http://schema.org/Product" class="uri">http://schema.org/Product</a></p></li> <li><p>[Property]: <a href="http://schema.org/Property" class="uri">http://schema.org/Property</a></p></li> <li><p>[PropertyValue]: <a href="http://schema.org/PropertyValue" class="uri">http://schema.org/PropertyValue</a></p></li> <li><p>[ScholarlyArticle]: <a href="http://schema.org/ScholarlyArticle" class="uri">http://schema.org/ScholarlyArticle</a></p></li> <li><p>[SoftwareApplication]: <a href="http://schema.org/SoftwareApplication" class="uri">http://schema.org/SoftwareApplication</a></p></li> <li><p>[SoftwareSourceCode]: <a href="http://schema.org/SoftwareSourceCode" class="uri">http://schema.org/SoftwareSourceCode</a></p></li> <li><p>[UpdateAction]: <a href="http://schema.org/UpdateAction" class="uri">http://schema.org/UpdateAction</a></p></li> <li><p>[WebSite]: <a href="http://schema.org/WebSite" class="uri">http://schema.org/WebSite</a></p></li> <li><p>[about]: <a href="http://schema.org/about" class="uri">http://schema.org/about</a></p></li> <li><p>[accountablePerson]: <a href="http://schema.org/accountablePerson" class="uri">http://schema.org/accountablePerson</a></p></li> <li><p>[actionStatus]: <a href="http://schema.org/actionStatus" class="uri">http://schema.org/actionStatus</a></p></li> <li><p>[additionalType]: <a href="http://schema.org/additionalType" class="uri">http://schema.org/additionalType</a></p></li> <li><p>[affiliation]: <a href="http://schema.org/affiliation" class="uri">http://schema.org/affiliation</a></p></li> <li><p>[agent]: <a href="http://schema.org/agent" class="uri">http://schema.org/agent</a></p></li> <li><p>[alternateName]: <a href="http://schema.org/alternateName" class="uri">http://schema.org/alternateName</a></p></li> <li><p>[author]: <a href="http://schema.org/author" class="uri">http://schema.org/author</a></p></li> <li><p>[citation]: <a href="http://schema.org/citation" class="uri">http://schema.org/citation</a></p></li> <li><p>[contact]: <a href="http://schema.org/accountablePerson" class="uri">http://schema.org/accountablePerson</a></p></li> <li><p>[contactPoint]: <a href="http://schema.org/contactPoint" class="uri">http://schema.org/contactPoint</a></p></li> <li><p>[contactType]: <a href="http://schema.org/contactType" class="uri">http://schema.org/contactType</a></p></li> <li><p>[contentLocation]: <a href="http://schema.org/contentLocation" class="uri">http://schema.org/contentLocation</a></p></li> <li><p>[contentSize]: <a href="http://schema.org/contentSize" class="uri">http://schema.org/contentSize</a></p></li> <li><p>[contributor]: <a href="http://schema.org/contributor" class="uri">http://schema.org/contributor</a></p></li> <li><p>[copyrightHolder]: <a href="http://schema.org/copyrightHolder" class="uri">http://schema.org/copyrightHolder</a></p></li> <li><p>[creator]: <a href="http://schema.org/creator" class="uri">http://schema.org/creator</a></p></li> <li><p>[dateCreated]: <a href="http://schema.org/dateCreated" class="uri">http://schema.org/dateCreated</a></p></li> <li><p>[datePublished]: <a href="http://schema.org/datePublished" class="uri">http://schema.org/datePublished</a></p></li> <li><p>[defaultValue]: <a href="http://schema.org/defaultValue" class="uri">http://schema.org/defaultValue</a></p></li> <li><p>[description]: <a href="http://schema.org/description" class="uri">http://schema.org/description</a></p></li> <li><p>[distribution]: <a href="http://schema.org/distribution" class="uri">http://schema.org/distribution</a></p></li> <li><p>[email]: <a href="http://schema.org/email" class="uri">http://schema.org/email</a></p></li> <li><p>[encodingFormat]: <a href="http://schema.org/encodingFormat" class="uri">http://schema.org/encodingFormat</a></p></li> <li><p>[endTime]: <a href="http://schema.org/endTime" class="uri">http://schema.org/endTime</a></p></li> <li><p>[error]: <a href="http://schema.org/error" class="uri">http://schema.org/error</a></p></li> <li><p>[event]: <a href="http://schema.org/event" class="uri">http://schema.org/event</a></p></li> <li><p>[familyName]: <a href="http://schema.org/familyName" class="uri">http://schema.org/familyName</a></p></li> <li><p>[funder]: <a href="http://schema.org/funder" class="uri">http://schema.org/funder</a></p></li> <li><p>[geo]: <a href="http://schema.org/geo" class="uri">http://schema.org/geo</a></p></li> <li><p>[givenName]: <a href="http://schema.org/givenName" class="uri">http://schema.org/givenName</a></p></li> <li><p>[hasPart]: <a href="http://schema.org/hasPart" class="uri">http://schema.org/hasPart</a></p></li> <li><p>[identifier]: <a href="http://schema.org/identifier" class="uri">http://schema.org/identifier</a></p></li> <li><p>[IndividualProduct]: <a href="http://schema.org/IndividualProduct" class="uri">http://schema.org/IndividualProduct</a></p></li> <li><p>[instrument]: <a href="http://schema.org/instrument" class="uri">http://schema.org/instrument</a></p></li> <li><p>[keywords]: <a href="http://schema.org/keywords" class="uri">http://schema.org/keywords</a></p></li> <li><p>[license]: <a href="http://schema.org/license" class="uri">http://schema.org/license</a></p></li> <li><p>[memberOf]: <a href="http://schema.org/memberOf" class="uri">http://schema.org/memberOf</a></p></li> <li><p>[name]: <a href="http://schema.org/name" class="uri">http://schema.org/name</a></p></li> <li><p>[object]: <a href="http://schema.org/object" class="uri">http://schema.org/object</a></p></li> <li><p>[phone]: <a href="http://schema.org/phone" class="uri">http://schema.org/phone</a></p></li> <li><p>[programmingLanguage]: <a href="http://schema.org/programmingLanguage" class="uri">http://schema.org/programmingLanguage</a></p></li> <li><p>[publisher]: <a href="http://schema.org/publisher" class="uri">http://schema.org/publisher</a></p></li> <li><p>[relatedItem]: <a href="http://schema.org/relatedItem" class="uri">http://schema.org/relatedItem</a></p></li> <li><p>[result]: <a href="http://schema.org/result" class="uri">http://schema.org/result</a></p></li> <li><p>[sameAs]: <a href="http://schema.org/sameAs" class="uri">http://schema.org/sameAs</a></p></li> <li><p>[sdLicense]: <a href="http://schema.org/sdLicense" class="uri">http://schema.org/sdLicense</a></p></li> <li><p>[sdPublisher]: <a href="http://schema.org/sdPublisher" class="uri">http://schema.org/sdPublisher</a></p></li> <li><p>[sdDatePublished]: <a href="https://schema.org/sdDatePublished" class="uri">https://schema.org/sdDatePublished</a></p></li> <li><p>[startTime]: <a href="http://schema.org/startTime" class="uri">http://schema.org/startTime</a></p></li> <li><p>[temporalCoverage]: <a href="http://schema.org/temporalCoverage" class="uri">http://schema.org/temporalCoverage</a></p></li> <li><p>[thumbnail]: <a href="http://schema.org/thumbnail" class="uri">http://schema.org/thumbnail</a></p></li> <li><p>[translationOf]: <a href="http://schema.org/translationOf" class="uri">http://schema.org/translationOf</a></p></li> <li><p>[translator]: <a href="http://schema.org/translator" class="uri">http://schema.org/translator</a></p></li> <li><p>[url]: <a href="http://schema.org/url" class="uri">http://schema.org/url</a></p></li> <li><p>[valueRequired]: <a href="http://schema.org/valueRequired" class="uri">http://schema.org/valueRequired</a></p></li> <li><p>[version]: <a href="http://schema.org/version" class="uri">http://schema.org/version</a></p></li> <li><p>[creativeWorkStatus]: <a href="http://schema.org/creativeWorkStatus" class="uri">http://schema.org/creativeWorkStatus</a></p></li> <li><p>[funding]: <a href="https://github.com/schemaorg/schemaorg/pull/2618" class="uri">https://github.com/schemaorg/schemaorg/pull/2618</a></p></li> <li><p>[isBasedOn]: <a href="http://schema.org/isBasedOn" class="uri">http://schema.org/isBasedOn</a></p></li> <li><p>[maintainer]: <a href="http://schema.org/maintainer" class="uri">http://schema.org/maintainer</a></p></li> <li><p>[producer]: <a href="http://schema.org/producer" class="uri">http://schema.org/producer</a></p></li> <li><p>[runtimePlatform]: <a href="http://schema.org/runtimePlatform" class="uri">http://schema.org/runtimePlatform</a></p></li> <li><p>[softwareRequirements]: <a href="http://schema.org/softwareRequirements" class="uri">http://schema.org/softwareRequirements</a></p></li> <li><p>[targetProduct]: <a href="http://schema.org/targetProduct" class="uri">http://schema.org/targetProduct</a></p></li> <li><p>[conditionsOfAccess]: <a href="http://schema.org/conditionsOfAccess" class="uri">http://schema.org/conditionsOfAccess</a></p></li> <li><p>[dateModified]: <a href="http://schema.org/dateModified" class="uri">http://schema.org/dateModified</a></p></li> <li><p>[image]: <a href="http://schema.org/image" class="uri">http://schema.org/image</a></p></li> <li><p>[Grant]: <a href="http://schema.org/Grant" class="uri">http://schema.org/Grant</a></p></li> <li><p>[Project]: <a href="http://schema.org/Project" class="uri">http://schema.org/Project</a></p></li> <li><p>[subjectOf]: <a href="http://schema.org/subjectOf" class="uri">http://schema.org/subjectOf</a></p></li> <li><p>[mainEntityOfPage]: <a href="http://schema.org/mainEntityOfPage" class="uri">http://schema.org/mainEntityOfPage</a></p></li> <li><p>[WebPage]: <a href="https://schema.org/WebPage" class="uri">https://schema.org/WebPage</a></p></li> <li><p>[input]: <a href="https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/#input" class="uri">https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/#input</a></p></li> <li><p>[output]: <a href="https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/#output" class="uri">https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/#output</a></p></li> <li><p>[FormalParameter]: <a href="https://bioschemas.org/types/FormalParameter/0.1-DRAFT-2020_07_21/" class="uri">https://bioschemas.org/types/FormalParameter/0.1-DRAFT-2020_07_21/</a></p></li> <li><p>[ComputationalWorkflow]: <a href="https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/" class="uri">https://bioschemas.org/types/ComputationalWorkflow/0.1-DRAFT-2020_07_21/</a></p></li> <li><p>[ComputationalWorkflow profile]: <a href="https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/" class="uri">https://bioschemas.org/profiles/ComputationalWorkflow/0.5-DRAFT-2020_07_21/</a></p></li> <li><p>[FormalParameter profile]: <a href="https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/" class="uri">https://bioschemas.org/profiles/FormalParameter/0.1-DRAFT-2020_07_21/</a></p></li> <li><p>[RFC 2119]: <a href="https://tools.ietf.org/html/rfc2119" class="uri">https://tools.ietf.org/html/rfc2119</a></p></li> <li><p>[RFC 3986]: <a href="https://tools.ietf.org/html/rfc3986" class="uri">https://tools.ietf.org/html/rfc3986</a></p></li> <li><p>[RFC 6838]: <a href="https://tools.ietf.org/html/rfc6838" class="uri">https://tools.ietf.org/html/rfc6838</a></p></li> <li><p>[RFC 7159]: <a href="https://tools.ietf.org/html/rfc7159" class="uri">https://tools.ietf.org/html/rfc7159</a></p></li> <li><p>[RFC 8493]: <a href="https://tools.ietf.org/html/rfc8493" class="uri">https://tools.ietf.org/html/rfc8493</a></p></li> </ul> </section> </body> </html>