I suppose this is a little over due.

Jody Garnett and Andrea Aime from GeoTools and Paul Austin and I from
the JPP have been talking some and coding a little to solve a
challenge we see in the open source Java GIS community. The basic
problem is that we find it difficult to share input/output or
reader/writer code for common spatial formats among open source Java
GIS projects.

One of the main reasons for this challenge is that we lack a common
feature model, or way to represent features in Java. It seems like our
peers in the C/C++ world don't have this problem, at least not with
I/O code, as there are common libraries that provide this
functionality.

The four of us wanted to see if we could come up with a common feature
representation that was simple enough to use easily but flexible
enough to support the requirements of the different projects. (For
example, some projects allow for features to contain multiple geometry
attributes, and some don't. Some require each attribute to have a
unique name, some don't. Some projects allow complex attrubutes, or
attributes that contain attributes, some don't.)

The idea is to have projects eventually work towards implementing I/O
code that uses this common feature at its lowest level. For example:
Instead of writing a DXF parser that provides OpenJUMP Feature
objects, I write a DXF parser that produces DataObjects instead. I
then convert these data objects to OpenJUMP feature objects in a layer
of functionality that sits "above" the actual parser. This allows
other projects to do the same thing, and they get to benefit from my
DXF parser with very little effort.

We realize this won't happen immediately, or even over the short term.
There is a lot of legacy code out there, and it isn't practical to rip
the I/O guts out our all our programs. However, it would be possible
to work towards this goal over the course of the next few years, by
integrating this common feature framework into our programs when the
code needs to change for some other reason anyways.

We decided to call this common feature a DataObject. A DataObject is
simply a collection of attributes representing a feature. The
DataObject is very generic, and can represent a spatial or non-spatial
feature.

We are starting to implement at least one spatial data reader/writer
at OpenJUMP that will use DataObjects. I thought this would be a good
opportunity to introduce the concept and code to some of the other
members of our community.

I'm asking that the other projects keep an open mind about this.
Please consider if your project coudl use DataObjects at a low level
in your I/O code at some point in the future. If you think this is
possible please become involved in the development of the code for the
DataObject framework.

If we can think long-term and get over some of our differences I think
this is a great opportunity to share our work and strengthen the
overall position of the open source Java community in the GIS arena.

Please let me know if you have any questions, comments, or concerns.

The source code for the DataObject framework is currenlty being hosted
at the SurveyOS SourceForge repository:

http://surveyos.svn.sourceforge.net/viewvc/surveyos/java/collaboration/net/surveyos/sourceforge/collaboration/dataObject/

If you want to participate in the development of the DataObject code
and have a SourceForge account I can grant you write access to the
repository.

The Sunburned Surveyor




http://surveyos.svn.sourceforge.net/viewvc/surveyos/java/collaboration/net/surveyos/sourceforge/collaboration/dataObject/

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to