I love the logo :)

Nice article. Stephen, is there any chance I could steal some of the
content for the documentation? A lot of it is relevant to unipop.

Thanks for taking the time to respond, I'll keep you guys updated. BTW if
anyone wants to help they're welcome :)

Cheers,
Ran
On יום ה׳, 29 באוק׳ 2015 at 0:54 Marko Rodriguez <[email protected]>
wrote:

> Also, if you don't like my logo pull request, you don't have to keep it
> :). It won't hurt my feelings.
>
> Marko.
>
> http://markorodriguez.com
>
> On Oct 28, 2015, at 4:50 PM, Marko Rodriguez <[email protected]> wrote:
>
> > Hello Ran,
> >
> > Thank you for detailing your work.
> >
> > I was just looking over Apache Drill. That looks like a really cool
> (complicated) project.
> >
> > It sounds like Unipop has its work cut out for it. However, as you say,
> if you can abstract away the database layer like Titan does, then you will
> be in luck.
> >
> > I understand why you didn't choose Sqlg. Sqlg is starting with a "blank"
> database and enforcing a graph schema into it. Unipop is starting with an
> existing database and allowing the user to query it like a graph.
> >
> > This could really help a lot of people in the area of master data
> management. I have worked on many projects that have MongoDB, SQLServer,
> Cassandra, Voldemort, etc. all under the same roof. If you could "just use
> Gremlin" to manipulate that data, life would be much easier.
> >
> > I have shared this before on this list, but perhaps you missed it.
> Stephen Mallette wrote this article a while back that may provide some
> inspiration.
> >
> http://thinkaurelius.com/2013/02/04/polyglot-persistence-and-query-with-gremlin/
> >
> > Anywho, keep up the good work and when you have things working, we can
> help you promote your project.
> >
> > Take care,
> > Marko.
> >
> > http://markorodriguez.com
> >
> > On Oct 28, 2015, at 3:43 PM, Ran Magen <[email protected]> wrote:
> >
> >> Awesome, thanks Marko!
> >>
> >> Good point, I'll try to explain my reasoning behind not using Sqlg (even
> >> though it seems like a great project on its own). I'd be happy to
> receive
> >> any feedback on it.
> >>
> >> First, a bit about the motivation behind Unipop...
> >> Unipop is meant to be a DAL on top of any databases of your choice. The
> >> philosophy being that these days many organizations (as the one I work
> for)
> >> have alot of different "kinds" of data, spread throughout many
> specialized
> >> data stores (RDBMS / DocumentStore, etc.)
> >>
> >> What we wanted to make is a DAL that'll enable us to query all our
> >> different data stores and hundreds of different schemas, including the
> >> relationships between the data, in one simple interface.
> >>
> >> There are some projects that try to do the same thing (Drill
> >> <http://drill.apache.org/>, Calcite <
> https://calcite.incubator.apache.org/>,
> >> Dremel <http://research.google.com/pubs/pub36632.html>), but they use
> sql
> >> as the "unified" query language. We figured that in a schema with many
> >> connections, a property-graph representation would be better than a
> >> relational model (trying to avoid "JOIN hell"). So we decided to
> implement
> >> a Calcite-like application using gremlin - Unipop.
> >>
> >> On the issue of using Sqlg, There were a few design decisions we made in
> >> Unipop that seemed to go against it:
> >>
> >>   1. The graph Ontology should not be dependent on the underlying
> schemas.
> >>   One could choose to represent a table in a database as a vertex, or
> as a
> >>   vertex + edge (represented by some FK column). You might even choose
> to
> >>   make a "virtual" vertex (let's say an 'email-address' vertex) that
> isn't
> >>   represented anywhere physically, but is used as a connection-point
> between
> >>   other vertices in our ontology (e.g. the user's posts, stored each as
> a
> >>   document in elasticsearch). Basically, we shouldn't bind the design
> of our
> >>   "user-facing" ontology with the design of our optimized data store
> schemas.
> >>   - OTOH, in Sqlg the schema is (understandably) mapped directly to the
> >>      graph ontology <http://umlg.org/sqlg.html> (take a look at the
> >>      Architecture section.)
> >>      2. We must be able to query multiple different data stores in the
> >>   same traversal, and even in the same step. Practically that meant that
> >>   instead of implementing the process package (Steps, Strategies, etc.)
> for
> >>   each data-store, we made one implementation that coordinates the
> different
> >>   Controllers (elastic, jdbc, etc).
> >>      - Before starting the work on the jdbc package I scanned through
> the
> >>      sqlg code, and (again, understandably) the code seemed heavily
> >> dependent on
> >>      the process package.
> >>   3. Translating gremlin's in/out steps to JOIN statments is a big pain.
> >>   It's probably the hardest part about creating an sql implementation.
> We
> >>   figured that for Unipop we'd just bypass that problem, create the
> JOINs we
> >>   needed as views in the DB, and simply map those views to the
> vertices&edges
> >>   to which they correspond in the graph ontology. (This explanation
> might not
> >>   be too clear, I can expand on it if anyone's interested).
> >>
> >>
> >> The reason for going into these details is because I'd be happy to get a
> >> second opinion from you guys, about using Sqlg in particular, and about
> the
> >> design decisions in general.
> >>
> >> BTW, the same points are probably relevant in regards to using Titan's
> >> Cassandra/Hbase/etc connectors.
> >>
> >> Thanks,
> >> Ran
> >>
> >> On Tue, 27 Oct 2015 at 16:58 Marko Rodriguez <[email protected]>
> wrote:
> >>
> >>> Hi Ran,
> >>>
> >>> I just submitted a PR to your Unipop project.
> >>>
> >>>        https://github.com/rmagen/unipop/pull/3
> >>>
> >>> However, while cruising around, I notice your unipop-jdbc/ package. Why
> >>> not just use Pieter Martin's Sqlg project for JDBC/TinkerPop?
> >>>
> >>>        https://github.com/pietermartin/sqlg
> >>>
> >>> Perhaps I don't understand the purpose of your package… just a random
> >>> thought.
> >>>
> >>> Thanks,
> >>> Marko.
> >>>
> >>> http://markorodriguez.com
> >>>
> >>>
> >
>
>

Reply via email to