couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Aufreiter ...@zive.at>
Subject Re: Data.js — A Graph Manipulation Framework on top of CouchDB
Date Tue, 17 May 2011 13:14:33 GMT
Bob,

ah nice. Will have a look at that too. Regarding graph representation, with Data.js relationships
(edges) are stored locally on the nodes itself. As you said, this gives it an object oriented
feel and also allows a 1:1 mapping of serialized nodes (JSON) to a corresponding representation
within CouchDB. Both Data.Types and Data.Objects correspond to a document within CouchDB,
that is simply the serialized version of it. 

Here's a full schema, that I use in one of my projects https://github.com/michael/substance/blob/master/db/schema.json.
For each key at top level there will be a document in CouchDB. 

My intension was to keep relationships readable even in serialized form:
{ name: "Springfield", type: '/type/location', citizens: ["/person/bart"] }


Best,

Michael
On Tuesday, May 17, 2011 at 11:48 AM, Robert Dionne wrote:
Michael,
> 
>  This is quite interesting, I'm going to dig a little deeper when I get a chance. Could
you say more about how you are representing graphs in terms of couchdb documents? At a glance
it seems motivated by class/instance semantics of OOP. I'm curious as I've been prototyping
a mechanism for storing graphs as triples of docids, part of a terminology development environment[1].
I may be able to leverage what you've done for a better front end. 
> 
>  Nice work.
> 
> Best,
> 
> Bob
> 
> [1] https://github.com/bdionne/bitstore
> 
> On May 16, 2011, at 4:46 PM, Michael Aufreiter wrote:
> 
> > Just wanted to let you know we're working on a data manipulation framework for Javascript
that exposes a simple API for graph persistence. It uses CouchDB in the backend, and thus
turns it into a Graph Database.
> > 
> > With Data.js you can:
> > 
> > - Query, manipulate and persist data on the client (browser) or on the server (Node.js)
using exactly the same API.
> > 
> > - Make fast computations (like grouping and aggregating data, filtering)
> > 
> > - Synchronize nodes with a data-store (CouchDB) and handle conflicts that may occur
in a multi user scenario
> > 
> > - Subscribe for graph updates in realtime (using stateful Websockets for transport)
> > 
> > 
> > Based on type information Data.js stores indices (CouchDB views) and allows you
to query them using a JSON based query syntax. Thus it provides a simple query interface without
the need of specifying CouchDB views manually.
> > 
> > Documentation: http://substance.io#michael/data-js
> > Repository: http://github.com/michael/data
> > 
> > 
> > Looking forward to your feedback.
> > 
> > -- Michael
> 


Mime
View raw message