What HTML Templating Systems Exist For RDF?

It is is a common practice to build applications that do a SQL query against a relational database and then apply the data to templates to produce HTML output. A diverse range of tools exist for this, such as Cold Fusion, JSP, Ruby on Rails, Spring, Symfony Framework, and etc.

In semantic systems, it's attractive to do SPARQL queries against a triple store. What kind of tools exist to help format the resulting RDF data in HTML? Have you learned useful lessons about using RDF data in conventional frameworks such as JSP?

I would add SPARQL Web Pages (SWP) aka UISPIN from TopQuadrant to the list.

it's attractive to do SPARQL queries against a triple store. What kind of tools exist to help format the resulting RDF data in HTML?

Not necessarily limited to rendering RDF data (actually, some tools only work for SELECT results), but:

  • SNORQL: lightweight Javascript wrapper for SPARQL endpoints; allows for viewing results and queries together; default prefixes defined;
  • SPARK: another lightweight Javascript wrapper, but allows for generating pre-defined graphical views from certain types of SPARQL results; e.g., tables, timelines, pie-charts, etc.
  • sgvizler: yet another lightweight Javascript wrapper, but with a large range of graphical outputs
  • SPARQLer: just another lightweight Javascript wrapper, query validation and (I think) some graphical result visualizations
  • SPARQL Views: a Drupal module
  • Google Visualization has also been used for rendering results

Have you learned useful lessons about using RDF data in conventional frameworks such as JSP?

...can't help you there. :/

Kjetil Kjernsmo has done some preliminary work on using RDFa plus variables to mark up an HTML template, building a SPARQL query from that, and then repopulating the template with SPARQL results.

What happened to Fresnel?

What kind of tools exist to help format the resulting RDF data in HTML?

XSLT – the SPARQL XML result format is simple to process with XSLT. There is now a JSON version, TSV and CSV versions. The idea being to feed results of a SPARQL query into many of the web development approaches.

A different approach is to project out the information you want in a application-specific form, such as JSON or XML, with date structures reflecting the domain. See the linked data API.

An alternative would be to not do any server-side rendering, and rely on AJAX instead. You can feed sparql-results+json data through a 10-line filter and get a list of JSON objects which is trivial to render using Angular.js.