{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2009/11/19/chempedia-rdf-1-sparql-end-point.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/qfhff-gen31",
      "url": "https://chem-bla-ics.linkedchemistry.info/2009/11/19/chempedia-rdf-1-sparql-end-point.html",
      "title": "ChemPedia RDF #1: the SPARQL end point",
      "content_html": "<p>Well, you might spot a pattern here; yes, another chemical <a href=\"http://pele.farmbio.uu.se/cc0/sparql\">SPARQL end point</a>\n(actually, it shares the end point with the <a href=\"https://chem-bla-ics.linkedchemistry.info/2009/11/19/open-notebook-science-solubility-sparql.html\">Solubility data <i class=\"fa-solid fa-recycle fa-xs\"></i></a>).\nThis time around <a href=\"http://depth-first.com/\">Rich</a>’s <a href=\"http://chempedia.com/substances\">ChemPedia</a>. Taking advantage of the\n<a href=\"https://doi.org/10.59350/kprj3-gyg97\">CC0-licensed downloads <i class=\"fa-solid fa-recycle fa-xs\"></i></a>,\nI have created a small <a href=\"http://groovy.codehaus.org/\">Groovy</a> script (using this <a href=\"http://json-lib.sourceforge.net/\">JSON library</a>)\nto convert the ChemPedia <a href=\"http://en.wikipedia.org/wiki/Json\">JSON</a> into\n<a href=\"http://en.wikipedia.org/wiki/Notation3\">Notation3</a>:</p>\n\n<div class=\"language-groovy highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"kn\">import</span> <span class=\"nn\">net.sf.json.groovy.JsonSlurper</span><span class=\"o\">;</span>\n\n<span class=\"n\">input</span> <span class=\"o\">=</span> <span class=\"k\">new</span> <span class=\"n\">File</span><span class=\"o\">(</span><span class=\"s2\">\"substances.json\"</span><span class=\"o\">)</span>\n<span class=\"n\">json</span> <span class=\"o\">=</span> <span class=\"k\">new</span> <span class=\"n\">JsonSlurper</span><span class=\"o\">().</span><span class=\"na\">parse</span><span class=\"o\">(</span><span class=\"n\">input</span><span class=\"o\">);</span>\n\n<span class=\"n\">println</span> <span class=\"s2\">\"@prefix dc: &lt;http://purl.org/dc/elements/1.1/&gt;\"</span><span class=\"o\">;</span>\n<span class=\"n\">println</span> <span class=\"s2\">\"@prefix cp: &lt;http://rdf.openmolecules.net/chempedia/onto#&gt;\"</span><span class=\"o\">;</span>\n<span class=\"n\">json</span><span class=\"o\">.</span><span class=\"na\">each</span> <span class=\"o\">{</span> <span class=\"n\">it</span> <span class=\"o\">-&gt;</span>\n  <span class=\"n\">println</span> <span class=\"s2\">\"&lt;\"</span> <span class=\"o\">+</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">uri</span> <span class=\"o\">+</span> <span class=\"s2\">\"&gt; dc:identifier \\\"\"</span> <span class=\"o\">+</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">gsid</span> <span class=\"o\">+</span> <span class=\"s2\">\"\\\";\"</span><span class=\"o\">;</span>\n  <span class=\"n\">println</span> <span class=\"s2\">\" &lt;http://www.w3.org/2002/07/owl#sameAs&gt; &lt;http://rdf.openmolecules.net/?\"</span> <span class=\"o\">+</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">inchi</span> <span class=\"o\">+</span> <span class=\"s2\">\"&gt;;\"</span><span class=\"o\">;</span>\n  <span class=\"n\">println</span> <span class=\"s2\">\"  &lt;http://www.iupac.org/inchi&gt; \\\"\"</span> <span class=\"o\">+</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">inchi</span> <span class=\"o\">+</span> <span class=\"s2\">\"\\\".\"</span><span class=\"o\">;</span>\n  <span class=\"k\">if</span> <span class=\"o\">(</span><span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">namings</span><span class=\"o\">.</span><span class=\"na\">size</span><span class=\"o\">()</span> <span class=\"o\">&gt;</span> <span class=\"mi\">0</span><span class=\"o\">)</span> <span class=\"o\">{</span>\n    <span class=\"k\">for</span> <span class=\"o\">(</span><span class=\"kt\">int</span> <span class=\"n\">i</span> <span class=\"o\">=</span> <span class=\"mi\">0</span><span class=\"o\">;</span> <span class=\"n\">i</span><span class=\"o\">&lt;</span><span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">namings</span><span class=\"o\">.</span><span class=\"na\">size</span><span class=\"o\">();</span> <span class=\"n\">i</span><span class=\"o\">++)</span> <span class=\"o\">{</span>\n      <span class=\"n\">naming</span> <span class=\"o\">=</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">namings</span><span class=\"o\">.</span><span class=\"na\">get</span><span class=\"o\">(</span><span class=\"n\">i</span><span class=\"o\">);</span>\n      <span class=\"n\">namingURI</span> <span class=\"o\">=</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">uri</span> <span class=\"o\">+</span> <span class=\"s2\">\"/naming\"</span> <span class=\"o\">+</span> <span class=\"n\">i</span><span class=\"o\">;</span>\n      <span class=\"n\">println</span> <span class=\"s2\">\"&lt;\"</span> <span class=\"o\">+</span> <span class=\"n\">it</span><span class=\"o\">.</span><span class=\"na\">uri</span> <span class=\"o\">+</span> <span class=\"s2\">\"&gt; cp:hasNaming \"</span> <span class=\"o\">+</span>\n        <span class=\"s2\">\"&lt;\"</span> <span class=\"o\">+</span> <span class=\"n\">namingURI</span> <span class=\"o\">+</span> <span class=\"s2\">\"&gt;.\"</span><span class=\"o\">;</span>\n      <span class=\"n\">println</span> <span class=\"s2\">\"&lt;\"</span> <span class=\"o\">+</span> <span class=\"n\">namingURI</span> <span class=\"o\">+</span> <span class=\"s2\">\"&gt; a cp:Naming;\"</span><span class=\"o\">;</span>\n      <span class=\"n\">println</span> <span class=\"s2\">\"  cp:hasName \\\"\"</span> <span class=\"o\">+</span> <span class=\"n\">naming</span><span class=\"o\">.</span><span class=\"na\">name</span> <span class=\"o\">+</span> <span class=\"s2\">\"\\\";\"</span><span class=\"o\">;</span>\n      <span class=\"n\">println</span> <span class=\"s2\">\"  cp:hasStatus \\\"\"</span> <span class=\"o\">+</span> <span class=\"n\">naming</span><span class=\"o\">.</span><span class=\"na\">status</span> <span class=\"o\">+</span> <span class=\"s2\">\"\\\";\"</span><span class=\"o\">;</span>\n      <span class=\"n\">println</span> <span class=\"s2\">\"  cp:hasScore \\\"\"</span> <span class=\"o\">+</span> <span class=\"n\">naming</span><span class=\"o\">.</span><span class=\"na\">score</span> <span class=\"o\">+</span> <span class=\"s2\">\"\\\".\"</span><span class=\"o\">;</span>\n    <span class=\"o\">}</span>\n  <span class=\"o\">}</span>\n<span class=\"o\">}</span>\n</code></pre></div></div>\n\n<p>After uploading it into <a href=\"http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSIndex\">Virtuoso</a> (now using <code class=\"language-plaintext highlighter-rouge\">DB.DBA.TTLP</code> instead of\n<a href=\"https://chem-bla-ics.linkedchemistry.info/2009/09/04/nmrshiftdb-enters-rdfopenmoleculesnet-2.html\">DB.DBA.RDF_LOAD_RDFXML_MT <i class=\"fa-solid fa-recycle fa-xs\"></i></a>), we can now have our\nregular SPARQL fun with the data from ChemPedia. For example, list the 10 names with the most votes:</p>\n\n<div class=\"language-sparql highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"k\">prefix</span><span class=\"w\"> </span><span class=\"nn\">dc</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"nn\">&lt;http://purl.org/dc/elements/1.1/&gt;</span><span class=\"w\">\n</span><span class=\"k\">prefix</span><span class=\"w\"> </span><span class=\"nn\">cp</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"nn\">&lt;http://rdf.openmolecules.net/chempedia/onto#&gt;</span><span class=\"w\">\n\n</span><span class=\"k\">select</span><span class=\"w\"> </span><span class=\"k\">distinct</span><span class=\"w\"> </span><span class=\"nv\">?name</span><span class=\"w\"> </span><span class=\"nv\">?score</span><span class=\"w\"> </span><span class=\"k\">where</span><span class=\"w\"> </span><span class=\"p\">{</span><span class=\"w\">\n  </span><span class=\"nv\">?s</span><span class=\"w\"> </span><span class=\"k\">a</span><span class=\"w\"> </span><span class=\"nn\">cp</span><span class=\"o\">:</span><span class=\"ss\">Naming</span><span class=\"w\"> </span><span class=\"p\">;</span><span class=\"w\">\n     </span><span class=\"nn\">cp</span><span class=\"o\">:</span><span class=\"ss\">hasName</span><span class=\"w\"> </span><span class=\"nv\">?name</span><span class=\"w\"> </span><span class=\"p\">;</span><span class=\"w\">\n     </span><span class=\"nn\">cp</span><span class=\"o\">:</span><span class=\"ss\">hasScore</span><span class=\"w\"> </span><span class=\"nv\">?score</span><span class=\"w\"> </span><span class=\"p\">.</span><span class=\"w\">\n</span><span class=\"p\">}</span><span class=\"w\"> </span><span class=\"k\">ORDER</span><span class=\"w\"> </span><span class=\"k\">BY</span><span class=\"w\"> </span><span class=\"k\">DESC</span><span class=\"p\">(</span><span class=\"nv\">?score</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">LIMIT</span><span class=\"w\"> </span><span class=\"mi\">10</span><span class=\"w\">\n</span></code></pre></div></div>\n\n<h4>References</h4>\n<div class=\"csl-bib-body\">\n    <div class=\"csl-entry\">Apodaca, R. (2009). Chempedia Data Downloads: Free as in Free. In <i>Front Matter</i>. Front Matter. https://doi.org/10.59350/kprj3-gyg97 <a href=\"https://doi.org/10.59350/kprj3-gyg97\">CrossRef</a> <a href=\"https://qlever.scholia.wiki/doi/10.59350/kprj3-gyg97\">Scholia</a></div>\n  </div>",
      "summary": "Well, you might spot a pattern here; yes, another chemical SPARQL end point (actually, it shares the end point with the Solubility data ). This time around Rich’s ChemPedia. Taking advantage of the CC0-licensed downloads , I have created a small Groovy script (using this JSON library) to convert the ChemPedia JSON into Notation3:",
      
      "date_published": "2009-11-19T00:00:00+00:00",
      "date_modified": "2026-05-05T00:00:00+00:00",
      "tags": ["rdf","sparql","chempedia","nmrshiftdb"],
      "_references": [
        
          
          
            { "url": "https://doi.org/10.59350/kprj3-gyg97", "doi": "10.59350/kprj3-gyg97"
             }
            
          
        ],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
