Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Motivation:

Temporal filter support based on FES 2.0 spec

Contact:

Justin Deoliveira

Tracker:

http://jira.codehaus.org/browse/GEOT-2367

Tagline:

Excerpt

Temporal filter support based on FES 2.0 spec

Section
Column
width70%
Table of Contents
Column

Children:

Children Display

Description

The new version of the filter encoding specification (FES 2.0) adds 14 filter operators for temporal filters. Operations take a mix of two types of operands:

  1. A single instance in time (TM_Instant)
  2. A time range or period (TM_Period)

The following table outlines the semantics of the new operators:

Operation

t1,t2

t1[],t2

t1,t2[]

t1[],t2[]

After

t1 > t2

t1.start > t2

t1 > t2.end

t1.start > t2.end

Before

t1 < t2

t1.end < t2

t1 < t2.start

t1.end < t2.start

Begins

 

 

t1 = t2.start

t1.start = t2.start and t1.end < t2.end

BegunBy

 

t1.start = t2

 

t1.start = t2.start and t1.end > t2.end

TContains

 

t1.start < t2 < t1.end

 

t1.start < t2.start and t2.end < t1.end

During

 

 

t2.start < t1 < t2.end

t1.start > t2.start and t1.end < t2.end

EndedBy

 

t1.end = t2

 

t1.start < t2.start and t1.end = t2.end

Ends

 

 

t1 = t2.end

t1.start > t2.start and t1.end = t2.end

TEquals

t1 = t2

 

 

t1.start = t2.start and t1.end = t2.end

Meets

 

 

 

t1.end = t2.start

MetBy

 

 

 

t1.start = t2.end

TOverlaps

 

 

 

t1.start < t2.start and t1.end > t2.start and t1.end < t2.end

OverlappedBy

 

 

 

t1.start > t2.start and t1.start < t2.end and t1.end > t2.end

AnyInteracts

 

 

 

 

The gt-temporal module contains classes that implement many of the parts of .... They are used as the basis of implementing above operators.

Status

This proposal is completed.

Tasks

 

no progress

(tick)

done

(error)

impeded

(warning)

lack mandate/funds/time

(question)

volunteer needed

  1. (tick) Roll gt-temporal into gt-main
  2. (tick) Add temporal filter interfaces to gt-opengis
  3. (tick) Implement filter interfaces in gt-main
  4. (tick) Update FilterVisitor implementations
  5. Update wiki module matrix
  6. Add to the upgrade to 8.0 instructions
  7. jg: Update the user guide sphinx docs and java examples

Roll gt-temporal into gt-main

Currently the gt-temporal module sits standalone and is not used by any existing module. To prevent the proliferation of another core module the classes from gt-temporal will be rolled into gt-main.

Add temporal filter interfaces to gt-opengis

The existing filter model interfaces are defined in gt-opengis. Following suite the new filter interfaces will be defined alongside. This involves the core set of interfaces and updates to FilterFactory, FilterVisitor, and FilterCapabilities.

Implement filter interfaces in gt-main

To compliment the new interfaces. The filter operations will utilize gt-temporal classes... most notably TemporalOrder.relativePosition() which is used to compute the relatioships described above between two temporal objects.

Update FilterVisitor implementations

There are a number of filter visitor implementations that require update with the new methods. In some cases where temporal constructs are not supported directly or do not apply to the visitor the new methods will simply throw UnsupportdOperationException.

API Changes

FilterVisitor

BEFORE:

Code Block
FilterVisitor {
  ...
}

AFTER:

Code Block
FilterVisitor {
  visit(After)
  visit(Before)
  ...
}

The only breaking change will be the FilterVisitor implementations. All other api changes are additions.

Documentation Changes