CINXE.COM
OBO Foundry
<!doctype html> <html lang="en"> <head> <title>OBO Foundry</title><!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css"> <!-- Prism.js is for code blocks --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism.css" /> <!-- bootstrap icons, see https://icons.getbootstrap.com/#install --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css"> <!-- Custom stylesheet --> <link rel="stylesheet" href="/assets/css/style.css"> <link type="application/atom+xml" rel="alternate" href="http://obofoundry.org/feed.xml" title="The OBO Foundry" /> <style> html, body { height: 100%; } body { display: flex; flex-flow: column; } .footer { margin-top: auto; padding-top: 1em; background-color: #f5f5f5; } </style> </head> <body><nav class="navbar navbar-expand-lg navbar-light bg-light"> <div class="container-fluid"> <a class="navbar-brand" href="/"> <img src="/images/foundrylogo.png" alt="" style="max-height: 24px" class="d-inline-block align-text-top"> OBO Foundry </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav me-auto mb-2 mb-lg-0"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarAboutDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> About </a> <ul class="dropdown-menu" aria-labelledby="navbarAboutDropdown"> <li><a class="dropdown-item" href="/about-OBO-Foundry.html">About</a></li> <li><a class="dropdown-item" href="/docs/COC.html">Code of Conduct</a></li> <li><a class="dropdown-item" href="/resources">Resources</a></li> <li> <hr class="dropdown-divider"> </li> <li><a class="dropdown-item" href="/docs/OperationsCommittee.html">Operations Committee</a></li> <li><a class="dropdown-item" href="/docs/SOP.html" style="padding-left: 2em">Standard Operating Procedures</a></li> <li><a class="dropdown-item" href="/docs/EditorialWG.html" style="padding-left: 2em">Editorial Working Group</a></li> <li><a class="dropdown-item" href="/docs/TechnicalWG.html" style="padding-left: 2em">Technical Working Group</a></li> <li><a class="dropdown-item" href="/docs/OutreachWG.html" style="padding-left: 2em">Outreach Working Group</a></li> <li><a class="dropdown-item" href="/roles/">OBO Foundry Organizational Roles</a></li> <li> <hr class="dropdown-divider"> </li> <li><a class="dropdown-item" href="https://github.com/OBOFoundry/OBOFoundry.github.io">GitHub Project</a></li> <li><a class="dropdown-item" href="https://github.com/OBOFoundry">GitHub Organization</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarPrinciplesDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Principles </a> <ul class="dropdown-menu" aria-labelledby="navbarPrinciplesDropdown"> <li><a class="dropdown-item" href="/principles/fp-000-summary.html">Overview</a></li> <li><a class="dropdown-item" href="/principles/fp-001-open.html">Open (principle 1)</a></li> <li><a class="dropdown-item" href="/principles/fp-002-format.html">Common Format (principle 2)</a></li> <li><a class="dropdown-item" href="/principles/fp-003-uris.html">URI/Identifier Space (principle 3)</a></li> <li><a class="dropdown-item" href="/principles/fp-004-versioning.html">Versioning (principle 4)</a></li> <li><a class="dropdown-item" href="/principles/fp-005-delineated-content.html">Scope (principle 5)</a></li> <li><a class="dropdown-item" href="/principles/fp-006-textual-definitions.html">Textual Definitions (principle 6)</a></li> <li><a class="dropdown-item" href="/principles/fp-007-relations.html">Relations (principle 7)</a></li> <li><a class="dropdown-item" href="/principles/fp-008-documented.html">Documentation (principle 8)</a></li> <li><a class="dropdown-item" href="/principles/fp-009-users.html">Documented Plurality of Users (principle 9)</a></li> <li><a class="dropdown-item" href="/principles/fp-010-collaboration.html">Commitment To Collaboration (principle 10)</a></li> <li><a class="dropdown-item" href="/principles/fp-011-locus-of-authority.html">Locus of Authority (principle 11)</a></li> <li><a class="dropdown-item" href="/principles/fp-012-naming-conventions.html">Naming Conventions (principle 12)</a></li> <li><a class="dropdown-item" href="/principles/fp-013-notification.html">Notification of Changes (principle 13)</a></li> <li><a class="dropdown-item" href="/principles/fp-016-maintenance.html">Maintenance (principle 16)</a></li> <li><a class="dropdown-item" href="/principles/fp-020-responsiveness.html">Responsiveness (principle 20)</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarOntologiesDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Ontologies </a> <ul class="dropdown-menu" aria-labelledby="navbarOntologiesDropdown"> <li><a class="dropdown-item" href="/">Ontology Table</a></li> <li><a class="dropdown-item" href="/id-policy.html">ID Policy</a></li> <li><a class="dropdown-item" href="http://dashboard.obofoundry.org/dashboard/index.html">OBO Dashboard</a></li> <li> <hr class="dropdown-divider"> </li> <li> <a class="dropdown-item" href="https://github.com/OBOFoundry/OBOFoundry.github.io/tree/master/ontology"> Ontologies Metadata Source </a> </li> <li> <a class="dropdown-item" href="https://github.com/OBOFoundry/OBOFoundry.github.io/blob/master/registry/"> Combined Metadata </a> </li> <li> <a class="dropdown-item" href="http://purl.obolibrary.org/meta/obo_context.jsonld"> JSON-LD 1.1 Context </a> </li> <li> <a class="dropdown-item" href="http://purl.obolibrary.org/meta/ontologies.yml"> Ontology YAML </a> </li> <li> <a class="dropdown-item" href="http://purl.obolibrary.org/meta/ontologies.jsonld"> Ontology JSON-LD </a> </li> <li> <a class="dropdown-item" href="http://purl.obolibrary.org/meta/ontologies.ttl"> Ontology RDF/Turtle </a> </li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarCitationDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Citation </a> <ul class="dropdown-menu" aria-labelledby="navbarCitationDropdown"> <li><a class="dropdown-item" href="/citation/Citation.html">Cite Ontologies</a></li> <li><a class="dropdown-item" href="/citation/RelatedPublications.html">OBO Foundry Publications</a></li> <li><a class="dropdown-item" href="/citation/KnownPublications.html">Known OBO Foundry Ontology Publications</a></li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarParticipateDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Participate </a> <ul class="dropdown-menu" aria-labelledby="navbarParticipateDropdown"> <li> <a class="dropdown-item" href="https://github.com/OBOFoundry/OBOFoundry.github.io/issues">OBO Foundry Issue Tracker</a></li> <li> <a class="dropdown-item" href="https://groups.google.com/forum/#!forum/obo-discuss">OBO-Discuss Mail List</a> </li> <li> <a class="dropdown-item" href="https://groups.google.com/forum/#!members/obo-tools">OBO-Tools Mail List</a> </li> <li> <a class="dropdown-item" href="https://join.slack.com/t/obo-communitygroup/shared_invite/zt-1oq48ttk7-kKo0i6TwntYtAq~Jcjjg4g">OBO Community Slack channel</a> </li> <li> <a class="dropdown-item" href="/docs/NewOBOFC.html">Join the OBO Operations Committee</a> </li> <li> <a class="dropdown-item" href="/faq/how-do-i-register-my-ontology.html">Submit your ontology</a> </li> </ul> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarNewsletterDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Newsletter </a> <ul class="dropdown-menu" aria-labelledby="navbarNewsletterDropdown"> <li><a class="dropdown-item" href="/newsletter/2025/01/23/7th-issue-newsletter.html">OBO Foundry Newsletter Issue 7</a></li> <li><a class="dropdown-item" href="/newsletter/2024/10/14/6th-issue-newsletter.html">OBO Foundry Newsletter Issue 6</a></li> <li><a class="dropdown-item" href="/newsletter/2024/06/27/5th-issue-newsletter.html">OBO Foundry Newsletter Issue 5</a></li> <li><a class="dropdown-item" href="/newsletter/2024/03/18/4th-issue-newsletter.html">OBO Foundry Newsletter Issue 4</a></li> <li><a class="dropdown-item" href="/newsletter/2023/12/18/3rd-issue-newsletter.html">OBO Foundry Newsletter Issue 3</a></li> <li><a class="dropdown-item" href="/newsletter/2023/09/15/second-issue-newsletter.html">OBO Foundry Newsletter issue 2</a></li> <li><a class="dropdown-item" href="/newsletter/2023/06/16/inaugural-newsletter.html">Inaugural OBO Foundry Newsletter</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="/faq/index.html">FAQ</a> </li> </ul> </div> </div> </nav> <div class="container" style="margin-top: 2em; margin-bottom: 2em;"> <div class="content"> <div> <div class="page-header"> <h1> Principle: Open (principle 1) </h1> <p></p> </div> </div> <div class="col-md-12"> <div class="row"> <div class="col-md-3"> <ul> <li> <a href="fp-000-summary.html">Overview</a> </li> <li> <a href="fp-001-open.html">Open (principle 1)</a> </li> <li> <a href="fp-002-format.html">Common Format (principle 2)</a> </li> <li> <a href="fp-003-uris.html">URI/Identifier Space (principle 3)</a> </li> <li> <a href="fp-004-versioning.html">Versioning (principle 4)</a> </li> <li> <a href="fp-005-delineated-content.html">Scope (principle 5)</a> </li> <li> <a href="fp-006-textual-definitions.html">Textual Definitions (principle 6)</a> </li> <li> <a href="fp-007-relations.html">Relations (principle 7)</a> </li> <li> <a href="fp-008-documented.html">Documentation (principle 8)</a> </li> <li> <a href="fp-009-users.html">Documented Plurality of Users (principle 9)</a> </li> <li> <a href="fp-010-collaboration.html">Commitment To Collaboration (principle 10)</a> </li> <li> <a href="fp-011-locus-of-authority.html">Locus of Authority (principle 11)</a> </li> <li> <a href="fp-012-naming-conventions.html">Naming Conventions (principle 12)</a> </li> <li> <a href="fp-013-notification.html">Notification of Changes (principle 13)</a> </li> <li> <a href="fp-016-maintenance.html">Maintenance (principle 16)</a> </li> <li> <a href="fp-020-responsiveness.html">Responsiveness (principle 20)</a> </li> </ul> <div class="btn-group" role="group" aria-label="Source"> <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/blob/master/principles/fp-001-open.md" > <button type="button" data-toggle="tooltip" title="See FAQ entry: How I do propose edits to principles?" html="true" class="btn btn-outline-primary" > View </button> </a> <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/edit/master/principles/fp-001-open.md" > <button type="button" data-toggle="tooltip" title="See FAQ entry: How I do propose edits to principles?" html="true" class="btn btn-outline-primary" > Edit </button> </a> <!-- <button type="button" class="btn btn-outline-primary">Help</button> --> </div> <div> This page is generated via <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/blob/master/_layouts/principle.html" >_layouts/principle.html</a >. See <a href="/faq/how-do-i-edit-content.html">edit guide</a> </div> </div> <div class="col-md-9"><p>GO TO: <a href="#recommendations-and-requirements">Recommendations/Requirements</a> | <a href="#implementation">Implementation</a> | <a href="#examples">Examples/Counter‑Examples</a> | <a href="#criteria-for-review">Criteria for Review</a> | <a href="#feedback-and-discussion">Feedback/Discussion</a></p> <h2 id="summary">Summary</h2> <p>The ontology MUST be openly available to be used by all without any constraint other than (a) its origin must be acknowledged and (b) it is not to be altered and subsequently redistributed in altered form under the original name or with the same identifiers.</p> <h2 id="purpose">Purpose</h2> <p>OBO Foundry ontologies are resources for the entire biological and biomedical community. Furthermore, in order to realize the OBO Foundry vision of a suite of interoperable ontologies, ontology developers must be free to re-use terms from any OBO Foundry ontology. For these reasons, the ontologies must be available to all without any constraint on their use or redistribution. Nonetheless, it is proper that their original source is always credited and that after any external alterations, ontologies must never be redistributed under the same name or with the same identifiers.</p> <h2 id="recommendations-and-requirements">Recommendations and Requirements</h2> <h3 id="for-ontology-providers">For ontology providers</h3> <p>OBO Foundry Ontologies MUST EITHER be released under a <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 Unported (CC BY 3.0)</a> license or later (e.g. <a href="https://creativecommons.org/licenses/by/4.0/">Attribution 4.0 International (CC BY 4.0)</a>, OR released into the public domain under <a href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 1.0 Public Domain Dedication (CC0 1.0)</a>. The license MUST be clearly stated using the http://purl.org/dc/terms/license property followed by the URL representing the license (e.g. https://creativecommons.org/licenses/by/3.0/) in the ontology file (<a href="https://github.com/INCATools/ontology-development-kit/blob/master/docs/License.md">OWL example</a>).</p> <p>Note: CC-BY licenses allow others to distribute, remix, tweak, and build upon the work, even commercially, as long as they credit the creators for the original creation. CC0 specifies that the creators of an ontology waive, to the extent that they legally can be, all rights and place the ontology in the public domain. It does not prevent them from requesting that the ontology be properly credited and cited, but prevents any legal recourse if it is not credited. Many pros and cons of CC-BY versus CC0 are laid out in <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/issues/285">this discussion</a>. It is important to note that one can move from CC-BY to CC0 but not the other way around.</p> <h3 id="for-ontology-re-use">For ontology re-use</h3> <ol> <li> <p>The original source of an ontology must be credited according to the terms specified in the comment annotation of the ontology.</p> </li> <li> <p>Altered versions of an ontology that are not part of an official release (that is, by the ontology developers) must not be redistributed under the same name or with the same ontology IRI.</p> </li> <li> <p>If an individual term is reused without change to the definition, the original term IRI should be used. If the definition of a term (either text or logical) is changed, the original term IRI should not be reused. Suggestions for changes or improvements to term definitions should be submitted to the appropriate ontology issue tracker.</p> </li> <li> <p>Regardless of which license an ontology uses, we strongly request and recommend that any reuse of an ontology attributes the source in accordance with scientific norms and the <a href="http://www.obofoundry.org/docs/Citation">OBO Citation and Attribution Policy</a>.</p> </li> </ol> <h2 id="implementation">Implementation</h2> <h3 id="for-ontology-providers-1">For ontology providers</h3> <h4 id="owl-files"><code class="language-plaintext highlighter-rouge">.owl</code> files</h4> <ol> <li> <p>OBO Foundry Ontologies MUST specify the reuse constraints using the following annotations in any publically released OWL version of the ontology:</p> <ol> <li>dcterms:license - specifies the license - see Example 1 (below)</li> <li>rdfs:comment - specifies terms of reuse - see Example 1 (below)</li> </ol> </li> <li> <p>OBO Foundry Ontologies that host terms developed by an external group (but which are not part of an existing ontology) must credit the external group - see Examples (below)</p> </li> <li> <p>See below under ontology re-use for guidelines on importing individual terms from external ontologies.</p> </li> </ol> <h4 id="obo-files"><code class="language-plaintext highlighter-rouge">.obo</code> files</h4> <ol> <li>OBO Foundry Ontologies must specify the reuse constraints using the following annotations in any publically released OBO version of the ontology: <ol> <li>the license in a separate property annotation, which can be converted to a dc:license statement if the ontology is converted to OWL - see Example 2 (below)</li> <li>the reuse constraints using a comment in the official OBO version of the ontology - see Example 2 (below)</li> </ol> </li> </ol> <h3 id="for-ontology-re-use-1">For ontology re-use</h3> <h4 id="individual-terms">Individual terms</h4> <p>The attribution method for individual terms reused in another ontology (e.g., by MIREOT) is via use of their original IRI or ID - see Examples (below).</p> <ol> <li> <p><strong>In OWL</strong> - Any ontology re-using individual terms from another ontology should:</p> <ol> <li>re-use the original term IRI (which for OBO Foundry ontologies is generally in the form of an OBO Foundry PURL)</li> <li>use an IAO:imported from annotation <a href="http://purl.obolibrary.org/obo/IAO_0000412">http://purl.obolibrary.org/obo/IAO_0000412</a> on each imported term to link back to the group (i.e. ontology) maintaining it, where more information would be available about the license</li> <li>include any annotations for term or definition editors from the original ontology</li> </ol> </li> <li> <p><strong>In OBO</strong> - Any ontology re-using individual terms from another ontology should:</p> <ol> <li>re-use the original term ID (of the form <GO:0000001>)</li> <li>include any XREFs to the original term editor(s) from the original ontology</li> </ol> </li> </ol> <h4 id="full-ontologies">Full ontologies</h4> <p>The attribution method for importing an entire ontology in OWL is simply to import the ontology without modification.</p> <ol> <li>The attribution method for using an ontology for an analysis is to cite the ontology as requested by the ontology developers. If the developers have not specified how to cite their ontology, use the ontology IRI, a publication if available, and the ontology website if available.</li> </ol> <h2 id="examples">Examples</h2> <p>NOTE: All examples are for illustration purposes and should not be considered valid ontology axioms.</p> <h3 id="example-1-rdf-xml-code-for-the-license-annotations">Example 1: RDF-XML code for the license annotations:</h3> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code><dcterms:license rdf:resource="http://creativecommons.org/licenses/by/4.0/"/> <rdfs:comment xml:lang="en">"Ontology name" by "developer groups" is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).</rdfs:comment> <rdfs:comment xml:lang="en">"Ontology name" by developer groups is licensed under CC BY 4.0. You are free to share (copy and redistribute the material in any medium or format) and adapt (remix, transform, and build upon the material) for any purpose, even commercially. for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms. You must give appropriate credit (by using the original ontology IRI for the whole ontology and original term IRIs for individual terms), provide a link to the license, and indicate if any changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.</rdfs:comment> </code></pre></div></div> <p>The above comment for reuse conditions is for example only. Ontologies may use different wording appropriate to their own needs, as long as it is consistent with the license.</p> <h3 id="example-2-example-of-obo-code-for-the-license-annotation">Example 2: Example of OBO code for the license annotation:</h3> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>property_value: http://purl.org/dc/terms/license http://creativecommons.org/licenses/by/4.0/ remark: *Ontology name* by *developer group(s)* is licensed under CC BY 4.0. You are free to share (copy and redistribute the material in any medium or format) and adapt (remix, transform, and build upon the material) for any purpose, even commercially. You must give appropriate credit (by using the original ontology IRI for the whole ontology or original term IRIs for individual terms), provide a link to the license, and indicate if any changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. </code></pre></div></div> <h3 id="example-3-how-to-credit-an-external-group-for-developing-a-term-in-your-ontology">Example 3: How to credit an external group for developing a term in your ontology.</h3> <p>The first course of action should be to reuse the external term as is, by importing it with the original IRI (e.g. by MIREOT). At a minimum, the term definition should be imported, but there is still an open discussion about which other annotation need to be imported.</p> <p>Please see the discussion tab for additional discussion of how to use different annotation properties to credit external ontologies or definition sources.</p> <h4 id="example-3a-iaoimported-from">Example 3A: IAO:imported from</h4> <p>The Ontology for Biomedical Investigation (OBI) imports the class “environmental material” from the Environment Ontology (ENVO), using OntoFox. The imported from axiom is automatically generated by Ontofox and added to “environmental material” in OBI:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code><!-- <http://purl.obolibrary.org/obo/ENVO_00010483> --> <owl:Class rdf:about="&obo;ENVO_00010483"> <rdfs:label rdf:datatype="&xsd;string">environmental material</rdfs:label> <rdfs:subClassOf rdf:resource="&obo;BFO_0000040"/> <obo:IAO_0000115 rdf:datatype="&xsd;string">Material in or on which organisms may live.</obo:IAO_0000115> <obo:IAO_0000111 rdf:datatype="&xsd;string">environmental material</obo:IAO_0000111> <obo:IAO_0000412 rdf:resource="&obo;envo.owl"/> </owl:Class> </code></pre></div></div> <h2 id="counter-examples">Counter-Examples</h2> <ul> <li>An ontology with no license statement is by default subject to the most restrictive copyright laws for those parts of the ontology that are copyrightable, and therefore is not useful within the OBO Foundry.</li> <li>CC BY-ND allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to the creators. This license is too restrictive for the OBO Foundry, because it requires that the ontology be re-used in its entirety, which prevents the re-use of individual terms.</li> </ul> <h2 id="criteria-for-review">Criteria for Review</h2> <p>The ontology must have a license that is equivalent to or less restrictive than CC-BY, specified as described in the text and examples above.</p> <p><a href="checks/fp_001">This check is automatically validated.</a> The automatic check fully covers the requirements for this principle.</p> <h2 id="feedback-and-discussion">Feedback and Discussion</h2> <p>To suggest revisions or begin a discussion pertaining to this principle, please <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/issues/new?labels=attn%3A+Editorial+WG,principles&title=Principle+%231+%22Open%22+%3CENTER+ISSUE+TITLE%3E">create an issue on GitHub</a>.</p> <p>To suggest revisions or begin a discussion pertaining to the automated validation of this principle, please <a href="https://github.com/OBOFoundry/OBOFoundry.github.io/issues/new?labels=attn%3A+Technical+WG,automated+validation+of+principles&title=Principle+%231+%22Open%22+-+automated+validation+%3CENTER+ISSUE+TITLE%3E">create an issue on GitHub</a>.</p> <p>See also <a href="https://github.com/OBOFoundry/Operations-Committee/issues/103">this discussion of licensing</a> by the OBO Foundry Operations Committee focusing on Creative Commons licenses.</p> </div> </div> </div> </div> </div><footer class="footer"> <p class="small text-center text-muted"> © 2024 OBO Technical WG </p> </footer> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js"></script> <!-- prism.js is for code blocks, see https://prismjs.com --> <script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js"></script> </body> </html>