Re: RDF+Transformation = XHTML or is there sth like inverse GRDDL?

> I wonder if there is something (or has been proposed sth) like a concept
> to add a transformation to plain RDF resulting in an XHTML document.

Fresnel [1] is one way. its essentially an RDF schema for describing graph queries/traversals and turning them into a tree of results. where a tree could be a DOM tree, or something else..

> Just some thoughts where I would like to here other people's opinions. I
> don't want to make things more complicate than there are already ;-)
> ...nor adding further languages, standards, schemas, headaches....

yeah, at a bare minimum my requiremenets are: one (you'll need sparql + fresnel + some custom glue if you go the above route) query language. no new string formats (so JSON instead of SPARQL, since XML is fugly and unreadable). fast enough for me (rasqal wasnt, and virtuoso was huge (150MB ram just to launch) and only accessible from ruby/lua/etc via a very limited HTTP interface), not require an extra database and/or binding library (rasqal and virtuoso both do), not require java (so jena/sesame/slrp are out) be free (so allegrograph/jxt/talis are out), have as much 'meta'-data' implicit in the data as possible (like, no extra triples for #has_parent when its obvious it has a parent based on the disk location), no pointless class instantiation overhead for stuff like 'RDFs::Resource' then the additional SWIG binding overhead when the inbuilt types like 'hash' will work fine (thanks it was fun Redland) and benefit from a bigger library of features.

what ended up fitting the bill:

service endpoint -> * uses filesystem as triplestore
                    * simpliest queries inferred from GET URI, otherwise JSON
		    * always returns JSON [{uri: "uri", predicate: [o1,o2]}, {uri:"uri2", p2: [o3,o4]}..]

ECMAscript templates -> specify both the query and result formatting

eg a table with a row for each resource and cell for each requested attribute, sorted by modification date:

query({type: w3+'type',
       modified: dc+'modified',
      'modified>=': '20010101T02:00:00',
       abstract: dc+'abstract'},
function(d){r.dh('table',{class:'listitems'},oa(d,
    function(i){return ['tr',{},oa(i,
	function(p){return ['td',{},[p]]})]}))})

the query engine and store (Ruby) and client library (jQuery extensions) are already working to my specs [2]. ive yet to add recursive graph patterns and traversal to specified depth, but theyre coming as soon as i need them or someone pays me to add them... i'll be throwing up some examples soon like 'distributed flickr' and 'about-face book' (openID edition) so stay tuned..

--
1. http://simile.mit.edu/fresnel/
2. http://whats-your.name/yard/

Received on Wednesday, 4 July 2007 00:50:13 UTC