VISCO - An Experimental Visual Spatial Query System and Environment

by Michael Wessel and Volker Haarslev

Note: these pages are ancient (from 1998). I mainly added them to have some tests and complex content for my Common Lisp-based "Content Management System".

VISCO Publications & Presentations

 
Diploma Thesis
 
Michael Wessel :
Eine visuelle Spache zur Definition räumlicher (ebener) Konstellationen
In German, Diploma Thesis (Diplomarbeit)
Informatics Department, University of Hamburg, 1998
PDF PDF ? Link
 
Conference Papers
 
Volker Haarslev, Ralf Möller, Michael Wessel :
On Specifying Semantics of Visual Spatial Query Languages
Proceedings of the 15th IEEE Symposium on Visual Languages 1999 (VL '99), IEEE Press, 1999
PDF PDF ? Link

Volker Haarslev, Michael Wessel :
Bringing Visual Spatial Querying to Reality
Proceedings of the 14th IEEE Symposium on Visual Languages 1998 (VL '98), IEEE Press, 1998
PDF PDF PDF Presentation ? Link

Volker Haarslev, Michael Wessel :
Querying GIS with Animated Spatial Sketches
Proceedings of the 13th IEEE Symposium on Visual Languages 1997 (VL '97), IEEE Press, 1997
PDF PDF PDF Presentation ? Link
 
Video
 
Volker Haarslev, Michael Wessel :
VISCO QuickTime Video
1998
? Video

Description

At VL '97, we presented the first design of the visual (sketch-based) spatial query language VISCO. VISCO is a visual spatial query system designed for extracting information from spatial information systems (SIS, especially GIS) in a visual way. VISCO supports the retrieval of interesting constellations of spatial objects (from spatial information systems) based on their structural, topological, metric and geometric attributes and relationships between them. The term spatial information system refers to a broad class of systems which collect, manage and offer the analysis and presentation of spatial data (e.g. lakes, roads, and buildings in a GIS).

The language is based on a strong naive physics metaphor for query objects (e.g. marbles, nails, rubberbands) and assumes a topologically structured vector representation of the data of interest. Data models like the one assumed here can be found in advanced vector-based GIS (in contrast to raster-based GIS). The data in vector-based systems usually consists of nodes or vertices (points), edges (lines) and faces (simple polygons). In VISCO, nails and marbles represent point objects, various types of telescope antennas and beams represent simple segments (with arbitray, given maximal or given minimal or exact length), and rubberbands represent arbitrary polylines (see examples below). Polygons, polylines and aggregates can be constructed bottom up from these elements. A transparency film represents a transformable aggregate (of the already mentioned objects) with a local coordinate system. Transparency films can be translated, rotated, scaled, and stacked upon like layers. Each geometric object (except transparency films) must be defined on exactly one transparency film (the so-called carrier). Special constraints regarding scalability and rotatability of films can be established (e.g., a film is defined as unscalable and has an extension of 100 x 100 meters or may be scaled only proportionally, etc.).

The VISCO prototype consists of three main components:

Keywords

Guided Tour

In the following, we will demonstrate how VISCO can be used to find an appropriate BBQ place on a summer's day. Let us assume that you don't own a car. Therefore, the BBQ place may not be too far away from a subway station; we are willing to walk at most 800 meters. Further, the BBQ should take place at lake.

The graphical query editor of VISCO consists of two main windows: the working window (left) and the buttons window, which is used to select modes, display options etc.

pic pic

Step 1

The user selects the button for "Transparency Film" and interactively creates one in the query editor's working area. A transparency film (of an overhead projector, transparency for short) represents a transformable aggregate with a local euclidian coordinate system. Thus, a transparency film can be translated, scaled and rotated. Special constraints regarding scalability and rotatability can be established (see below). The created transparency film is currently arbitrary translate-, scale- and rotatable. In VISCO, naive physics metaphors are used to make the semantics of language elements more comprehensible and accessible to users. The now created transp. film acts as the carrier for further elements to be constructed on it.

pic pic

Step 2

The users changes the current mode of the query editor to "Origin" (small black rectangle). An origin represent a point object that has the position (0,0) w.r.t. to the local coordinate system of the carrying transparency. Each transparency film has exactly on origin. Additionally, the user requires by selecting the "DB-C" button that the origin should match a point object in the spatial database. The origin is considered as a special "Nail". A nail represents a point object with an exact (quantitative) relative position w.r.t. the coordinate system of the carrying transparency film (fixpoint). Because there can be only one origin, the current mode of the editor has been automatically changed from "Origin" to "Nail" (selected buttons are displayed yellow, selectable buttons green, inactive buttons gray).

pic pic

Step 3

By selecting the currently active operator's icon from the buttons window, the iconic operator libary pops up. The user choses the "Set Semantics" operator and applies it via a keyboard gesture to the origin. Now, an other dialog appears, requesting the user to select a number of "thematic" or "semantic" types for the selected operator argument (origin) from a scrollable list of all known semantic types. The user determines, that the origin must have the semantic type "Subway Station" ("U-Bahn-Station" in German).

pic pic

As a result of the operator application, the origin is labeled appropriate. The "Set Semantics" operator still remains the currently active operator in the buttons window.

pic pic

Step 4

Currently, there are some restrictions in the implementation. The VISCO prototype requires, that the transformation matrix of a transparency film can be uniquely determined (e.g., for an arbitrary translate-, rotatate- and proportionally scalable transparency film, at least two fixpoints = nails are needed to calculate the actual transformation matrix). Here, the user forbids the rotatability of the whole transparency by selecting an operator from the iconic operator library and applies it to the origin.

pic

As a result of the operator application, a little arrow is attached at the origin, indicating a fixed orientation of the whole transparency.

pic pic

Step 5

In order to represent the constraint that the BBQ place should not be to far away from the subway station (approx. 800 meters), the user selects and applies the operator "Create Epsilon Enclosure" to the origin (the "Subway Station"). An epsilon enclosure is an example of a so-caled derived object that will be computed during execution of the query. However, because the origin has no degrees of freedom w.r.t. the carrying transparency, the user could have also sketched an polygonal "Constant Enclosure". We will see an example of a non-constant derived epsilon enclosure later.

pic

The user can interactively specify the radius of the epsilon enclosure. As a result of the operator application, the epsilon enclosure is visualiziaded as a circle of the specfified radius. However, only epsilon enclosure of point objects (origins, nails and marbles) are circles (see below). One can think of an enclosure as a special meta object, enforcing an inside constraint on all objects totally contained within the enclosure. Enclosures can be translucent or opaque. An opaque enclosure (partially) ocludes already drawn objects and therefore provides a way to specify spatial "dont care" relationships between objects by disregarding their existence if they are occluded ("visual abstraction"). The recognized spatial constraints are "disjoint", "inside/contains" and "intersects". At the time when a new object is created, it is checked whether any of these relationships holds between the new object and any already present but not totally occluded object. However, since we still have not specified the extent of the transparency (see below), we don't know yet that the radius should be approx. 800 meters. Everything drawn on an transparency film is always specified relative w.r.t. to the metric / coordinate system of the film.

pic pic

Step 6

The user now starts to construct the lake that should be found as a BBQ place within the given epsilon enclosure. Therefore, he selects an apropriate modus in the buttons window and starts to interactively create a polygon that should represent the lake. Of course, this lake is a query object that should be found in the spatial database. VISCO offers a compositional semantics for complex objects like polygons. The degrees of freedom of a complex object like a polygon can be discovered by considering the components of the object. Here, the first segment of the lake should be a "Rubberband" segment. A rubberband matches not only single straight line segments, but also arbitrary polylines (chains) of straight lines (slightly simplified). The endpoints of the rubberband shown are "Marbles". A marble represents a point object with qualitative or unkown / vague position. The associated naive physics metaphor makes this obvious (a marble can roll around). A marble has to be contained in at least one enclosure, which is the case here. Also, the rubberband is required to stay inside of the enclosure, because an enclosure enforces inside constraints on the objects contained within it.

pic pic

Step 7 and 8

The modus of the query editor can be changed concurently while doing a compound interaction. E.g., the first segment of a polygon should be a rubberband, between marbles, but the next segment should be a straight line with exact length between a marble an a nail. In order to demonstrate this, during the creation of the lake polygon, the user changes to mode of the query editor from "Marble Rubberband Polygon" to "Marble Telescope-Antenna Rubberband" (these are the types for the components: point, segment, polygon or chain). He then enters the next two segments as "Telescope Antennas". A telescope antenna represents a straight line of arbitrary length. There are also straight lines with given (exact), given minimal and given maximal length available (see the modes in the buttons window). The now constructed polygon represents (at this time of the query construction process) any polygon of arbitrary shape in the database. However, one could also specifiy a polygon with concrete geometric shape (e.g., an arbitrary quadrilateral by using four antenna segments between marbles, but also rectangles by constraining the angles between the antennas to right angles, etc.).

pic pic

Step 9

We still haven't said that the constructed polygon should not represent any polygon, but a lake. We therefore specify its semantics as already seen above to be of type "Lake, not shipable" ("Teich, nicht schiffbar" in German).

pic pic

As a result of this operator application, the polygon is labeled appropriate.

pic pic

Step 10

The last thing to do is to specifiy the size (extent) of the transparency film. If we say that it must be 2 x 2 km, then the radius of the epsilon enclosure is approx. 800 meters from the origin, which is what we want.

pic

A menu pops such that the user can enter various parameters regarding the transparency (e.g., extent, scalability, only proportionally scalable, scaling intervalls, etc.).

As a result of the operator application, the sides of the transparency are labeled with numbers indicating the extent (here, 2 km x 2 km).

We are now ready to execute the query by chosing "Execute" from the menu bar or by typing the command textually into the command line.

pic pic

The found query matches are now listed in the "Query Execution and Result Inspector", an other important component of the VISCO GUI. Each single tile (showing a little map) in the left pane represents a query match / result. By selecting it, the user can inspect a magnified version of the match in the upper right pane. The position w.r.t. to the whole map is indicated by the black transparent rectangle with the inscribed circle shown in the right bottom pane. Various buttons control the search process (of course, the search can be aborted). If the number of matches (tiles) exceeds the available space, a new page will be created. The user can than switch between these pages (forward, backward). An other group of buttons is used to delete single tiles or even whole pages. Currently, we have only a very small map (see right bottom pane). Therefore, only five matches are found.

pic

Step 11

If the map would be much larger (think of a map containing a whole capital city), probably too many matches would have been found. The user is therefore forced to refine his query.

In our example, the user refines his query by requiring that there should be some (at least one) broad-leaved trees within the vicinity of the lake that could be used to protect the BBQ grill and us if it would start to rain. In order to represent this additional constraint, the user selects again the operator "Create Epsilon Enclosure", but this time applies it to the whole lake polygon. As already seen before, he interactively speciifes the radius of this enclosure (please note that this enclosure is not a circle, but something know as a "buffer zone" in the GIS literature). This enclosure represents the vicinity of the lake and has an approx. radius of 70 meters.

pic pic

As a result of the operator application, the created epsilon enclosure is shown. Please note that this enclosure is a derived object that changes its shape, extent and position according to the argument polygon (the lake). Because the lake has many degrees of freedom (shape, position, ...), so the derived epsilon enclosure has.

pic pic

Step 12

The user changes the modus of the query editor to "Marble" and creates a new marble within the newly created epsilon enclosure. As already mentioned, a marble represents a point object with qualitative (vague) position.

pic pic

Step 13

As a result of the operator application "Set Semantics", the marble is labeled approriate.

We are now ready to execute the refined query. Only some of the five already found matches (see above) should meet the additional constraints.

pic

We have now uniquely determined our BBQ place!

pic

An other tool (the "Map Viewer') can be used to inspect a found query match more thoroughly. Each layer (semantic type) in the scrollable list on the left side can be switched on or off. Single objects can be inspected by selecting them, their type, their structure, etc. We also discover with the "Map Viewer" that the found BBQ place is indeed located within a public park. However, we could have stated this as an additional requirement in our query. We also see how to get there by selecting the subway station, the names of the roads to walk, and so on.

VISCO is still in its very early days and has not been extensively been tested by other users or even been evaluated yet. If you have any questions or comments, please feel free to contact us.

pic