The query interface supports queries across space, time, and the four modeling realms: linguistic, entity, functional, and physical. The process is broken into two parts: Select validate a Query Request and return a token (Query Plan) for use by Retrieve request delivery of selected elements by element index.
The query specification may be in a specialized language specifically designed for MAGIC Services or a standard language (or subset) such as Structured Query Language (SQL). It is assumed that the results returned for each language are the same: a mathematical set.
Automobiles move at up to about 60 m/sec on road surfaces. There is no possibility to provide network-based real-time guidance in in-car navigation with the network communications and positioning capabilities available now or in the near future. In-car systems often employ a positioning subsystem (with navigation sensors such as GPS, rate gyros, accelerometers, speed sensors, and connections to an on-vehicle bus), which requires high-speed access to the road data used for navigation. This access is used to improve the agreement between the data modeling the road and the path of the vehicle as observed by the positioning sensors. This requirement is supported by a specific kind of Selection that returns a simple Node (ID, Position) Link (ID, start end, end end, Node IDs, shape points, road class, and form of way). This query, or any other query service, can have the condition that the data is available on the device (in cache or local storage) to prevent unwanted network data transfers.
The Query service has two functions:
|Function||Description||Parameter Schema Location|
|Select||The request schema defines a collection of data items that could be retrieved. The definition of what should be retrieved and filters to restrict the selection to certain kinds of items is contained within the structure of the schema. These items include road network datasets, geocoding (selection of geometry by location), and reverse geocoding (selection of a location by geometry). Note that Context may filter the items returned (e.g. a boating application may not find road information relevant and therefore will filter out road information).||http://www.MAGICServicesForum.org/Registry/Schemas/Select_Request_t/Base.xsd/|
|The response schema includes an identifier (a Query Plan) that the server can recognize later in providing Retrieve responses. Different servers may have different capabilities and some may return a fault on a Select request that is too difficult.||http://www.MAGICServicesForum.org/Registry/Schemas/Select_Response_t/Base.xsd/|
|Retrieve||Schema defines either properties (count, data size, etc) of the collection of items that correspond to a Query Plan or the collection of items itself. Items may be retrieved as complete data structures or as identifiers that can be used to retrieve complete data structures in a later query. The schema provides a way for portions of the data to be retrieved with control over the size (and order) of the results. Required orders are sorted according to a collating sequence, proximity, matching significance, sequence of characters (e.g., send 10 names at a time with 1st character "E" and second "I").||http://www.MAGICServicesForum.org/Registry/Schemas/Retrieve_Request_t/Base.xsd/|
|Schema defines the form of the returned requested information. Since it is possible to Select very large data sets, the response may provide information on the amount of data already retrieved, the amount in the current retrieval, and the amount remaining to be retrieved.||http://www.MAGICServicesForum.org/Registry/Schemas/Retrieve_Response_t/Base.xsd/|