[Neo4j] Cats and Dogs, living together

Javier de la Rosa versae at gmail.com
Tue Dec 7 15:44:54 CET 2010


On Mon, Dec 6, 2010 at 16:57, Peter Neubauer
<peter.neubauer at neotechnology.com> wrote:
> Very very cool Javier!

Thank you :)

> Is this built using the Neo4j Python bindings or pure REST? Also, is
> there a public website available to refer to?

By now we are using only REST, but the performance is not what we
expected when we process large nodes returned by a traversal (so much
HTTP requests). So we are now evaluating whether using de Python
binding or building a Java socket server and a Python socket client
could be better. When you make a traversal or use the indices, the
REST API returns the URLs of each of the nodes returned, so we need
make one HTTP request more per node. It would be great if we could
send an optional param to make the server returned all properties.

> Another question - regarding visualisation, what was your experience
> of the best performing lib for JavaScript out there regarding large
> amount of nodes and relationships to render, and adaptability for UI?
> Currently, it seems there is
>
> - TheJIT
> - Processing.js
> - Graphdracula

TheJIT was our first approach, but with large datasets the behaviour
is not very fast. Besides, the interaction ways are a bit limited and
hard to expand.
Processing.js is, with no doubt, the most promising solution. We were
happy using Porcessing.js, but you need build all you need to
represent graphs, nodes and edges. It's very low level programation
and by now the browsers can't with it, therefore we used a mixed
version between Processing.js in the browser and NetworkX in the
server side for some calculations of layout and etc.
Graphdracula was an inspiration for us. It's very beautiful, but it's
also very incomplete yet. I guess in the near future will be very
useful, but we need total control of all happens in the UI. So, now we
are using Räphael, the core library of Graphdracula, and we are
implementing several layout algorithms in Javascript and some ways to
interact with nodes to expand the graph by browsing.

I hope to setup a Sylva test site soon, then I will e-mail to this
list, if that's alright with you.

Best regards.

>
>
> Cheers,
>
> /peter neubauer
>
> GTalk:      neubauer.peter
> Skype       peter.neubauer
> Phone       +46 704 106975
> LinkedIn   http://www.linkedin.com/in/neubauer
> Twitter      http://twitter.com/peterneubauer
>
> http://www.neo4j.org               - Your high performance graph database.
> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
>
>
>
> On Thu, Dec 2, 2010 at 6:03 PM, Javier de la Rosa <versae at gmail.com> wrote:
>> Hi, everybody,
>>
>> I work in a lab at University of Western Ontario, with humanists
>> people. The needs of the humanist research make useless the current
>> SQL databases because it's hard to change the schemas or build queries
>> with several JOINs. So, we are developing a system which mixes a
>> relational database and Neo4j.
>>
>> Sylva [1], as it's called (previously Graphgamel), stores all data in
>> the Neo4j database as a graph. On the other hand, de multimedia files
>> (image, video and audio files) are stores using the relational one
>> (over Django). Besides, the relational part allows the definition of
>> lazy and dynamic schemas, very usefull to model the world from the
>> humanistic point of view. The users can create nodes and relationships
>> but according to a certain kind of integrity defined in the schema.
>>
>> Sylva also has a very early version of visualization through Raphäel
>> and Processing.js.
>> Here you can see some screenshots [2, 3, 4] and a video demo [5]. Our
>> goal is to adapt the django-qbe project [6] to our schema tool in
>> order to produce Gremlin queries in a visual way.
>>
>> But by now we are using the Neo4 REST component but it's not very fast
>> and it has some limitations.
>>
>> It's an alpha version, but it goes without saying :-)
>>
>> [1] https://github.com/escalant3/graphgamel
>> [2] http://dl.dropbox.com/u/2630535/sylva.png
>> [3] http://dl.dropbox.com/u/2630535/plexigraph.png
>> [4] http://dl.dropbox.com/u/2630535/grafo.png
>> [5] http://www.youtube.com/watch?v=r04eV7vghfs (sorry, not subtitles
>> or audio yet)
>> [6] http://versae.github.com/qbe/
>>
>> On Wed, Dec 1, 2010 at 12:52, Andreas Kollegger
>> <andreas.kollegger at neotechnology.com> wrote:
>>> Would anybody be willing to share experiences with trying to introduce Neo4j into a system with another relational (or other NoSQL) database?
>>>
>>> We're starting to think about best practices for integration:
>>> * Hybrid data-modeling: what goes where?
>>> * XA transactions
>>> * message queues for data distribution
>>> * data migration strategies
>>>
>>> Any problems or feature-requests related to living in a multi-storage-platform world are welcome.
>>>
>>> Cheers,
>>> Andreas
>>>
>>>
>>> _______________________________________________
>>> Neo4j mailing list
>>> User at lists.neo4j.org
>>> https://lists.neo4j.org/mailman/listinfo/user
>>>
>>
>>
>>
>> --
>> Javier de la Rosa
>> http://versae.es
>> _______________________________________________
>> Neo4j mailing list
>> User at lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>>
> _______________________________________________
> Neo4j mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Javier de la Rosa
http://versae.es


More information about the User mailing list