CINXE.COM
MeSH RDF Release Notes
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="icon" type="image/ico" href="images/favicon.ico"> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script> <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> <script type="text/javascript" src="//cdn.datatables.net/1.10.3/js/jquery.dataTables.min.js"></script> <script type="text/javascript" src="//cdn.datatables.net/responsive/1.0.2/js/dataTables.responsive.min.js"></script> <script type='text/javascript' src='/meshrdf/js/mesh-gh-pages.js'></script> <title>MeSH RDF Release Notes</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <link data-require="bootstrap-css" data-semver="3.2.0" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" /> <link data-require="bootstrap@*" data-semver="3.2.0" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.css" /> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" /> <link href="//cdn.datatables.net/1.10.3/css/jquery.dataTables.css" rel="stylesheet" /> <link href="//cdn.datatables.net/responsive/1.0.2/css/dataTables.responsive.css" rel="stylesheet" /> <link href="/meshrdf/styles/style.css" rel="stylesheet" /> <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <script type = 'text/javascript'> // there two classes of data tables. data-table-standard (no paging) and data-table-long (includes paging) $(document).ready(function() { $('table.data-table-standard').dataTable( { "paging": false, "ordering": true, "searching": false, "responsive":true } ); $('table.data-table-long').dataTable( { "paging": true, "ordering": true, "info": false, "searching": true, "responsive": true, //"scrollX":true, "scrollY":"300", "pageLength":25 } ); $( "#tabs" ).tabs(); $('.dropdown-toggle').dropdown(); }); </script> </head> <body> <div class="container-fluid"> <!--header to hold banner + top navigation area --> <!-- responsive design header using bootstrap css framework --> <div class = "row header"> <div class="container-fluid col-md-6 col-sm-8 col-xs-12"> <a href="http://www.nlm.nih.gov"><img class= "nlm-logo img-responsive" alt="National Library of Medicine" src="/meshrdf/images/nih_nlmlogo_webheader.png "></a> </div> </div> <!-- // end header --> <div class = "row"> <div class = "container-fluid main-menu navbar navbar-default"> <div id="meshrdf-header"> <h1>MeSH RDF Technical Documentation</h1></div> <ul class="nav navbar-nav"> <li><a href="https://id.nlm.nih.gov/mesh/">MeSH RDF Home</a></li> <li><a href="/meshrdf/index.html">Documentation Home</a></li> <li><a href="https://nlmpubs.nlm.nih.gov/projects/mesh/rdf/">Download</a></li> <li><a href="https://id.nlm.nih.gov/mesh/query">SPARQL Query</a></li> <li><a href="/meshrdf/sparql-and-uri-requests.html">API</a></li> <li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle">Data Model<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="/meshrdf/concepts">Concepts</a></li> <li><a href="/meshrdf/descriptor-qualifier-pairs">Descriptor-Qualifier Pairs</a></li> <li><a href="/meshrdf/descriptors">Descriptors</a></li> <li><a href="/meshrdf/qualifiers">Qualifiers</a></li> <li><a href="/meshrdf/scrs">Supplementary Concept Records</a></li> <li><a href="/meshrdf/terms">Terms</a></li> <li><a href="/meshrdf/tree-numbers">Tree Numbers</a></li> </ul> </li> <li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle">Cheat Sheets<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="/meshrdf/all-class-predicate-class">All Class-Predicate-Class</a></li> <li><a href="/meshrdf/class-properties">All Class Properties</a></li> <li><a href="/meshrdf/classes">Class Definitions</a></li> <li><a href="/meshrdf/predicates">Predicate Definitions</a></li> <li><a href="/meshrdf/sample-queries">Sample Queries</a></li> <li><a href="/meshrdf/sparql-and-uri-requests">SPARQL and URI Requests</a></li> <li><a href="/meshrdf/super-classes">Super Classes</a></li> </ul> </li> <li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle">Policy<b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="/meshrdf/acceptable-use-policy">Acceptable Use Policy</a></li> <li><a href="/meshrdf/versioning-policy">Versioning Policy</a></li> </ul> </li> <li><a href="/meshrdf/release-notes">Release Notes</a></li> </ul> </div> </div> <!-- breadcrumbs (removed) <ol class = "breadcrumb col-md-6 col-sm-6 col-xs-10"> <li><a href = "/meshrdf/index.html">Documentation Home</a></li> <li class = "active">MeSH RDF Release Notes</li> </ol> --> <!-- //end breadcrumbs --> <div class = "row"> <div class = "container-fluid col-md-10 col-sm-10 col-xs-10 main-content"> <h2>MeSH RDF Release Notes</h2> <h2 id="latest-release">Latest Release</h2> <h3 id="december-6-2021">December 6, 2021</h3> <ul> <li>MeSH RDF has been updated to include the 2022 MesH data.</li> <li>The new graph, http://id.nlm.nih.gov/mesh/2022/, will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2023 MeSH data is released.</li> <li>The graph for 2021 MeSH data, http://id.nlm.nih.gov/mesh/2021/, is now static.</li> </ul> <h2 id="prior-releases">Prior Releases</h2> <h3 id="november-9-2019">November 9, 2019</h3> <ul> <li>MeSH RDF has been updated to include the 2020 MesH data.</li> <li>The new graph, http://id.nlm.nih.gov/mesh/2020/, will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2021 MeSH data is released.</li> <li>The graph for 2019 MeSH data, http://id.nlm.nih.gov/mesh/2019/, is now static.</li> </ul> <h3 id="november-21-2018">November 21, 2018</h3> <ul> <li>MeSH RDF has been updated to include the 2019 MeSH data.</li> <li>The new graph, http://id.nlm.nih.gov/mesh/2019/, will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2020 MeSH data is released.</li> <li>The graph for 2018 MeSH data, http://id.nlm.nih.gov/mesh/2018/, is now static.</li> </ul> <h3 id="november-21-2017">November 21, 2017</h3> <ul> <li>MeSH RDF has been updated to include the 2018 MeSH data.</li> <li>The new graph, http://id.nlm.nih.gov/mesh/2018/, will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2019 MeSH data is released.</li> <li>The graph for 2017 MeSH data, http://id.nlm.nih.gov/mesh/2017/, is now static.</li> </ul> <h3 id="september-13-2017">September 13, 2017</h3> <ul> <li>MeSH RDF is no longer in beta.</li> <li>MeSH RDF files have been moved to <a href="ftp://ftp.nlm.nih.gov/online/mesh/rdf/">ftp://ftp.nlm.nih.gov/online/mesh/rdf/</a>.</li> </ul> <h3 id="november-21-2016">November 21, 2016</h3> <ul> <li>MeSH RDF has been updated to include the 2017 MeSH data. See <a href="https://www.nlm.nih.gov/mesh/introduction.html#changes">MeSH vocabulary changes for 2017</a>.</li> <li>NLM has minted a new graph, http://id.nlm.nih.gov/mesh/2017/. This graph will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2018 MeSH data is released.</li> <li>The graph for 2016 MeSH data, http://id.nlm.nih.gov/mesh/2016/, is now static.</li> </ul> <h3 id="december-3-2015">December 3, 2015</h3> <ul> <li>NLM has introduced two new predicates to MeSH RDF to handle obsolete content: <ul> <li>meshv:active - active content will have a value of 1, while inactive (obsolete) content will have a value of 0.</li> <li>meshv:lastActiveYear - this will indicate the last year in which MeSH content was active. That year can be used to construct a versioned URI to retrieve data about that content.</li> </ul> </li> <li>Labels for inactive content will have the string “[OBSOLETE]” prepended to them.</li> </ul> <h3 id="november-19-2015">November 19, 2015</h3> <ul> <li>MeSH RDF has been updated to include the 2016 MeSH data. See <a href="https://www.nlm.nih.gov/mesh/introduction.html#changes">MeSH vocabulary changes for 2016</a>.</li> <li>NLM has minted a new graph, http://id.nlm.nih.gov/mesh/2016/. This graph will stay in sync with the http://id.nlm.nih.gov/mesh/ graph until 2017 MeSH data is released.</li> <li>The graph for 2015 MeSH data, http://id.nlm.nih.gov/mesh/2015/, is now static.</li> <li>NLM has added NLM Classification Numbers to MeSH. A new predicate, meshv:nlmClassificationNumber, relates Descriptors to NLM Classification Numbers.</li> <li>meshv:DescriptorQualifierPairs now have labels.</li> </ul> <h3 id="august-10-2015">August 10, 2015</h3> <h4 id="sparql-endpoint-changes">SPARQL Endpoint Changes</h4> <p>As of August 10, 2015, we have made changes to the base URL used for HTML and non-HTML query requests. To request HTML query results, use our query editor: http://id.nlm.nih.gov/mesh/query/. To request any other format, use our SPARQL endpoint with base URL http://id.nlm.nih.gov/mesh/sparql. Note that the SPARQL endpoint will no longer return HTML, so links to some queries may break. For more information, see our <a href="sparql-and-uri-requests.html">SPARQL and URI Requests page</a>.</p> <h3 id="june-18-2015">June 18, 2015</h3> <p>The 2015 version of MeSH RDF is now live. The previous graph of http://id.nlm.nih.gov/mesh2014 is no longer available. Users must update their SPARQL queries to use the non-versioned graph (http://id.nlm.nih.gov/mesh) or the versioned graph (http://id.nlm.nih.gov/mesh/2015).</p> <h4 id="graph-changes">Graph Changes</h4> <p>MeSH RDF will follow established versioning practices, but MeSH RDF will be expressed in non-versioned and versioned URIs. For example, the Descriptor for Ofloxacin will have the following URIs:</p> <ul> <li>http://id.nlm.nih.gov/mesh/D015242 (current)</li> <li>http://id.nlm.nih.gov/mesh/2015/D015242 (2015)</li> </ul> <p>The non-versioned URI reflects the current state of MeSH at any given time. The versioned URI for the current year will mirror the non-versioned URI until NLM releases the next year’s MeSH data. Once NLM begins using the next year’s MeSH data, the next year’s versioned URI will mirror the non-versioned URI, and the current year’s data will become static and archived. Current year MeSH is dynamic until archived. NLM will retain no more than three years of versioned URIs, and NLM will not produce versioned URIs for data prior to 2015 MeSH.</p> <h4 id="daily-updates">Daily Updates</h4> <p>Starting June 18, 2015, MeSH RDF data will update on a daily basis in sync with MeSH XML. Supplementary Concept Records (SCRs) are added throughout the year on a daily basis. Changes to MeSH Descriptors and Qualifiers are typically done only on an annual basis at the end of the year, but may occasionally occur at other times. NLM will load daily SCR data so that users have the benefit of new SCR URIs, but we will not protect against deleted URIs at this time. However, these deleted URIs <strong>will not</strong> return an HTTP status 404 code. This will be remedied in future updates.</p> <h4 id="language-tags">Language Tags</h4> <p>Users now must specify the language tag ‘@en’ when searching rdfs:label or any other string literal. See the <a href="sample-queries.html">sample queries page</a> (queries #5 and #6) for examples. One preferred MeSH Heading, Central Nervous System which is D002493, has non-English strings as a proof-of-concept example. This sample will remain in the beta version but may not be included in the production MeSH RDF version.</p> <h4 id="new-classes">New Classes</h4> <p>none</p> <h4 id="new-predicates">New Predicates</h4> <table class="data-table-standard row-border hover"> <thead> <tr> <th>Name</th> <th>Domain</th> <th>Range</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>meshv:broaderConcept</td> <td>meshv:Concept</td> <td>meshv:Concept</td> <td>Relates one Concept to another. A semantic relationship between two Concepts, usually between the preferred concept and subordinate concept(s) where one is broader in meaning. Example: M0024816 is broader than M0024811.</td> </tr> <tr> <td>meshv:broaderDescriptor</td> <td>meshv:Descriptor</td> <td>meshv:Descriptor</td> <td>Relates one Descriptor to another. The immediate parent Descriptor(s) of a given Descriptor based on the TreeNumber hierarchy. Example: both DUI D007254 (Information Science) and DUI D008491 (Medical Informatics Applications) are parents of DUI D016247 (Information Storage and Retrieval).</td> </tr> <tr> <td>meshv:broaderQualifier</td> <td>meshv:Qualifier</td> <td>meshv:Qualifier</td> <td>Relates one Qualifier to another. The immediate parent Qualifier(s) of a given Qualifier based on the TreeNumber hierarchy. Example: QUI Q000458 (organization & administration) is a parent of QUI Q000592 (standards).</td> </tr> <tr> <td>meshv:narrowerConcept</td> <td>meshv:Concept</td> <td>meshv:Concept</td> <td>Relates one Concept to another. A semantic relationship between the preferred concept and subordinate concept(s) where one is narrower in meaning. Example: M0353609 is narrower with respect to M0000001.</td> </tr> <tr> <td>meshv:parentTreeNumber</td> <td>meshv:TreeNumber</td> <td>meshv:TreeNumber</td> <td>Relates one TreeNumber to another. Immediate ‘parent’ TreeNumber, meaning one level higher in the TreeNumber hierarchy. Example: D03.438.221 is a parent of D03.438.221.173.</td> </tr> <tr> <td>meshv:preferredTerm</td> <td>meshv:Concept<br />meshv:Descriptor<br />meshv:Qualifier<br />meshv:SupplementaryConceptRecord</td> <td>meshv:Term</td> <td>Relates Concepts, Descriptors, Qualifiers or SupplementaryConceptRecords to Terms. Indicates that the Term is the preferred term for a Concept, Descriptor, Qualifier, or SupplementaryConceptRecord.</td> </tr> <tr> <td>meshv:relatedConcept</td> <td>meshv:Concept</td> <td>meshv:Concept</td> <td>Relates one Concept to another. A semantic relationship between two Concepts, usually between the preferred Concept and subordinate Concept(s) where one is neither broader nor narrower in meaning. Example: M0000562 is related to M0000561</td> </tr> </tbody> </table> <h4 id="removals">Removals</h4> <table class="data-table-standard row-border hover"> <thead> <tr> <th>Data Type</th> <th>Data Element</th> <th>Change Type</th> <th>Additonal Information</th> </tr> </thead> <tbody> <tr> <td>predicate</td> <td>meshv:activeMeSHYear</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:allowedTreeNode</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:broader</td> <td>Removed</td> <td>Replaced by meshv:broaderConcept, meshv:broaderDescriptor, or meshv:broaderQualifier</td> </tr> <tr> <td>predicate</td> <td>meshv:broaderTransitive</td> <td>Removed</td> <td>Replaced by meshv:parentTreeNumber</td> </tr> <tr> <td>predicate</td> <td>meshv:narrower</td> <td>Removed</td> <td>Replaced by meshv:narrowerConcept</td> </tr> <tr> <td>predicate</td> <td>meshv:printFlag</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:recordAuthorizer</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:recordMaintainer</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:recordOriginator</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:recordPreferredTerm</td> <td>Removed</td> <td>Replaced by meshv:preferredTerm</td> </tr> <tr> <td>predicate</td> <td>meshv:related</td> <td>Removed</td> <td>Replaced by meshv:relatedConcept</td> </tr> <tr> <td>predicate</td> <td>meshv:runningHead</td> <td>Removed</td> <td> </td> </tr> <tr> <td>class</td> <td>meshv:SemanticType</td> <td>Removed</td> <td> </td> </tr> <tr> <td>predicate</td> <td>meshv:semanticType</td> <td>Removed</td> <td> </td> </tr> </tbody> </table> </div> </div> <!-- footer area --> <div class = "row"> <div class = "container-fluid footer col-md-12 col-sm-12 col-xs-12"> <div id = "footer"> Page first published: 01 Nov 2014<br/> Page last updated: 07 Dec 2021 </div> <!-- Google Tag Manager --> <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MT6MLL" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MT6MLL');</script> <!-- End Google Tag Manager --> </div> </div> <!-- //end footer --> </div> </body> </html>