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.
|
|
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.
|
|
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).
|
|
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).
|
|
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.
|
|
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.
|
|
As a result of the operator application, a little arrow is attached at the origin, indicating a fixed orientation of the whole transparency.
|
|
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.
|
|
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.
|
|
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.
|
|
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.).
|
|
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).
|
|
As a result of this operator application, the polygon is labeled appropriate.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
We have now uniquely determined our BBQ place!
|
|
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.
|
|