I think moving the RTree to the generic collections would not be too hard. I
saw Saikat showed interested in doing this himself.

Saikat, contact me off-list for further details on what I think could be
done to make this port.

On Wed, Jun 29, 2011 at 9:52 PM, Niels Hoogeveen
<pd_aficion...@hotmail.com>wrote:

>
> Peter, I totally agree. Having the Rtree index removed of spatial
> dependencies in graph-collections should be our first priority. Once that is
> done we can focus on the other issues.
> Which doesn't mean we should stop discussing future improvements like
> setting up comparators (or something to that extent) that can be reusable,
> but we shouldn't try to get that up before Rtree is in graph-collections.
> Niels
>
> > From: peter.neuba...@neotechnology.com
> > Date: Wed, 29 Jun 2011 21:10:15 +0200
> > To: user@lists.neo4j.org
> > Subject: Re: [Neo4j] neo4j-graph-collections
> >
> > Craig,
> > just gave you push access to the graph collections in case you want to
> > do anything there.
> >
> > Also, IMHO it would be more important to isolate and split out the
> > RTree component from Spatial than to optimize it - that could be done
> > in the new place with targeted performance tests later?
> >
> > 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://startupbootcamp.org/    - Ă–resund - Innovation happens HERE.
> > http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
> >
> >
> >
> > On Wed, Jun 29, 2011 at 4:19 PM, Niels Hoogeveen
> > <pd_aficion...@hotmail.com> wrote:
> > >
> > > Craig,
> > > Would it be possible to merge your work on Amanzi with the work the Neo
> team has done on the Btree component that is now in neo4j-graph-collections,
> so we can eventually have one implementation that meets a broad variety of
> needs?
> > > Niels
> > >
> > >> Date: Wed, 29 Jun 2011 15:34:47 +0200
> > >> From: cr...@amanzi.com
> > >> To: user@lists.neo4j.org
> > >> Subject: Re: [Neo4j] neo4j-graph-collections
> > >>
> > >> I have previously used two solutions to deal with multiple types in
> btrees:
> > >>
> > >>    - My first index in 2009 was a btree-like n-dim index using
> generics to
> > >>    support int[], long[], float[] and double[] (no strings). I used
> this for
> > >>    TimeLine (long[1]) and Location (double[2]). The knowledge about
> what type
> > >>    was used was in the code for constructing the index (whether a new
> index or
> > >>    accessing an existing index in the graph).
> > >>    - In December I started my amanzi-index (on
> > >> github<https://github.com/craigtaverner/amanzi-index>)
> > >>    that is also btree-like, n-dimensional. But this time it can index
> multiple
> > >>    types in the same tree (so a float, int and string in the same
> tree, instead
> > >>    of being forced to have all properties of the same type). It is a
> re-write
> > >>    of the previous index to support Strings, and mixed types. This
> time it does
> > >>    save the type information in meta-data at the tree root.
> > >>
> > >> The idea of using a 'comparator' class for the types is similar, but
> simpler
> > >> than the idea I implemented for amanzi-index, where I have mapper
> classes
> > >> that describe not only how to compare types, but also how to map from
> values
> > >> to index keys and back. This includes (to some extent) the concept of
> the
> > >> lucene analyser, since the mapper can decide on custom distribution
> of, for
> > >> example, strings and category indexes.
> > >>
> > >> For both of these indexes, you configure the index up front, and then
> only
> > >> call index.add(node) to index a node. This will fit in well with the
> new
> > >> auto-indexing ideas in neo4j.
> > >>
> > >> On Wed, Jun 29, 2011 at 2:25 PM, Niels Hoogeveen
> > >> <pd_aficion...@hotmail.com>wrote:
> > >>
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > At this moment Btree only supports the primitive datatype long,
> while Rtree
> > >> > only supports the datatype double. For Btree it makes sense to at
> least
> > >> > support strings, floats, doubles and ints too. Use cases for these
> data
> > >> > types are pretty obvious and are Btree backed in (almost) every
> RDBMS
> > >> > product around.I think the best solution would be to create
> Comparator
> > >> > objects wrapping these primitive data types and store the class name
> of the
> > >> > comparator in root of the index tree. This allows users to create
> their own
> > >> > comparators for datatypes not covered yet. It would make sense
> people would
> > >> > want to store BigInt and BigDecimal objects in a Btree too, others
> may want
> > >> > to store dates (instead of datetime), fractions, complex numbers or
> even
> > >> > more exotic data types.
> > >> > Niels
> > >> > > From: sxk1...@hotmail.com
> > >> > > To: user@lists.neo4j.org
> > >> > > Date: Tue, 28 Jun 2011 22:43:24 -0700
> > >> > > Subject: Re: [Neo4j] neo4j-graph-collections
> > >> > >
> > >> > >
> > >> > > I've read through this thread in more detail and have a few
> thoughts,
> > >> > when you talk about type I am assuming that you are referring to an
> > >> > interface that both (Btree,Rtree) can implement, for the data types
> I'd like
> > >> > to understand the use cases first before implementing the different
> data
> > >> > types, maybe we could store types of Object instead of Long or
> Double and
> > >> > implement comparators in a more meaningful fashion.   Also I was
> wondering
> > >> > if unit tests would need to be extracted out of the spatial
> component and
> > >> > embedded inside the graph-collections component as well or whether
> we'd
> > >> > potentially need to write brand new unit tests as well.
> > >> > > Craig as I mentioned I'd love to help, let me know if it would be
> > >> > possible to fork a repo or to talk in more detail this week.
> > >> > > Regards
> > >> > >
> > >> > > > From: pd_aficion...@hotmail.com
> > >> > > > To: user@lists.neo4j.org
> > >> > > > Date: Wed, 29 Jun 2011 01:35:43 +0200
> > >> > > > Subject: Re: [Neo4j] neo4j-graph-collections
> > >> > > >
> > >> > > >
> > >> > > > As to the issue of n-dim doubles, it would be interesting to
> consider
> > >> > creating a set of classes of type Orderable (supporting <, <=, >, >=
> > >> > operations), this we can use in both Rtree and Btree. Right now
> Btree only
> > >> > supports datatype Long. This should also become more generic. A
> first step
> > >> > we can take is at least wrap the common datatypes in Orderable
> classes.
> > >> > > > Niels
> > >> > > >
> > >> > > > > Date: Wed, 29 Jun 2011 00:32:15 +0200
> > >> > > > > From: cr...@amanzi.com
> > >> > > > > To: user@lists.neo4j.org
> > >> > > > > Subject: Re: [Neo4j] neo4j-graph-collections
> > >> > > > >
> > >> > > > > The RTree in principle should be generalizable, but the
> current
> > >> > > > > implementation in neo4j-spatial does make a few assumptions
> specific
> > >> > to
> > >> > > > > spatial data, and makes use of spatial envelopes for the tree
> node
> > >> > bounding
> > >> > > > > boxes. It is also specific to 2D. We could make a few
> improvements
> > >> > first,
> > >> > > > > like generalizing to n-dimensions, replacing the recursive
> search
> > >> > with a
> > >> > > > > traverser and generalizing the bounding boxes to be simple
> > >> > double-arrays.
> > >> > > > > Then the only thing left would be to decide if it is ok for it
> to be
> > >> > based
> > >> > > > > on n-dim doubles or should be generalized to more types.
> > >> > > > >
> > >> > > > > On Tue, Jun 28, 2011 at 11:14 PM, Saikat Kanjilal <
> > >> > sxk1...@hotmail.com>wrote:
> > >> > > > >
> > >> > > > > > I would be interested in helping out with this, let me know
> next
> > >> > steps.
> > >> > > > > >
> > >> > > > > > Sent from my iPhone
> > >> > > > > >
> > >> > > > > > On Jun 28, 2011, at 8:49 AM, Niels Hoogeveen <
> > >> > pd_aficion...@hotmail.com>
> > >> > > > > > wrote:
> > >> > > > > >
> > >> > > > > > >
> > >> > > > > > > A couple of weeks ago Peter Neubauer set up a repository
> for
> > >> > in-graph
> > >> > > > > > datastructures:
> https://github.com/peterneubauer/graph-collections
> > >> > .
> > >> > > > > > > At this time of writing only the Btree/Timeline index is
> part of
> > >> > this
> > >> > > > > > "component".
> > >> > > > > > > In my opinion it would be interesting to move the Rtree
> parts of
> > >> > > > > > neo-spatial to neo4j-graph-collections too.
> > >> > > > > > > I looked at the code but don't feel competent to seperate
> out
> > >> > those
> > >> > > > > > classes that support generic Rtrees from those classes that
> are
> > >> > clearly
> > >> > > > > > spatial related.
> > >> > > > > > > Is there any enthusiasm for such a project and if so, who
> is
> > >> > willing and
> > >> > > > > > able to do this?
> > >> > > > > > > Niels
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > >
> > >> > > > > > > _______________________________________________
> > >> > > > > > > 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
> > >> > > > > >
> > >> > > > > _______________________________________________
> > >> > > > > 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
> > >> > >
> > >> > > _______________________________________________
> > >> > > 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
> > >> >
> > >> _______________________________________________
> > >> 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
> > >
> > _______________________________________________
> > 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
>
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to