View Source

{info}This page describes search and query capabilities in the OOINet architecture{info}

h2. Summary

The OOINet system maintains persistent information for various elements of the system. This includes

* Resources: within the [resource registry|syseng:CIAD COI OV Resource Registry], describing metadata and relations of OOINet registered system elements
* Events: within the [event repository|syseng:CIAD DM SV Event Repository], keeping a history of instantaneous happenings within the system originating from specific resources
* [Science data coverages|syseng:CIAD DM SV Science Coverage Model]: multi-dimensional geospatial and temporal spans of science data with measured and derived parameters (variables)

Searching persistent information utilizes effective access strategies known as indexes to find (query) resources, events and other system elements of interest by metadata attributes, information content, association and other characteristics.

h2. Decomposition

h3. Discovery Service

The [Discovery service|syseng:CIAD DM OV Discovery Service] is the primary interface for advanced search to the UI and other services. It understands a variety of operators and search indexes and abstracts the actual persistent representation of the system elements.

The discovery service provides a common interface for searching and navigating. It can crate "views", which contain common search parameters such as filters and result ordering. Discovery provides a [Query Language|CIDev:Discovery Service Query Format] to search for resources. These query expressions can be combined with predefined views. In particular, the discovery service supports these capabilities:

# Manage View resources. Views are persisted queries with parametrized arguments
# Perform resource and events
## Via Query DSL string parsing
## Via query dict expression

See Also:

* [syseng:CIAD DM OV Discovery Service]
* [CIDev:Discovery Service Query Format]
* [CIDev:Postgres Datastore]

h3. Related System Elements

The [Resource Registry|syseng:CIAD COI OV Resource Registry] is the lower layer persistence and query mechanism for system registered resources.

The [Event Repository|syseng:CIAD DM SV Event Repository] is the lower layer persistence and query mechanism for past system events. Note: There is a latency between the occurrence of a system event and its availability within the event repository. Typically the maximum latency is 1 second.

_(Not supported in OOINet Releases 2 and 3)_ The [syseng:CIAD DM OV Catalog Management Service] provides means to define dependency structures of OOINet resources such that these can be dynamically navigated and queried, e.g. in form of faceted search strategies or result grouping and aggregation

_(Not supported in OOINet Releases 2 and 3)_ The [syseng:CIAD DM OV Index Management Service] provides means to define custom indexing strategies that the catalog management and discovery service can use. This enables operators to define new efficient indexes during the run-time of the system and make them available for custom searches and navigation.

h2. Behavior

Searching persistent information utilizes effective access strategies known as indexes to find (query) resources, events and other system elements of interest by metadata attributes, information content, association and other characteristics. Searching, for instance, can utilize the characteristics listed below. Multiple characteristics can be combined via AND, OR and NOT operators as needed:

* Resource type
* Resource name attribute
* Resource created or last modified timestamp
* Arbitrary resource attribute (may not be existing within all resource types)
* Resource geospatial area (2 dimensional latitude and longitude)
* Resource vertical range
* Resource temporal range
* Resource associations to other resources
* Event origin or origin type
* Event type or sub-type

Different operators can be applied, when filtering the query result set to the desired result:

* Exact match (case sensitive or case insensitive)
* Contains
* Pattern match
* Overlaps range or geospatial area
* Within range or geospatial area
* Contains a range or geospatial area
* Disjoint with a range or geospatial area
* AND, OR, NOT (negation) of an operator


h2. Implementation

h3. Search and Discovery Layers

The figure below shows interface layers and data formats between the layers

!https://docs.google.com/drawings/d/1XEENFXyBKu0RS-ztD379TK7Zjm6DbbmT__jIJZ57AjQ/pub?w=960&h=720!

h2. References