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