As I mentioned in my response to Andreas' original question, "SQL-like"
access (and storage) to/from a graph can be achieved, but requires a
domain-specific layer on top of the graph (but isn't that difficult to
create).  We built ours such that we could fairly easily wrap our REST-ful
API in a JDBC or ADO.NET layer, so that third party apps could query our
platform using JDBC/ADO.NET if they weren't comfortable with invoking the
REST services directly or didn't want to deal with JSON or XML.

There might be a way to create a generic metadata/persistence layer that
provided SQL-like capabilities to/from a Neo graph.  In fact, I'm almost
certain there would be since I've done most of it once already. ;-) Might be
an interesting community effort at some point.  For now, ours is fairly
closely bound to our domain objects and internals.

Regarding the "schema-less" nature of Neo4J, again, it can be "schema-ized"
with a layer on top of it.  We provide REST-ful API's to discover data
structures/types, service metadata, data tables/stores, etc., so that our
IDE and other external apps can be type-aware instead of type-less.

In terms of tools to visualize/navigate the graph, so far we've only worked
with Neoclipse (and liked it), but the prebuilt version doesn't work with
the latest versions of Neo, and it has some challenges when there are large
#'s of nodes and/or relationships attached to a particular node.

Rick

-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
Behalf Of Kalin Wilson Development
Sent: Thursday, December 02, 2010 9:03 AM
To: Neo4j user discussions
Subject: [SPAM] Re: [Neo4j] Cats and Dogs, living together

Peter,
Those are certainly viable alternatives (need to investigate further), but
most involve learning another language/interface or working at the command
line or within a script.
The ubiquity of SQL access to a database is a big factor when considering
migration. One of my teammates is much better with SQL than I am and his
preferred language is Visual Basic. His role in supporting a database driven
app has fallen to mostly data maintenance which he accomplishes either
through the Mysql workbench using it's browsing capabilities and direct SQL,
or quick and dirty utilities he can write in VB to manipulate the data.
So as I consider implementing part of the system with Neo4j, I have to
consider that I'll be removing access to and manipulation of that data from
other teammates who prefer or have expertise with SQL and require that
access to the Neo4j data be programmatic or via shell/command line which can
be limiting in the view you have.

The flexible, schema-less nature of Neo4j is a great feature. But at some
point in order to be able to traverse and understand a graph, a user needs
to understand how the graph has been built and it's semantics. With tools
like Mysql workbench you can browse the DB metadata to discover or remember
table/field names and types, relationships, etc. Not having such a browser
to discover and visualize a Neo4j graph requires more rigor among a team to
document and adhere to the network model. Rigor is good but not always
followed up on. I guess you could use the shell to traverse a graph and dump
all of the relationship types, etc, but could you dump all of the properties
on nodes and relationships to get a view of the model? Even with that would
you have enough information to begin writing traversals to extract or
manipulate data? Would you understand the semantics? This sort of tool
support and general access capability will be very useful to Neo4j when its
available, IMO.

Thanks for the dialog!

Kalin

On Dec 2, 2010, at 5:48 AM, Peter Neubauer wrote:

> Kalin,
> I think the different shell access possibilities are good candidates
> for fast integration. You have at least
> 
> Neo4j Shell, distributed with Neo4j downloads, see
>
http://wiki.neo4j.org/content/Getting_Started_with_Neo4j_Server#Enter_the_Sh
ell
> 
> JRuby scripts, see http://neo4j.rubyforge.org/ and
> https://github.com/andreasronge/neo4j
> 
> Gremlin, https://github.com/tinkerpop/gremlin/wiki/Getting-Started
> 
> Python and others,
> 
> many of these can be used from the command line to read and pipe data
> into Neo4j. Would one of these be an option? Especially the Neo4j
> Shell connects remotely (the others will when the RemoteGraphDB
> component is fixed up) and should be able to do most of the usual
> tasks...
> 
> WDYT?
> 
> 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.
> 
> 
> 

_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to