The term "visual language" means different things to different people. To some, it means the objects handled by the language are visual. To others, it means the language itself is visual. To the first group of people, "visual language" means "language for processing visual information", or "visual information processing language". To the second group of people, "visual language" means "language for programming with visual expression", or "visual programming language".
In visual information processing languages, the objects to be dealt with usually have an inherent visual representation. They are images or pictorial objects which are then associated with certain logical interpretation. On the other hand, the languages themselves may not have a visual representation. These languages are usually based upon traditional "linear" languages, enhanced by library subroutines or software packages to deal with visual objects. Application domains of visual information processing languages include image processing, computer vision, robotics, image database management, office automation and image communications.
In visual programming languages, the objects to be dealt with usually do not have an inherent visual representation. They include traditional data types such as arrays, stacks, queues, and application-oriented data types such as forms, documents, databases, etc. To achieve a user-friendly man-machine interface, we would like to present these objects visually. For the same reason, the languages themselves also should be presented visually. In other words, both programming constructs and rules to combine these programming constructs should be visually presented. Application domains of visual programming languages include computer graphics, user interface design, database interface, form management, and computer aided design.
The above two types of visual languages do not exhaust all the possibilities. The objects to be dealt with by a visual language can be inherently visual, or inherently nonvisual but with imposed visual representation. The programming language constructs can be visual or linear. Therefore, there are many different types of visual languages. A unifying concept for these visual languages, is that they all deal with different aspects of generalized icons. Generalized icons consist of object icons and process icons. An object icon is a dual representation of an object, written as (Xm,Xi), with a logical part Xm (the meaning), and a physical part Xi (the image). In visual programming languages, we are dealing with objects with logical meaning, but no visual image. The objects are then assigned a visual representation, so that it can be visualized. In visual information processing languages, we are dealing with objects with visual image, but the logical meaning must be assigned.
The objects handled by a visual language can thus be considered as object icons or icons with a logical part and a physical part representing an object. Similarly, the programming language constructs in a visual language can be considered as process icons or icons with a logical part and a physical part representing a computation process. The distinction between an object icon and a process icon depends both upon context and interpretation. For example, the road sign of a diagonal line inside a circle can be interpreted as a "stop-sign" by a computer vision system. It is an object icon under this latter interpretation. On the other hand, it could also be interpreted as a "halt" command by a mobile robot. It is a process icon (or action icon) under this interpretation. The concept of generalized icon encompasses both object icons and process icons (or action icons). We can then study the syntax and semantics of visual languages for both isolated icon and a spatial arrangement of icons.
We now present a formal specification of iconic systems using generalized icons. A
generalized icon
is a dual representation of an object, written as (Xm,Xi), with a
logical part Xm (the meaning), and a physical part Xi (the image).
A formal
iconic system
is a quintuple: G (VL, VP, S, xo, R) where
VP is a set of physical objects
S is a finite, nonempty set of icon names
xo is an element in S, denoting the head icon name
R is a mapping from S into × VP, denoting icon rules
The icon rules R specify icons as the dual representation by
a set of logical objects and a physical object. Several
examples will be presented below.
Example 1:
For the image database shown in Figure 1.3,
the formal iconic system is
G1 ( {c1,c2}, {po,p1,p2,p3,p4}, {xo,x1,x2,x3,x4}, xo, R1),
where the icon rules R1 are:
In the above, rule r1 specifies an icon xo with the
logical part {x1,x2} and the physical part po.
Both x1 and x2 are icon names in S. Therefore, rule r1 says x1 and x2
are subicons of the icon xo.
Rule r2 is similar to rule r1.
Rule r3 specifies an icon x2, whose logical part is the null object,
and physical part is p2.
In other words, x2 is really a "pure image".
Rule r4 specifies an icon x4, whose logical part is {c1} and physical
part is p3. The object c1 is an element of VL, and is used as a
"label" for the physical image p3.
The iconic system can be seen to be a special type of picture grammar [FU74].
The icon grammar rules can also be expressed as commands
in an iconic language (see [CHANG85] for a proposed language IPL). We give the following examples to
illustrate elements of an interactive iconic language.
In what follows, a command line is indicated by a colon.
The system response, if any, follows the command line.
: X display contents of icon X
( Xm, Xi )
: VL(X) display logical part of X
Xm
: VP(X) display physical part of X
Xi
: MAT(Xm) materialization of logical part Xm
Xi as physical part Xi
: DMA(Xi) dematerialization of physical part Xi
Xm as logical part Xm
Example 2:
Suppose we have a book organized as chapters containing sections,
as illustrated in Figure 1.4.
The formal iconic system is
G2 ( {COM}, {e,p2,p3,p4}, {xo,x1,x2,x3,x4}, xo, R2), where the
icon rules R2 are:
The command VL(xo) will display the logical part of icon xo,
and the system will respond by evaluating and displaying
COMm({x1,x2}).
The iconic operator COM has two parts: COMm for the logical operator,
and COMi for the physical operator (see the following section).
In this example, the COMm operator is applied to the icon set {x1,x2} to yield {x1, x2}.
Therefore, VL(xo) is equivalent to listing the content of "directory" xo.
On the other hand, the command VP(xo) will generate a blank picture, because
the physical part of xo is "e".
The command VP(x2) will display the physical part of icon x2,
and the system will respond by displaying p2, the content of "file" x2. On the
other hand, the command VL(x2) will generate no output, because
x2 does not have a logical part.
From these examples, it can be seen that an icon
can be a pure physical picture ({}, PICTURE), a pure logical label ({LABEL},e), a complex icon
constructed from subicons ({OP, x1,...,xn}, PICTURE),
or a complex icon related to subicons with unspecified
method of construction ({x1,...,xn}, PICTURE).
Therefore, an icon
can be one of the following types:
Given an icon system G, we can classify all icons as being either
elementary, composite
or
structural.
In the above, we described the formal
specification of an iconic system, where complex icons can be defined in terms of elementary icons.
For complex icons,
we need to investigate how
to construct an icon with
a physical part (the image) and a
logical part (the meaning) from subicons by applying iconic operators.
4. Iconic Operators
Iconic operators operate on generalized icons, and change
either the logical part (the meaning) or the physical part (the image)
of an icon, or both. The concept of duality is essential:
iconic operators operate on the dual representations of icons.
In other words, the iconic operator operates simultaneously on logical
and physical parts of an icon. An essential characteristic of the icon is that
the logical part and the physical part are mutually dependent.
Therefore, as the image of an icon is changed,
so will be its meaning, and vice versa.
An iconic operator OP has two parts: OPm for the logical operator,
and OPi for the physical operator. We write:
OP = (OPm, OPi)
A binary iconic operator OP has two arguments, X and Y:
OP(X,Y) = (OPm(X,Y), OPi(X,Y))
When there is no mutual dependency,
i.e., OPm does not depend on Xi or Yi, and OPi does not
depend on Xm or Ym, we can write
OP(X,Y) = (OPm(Xm,Ym), OPi(Xi,Yi))
A unary iconic operator OP has only one argument X:
OP(X) = (OPm(X), OPi(X))
Again, when there is no mutual dependency, we can write
OP(X) = (OPm(Xm), OPi(Xi))
Let WL denote . The
materialization operator
MAT is a mapping from WL to 2VP, and the
dematerialization operator
DMA is a mapping from VP to 2WL.
A
pure icon
is an icon X = (Xm, Xi), where
{Xm} = DMA(Xi) and {Xi} = MAT(Xm).
For pure icons only, the logical part can be completedly recovered from
the physical part, and vice versa.
This is possible, only when MAT(Xm) and DMA(Xi) are both singletons.
In general, MAT(Xm) may yield a set of icon images.
For example, MAT("Mona-Lisa") may be the original drawing
of Mona-Lisa, or a sketch of Mona-Lisa. DMA(Xi) may also
yield a set of meanings.
Such impure icons may cause problems if used for person-machine communication.
The iconic operators introduced in this section may decrease the purity of icons.
In Section 8, we will give purity-preserving conditions for iconic operators.
A
physical iconic operator
operates only on the physical part of
an icon, i.e.,
OP(X,Y) = (DMA(OPi(Xi,Yi)), OPi(Xi,Yi))
where X and Y are pure icons.
A
logical iconic operator
operates only on the logical part of an icon, i.e.,
OP(X,Y) = (OPm(Xm,Ym), MAT(OPm(Xm,Ym))
where X and Y are pure icons.
The usual image processing operations can be regarded as
physical iconic operators. Similarly, the usual logical operations
on objects in a knowledge base can be regarded as logical iconic operators.
We now investigate those generic operators which may affect both the
meaning and the image of an icon.
In what follows, we will use ({Xm},Xi) and (Xm,Xi) interchangeably.
COM((Am,Ai), (Bm,Bi))
= (COMm(Am,Bm), COMi(Ai,Bi))
= (CONCEPT-MERGE(Am,Bm), SUPERPOSE(Ai,Bi))
(2) Vertical Combination VER:
VER((Am,Ai), (Bm,Bi))
= (VERm(Am,Bm), VERi(Ai,Bi))
= (CONCEPT-MERGE(Am,Bm), VER-COMBINE(Ai,Bi))
(3) Horizontal Combination HOR:
HOR((Am,Ai), (Bm,Bi))
= (HORm(Am,Bm), VERi(Ai,Bi))
= (CONCEPT-MERGE(Am,Bm), HOR-COMBINE(Ai,Bi))
CON((Am,Ai), (Bm,Bi))
= (CONm(Am,Ai,Bm,Bi), CONi(Ai,Bi))
= (CONTEXT(Am,Ai,Bm,Bi), Ai)
(5) Indexing IDX:
IDX(Am,Ai)
= (IDXm(Am), IDXi(Ai))
= (CONCEPT-REDUC(Am), IMAGE-REDUC(Ai))
(6) Clustering CLU:
CLU( (c1,e),...,(cm,e),({},p1),...,({},pn) )
= { (ci,pj): }
(7) Cross-Indexing CRO:
CRO( (Am,Ai), (Bm,Bi) )
= ( IDX(A), IDX(B) )
(8) Similarity Operator SIM:
SIM(X,Y) = (SIMm(Xm,Ym), SIMi(Xi,Yi))
Explanation:
Similarity operator returns a "true" icon (true-m, true-i), or
a "false" icon (false-m, false-i). True/false icons are
pure icons. If SIM(X,Y) depends only on SIMi(Xi,Yi), the similarity operator
tests the physical similarity of two images.
On the other hand, if SIM(X,Y) depends only on SIMm(Xm,Ym), the similarity operator tests
the logical similarity of two images.
The logical similarity of icons allows for variations of icon images.
For example, (stop,\h'0.2i') and (stop,\h'0.2i') are considered similar by logical similarity.
(diner,\h'0.2i'), (diner,\h'0.2i'), (diner,\h'0.2i') are also considered similar by
logical similarity.
If a similarity operator returns (true-m,false-i) or (false-m,true-i), it is considered meaningless.
(9) Existence Operator EXI:
EXI(X,Y) = (EXIm(Xm,Ym), EXIi(Xi,Yi))
Explanation:
The existence operator tests for the existence of X in Y,
and returns a true/false icon. We can test for the existence
of the logical object Xm within Ym, or the existence of the
physical object Xi within Yi, or both.
The generic iconic operators discussed above can
be used to construct arbitrarily complex icons.
These operators are generic, in the sense that their
semantics are not completely specified. For specific
formal iconic systems, we can use "custom-made" iconic
operators to interpret complex icons.
VL is a set of logical objects
r1: xo ::= ({x1,x2}, po)
r2: x1 ::= ({x3,x4}, p1)
r3: x2 ::= ( { } , p2)
r4: x3 ::= ( {c1} , p3)
r5: x4 ::= ( {c2} , p4)
The above iconic language can be implemented using icons
in a direct manipulation interface [SHNEID86].
The materialization operator MAT and dematerialization
operation DMA will be discussed in the following section.
The commands to create the five icons of Example 1 are:
: X = ICON( Xm, Xi) create an icon X with logical
part Xm and physical part Xi
x4 = ICON( {c2} , p4)
x3 = ICON( {c1} , p3)
x2 = ICON( { } , p2)
x1 = ICON( {x3,x4}, p1)
xo = ICON( {x1,x2}, po)
The symbol "e" denotes an "empty picture". Therefore,
rule r1 specifies an icon xo with subicons x1, x2 and no physical image.
The logical part of icon xo is {COM, x1, x2}, where COM is in VL,
and x1, x2 are in S. The symbol "COM" is an
iconic operator
which operates on the subicons x1 and x2 to create a new icon.
The inclusion of operators as logical objects gives greater
flexibility and notational convenience in the specification of the logical part of an icon.
The location attributes of the subicons x1 and x2 will determine
the order in applying the iconic operator COM.
r1: xo ::= ({COM,x1,x2}, e)
r2: x1 ::= ({COM,x3,x4}, e)
r3: x2 ::= ( { } ,p2)
r4: x3 ::= ( { } ,p3)
r5: x4 ::= ( { } ,p4)
(1) Combination COM:
Explanation:
The images Ai and Bi are combined by superposition. At the same time, the
conceptual merge of the meanings Am and Am becomes the meaning
of the resultant new icon.
As an example, COM(\h'0.2i', \h'0.2i') = COM( (do-not,\h'0.2i'), (road,\h'0.2i'))
= (CONCEPT-MERGE(do-not,road), COMBINE(\h'0.2i',\h'0.2i'))
= (no-entry,\h'0.2i').
Explanation:
The images Ai and Bi are combined vertically.
At the same time, the conceptual merge of the meanings Am and Bm
becomes the meaning of the resultant new icon.
As an example,
the queries shown in Figure 1.2 are vertical combinations of
query icons, and the vertical combination denotes conjunction
of logical expressions.
Explanation:
The images Ai and Bi are combined horizontally.
At the same time, the conceptual merge of the meanings Am and Bm
becomes the meaning of the resultant new icon.
As an example,
the horizontal combination of "character" icons in the Heidelberg
Text Editor Icon Set (see Appendix 1) denotes a "string" icon.
(4) Contextual Interpretation CON:
Explanation:
Contextual interpretation is achieved, by considering icon A in
the context of icon B. The two icons A and B occur together. The new meaning depends upon both A and B.
In the new icon, the image remains to be the image of Ai.
Contextual interpretation can obviously incorporate a lot of additional
attributes to enhance an icon.
Contextual interpretation is most useful in interpreting time-varying
iconic sentences, such as video game snapshots.
Explanation:
In iconic indexing, the conceptual meaning as well as the image of
an icon is simplified, so that a less complicated icon is constructed to serve as
an index to the original icon.
For the logical part (meaning) of an icon, the simplification is achieved
by reducing the conceptual graph, or by tree pruning. For the physical part (image) of
an icon, the simplification is achieved by obtaining the sketch, the
silhouette, the contour, or the sub-region, of an image.
More detailed explanation of iconic indexing will be given in
Section 6.
Explanation:
The objects to be clustered, ({},pj), are images. The result
of clustering will enhance the meaning of the images. The logical part added, ci, is usually
a label. We say image pj is assigned to cluster ci.
CLU returns a set of n icons.
Explanation:
Cross-indexing is used to relate
two icons which are similar according to some criteria
They can be physically similar (having similar images),
or logically similar (having similar meanings), or a combination of both.
CRO returns a pair of icons.
In this section and the next, we turn to some theoretical considerations which are
necessary for a deeper understanding of the behavior of icons in an iconic system.
In Section 3, we introduced a formal approach to specifying iconic systems.
Iconic operators were presented in Section 4, which constitute an
icon algebra to construct complex icons and define icon semantics.
We also introduced the notion of pure icons.
Only for pure icons can the logical part be completedly recovered from
the physical part, and vice versa.
Impure icons may cause problems when used for person-machine communication.
In this section, we give purity-preserving conditions for iconic operators.
An icon is denoted by , its formal identifier, or
,
where
is subset of
,
and
is an element of VP.
We will use the notations
, and
,
interchangeably, to denote an icon. Given an
iconic system G, we can determine the iconset RR, which is the
set of all icons defined by G, or formally,
Let WL denote the power set of VL S, or the set of meanings.
The
materialization and
dematerialization functions can now be defined.
The materialization function MAT is a partial function
from WL to 2VP, defined as
follows. For every which appears in
of RR,
The dematerialization function DMA is a partial function
from VP to the power set of WL, defined as
follows. For every which appears in
of RR,
An icon
is pure, iff
For elementary icons, it is easy to determine directly
their purity from MAT and DMA. An example follows.
We now deal with composite icons and their purity.
A composite icon
is composed from subicons
as follows:
where is an n-ary iconic operator.
Two conditions for
purity-preserving composition of
composite icons can now be stated:
Condition (C-1) says that , or the materialization of
, is equal to the application of the operator on the
individual materialization of the subicons
The condition (C-2) can be interpreted similarly.
The consequence of these purity-preserving conditions
is stated in the next theorem.
We need to show MAT() = {} and DMA() = {}.
Similarly, we can show DMA() = {}.
Structural icons can be regarded as composite icons
with an implicit operator STC. Therefore, if
is a structural icon, we have
For composite icon , the part is formally
denoted by {OP, }.
By that we mean ,
but we will formally write {OP, }.
If
really generates a new meaning, then the composite icon
becomes once more an elementary icon, i.e.
If the purity conditions hold, this newly composed icon
is also a pure icon.
The implications of the purity-preserving conditions are
the following:
It should be noted that the purity-preserving conditions
also imply:
In other words, the operator
In the above, we defined the purity of individual icons.
Can we give an overall measure of the degree of purity of
a formal iconic system? This should tell us how "unambiguous"
is this iconic system.
As we will present in the following section, the purity of a formal iconic system can be defined by extending
the iconic system into a fuzzy iconic system, based upon the
theory of fuzzy sets.
Proof: