Simple Templating for CSV->*

Ivan Herman

Copyright © 2014 W3C ® (MIT, ERCIM, Keio, Beihang)

These slides are at:

http://www.w3.org/2014/Talks/1028-CSVW-IH/

Goal

Structure of a template

... "table level" templates
{{#rows}}
... "row level" templates
{{/rows}}

A template syntax

What it means 1: table level

{{name}}

What it means 2: row level

{{name}}

What it means 3: filters

{{name.filter1.filter2(arg1,arg2)...}}

Typical filters

upper lower row_number replace(regexp, value) concat(str) preconcat(str) URI_encode datatype language parsed_cell ...

Examples

@prefix : <http://example.org/{{@id}}#> .
{{#rows}}
{ "row"       : "{{.row_number}}",
  "GID"       : "{{GID.number}}",
  "On Street" : "{{on-street}}"
}, 
{{/rows}}
:Inventory%20Date 
   "{{inv-date.parse_cell}}"
      {{inv-date.datatype.preconcat("^^xsd:")}};

Implementation

Example

$("div.json").each(function(index) {
  ...
  var request = {url: dataset_url, format: "JSON"};
  $.getCSV(request)
    .done( function(csv_data) {
       ...

Example online

http://iherman.github.io/CSVPlus/test-templateonly.html

Possible additions

But no new features should be added, unless it is really necessary!

It is on Github:

https://github.com/iherman/CSVPlus