Carmen,

Could you cook up an introduction to RDF via e? I'm a bit behind the
curve here. More the idea of RDF and its usage in e than the e code
itself.

Evan

On 8/16/07, cr <[EMAIL PROTECTED]> wrote:
> e, elemental, is a stack for the data web
>
> there are 4 components: earth, air, fire, water
>
> earth is a pure-ruby RDF triple-store, with a fs backend. no dependencies on 
> 3rd party databases, just add filesystem (tm). theres also a ram backend 
> built with the Mongrel URI-classifier trie as the primitive datastructure. 
> from these two it should be easy to extrapolate how to write a 
> memcached/hadoop backend, or whatever is your cup of tea. ive found reiser4 
> works quite well.. the main inspiration behind the store design is git.
>
> the API for the store should be familiar to users of jQuery.. as with one 
> class wrapping a DOM node, you get one class wrapping a RDF resource. the 
> resource can be an actual file on the filesystem - eg throw a dir of jpgs off 
> your cam into a web dir and start annotating them.. literals are any valid 
> JSON data, and resource versioning is available.
>
> a JSON query engine is included, which queries like this:
>
>   {  type:Type,
>     'type=':'http://weblog.com/story',
>      date:Modified,
>     'abs?':dc+'terms/abstract',
>     'title?':dc+'elements/1.1/title',
>     'content?':sioc+'content',
>      limit:7,
>      offset:0,
>      order: {p:'date',d:'desc'}}
>
> as well as plain keyword search of literals. the underlying indices are 
> visible in and implemented using the store itself.
>
> designed with optimizability /  hackability in mind, to invent the 
> partitioning/distribution to meet your needs, adjust the editing method to 
> send all edits to an Utu chan or RDF-over-JSON-over-Jabber to viewers, mirror 
> data to a beastly SPARQL engine, etc.
>
>   http://whats-your.name/e/e.tar.gz
>
>
> water is the mongrel layer. it provides a default HTML view for crawlers, 
> links, dillo, and pays attention to the headers to export RDF to tools that 
> want it like tabulator, triplr, virtuoso. everything is cached for both 
> server (serialized resource) and client (if-modified/etag). the base URI is 
> mapped to the root of the server for your domain.
>
> embedded in the oldschool HTML is RDFa which is used to bootstrap a base 
> javascript GUI aka 'fire'. you'll likely want to customize this for your app, 
> although i do plan on providing a more complete set of base tools - graphical 
> query editor and some sample scripts as a seperate package for things like 
> blogs, wikis, bug tracs. facilitating GUIs is a small set of jQuery 
> extensions, 'air' to get form fields auto-watched for changes and updating 
> triples on the server, JS DOM creation + bindings (closures and js vars 
> instead of jQuery selectors to avoid the fragility and traversal, if you 
> want). ive tested the base gUI and proven it can at least load and make edits 
> in firefox2/3, opera, ie(s4linux), and webkit(qt/gdk), but not this week.
>
> theres no global lock preventing concurrency, no class vars and only a couple 
> instance vars (could make these go away, but this isnt haskell) . so far the 
> only thing somewhat slow is ruby's sort_by. taking about 0.1 second for 30-50 
> mb of blog post data sorting on date. query results can be cached, but im 
> going to investigate the performance and mem-hoggage of a RAM store for the 
> index before rewriting everything in Lua.
>
> the roadmap is add a few missing features: recursive queries (eg, get the 10 
> newest blog posts, and the 10 most recent comments for each of these), and 
> OpenID-based accounts (local-only is supported currently). is there a 
> mongrel-openID gem?
>
> oh yeah, docs/tutorials will come some day, maybe..
> _______________________________________________
> Mongrel-users mailing list
> Mongrel-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/mongrel-users
>


-- 
Evan Weaver
Cloudburst, LLC
_______________________________________________
Mongrel-users mailing list
Mongrel-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to