{
  "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/2010/12/29/converting-json-to-rdfxml-with-groovy.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/2repm-7m232",
      "url": "https://chem-bla-ics.linkedchemistry.info/2010/12/29/converting-json-to-rdfxml-with-groovy.html",
      "title": "Converting JSON to RDF/XML with Groovy",
      "content_html": "<p>Mark’s new <a href=\"http://www.science3point0.com/blog/2010/12/29/cc0-rdf-hosting-for-scientists/\">CCO/RDF hosting functionality</a>\n(see also <a href=\"http://chem-bla-ics.blogspot.com/2010/12/what-should-free-cc0-rdf-hosting-for.html\">my post two days ago</a>)\nrequires <a href=\"http://www.w3.org/TR/REC-rdf-syntax/\">RDF/XML format</a>, so I updated my code to convert the\n<a href=\"http://chempedia.com/substances\">Chempedia Substances</a> data into RDF/XML instead of N3 (I have asked\n<a href=\"http://depth-first.com/\">Rich</a> to put a new download link online). This is the\n<a href=\"http://groovy.codehaus.org/\">Groovy</a> code I used:</p>\n\n<div class=\"language-groovy highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"kn\">import</span> <span class=\"nn\">groovy.xml.MarkupBuilder</span>\n<span class=\"kn\">import</span> <span class=\"nn\">groovy.util.IndentPrinter</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=\"kt\">def</span> <span class=\"n\">writer</span> <span class=\"o\">=</span> <span class=\"k\">new</span> <span class=\"n\">StringWriter</span><span class=\"o\">()</span>\n<span class=\"kt\">def</span> <span class=\"n\">xml</span> <span class=\"o\">=</span> <span class=\"k\">new</span> <span class=\"n\">MarkupBuilder</span><span class=\"o\">(</span>\n  <span class=\"k\">new</span> <span class=\"nf\">IndentPrinter</span><span class=\"o\">(</span><span class=\"k\">new</span> <span class=\"n\">PrintWriter</span><span class=\"o\">(</span><span class=\"n\">writer</span><span class=\"o\">))</span>\n<span class=\"o\">)</span>\n<span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'rdf:RDF'</span><span class=\"o\">(</span>\n  <span class=\"s1\">'xmlns:rdf'</span><span class=\"o\">:</span>\n    <span class=\"s1\">'http://www.w3.org/1999/02/22-rdf-syntax-ns#'</span><span class=\"o\">,</span>\n  <span class=\"s1\">'xmlns:dc'</span> <span class=\"o\">:</span>\n    <span class=\"s1\">'http://purl.org/dc/elements/1.1/'</span><span class=\"o\">,</span>\n  <span class=\"s1\">'xmlns:iupac'</span> <span class=\"o\">:</span>\n    <span class=\"s1\">'http://www.iupac.org/'</span><span class=\"o\">,</span>\n  <span class=\"s1\">'xmlns:cp'</span> <span class=\"o\">:</span>\n    <span class=\"s1\">'http://rdf.openmolecules.net/chempedia/onto#'</span><span class=\"o\">,</span>\n  <span class=\"s1\">'xmlns:owl'</span> <span class=\"o\">:</span>\n    <span class=\"s1\">'http://www.w3.org/2002/07/owl#'</span>\n<span class=\"o\">)</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\">substance</span> <span class=\"o\">-&gt;</span>\n    <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'rdf:Description'</span><span class=\"o\">(</span>\n      <span class=\"s1\">'rdf:about'</span><span class=\"o\">:</span> <span class=\"n\">substance</span><span class=\"o\">.</span><span class=\"na\">uri</span>\n    <span class=\"o\">)</span> <span class=\"o\">{</span>\n      <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'dc:identifier'</span><span class=\"o\">(</span><span class=\"n\">substance</span><span class=\"o\">.</span><span class=\"na\">gsid</span><span class=\"o\">)</span>\n      <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'owl:sameAs'</span><span class=\"o\">(</span>\n        <span class=\"s1\">'rdf:resource'</span> <span class=\"o\">:</span>\n        <span class=\"s1\">'http://rdf.openmolecules.net/?'</span> <span class=\"o\">+</span>\n        <span class=\"n\">substance</span><span class=\"o\">.</span><span class=\"na\">inchi</span>\n      <span class=\"o\">)</span>\n      <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'iupac:inchi'</span><span class=\"o\">(</span>\n        <span class=\"s1\">'http://rdf.openmolecules.net/?'</span> <span class=\"o\">+</span>\n        <span class=\"n\">substance</span><span class=\"o\">.</span><span class=\"na\">inchi</span>\n      <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\">substance</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>\n      <span class=\"o\">{</span>\n        <span class=\"n\">naming</span> <span class=\"o\">=</span> <span class=\"n\">substance</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\">substance</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\">xml</span><span class=\"o\">.</span><span class=\"s1\">'cp:hasNaming'</span> <span class=\"o\">{</span>\n          <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'rdf:Description'</span> <span class=\"o\">{</span>\n            <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'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>\n            <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'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>\n            <span class=\"n\">xml</span><span class=\"o\">.</span><span class=\"s1\">'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>\n          <span class=\"o\">}</span>\n        <span class=\"o\">}</span>\n      <span class=\"o\">}</span>\n    <span class=\"o\">}</span>\n  <span class=\"o\">}</span>\n<span class=\"o\">}</span>\n<span class=\"n\">println</span> <span class=\"n\">writer</span><span class=\"o\">.</span><span class=\"na\">toString</span><span class=\"o\">();</span>\n</code></pre></div></div>",
      "summary": "Mark’s new CCO/RDF hosting functionality (see also my post two days ago) requires RDF/XML format, so I updated my code to convert the Chempedia Substances data into RDF/XML instead of N3 (I have asked Rich to put a new download link online). This is the Groovy code I used:",
      
      "date_published": "2010-12-29T00:00:00+00:00",
      "date_modified": "2025-02-15T00:00:00+00:00",
      "tags": ["groovy","chemistry","rdf","json"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
