{
  "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/2008/04/30/metware-skos-and-java-server-faces.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/13cvj-rgs34",
      "url": "https://chem-bla-ics.linkedchemistry.info/2008/04/30/metware-skos-and-java-server-faces.html",
      "title": "MetWare, SKOS and Java Server Faces",
      "content_html": "<p>The <a href=\"http://metware.sf.net/\">MetWare</a> components are slowly coming together. The RAW data upload facility prototype went into beta stage,\nwhile the <a href=\"http://chem-bla-ics.blogspot.com/search?q=SKOS\">SKOS</a> has proven really useful for various things. <!-- keep link --></p>\n\n<p>Because of being compatible with various Java libraries and tools, we decided some time ago to use Java. We also wanted to start of with a\nHTML GUI to MetWare, which led us to <a href=\"http://java.sun.com/javaee/javaserverfaces/\">Java Server Faces</a>. Not being so fond of Tomcat (e.g.\nuse by the <a href=\"http://www.nmrshiftdb.org/\">NMRShiftDB</a>), I was not sure how that would turn out, but Steffen was rather positive about it. And I like it :)</p>\n\n<p><img src=\"/assets/images/metwareJSF2.png\" alt=\"\" /></p>\n\n<p>The source code for this screenshot is rather simple:</p>\n\n<div class=\"language-xml highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"nt\">&lt;table&gt;</span>\n  <span class=\"nt\">&lt;tr</span> <span class=\"na\">valign=</span><span class=\"s\">\"top\"</span><span class=\"nt\">&gt;</span>\n    <span class=\"nt\">&lt;td&gt;&lt;br/&gt;</span>Monoisotopic Mass:<span class=\"nt\">&lt;br/&gt;</span>\n          min=<span class=\"nt\">&lt;inputText</span> <span class=\"na\">id=</span><span class=\"s\">\"monomassmin\"</span> <span class=\"na\">value=</span><span class=\"s\">\"#{metidMetaboliteQuery.monoisotopicMassMin}\"</span><span class=\"nt\">/&gt;&lt;br/&gt;</span>\n          max=<span class=\"nt\">&lt;inputText</span> <span class=\"na\">id=</span><span class=\"s\">\"monomassmax\"</span> <span class=\"na\">value=</span><span class=\"s\">\"#{metidMetaboliteQuery.monoisotopicMassMax}\"</span><span class=\"nt\">/&gt;&lt;br/&gt;</span>\n        <span class=\"nt\">&lt;commandButton</span> <span class=\"na\">value=</span><span class=\"s\">\"Search\"</span> <span class=\"na\">id=</span><span class=\"s\">\"submit\"</span> <span class=\"na\">action=</span><span class=\"s\">\"#{metidMetaboliteQuery.search}\"</span><span class=\"nt\">/&gt;</span>\n\n        <span class=\"c\">&lt;!--  search results --&gt;</span>\n        <span class=\"nt\">&lt;p&gt;&lt;dataTable</span> <span class=\"na\">value=</span><span class=\"s\">\"#{metidMetaboliteQuery.results}\"</span> <span class=\"na\">var=</span><span class=\"s\">\"mbolite\"</span><span class=\"nt\">&gt;</span>\n           <span class=\"nt\">&lt;facet</span> <span class=\"na\">name=</span><span class=\"s\">\"caption\"</span><span class=\"nt\">&gt;</span>Search Results...<span class=\"nt\">&lt;/facet&gt;</span>\n           <span class=\"nt\">&lt;column&gt;</span>\n             <span class=\"nt\">&lt;facet</span> <span class=\"na\">name=</span><span class=\"s\">\"header\"</span><span class=\"nt\">&gt;&lt;outputText</span> <span class=\"na\">value=</span><span class=\"s\">\"Monoisotopic mass\"</span><span class=\"nt\">/&gt;&lt;/facet&gt;</span>\n             <span class=\"nt\">&lt;outputText</span> <span class=\"na\">value=</span><span class=\"s\">\"#{mbolite.monoisotopicMass}\"</span><span class=\"nt\">/&gt;</span>\n           <span class=\"nt\">&lt;/column&gt;</span>\n           <span class=\"nt\">&lt;column&gt;</span>\n             <span class=\"nt\">&lt;facet</span> <span class=\"na\">name=</span><span class=\"s\">\"header\"</span><span class=\"nt\">&gt;&lt;outputText</span> <span class=\"na\">value=</span><span class=\"s\">\"InChIKey\"</span><span class=\"nt\">/&gt;&lt;/facet&gt;</span>\n             <span class=\"nt\">&lt;outputText</span> <span class=\"na\">value=</span><span class=\"s\">\"#{mbolite.inchikey}\"</span><span class=\"nt\">/&gt;</span>\n           <span class=\"nt\">&lt;/column&gt;</span>\n         <span class=\"nt\">&lt;/dataTable&gt;&lt;/p&gt;</span>\n        <span class=\"nt\">&lt;/td&gt;</span>\n    <span class=\"nt\">&lt;td</span> <span class=\"na\">width=</span><span class=\"s\">\"25%\"</span><span class=\"nt\">&gt;</span>\n      <span class=\"nt\">&lt;b&gt;&lt;outputText</span> <span class=\"na\">id=</span><span class=\"s\">\"tabelName\"</span> <span class=\"na\">value=</span><span class=\"s\">\"#{metidMetabolite.prefLabel}\"</span><span class=\"nt\">/&gt;</span>:<span class=\"nt\">&lt;/b&gt;</span>\n      <span class=\"nt\">&lt;br/&gt;</span>\n      <span class=\"nt\">&lt;outputText</span> <span class=\"na\">id=</span><span class=\"s\">\"tabelDef\"</span> <span class=\"na\">value=</span><span class=\"s\">\"#{metidMetabolite.definition}\"</span><span class=\"nt\">/&gt;</span>\n    <span class=\"nt\">&lt;/td&gt;</span>\n  <span class=\"nt\">&lt;/tr&gt;</span>\n<span class=\"nt\">&lt;/table&gt;</span>\n</code></pre></div></div>\n\n<p>Key concept here is that JSF uses <a href=\"https://en.wikipedia.org/wiki/JavaBeans\">Java Beans</a>, which are referred to in the above example with code like <code class=\"language-plaintext highlighter-rouge\">#{bean.field}</code>\nfor bean fields, and with <code class=\"language-plaintext highlighter-rouge\">#{bean.method}</code>, assuming a bean exists with <code class=\"language-plaintext highlighter-rouge\">getField()</code>, <code class=\"language-plaintext highlighter-rouge\">setField()</code> and <code class=\"language-plaintext highlighter-rouge\">method()</code>.\nThe <code class=\"language-plaintext highlighter-rouge\">&lt;h:outputText&gt;</code> stuff is JSF to work out bean details and will create HTML in the output. As really brief intro.</p>\n\n<h2 id=\"the-metware-beans\">The Metware Beans</h2>\n\n<p>It is clear that java beans for Metware would be useful, and this is what I have been working on for the last few weeks.\nThe relevant beans for the above example are automagically created from the SKOS, complemented with extra bits of RDF\nfor the additional details, like field data type, mapping to SQL tables, and an example value. This all works very\nsmoothly (the code to <code class=\"language-plaintext highlighter-rouge\">load()</code> and <code class=\"language-plaintext highlighter-rouge\">save()</code> into the SQL database is automatically generated too!) as you can see in\nthe above example. The screenshot shows matches from a (local) live SQL metabolomics database. The text on the right\nside is directly taken from the SKOS.</p>\n\n<p>Now, the bean library allows integration with other tools too, though this cannot be found in our current roadmap.\nBut, for example, I have been thinking about a simple <a href=\"http://www.bioclipse.net/\">Bioclipse</a> wrapper around these\nbeans. What is on our roadmap involves workflows for metabolomics.</p>",
      "summary": "The MetWare components are slowly coming together. The RAW data upload facility prototype went into beta stage, while the SKOS has proven really useful for various things.",
      "image": "https://chem-bla-ics.linkedchemistry.info/assets/images/metwareJSF2.png",
      "date_published": "2008-04-30T00:00:00+00:00",
      "date_modified": "2025-09-13T00:00:00+00:00",
      "tags": ["metware","java","bioclipse","skos","nmrshiftdb"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
