SS,

Good blog post. 

It seems to me that you are recapitulating the object-vs-relational 
debate that was raging strongly in the DB world in the late 90's.  It 
seems like the RDB's have won that round (at least for the time being) 
on the server side, but the object world is obviously in the ascendant 
on the client side.

I also think that this debate is mostly about implementation, but 
doesn't really address the more fundamental issue of what the actual 
semantic model is.  And that's the important question, because that is 
what is needed to motivate the design of the user interface and tools to 
present it to the user.  To put this more concretely, it would certainly 
be possible to represent complex features as sets of related tables.  
But what would the user interface look like on top of this?  How would 
Paul get his view of complex features?  What would it mean in terms of 
UI to have a complex feature with either two geometries at one level, or 
an attribute which is itself a collection of spatial features?  You 
would still need a way for the user to indicate how he wanted these to 
be rendered, how sub-features were created and destroyed, etc. 

Moreover, a table based model in not in fact simpler, it's more 
complex!  This is because it is more general, since relationships 
between tables can model both association and aggregation.  In contrast, 
a complex hierarchical Feature is generally considered to model an 
aggregation.  A concrete implication of this difference is that in a 
table-based model, you either have to explicitly define or explicitly 
manage the life-cycle of related sub-features.  In an object-based 
model, this is controlled by the top-level feature, which is a simple 
model for the user to understand.  (RDBs usually handle this situation 
by implementing "cascading delete on foreign keys" - but you don't get 
this for free, you have to have a language to define this and the user 
has to understand how to model this).

To use another metaphor, I sometimes think of tables as the 
assembly-language of object models.  You can represent pretty much any 
model you want using tables, but *you* have to to all the work of 
defining and maintaining the model.  An object model is presented at a 
slightly higher level of abstraction, with some reasonable defaults 
which can make it easier for a user to work with.

My main point here is that I think the choice of object-vs-table is 
orthogonal to the issues of defining the "mental model" that JUMP 
presents to users via it's UI.  *That* is the key thing to design - the 
rest is just a question of implementation.

Martin


Sunburned Surveyor wrote:
> I put up a post on my OpenJUMP blog about one possible alternative to
> a complex feature model.
>
> I haven't thought the idea through completely, and I don't have any
> plans on implementing the alternative described, but if you are
> interested in having the benefits of a more complex feature model in
> OpenJUMP you might want to read the post. If nothing else, I hope it
> presents an interseting concept.
>
> The post is here:
> http://openjump.blogspot.com/
>
> The Sunburned Surveyor
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to