Return-Path: X-Original-To: apmail-zest-dev-archive@minotaur.apache.org Delivered-To: apmail-zest-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D09B318D38 for ; Sat, 6 Jun 2015 04:00:49 +0000 (UTC) Received: (qmail 53560 invoked by uid 500); 6 Jun 2015 04:00:49 -0000 Delivered-To: apmail-zest-dev-archive@zest.apache.org Received: (qmail 53524 invoked by uid 500); 6 Jun 2015 04:00:49 -0000 Mailing-List: contact dev-help@zest.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zest.apache.org Delivered-To: mailing list dev@zest.apache.org Received: (qmail 53512 invoked by uid 99); 6 Jun 2015 04:00:49 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 06 Jun 2015 04:00:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 1093A1A4669 for ; Sat, 6 Jun 2015 04:00:49 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3.001 X-Spam-Level: *** X-Spam-Status: No, score=3.001 tagged_above=-999 required=6.31 tests=[AC_DIV_BONANZA=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd2-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id v744xcf2A9Zh for ; Sat, 6 Jun 2015 04:00:41 +0000 (UTC) Received: from mail-ie0-f170.google.com (mail-ie0-f170.google.com [209.85.223.170]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 1400F21544 for ; Sat, 6 Jun 2015 04:00:41 +0000 (UTC) Received: by iesa3 with SMTP id a3so69974451ies.2 for ; Fri, 05 Jun 2015 20:59:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=2uwIVJKIgCHhiSTQpu3kcyV1oabzV0QZtQbrDhpNk4w=; b=TK8HHiH4W9PpTaqC9ADj168RqF80J2T1ldyYatrhyjgI9WnlbDGiP9sCIseECETErk oC257OZNuIF7dVnPryXfqYWHqH7UI6bjqtiHarhi3QKR/FhJrYpt1ToVp1TyciL4d3OZ mVMyYRorNj9D3wDVHTBWed8jANjbBnpb/i+LPWcLM1esCyoICl6CJnlkXqqvn63IQnqI T204JFpBHfBpFsXkELG35ZF9jTtT5uMYOnOz7ZpMYk8+JuImN4yOB1B6GxYT8dxcYqZz PXIrOB1UsmVfZCNB0950EUP+kbbOZrhLhqWjZGhsltt6+xdGGjzGiDMOpKuX41yUyyRk dQdg== X-Received: by 10.50.59.211 with SMTP id b19mr1668003igr.42.1433563195068; Fri, 05 Jun 2015 20:59:55 -0700 (PDT) MIME-Version: 1.0 Sender: hedhman@gmail.com Received: by 10.36.98.18 with HTTP; Fri, 5 Jun 2015 20:59:34 -0700 (PDT) In-Reply-To: References: <55716472.8080109@geomatys.com> From: Niclas Hedhman Date: Sat, 6 Jun 2015 11:59:34 +0800 X-Google-Sender-Auth: zNNR-tPNOcLCWW-c3HVLogo6C8o Message-ID: Subject: Re: GeoSpatial Query support To: dev Cc: dev Content-Type: multipart/alternative; boundary=047d7bd757580174690517d171b3 --047d7bd757580174690517d171b3 Content-Type: text/plain; charset=UTF-8 Martin & SIS community, A clarification about the dependency in my first paragraph to the Zest community; We want to support geospatial querying. But querying is at the moment an integral part in the Zest/Qi4j Core runtime. And we have been striving to remove dependencies in Core, and have all of those sitting in Libraries(used by user code) or Extensions (used by Core Runtime). The current work, done for a project and contributed back, is therefor having its own interfaces for the data types, and can easily integrate with GeoAPI interfaces, and probably not that easy with SIS down the line. It is this restriction that I want to overcome, i.e. no new dependency in Core, yet still allow GeoAPI types to be used in Indexing/Querying subsystem. I hope that makes more sense, than the previous very terse sentence which assumed familiarity with Zest mantra and vision. One more thing; Zest is not a Geo-related project per se, so don't expect me (and most the others) to understand your world ;-) Cheers Niclas On Sat, Jun 6, 2015 at 11:41 AM, Niclas Hedhman wrote: > > Thanks Martin, that gives a nice overview of the situation (you should > plaster that on frontpage)... > > Zest gang, > So, I think our challenge is to be able to introduce Geospatial > indexing/querying, without introducing a dependency. > > What do I mean by this? > > Well, we already have another "Custom Query" type, the Lucene free-text > search, which couldn't be fitted nicely into the very nature of the > UnitOfWork/QueryExpressions/QueryBuilder system. > > So let's hypothesize about; > * Ability to introduce new indexable data types, > * Ability to introduce extensions to the Query DSL > * Ability to extend the Indexing/Query extension itself. > > > Where is the root of this system? Well, it all begins in the UnitOfWork. > So, one possibility would be to disconnect UnitOfWorkFactory from the > Module itself, and have a ServiceComposite for the UnitOfWorkFactory. Once > the UnifOfWorkFactory implementation is outside the Core Runtime, so is > UnitOfWork and everything that derives from it. It SHOULD mean that all > parts could be Composites, in which case we can add arbitrary methods to > them, the static methods of QueryExpressions could go away and probably > other, yet to be discovered, benefits. > > Granted, it won't be common for users to create their own, but having this > possibility, without becoming incompatible and without introducing > dependencies in the Core, seems to me to be worthwhile going down this > route. Having such a major part of the Core to be on the "Composite-side of > things", might open up more cool ideas... > It also feels "right" along our habit of breaking things out of Core and > moving towards more modularity. > > On paper, it sounds reasonably easy to do this, but I bet the devil is in > the details. Maybe an impossible circular dependency will arise, or > something to that extent. > > > Any thought on this? > > > Cheers > > On Fri, Jun 5, 2015 at 4:57 PM, Martin Desruisseaux < > martin.desruisseaux@geomatys.com> wrote: > >> Thanks Chris for getting Zest and SIS in touch. I just finished reading >> the thread. There is some tips for information purpose: >> >> Niclas Hedhman wrote: >> >> > So, IF SIS are primarily based around interfaces, then that would be >> > great and we can possibly leverage quite a bit, especially at what we >> > call "Library" level, i.e. not part of the Core runtime itself, which >> > we try to keep free of dependencies >> The core part of SIS is defined by a set of interfaces provided by a >> separated project: http://www.geoapi.org/. GeoAPI consists of only >> interfaces, except some classes for Exception, Enum and "CodeList" >> (similar to Enum but extensible). GeoAPI is based on some international >> standards published jointly by the Open Geospatial Consortium (OGC) and >> International Organization for Standardization (ISO). It currently >> covers only a small part of OGC standards, but this includes map >> projections. >> >> Apache SIS is a GeoAPI 3.0 implementation. The GeoAPI project provides >> also implementations as wrappers around Proj.4 (the C/C++ library used >> by GDAL) and the UCAR NetCDF library. All those projects have advantages >> and inconvenient (e.g. Proj.4 supports a wider range of map projections >> than SIS, but SIS is more compliant with OGC/ISO standards). But if Zest >> depends directly on only GeoAPI interfaces you would have the freedom to >> change implementation. However I do not know if Spatial4J would be >> interested to implement GeoAPI interfaces. >> >> On geometry and indexing, there is no satisfying solution on GeoAPI side >> yet. In particular, geometries are defined by the ISO 19107 >> international standard, which is currently under revision. This will >> have a deep impact on GeoAPI once the ISO revision will be completed. >> >> Please let us know if you would like to explore further (e.g. how to >> apply a map projection using the API defined by GeoAPI). >> >> Martin >> >> > > > -- > Niclas Hedhman, Software Developer > http://zest.apache.org - New Energy for Java > -- Niclas Hedhman, Software Developer http://zest.apache.org - New Energy for Java --047d7bd757580174690517d171b3--