[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]

collapsing SpatialBehaviors into CoordinateSpaces



Abstract: I think the SpatialBehavior protocol collapses into a few
enhancements to the already existing coordinateSpace/Region/Dsp stuff.
This will eventually mean that we can create a new Orgl type by
defining a new coordinateSpace (with appropriate simple regions for
boxing heuristics), new Regions, and new Wisps (for grouping
heuristics)!  Creation of new coordianteSpace types over FeBe!

I'll just start right in and describe how the protocol goes away.  The
idea of dictinction regions (MarkM's I believe) inspired this
reduction.

atomTable() - This just becomes muTable(myCoordinateSpace).

coordinateSpace() - crums just directly point at this.

emptyWisp() - CoordinateSpaces know their identityDsp and empty
regions, so it can be constructed just using the coordinateSpace
information.

wispForAtoms(atoms) - This makes a normalized wisp from the domain of
a table.  Since the table knows the appropriate coordinateSpace, and
Wisps can normalize, this should just call a Wisp pseudo-constructor
(actually, I think the places that call this can be simplified).

splitAt(table,pos) - pos has been replaced with a region that
represents an inequality in the coordinateSpace (all Integers greater
than 3).  Therefore this just gets replaced by a subTable operation on
table:  
	pair(table->subTable(distinctionRegion), 
		table->subTable(distinctionRegion->complement()))

splitAt(wisp,pos) - this is a little less clear.  The general
description of the new operation is intersect the distinctionRegion
(that replaces pos) with the external Region of the wisp, then
normalize.

chooseBest(targetWisp,leftWisp,rightWisp) - This is the hardest one.
We have to implement some metric for determing the 'best fit.'  I
suspect that this is a message to the targetWisp:  
	targetWisp->chooseBest(leftWisp,rightWisp).

That's all there is to it!  Since Orgls inspired Tables and
vice-versa, I'm not surprised that these things are coming together.
If we do this right, the only remaing piece necesssary for any given
coordinate system is to define Wisps (which provide grouping).  The
boxing heuristic is defined by the coordinateSpace as the 'simple'
regions appropriate for the coordinateSpace.

After Autofact, at least MarkM, Ravi, and me should meet to complete
our CoordianteSpace,Position/Region meeting.

dean