It would probably be best to use some accepted standard for Geo instead of
reinventing one for TP.
This is the first thing that comes up on google: http://www.geoapi.org
On יום ד׳, 27 בינו׳ 2016 at 18:49 Stephen Mallette <spmalle...@gmail.com>
wrote:

> As of 3.1.1-incubating we will be able to serialize pretty much all of the
> java.time.* classes. Graphs won't have to provide any special serializers
> for those if they return those types.
>
> I'm less sure about how geo would work.  TinkerPop creates interfaces for
> Point, Polygon, whatever, with appropriate serializers then if a graph
> wants to support geo, the provider could implement those interfaces in
> whatever way they chose to return as results. Providers could then also
> build their own predicates based on those types. is that what you're
> thinking matthias?
>
>
>
> On Tue, Jan 26, 2016 at 6:52 PM, Matthias Broecheler <m...@matthiasb.com>
> wrote:
>
> > Again, my comment is explicitly NOT about the predicates. Those are
> indeed
> > easy to add and implementors can differ in what they choose to provide
> and
> > how they implement those.
> >
> > I am only talking about providing a data type definition so that the
> server
> > and client can agree on how such data moves between the two. That's where
> > things are currently getting crazy.
> >
> > On Tue, Jan 26, 2016 at 11:51 AM Marko Rodriguez <okramma...@gmail.com>
> > wrote:
> >
> > > Hi,
> > >
> > > I think Pieter echoes my sentiment about supporting Geo and Time in
> > > TinkerPop. A similar predicate people wanted in the past was RegEx. The
> > > problem, ElasticSearch RegEx is different from SQL is different from
> ??…
> > > I'm not  hip to the Geo- and Time-scene, but I suspect that Geo is a
> > crazy
> > > rat's nest of standards, competing Java APIs, and the like. I don''t
> > think
> > > TinkerPop should choose. Its really easy for graph system providers to
> > > provide P-predicates for predicates they wish to support (and what is
> > > specific to their database).
> > >
> > >
> > >
> >
> https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java
> > >
> > >
> >
> https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java#L122-L182
> > >
> > >         import static
> > > com.a.super.rich.company.that.hoards.cash.money.GeoP.*
> > >         …
> > >         g.V().has("location",
> > > inside(circle(12.234,34.235))).out("worksFor").values("name")
> > >         g.V().has("location",
> > >
> >
> outside(rectangle(12.234,34.235,23,11.57))).out("collaboratesWith").values("name")
> > >
> > >
> > > …again, I'm not the most knowledgeable here, but when I read Pieter's
> > > response, I was like -- "yea."
> > >
> > > Marko.
> > >
> > > http://markorodriguez.com
> > >
> > > On Jan 26, 2016, at 11:03 AM, pieter-gmail <pieter.mar...@gmail.com>
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > Regarding Geo I have no strong opinions. However I thought I'll
> > indicate
> > > > what I have implemented in Sqlg.
> > > >
> > > > Postgres via Postgis has rather sophisticated gis support. In fact it
> > is
> > > > so sophisticated that I realized without spending considerable time
> > > > learning it I don't really know what all is involved. I did however
> add
> > > > partial support for the types that the postgis jdbc driver supports.
> > > > Point, Polygon, GeographyPoint and GeographyPolygon. Geometry being
> on
> > a
> > > > flat earth and geography for a spherical earth. The driver has more
> > > > constructs that I do not yet support.
> > > >
> > > > Further I did not consider adding any gremlin gis support as the gis
> > > > concepts quickly become so complex that I deemed it better to leave
> > this
> > > > at the native sql level. Not sure what gremlin's gis ambitions are
> but
> > > > chances are that a single lowest common denominator Point field will
> > not
> > > > suffice.
> > > >
> > > > Cheers
> > > > Pieter
> > > >
> > > >
> > > > On 26/01/2016 03:26, Matthias Broecheler wrote:
> > > >> Hello everybody,
> > > >>
> > > >> one of the great features of TinkerPop is that it is extensible. It
> is
> > > >> pretty easy for an implementation of TinkerPop Gremlin to add
> support
> > > for a
> > > >> regular expression predicate, for instance.
> > > >>
> > > >> In addition, it is also possible to add custom data types based on
> the
> > > >> pluggable serialization system. However, unlike a custom predicate,
> > > support
> > > >> for custom data types requires changes both on the server side (i.e.
> > > within
> > > >> a particular implementation) as well as on the client side so that
> > > clients
> > > >> can read and make sense of such types when they are returned.
> > > >>
> > > >> This makes it fairly impractical for implementations to support
> custom
> > > data
> > > >> types. While it is easy to make the necessary changes on the server
> > > side, a
> > > >> particular implementation would have to extend each and every driver
> > of
> > > the
> > > >> TinkerPop ecosystem in order to have its data type supported across
> > the
> > > >> board. The last part is what makes it impractical.
> > > >> On top of that, since TinkerPop doesn't prescribe what the data type
> > > must
> > > >> look like, implementations can differ in their approach making it
> > > >> impossible for drivers to support them even if they invested the
> > > additional
> > > >> effort.
> > > >>
> > > >> Hence, I would like to make the case for including a "Geo" and a
> > "Time"
> > > >> data type. Both are very common in the database world, very well
> > > understood
> > > >> (i.e. in how they should be represented and what they mean) and
> likely
> > > to
> > > >> be supported by a non-trivial number of implementations.
> > > >> If TinkerPop defines what these datatypes should look like, all
> > drivers
> > > can
> > > >> support them.
> > > >>
> > > >> Note, that I am only advocating to declare the data types - not the
> > > >> predicates or operations on the types. The latter part could be
> > > >> controversial and should be left to implementations of TinkerPop.
> > > TinkerPop
> > > >> should only dictate the structure of the datatype and how it is
> > > serialized
> > > >> (both for gryo as well as graphson) to make communication possible.
> > > >>
> > > >> For time, I suggest we follow the lead of Java's Instant which seems
> > > well
> > > >> thought out:
> > > >> https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html
> > > >> For geo, I suggest we initially focus on 2D spherical coordinate
> > > (latitude,
> > > >> longitude) and the simple geometries of WKT which is widely
> supported
> > in
> > > >> the database world:
> > > >> https://en.wikipedia.org/wiki/Well-known_text
> > > >>
> > > >> WDYT?
> > > >> Cheers,
> > > >> Matthias
> > > >>
> > > >
> > >
> > >
> >
>

Reply via email to