Esri Geoportal Server
1.2.9

Package com.esri.gpt.catalog.schema.indexable.tp

Indexable elements associated with the time period of the content.

See:
          Description

Class Summary
TpAnalyzer The process for analyzing indexable elements associated with the time period of the content.
TpInterval Represents the boundaries of a time period interval.
TpIntervals A collection of timeperiod intervals.
TpParser Parses the time period descriptors associated with a document.
TpPosition Represents a declared time position.
TpUtil Timeperiod utilities.
 

Package com.esri.gpt.catalog.schema.indexable.tp Description

Indexable elements associated with the time period of the content.

Query Expression Examples

timeperiod:[2008Z TO 2012Z] - from the first millisecond of 2008 to the last millisecond of 2012
timeperiod:[2008-06 TO 2012-07]
timeperiod:[2008 TO *]
timeperiod:[* TO 2012]
timeperiod:[2008 TO 2012-07-01T01:00:00-08:00]
timeperiod:{2000 TO 2012}

Datetime strings are ISO 8601. If a time zone is not supplied, the JVM default for the web server is used (this applies to documents that are indexed as well).

Operations: [] - intersects , {} - within
A document intersects when any of its intervals intersect the query interval.
A document is within when the document's minimum lower boundary and maximum upper boundary are within the query interval.

Two additional property names can be used to explicitly choose an operation:
timeperiod.intersects
timeperiod.within

CSW example:
<ogc:PropertyIsBetween>
  <ogc:PropertyName>timeperiod.within</ogc:PropertyName>
  <ogc:LowerBoundary>2000</ogc:LowerBoundary>
  <ogc:UpperBoundary>2012</ogc:UpperBoundary>
</ogc:PropertyIsBetween>

Indexed Fields

A document can have many time intervals. Each time interval is stored within a pair of boundary fields. A boundary (Lucene NumericField - Long) represents milliseconds since the epoch (January 1, 1970, 00:00:00 UTC). Upper boundaries represent the final millisecond of the interval. For the time interval 2011, the first millisecond of 2011 is stored as the lower boundary, the final millisecond of 2011 is stored as the upper boundary.

timeperiod.l.0 timeperiod.u.0 - lower/upper boundaries for the document
timeperiod.l.1 timeperiod.u.1 - lower/upper boundaries for interval [n]
timeperiod.l.2 timeperiod.u.2
timeperiod.l.3 timeperiod.u.3
timeperiod.l.[n] timeperiod.u.[n]

Several additional fields are also indexed:

timeperiod.imeta - metadata per time interval
timeperiod.meta - summary metadata
timeperiod.num - the number of intervals for the document (NumericField)

timeperiod.meta can contain the following values:
isDeterminate is1Determinate isIndeterminate is1Indeterminate isUnknown
hasDeterminate hasUnknown hasNow hasLowerNow hasUpperNow wasInvalid wasEmpty

Some additional queries:
timeperiod.num:[2 TO *] - all documents that have 2 or more intervals
timeperiod.meta:isDeterminate - all documents that have fully determinate intervals

Document Analysis During Indexing

During the process of indexing a document, values associated with the property timeperiod.analyze will be analyzed to determine the time period intervals for the document. The values for analysis are expected to follow a specific format.

For FGDC documents:
tp.position.date.fgdctime.time
tp.begin.date.fgdctime.time.end.date.fgdctime.time

Example (see fgdc-indexables.xml):
<property xpath="/metadata/idinfo/timeperd/timeinfo/mdattim/sngdate">
  <property meaning="timeperiod.analyze" xpathType="STRING"
      xpath="concat('tp.position.',caldate,'.fgdctime.',time)"/>
</property>

For ISO documents:
tp.position.datetime.indeterminate.value
tp.begin.datetime.indeterminate.value.end.datetime.indeterminate.value

Example (see apiso-indexables.xml):
<property xpath="//gml:TimePeriod">
  <property meaning="timeperiod.analyze" xpathType="STRING"
      xpath="concat('tp.begin.',gml:beginPosition,'.indeterminate.',gml:beginPosition/@indeterminatePosition,'.end.',gml:endPosition,'.indeterminate.',gml:endPosition/@indeterminatePosition)"/>
</property>

Indeterminates

Recognized indeterminates: unknown now present after before

now and present are equivalent

Documents containing an unknown indeterminate will not be matched by the within operation.

Documents containing multiple intervals plus a now or present indeterminate will only be matched by the within operation if the intervals are sequential and the indeterminate has been declared for the end of the highest range.
e.g. 2008-08-01..2009-08-31 , 2009-09-01..2010-04-15 , 2010-04-16..now

Documents containing an after or before indeterminate will not have their time periods indexed by default.

Configuration Parameters

The following parameters can be configured within gpt.xml
allowAfterAndBefore - if true then accept dates associated with these indeterminates (default=false)
allowOpenEndedRange - if true then treat an open ended range (empty or 'unknown') as a single date (default=true)
timeperiod.maxIntervalsPerDocument - the maximum number of intervals to index per document, documents that exceed the maximum will not have their time periods indexed (default=50)

<parameter key="timeperiod.allowAfterAndBefore" value="false"/>
<parameter key="timeperiod.allowOpenEndedRange" value="true"/>
<parameter key="timeperiod.maxIntervalsPerDocument" value="50"/>


Esri Geoportal Server
1.2.9

Copyright 2011 Environmental Systems Research Institute. All rights reserved. Use is subject to license terms.