Turning tabular data into entities

Two widely used data formats on the Web are CSV and JSON. In order to enable fine-grained access in an hypermedia-oriented fashion I’ve started to work on Tride, a mapping language that takes one or more CSV files as inputs and produces a set of (connected) JSON documents.

Hey there – long time no see! Good to see you’re active again! Yes, I agree, the other direction is also very interesting (though, maybe rather challenging?), gotta look into that. Are you aware of any approaches out there? Anyways, thanks for the hint ;)

Hi Michael :) Well, you’ve got a good chunk of the approach here as surely those maps can be inverted; then all you need are a few simple functions like function getData(url) { var result = UrlFetchApp.fetch(url); return Utilities.jsonParse(result.getContentText()); } to dereference data and give you objects to work with in script -technically it’s all very simple. I know Melvin is importing game data from game -> data.fm -> google spreadsheet using this approach.

I guess the only real challenge, or bit I at least am unfamiliar with, would be making a UI or menu options so that it’s usable by the masses – that is all very well documented though, and the scripting lang used is just JS with a nice set of available runtime libraries (which can handle everything from parsing through to OAuth). I honestly believe it’s just a case of RTFM’ing any bits one isn’t comfortable with.

This type of simple data mapping tool is incredibly useful. It’s generic so you don’t have to write the same mapping functions again and again. And on top of that, the business logic is not hard-coded in some obfuscated source code, but explicitly available – and editable – in mapping files

I have designed and developed a couple of similar data mapping systems for Yahoo! myself, which we are using for turning high-quality entity-oriented feeds into entity-relationship graphs. Over the years, I have redesigned them to make them work at scale, plugged data normalization capabilities, and did my best so they can be used by non-technical persons.

Thanks a lot for your kind words, very encouraging! There are plenty of ideas (some of them noted in the To Do section of the README.md file over on GitHub) and others around extending it to the write case (see Mike’s suggestion) and in the inverse direction (JSON2CSV, see Nathan, above). What I wanted to try out was a JavaScript version and some more data manipulation functions. I’d be more than happy to join forces or exchange thoughts on this one, either via GitHub (issues, pull requests, etc.) or we can schedule a skype/G+ chat to discuss this. Anyways, thanks a lot and looking forward hearing from you again!