Re: [Neo4j] Neo4j demo sites?

576 views
Skip to first unread message

Michael Hunger

unread,
Jul 24, 2012, 6:36:31 PM7/24/12
to ne...@googlegroups.com
Neo4j mostly works in the background,

you can find some examples in the graph database news on neotechnology.com

here are some more examples:

- adobe creative cloud

HTH

Michael

Am 24.07.2012 um 23:01 schrieb roymond:

Are there any live demo sites to see what people are doing with Neo4j? I haven't found any and would love to see examples.

Josh Adell

unread,
Jul 24, 2012, 9:37:53 PM7/24/12
to ne...@googlegroups.com
There's also the "Seed the Cloud" challenge winners page. Some good demo apps there: http://blog.neo4j.org/2012/03/neo4j-heroku-challenge-winner-and.html

Alan Robertson

unread,
Jul 24, 2012, 10:39:43 PM7/24/12
to ne...@googlegroups.com
On 07/24/2012 04:01 PM, roymond wrote:
> Are there any live demo sites to see what people are doing with Neo4j?
> I haven't found any and would love to see examples.
I don't have a live demo, but I have written a couple of blog articles
on my schema (so-to-speak) for an actual project - with more articles to
come.

http://techthoughts.typepad.com/

The project web site is here:
http://assimmon.org/

--
Alan Robertson <al...@unix.sh> - @OSSAlanR

"Openness is the foundation and preservative of friendship... Let me claim from you at all times your undisguised opinions." - William Wilberforce

Duane Nickull

unread,
Jul 24, 2012, 11:43:05 PM7/24/12
to ne...@googlegroups.com
Concur – some great stuff here. 

Duane
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


Duane Nickull

unread,
Jul 24, 2012, 11:42:07 PM7/24/12
to ne...@googlegroups.com
My company, Technoracle, has a product we are about to launch with Neo4J on the back end.  We plan to add full architecture docs to show the immense business value of Neo4J.  ETA < 3 months.

Duane Nickull
***********************************
Technoracle Advanced Systems Inc.
Consulting and Contracting; Proven Results!
i.  Neo4J, PDF, Java, LiveCycle ES, Flex, AIR, CQ5 & Mobile
t.  @duanechaos
"Don't fear the Graph!  Embrace Neo4J"


Aseem Kishore

unread,
Jul 26, 2012, 11:12:05 AM7/26/12
to ne...@googlegroups.com
I'm the co-founder of http://www.thethingdom.com/ , a social network around products, and it uses Neo4j from Node.js. We in fact wrote and open-sourced the Node.js-Neo4j driver. =)

Message has been deleted

Jim Webber

unread,
Jul 27, 2012, 6:10:45 AM7/27/12
to ne...@googlegroups.com
Hey Niels,

That's pretty sweet! Congratulations.

Would you share your experiences of designing for multitennancy here? I think it would be fascinating to learn what you know.

Jim

Niels Hoogeveen

unread,
Jul 27, 2012, 9:37:00 AM7/27/12
to Neo4j
Hi Jim,

For some reason I don't see my original comment anymore, but I'd love
to talk a bit more about my experiences.

Let's first start with the basics. Neo4j is a schemaless database,
something I greatly appreciate since it allowed me to create my own
schema on top of the graph store. In order to do that, I started by
wrapping the entire Neo4j API in Scala.

Having classes such as PropertyType and RelationhipType, made it
possible to move all graph traversal and manipulation towards those
types.

Where the Neo4j API has all graph manipulation methods on the Node, in
multispective.com all those methods have been moved towards
PropertyType and RelationshipType, making it possible to plug in
different implementations where needed. E.g. there is a
RelationshipListType, which places all relationships in an ordered
list (in-graph), but can be treated like an ordinary RelationshipType
in the API.

Another aspect of the schema is that every database element derives
from the same base class (Vertex). As a result, properties and
relationships can be treated as if they were Nodes, and both can have
properties and relationships themselves. This is achieved through the
use of shadow-nodes, where each property or relationship can have an
associated node, on which properties and relationships are stored.
This is done on a per-need basis, so only those properties that
require properties and/or relationships and relationships that require
relationships, have such a shadow node (a much nicer solution than
having to use a bipartite layout throughout the graph).

By giving every database element the same base class, access-control
becomes rather easy, since it can be handled in the base class.

Multitenency is achieved by modeling each user or user-group as a
separate domain. Each domain has its own associated namespace where
domain owners can define their own ContentTypes, PropertyTypes and
RelationshipTypes, while each domain can also import schema
definitions from other domains (if allowed by the owners of those
domains).

Within the various types, domain owners can model URL-paths, so each
domain can have it's own URL-structure if such is needed. Each URL-
path can have associated HTML templates, CSS code and Javascript code
that will be used to produce the required HTML output.

Example:

Suppose we have a blog entry stored at mydomain.com/blog/niels/
my_first_blog_entry.

Template resolution starts looking for templates/css/javascript
associated with that particular URL (which is represented in the
database as a Node). If no templates (also stored in the database as a
Node) are found at that level, the search will continue for the path:
mydomain.com/blog/niels/. Again if nothing is found, search with
continue for the path mydomain.com/blog/. Finally if nothing is found
up to the path mydomain.com, default template/css/javascript is used
----

Domain owners can add their own templates/css/javascript (at least the
ones that pay for their subscription, free-user accounts don't have
this option) and with that have complete control over the rendered
output.

Altogether the experience of building this on top of Neo4j has been a
positive experience. The choice for Scala as a programming language
too has helped a lot creating this beast, especially due to the superb
collection libraries and the use of higher-order functions.

At times, I have missed the option to have a proper key-value store,
although Lucene can be used for that purpose, but isn't as fast as a
dedicated key-value store.

Another observation is that thinking in traversals over a graph makes
a lot of sense for a Content Management System. After all, most of the
database retrievals are local to a given entity.

One drawback I have noticed so far, relative to an RDBMS, is that sort
order requires more advanced planning and isn't straigtforwardly
supported at the database level. Hopefully in some future release
(neo4j 2.0) the relationship store can be completely redesigned in
order to allow for fast access to specific relationships with a given
sort-order.

Niels

Michael Hunger

unread,
Jul 28, 2012, 5:12:50 PM7/28/12
to ne...@googlegroups.com
Niels,

did you publish this already in this depth as a blog post? I remember one blog post from you about multiperspective, but that was a more high level post?

It would be great if this approach got out there so please publish this email content on the web

Thanks a lot

Michael

Javier de la Rosa

unread,
Jul 28, 2012, 7:32:47 PM7/28/12
to ne...@googlegroups.com
Well, there is also Sylva [1] (still in beta). It allows you to define
your own schema for your data and then, it creates for you all the
forms to fill and create the graph. It has options to export the graph
as .gexf, collaborative work with a team in a same graph, search
feature across all the properties of a node or relationship, and the
schema is flexible so you can edit as many times as you want :D



[1] http://beta.sylvadb.com/
--
Javier de la Rosa
http://versae.es

Niels Hoogeveen

unread,
Jul 29, 2012, 11:07:18 AM7/29/12
to ne...@googlegroups.com
Hi Michael,
 
I will do my best to put out a blog post on multispective containing the information I put out in this thread.
 
Niels

Niels Hoogeveen

unread,
Jul 30, 2012, 11:15:19 AM7/30/12
to ne...@googlegroups.com
I wrote a blog post about multitenancy on multispective: http://multispective.com/blog/niels/how+multispective+achieves+multitenancy/
 
The post doesn't describe things at the level of Neo4j since I want this post to be geared to the more casual reader.
 
Niels

Michael Hunger

unread,
Jul 30, 2012, 7:12:54 PM7/30/12
to ne...@googlegroups.com
Thanks a lot Niels !

Michael
Reply all
Reply to author
Forward
0 new messages