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
> [email protected]
> http://rubyforge.org/mailman/listinfo/mongrel-users
>
--
Evan Weaver
Cloudburst, LLC
_______________________________________________
Mongrel-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users