<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The Online Abstraction Problem for Euler Diagrams</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gennaro Cordasco</string-name>
          <email>gennaro.cordasco@unina2.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rosario De Chiara</string-name>
          <email>dechiara@dia.unisa.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrew Fish</string-name>
          <email>Andrew.Fish@brighton.ac.uk</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Psicologia - Seconda Universita` di Napoli</institution>
          ,
          <country country="IT">ITALY</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ISISLab, Dipartimento di Informatica - Universita` di Salerno</institution>
          ,
          <country country="IT">ITALY</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>School of Computing, Engineering and Mathematics - University of Brighton</institution>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <fpage>62</fpage>
      <lpage>76</lpage>
      <abstract>
        <p>A Euler diagrams are an accessible and effective visualisation of data involving simple set-theoretic relationships. Efficient algorithms to quickly compute the abstract regions of an Euler diagram upon curve addition and removal have been developed, but a strict set of drawing conventions (called wellformedness conditions) were enforced, meaning that some abstract diagrams are not representable as concrete diagrams. We present a variation and extension of the methodology which enables region computations for Euler diagrams under the relaxation of several drawing conventions. We provide complexity analysis and compare with the previous methodology. The algorithms are presented for generic curves, allowing for specialisations such as utilising fixed geometric shapes for curves that often occur in applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Venn [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and Euler diagrams are a well known representation of sets and their
relationships. Venn diagrams have had significant theoretical interest from the likes of
Gr u¨nbaum and Hamburger in recent times; a detailed survey of Venn diagrams can be
found in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Euler diagrams are the modern incarnation of Euler circles [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], first
introduced for the purposes of syllogistic reasoning. Whilst Venn diagrams ensure that
every region determined by being inside some contours and outside the other contours
is nonempty, Euler diagrams generalise Venn diagrams by relaxing this condition. This
allows them to specify subset relations and disjointness relations amongst sets without
any extra cognitive load since these semantic relationships are well-matched the spatial
relationships of containment and disjointness [
        <xref ref-type="bibr" rid="ref11 ref17">11, 17</xref>
        ].
      </p>
      <p>
        In a practical setting, Euler diagrams appear frequently in various application
domains. For example, they have been used in biological areas for representing complex
genetic set relations in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], in computer-based resource management scenarios in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
and in the information retrieval/visualisation context to depict the numbers of results of
collections of library database query results in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and in network visualisation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
Euler diagrams, together with diagrammatic inference rules, form a diagrammatic logic,
and comparisons of the effect of the choice of inference rules on automated searches
for minimal proofs within Euler diagram-based reasoning systems [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] has been
investigated. There are many variations of the basic system, and they have also been
incorporated into heterogeneous reasoning systems [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. More complex diagrammatic
logics such as Spider [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] or Constraint diagrams [
        <xref ref-type="bibr" rid="ref13 ref4">4, 13</xref>
        ] build on the underlying
Euler diagram logic, adding more syntax in order to increase the expressiveness of the
languages.
3rd International Workshop on Euler Diagrams, July 2, 2012, Canterbury, UK.
      </p>
      <p>Copyright ⃝c 2012 for the individual papers by the papers’ authors. Copying permitted for private and academic purposes.
This volume is published and copyrighted by its editors.
Motivation. For any computer-based applications there is a natural disparity between
the concrete level information that the user perceives and manipulates (the drawn or
concrete diagrams) and the abstract information that the system requires or manipulates
(the abstract models or abstract diagrams). Many important computations of the system
tend to be defined at this abstract level. For instance, if one wished to present the
semantics of a user-constructed diagram then the system needs to perform computations
such as to identify the regions present in the diagram, to compute the set intersections
that they represent, and to combine these into some set-theoretic statement. In a more
general sense an efficient way to calculate the abstract diagram is also useful for the
comparison of concrete diagrams.</p>
      <p>
        The efficient computation of the abstract model from a given concrete diagram,
together with the ability to update the abstract model upon concrete changes such as
curve addition, removal, translation and resizing represent an important challenge to be
addressed. The relaxation of the drawing constraints is a significant extension because
under these relaxed constraints, every abstract diagram has a concrete diagram
representing it [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Furthermore, for dynamic diagrams (e.g. sequences of diagrams
constructed during interactive user construction or the presentation of evolving data sets) it
permits the temporary relaxation of the chosen set of drawing conventions imposed for
a diagram in the sequence. This enables a natural construction or presentation, assisting
in preserving a user’s mental map.
      </p>
      <p>
        Contribution and paper outline. In this paper we provide a solution to the on-line
abstraction problem: compute the abstraction of a concrete Euler diagram (i.e. a drawn
diagram), keep track of the concrete and abstract diagrams, and enable the automatic
update of the abstract diagram upon concrete level manipulations. The algorithms
presented in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] solved this problem for the wellformed diagrams of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], but here we
provide a solution for the more general case in which several well-formedness conditions
are relaxed, enabling much greater utility and flexibility. The algorithms have also been
extended to permit further relaxation of the wellformedness constraints, enabling the
processing of ‘generalised Euler diagrams’ (representing sets as unions of regions with
holes), ensuring that any abstract diagram has a concrete realisation. However, this
further extension is not presented in this paper due to space constraints.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>
        We provide a definition of Euler diagrams, separating the abstract and concrete models
as usual, together with the set of wellformedness conditions considered. Specifically, we
incorporate some of the wellformedness conditions of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] that are simplicity of
contours (no self-intersection) and uniqueness of contour labels, into the main definition
of concrete Euler diagram, which enables an omission of labels since the contours can
be uniquely identified.
      </p>
      <p>Definition 1. A concrete Euler diagram is a pair d = ⟨C, Z⟩ where C is a set of simple
closed curves, called (concrete) contours, in the plane and Z is the collection of
(concrete) zones z determined by being inside a set of contours Xz ⊆ C and outside the rest
of the contours. That is,
z =</p>
      <p>∩ int (c) ∩
c∈Xz</p>
      <p>∩
c∈C−Xz
ext (c) ,
for each Xz ⊆ C, provided this region is non-empty. Here int(c) and ext(c) denote the
interior and the exterior of c, respectively, and the set Xz is called the zone descriptor
for z. A minimal region of d is a connected component of R2 − ∪ c.
c∈C
We say d is wellformed if the following wellformedness conditions (WFCs) hold (see
Fig. 1 ):
WF1 Transverse intersections: Contours that intersect do so transversely.</p>
      <p>This can be subdivided into:
WF1a No tangential intersections.</p>
      <p>WF1b No concurrency (distinct contours meet at a discrete set of points).
WF2 No multiple points: At most two contours can intersect at any given point.
WF3 Connected concrete zones: Each concrete zone is a minimal region.</p>
      <p>An abstract Euler diagram (see Definition 2) is an abstraction (see Definition 3) of
a concrete diagram. We overload the term zone, using it for the concrete zones, which
are regions of the plane, as well as for abstract zones, which are the sets of containing
contours of that region (or the labels of those contours in the generalised case); the
context determines which is meant. Let PX denote the powerset of set X.
Definition 2. An abstract Euler diagram is a pair: d = ⟨C(d), Z(d)⟩ where: C(d) is a
finite set of labels, called (abstract) contours, drawn from some alphabet L. The set of
(abstract) zones of d is Z(d) ⊆ PC(d), where ∪ z = C(d).
z∈Z(d)
Definition 3. Let d be a concrete Euler diagram and d′ an abstract Euler diagram. If
there is a bijection between C(d) and C(d′) that induces a bijection between Z(d) and
Z(d′), then d is said to be a realisation of d′, and d′ is the abstraction of d. An abstract
Euler diagram d′ is drawable if there is a realisation of d′ as a concrete Euler diagram.</p>
      <p>By convention, each concrete Euler diagram contains a zone o, called the outer
zone, which is exterior to all the contours (that is, Xo = ∅). The left of Fig. 2 shows
a concrete Euler diagram containing four contours (A, B, C, D). The zone descriptors
for the concrete zones are graphically depicted in the right hand side of the figure; these
sets can be viewed as the abstract zone set.</p>
      <p>We need terminology relating to the important operations of the addition and
removal of the contours of an Euler diagram.</p>
      <p>Definition 4. Let d = ⟨C, Z⟩ be a concrete Euler diagram with A ∈/ C and B ∈ C. Let
d + A and d − B denote the concrete Euler diagrams obtained by the addition of a new
contour A to d and the removal of contour B from d, respectively. A region r of d is a
union of minimal regions; it is: (i) a covered region (or is covered by A) if r ⊂ int(A)
in d + A; (ii) split by A (a split region) if r ∩ int(A) ̸= ∅ and r ∩ ext(A) ̸= ∅ (i.e. r
is partially covered by A). Analogously, a zone z of d is a covered zone (respectively a
split zone) when it is covered (respectively partially covered) by A.</p>
      <p>Fig. 3 shows an example of contour addition. We observe that the zone described
by {C} is split by the contour A but neither of its two minimal regions is split by A.
A point of intersection x between two curves c1 and c2 is called a crossing point. We
denote with Cross(d) the set of all the crossing points generated by contours in d.</p>
    </sec>
    <sec id="sec-3">
      <title>Computing the abstraction of Euler Diagrams</title>
      <p>The main problem that we address is the following, with variations according to the
choice of wellformedness conditions imposed.</p>
      <sec id="sec-3-1">
        <title>Abstraction Update Problem</title>
        <p>Let d = ⟨C, Z⟩ be a concrete Euler diagram and d′ = ⟨C′, Z′⟩ the abstraction of d.</p>
        <p>Let A ∈/ C and B ∈ C. Efficiently compute the abstractions of d + A and d − B.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref6 ref8">6, 8</xref>
          ] the single marked point approach (SMPA) (described below) was
presented, computing the abstraction for wellformed Euler diagrams, following an online
approach where diagrams are viewed as a sequence of contour additions and removals.
Other operations such as translation or resizing of a contour can be easily simulated by
the addition and removal operations, and so such algorithms are applicable in a wider
context.
        </p>
        <p>In this paper, we present an evolution of these algorithms, adopting the multiple
marked point approach (MMPA) (described below), permitting the relaxation of
condition WF3 so that Euler diagrams whose zones are disconnected can be processed.</p>
        <p>
          First of all, we recall from [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] that the set of zones split by A, due to the addition
of a contour A to (or its removal from) a given wellformed Euler diagram d, can be
computed using the following observation.
        </p>
        <p>Observation 1 Let d be a wellformed Euler diagram and let {x0, x1, . . . , xm−1} be
all of the crossing points that we meet as we traverse the contour A from an arbitrary
point on A. Then:
(i) For each i = 0, . . . , m − 1 each arc (xi, xi+1 mod m) splits one zone (note that two
arcs can split the same zone but one arc cannot split more than one zone) of d.
(ii) Two consecutive arcs (xi, xi+1 mod m) and (xi+1 mod m, xi+2 mod m) split two zones
such that their zone descriptors differ by exactly one contour (the contour which
intersects with A generating the crossing point xi+1 mod m).</p>
        <p>
          For the wellformed diagram case of [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], we adopted the SMPA where each zone z
of d has a single point mp(z) ∈ R2 associated to it, where mp(z) lay in the boundary of
the closure of the zone z (with the possible exception of the marker for the outside zone).
These points keep track of the zone sets, and were used to update these sets according
to their relationships with contours that are added or removed from a diagram. Then,
the zones that are not split by A are covered by A if and only if mp(z) belongs to the
interior of A. The SMPA is illustrated in Figure 5: each minimal region is marked by a
single marked point (an arrowed dot indicates a marked point, the arrow indicating the
minimal region which is marked); additional marked points, or pseudo-crossing points,
are used to mark the outside zone and any contour which has no crossing points, either
in d or at some stage during its incremental construction (e.g. see the marked point for
zone {B, D, E} in Figure 5). However, the SMPA is not sufficient to deal with the Euler
diagrams with disconnected zones. In this case, there are two ways of splitting a zone:
(i) a zone is split when one of its minimal regions is split by A; (ii) a zone is split when
some of its constituent minimal regions are covered by A and some are not. To address
case (ii) one can consider associating one marked point to each minimal region of the
diagram. Figures 5 (c) illustrates a generalization of the case of [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] where each minimal
region is associated with one marked point. Then, if a zone z has no minimal regions
which are split by A (i.e. case (i) does not hold) we can analyse the relationships of the
marked points with A to classify z as split by A, covered by A, or neither. In particular,
if all of the marked points of z belong to int(A) then z is a covered zone, whilst if some
of the marked points of z belong to int(A) while others do not, then z is a split zone,
according to (ii) above.
        </p>
        <p>Fig. 5. Single marked point approach (SMPA): in (a) each zone of a wellformed Euler diagram is
marked by a single point; (b) shows in grey the zone {B; C} and its marked point; in (c) a non
wellformed Euler diagram (WF3 relaxed) with a zone {B}, shown in grey, which consists of two
minimal regions, therefore requiring at least two marked points.</p>
        <p>
          However, the management of marked points (taking one for each minimal region)
for non-wellformed diagrams (relaxing WF3) raises some tricky problems such as: if
a zone z becomes split upon contour addition or deletion, how can one efficiently find
a marked point for each of the minimal regions that comprise z? For example, Figure
6 shows two parallel examples which adopt the SMPA (using the algorithm of [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]) in
which only the order of contour addiction has been varied. Whilst one of these gives a
valid solution, the other does not. In detail, the first two steps (a) and (b) in the figure
represent the addition of the first two contours (E and C) to the diagram. Then the two
cases are depicted: on the left we add first contour D and then contour B, whilst on the
right we first add B and then D. In the first case (on the left) the association between
the marked points and minimal regions is correct, with the two minimal regions of
zone {B} marked by points z0 and z2. However, in the second case (on the right) the
association is incorrect: there are two marked points associated to the same minimal
region (top, shaded) and no marked point associated the other minimal region (bottom,
shaded). The problem is that, in general, there is no easy way of discriminating between
the case on the left from the case on the right; by just analyzing the relation between
a marked point and the contours it is possible to discriminate between zones and not
minimal regions.
        </p>
        <p>We avoid such problems by adopting the MMPA in which each zone is associated
with a set of marked points (which comprises the set of crossing points laying on its
boundary). This approach requires the tracking of a larger number of marked points
but we accept this trade-off against a simpler marked point management (also making
implementation easier), since when a zone is split, we just need to correctly partition
the set of its marked points.</p>
        <p>The MMPA is illustrated in Figure 7: a set of points marks each minimal region r,
including all of the crossing points on the boundary of r. Thus, each zone has marked
point set including all of the crossing points laying on its boundary (i.e the boundaries
of its constituent minimal regions). In the specific case in Figure 7, each marked point
marks one, two or four zones.</p>
        <p>In the following we define a procedure for contour addition (with contour removal
omitted for space reasons), which satisfies:
Theorem 1. Let d = ⟨C, Z⟩ be an Euler diagram, satisfying WF1 and WF2 (i.e. with
WF3 relaxed). Then
i) If A ∈/ C, then the procedure NewContour(d,A) computes the new collection of zone
descriptors for the zones Z′ of d′ = ⟨C ∪ A, Z′⟩.
ii) If B ∈ C, then the procedure DeleteContour(d,B) computes the new collection of
zone descriptors for the zones Z′ of d′ = ⟨C − B, Z′⟩.</p>
        <p>Moreover, both procedures:
1. compute, for each zone z ∈ Z′ − {z0}, where z0 is the zone in the exterior of all
contours in d′, the set of marked points of the zone, M P (z), that is comprised of the
Initially, we consider the key case of Euler diagrams with WF3 relaxed (but WF2
and WF1 enforced). Subsequently, we will provide the ideas enabling the relaxation
of WF2 and WF1. For space reasons we present only the algorithm for contour addition
(omitting the algorithm for contour removal). Both algorithms are based on two
auxiliary algorithms, ComputeContourRelationships (which computes the relationship of
a contour with the other contours in a diagram, and updates the marked point sets) and
ComputeSplitRegions (which computes the zone descriptors of the split zones using
Observation 1).</p>
        <p>Definition 5. Let d = ⟨C, Z⟩ be a concrete Euler diagram and A a contour which is
not in C. Let
Over(A) denote the collection of all of the contours in C that properly overlap A; that
is Over(A) = {c ∈ C | int(A) ∩ int(c) ̸= ∅};
Cont(A) denote the collection of all of the contours in C that properly contain A; that
is Cont(A) = {c ∈ C | c ∈/ Over(A) and int(c) ∩ int(A) = int(A)}.</p>
        <p>For example, Figure 3 (a) shows diagram d and Figure 3(b) shows the addition of
contour A to d. We have Over(A) = {B, C}, Cont(A) = ∅ and Cross(A) contains
the four crossing points between A and the contours in C.</p>
        <p>The methodology adopted makes use of the following low level computations, and
we assume that, given two contours A and B of an Euler diagram with WF3 relaxed,
we can quickly find:
1. the relationships between A and B; that is if A and B properly overlap, or if one
contains the other;
2. their crossing points (if A and B properly overlap);
3. the relationship between any given point x ∈ R2 and A; that is whether x belongs
to A, int(A) or ext(A).
Fig. 8. The addition of contour A splits eight minimal regions determined by the eight arcs that
comprise A. However, it splits nine zones, eight of which are the distinct zones containing the
eight minimal regions that are split. The ninth zone {B} is split, without splitting any of its
constituent minimal regions, since one of its minimal regions is covered by A but the other is not.</p>
        <p>Placing restrictions on the geometric shapes used for contours (which is common
in some applications) can enable particularly fast computations. For example, if each
contour is a simple geometric shape, such as a circle or an ellipse, these computations
reduce to solving a system of two quadratic equations (1 and 2) and a quadratic
equation (3), which can be computed very quickly (with different methods having different
time/precision tradeoffs).</p>
        <p>Algorithm ComputeContourRelationships: (i) computes the relationship between the
contours present in a diagram d (with WF3 relaxed) and a contour A; (ii) updates the
set of crossing points of d.</p>
        <p>We will refer to Fig. 8 to assist with the explanation of the algorithms. Consider the
addition of the dashed contour A to the diagram in Fig. 8 without A. After the execution
of Algorithm ComputeContourRelationships we have Cont(A) = ∅, Over(A) =
{B, C, D, E} whilst Cross(A) is the set of eight crossing points created by the addition
of A.</p>
        <p>Algorithm ComputeSplitRegions uses the sets output by Algorithm
ComputeContourRelationships and calculates the collection of zone descriptors for the zones that
contain a minimal region of d − A split by A. The crossing points of A can be used to
decompose A into a set of arcs. This algorithm computes the zone descriptors of all of
the zones of d − A that have at least one of their minimal regions split by A.</p>
        <p>In detail, the arcs are analysed in the sequence that they are met as one traverses the
contour; see Fig. 4 for an example. The region that is split by the first arc (x0, x1) is
determined the set of contours that properly contain A and then by checking which of
the contours that properly overlap with A contains the arc. Each successive region that
is split is calculated by computing the difference with the previously computed region;
this idea was present in Observation 1.</p>
        <p>Contour addition. Algorithm 1 updates the collection of zone descriptors upon the
addition of a new contour A to a diagram d. There are two cases to consider. Firstly, if
Over(A) = ∅ then no new crossing points are created by the addition of A, and so A
forms a new connected component. Thus, A splits only the zone described by contours</p>
      </sec>
      <sec id="sec-3-2">
        <title>Algorithm 1: NewContour(d, A)</title>
        <p>Input: An Euler diagram d = ⟨C; Z⟩ and a contour A such that A ∈= C.</p>
        <p>Output: Z′, the collection of zone descriptors of d′ = ⟨C ∪ {A}; Z ⟩
′ .
1: (Cont(A); Over(A); Cross(A)) := ComputeContourRelationships(d; A)
2: if Over(A) = ∅ then // A does not properly overlap any contour present in C
3: s := Cont(A) // s is the zone split by A
4: Zs := {s} // Zs is the set of zones having a minimal region split
5: s:points := any point in A // the marked point for s
6: else
7: Zs := ComputeSplitRegions(d; A; Cont(A); Over(A); Cross(A))
// s is the old zone
// n is the new zone
// the point x marks n
// the point x marks s
// the point x marks both s and n
s:points := Ms ∪ MA
n:points := Mn ∪ MA</p>
        <p>Z′ := Z′ ∪ {n} // The new zone n is added to the collection of zones of the diagram
24: forall z ∈ Z − Zs do
25: Mint := Mext := ∅ // Mint and Mext record the marked points of z that are in the
interior and the exterior of A, respectively
forall x ∈ z:points do
if x ∈ int(A) then</p>
        <p>Mint := Mint ∪ {x}</p>
        <p>// if z is covered by A then z should be removed
// if z is split or covered by A then a new region should be added
8: Z′ := Z
9: forall z ∈ Zs do
10: s := z
11: n := z ∪ {A}
12: Ms := Mn := MA := ∅
13: forall x ∈ s:points do
14: switch do
15: case x ∈ int(A)
16: Mn := Mn ∪ {x}
case x ∈ ext(A)</p>
        <p>Ms := Ms ∪ {x}
case x ∈ A</p>
        <p>MA := MA ∪ {x}
in Cont(A) (in Fig. 2 (a), contour D splits only the outer zone, exterior to all other
contours, for example). Secondly, if Over(A) is not empty, then A splits several zones
(contour A in Fig. 8 splits several zones, for example). Algorithm 1 computes the split
zones in two steps: (i) the split zones which contain a split minimal region are computed
by Algorithm ComputeSplitRegions; (ii) the split zones which do not have any split
minimal regions are computed, together with the set of covered zones, by analysing the
relationship between the collection of marked points of the zones and the contour A.</p>
        <p>For instance, in Fig. 8, the zones having a minimal region split by A are {∅, {C},
{B, C}, {B, C, E}, {B, E}, {B, D, E}, {B, D}, {D}} while the zone {B} is split by
A even though neither of its two minimal regions are split by A since one of them is
covered by A and the other is not.</p>
        <p>In detail, when Over(A) is empty, A does not properly overlap any of the contours
in d and it does not generate any new crossing points. In this case there is exactly one
zone of d split, defined by Cont(A), and any point on A can be chosen as the marked
point for both of the zones of d+A that are described by Cont(A) and Cont(A)∪{A},
referred to as the old zone and the new zone respectively (lines 3 − 5).</p>
        <p>Thereafter the algorithm considers the marked points of each zone of d which has
a minimal region that is split by A (line 7). The variable s refers to the zone in d that
is split as well as the old zone that this becomes upon the addition of A in d′, the
variable n refers to the new zone that is created in d′ from s which is also inside A.
For each such marked point x, the algorithm checks if x is a marked point for just the
old zone, just the new zone or both (lines 13 − 20) in d′ (recorded using Ms, Mn and
MA respectively). The new zone n is added to the collection of zones of the diagram
(line 23). Subsequently (line 24) the algorithm checks the remaining zones (i.e. those
that do not contain any split minimal regions) looking for covered or split zones of
d. This is performed by verifying the relationship between the marked points of the
zone z ∈ Z − Zs and A (lines 26 − 30). In particular, if all of the marked points
belong to int(A) (i.e., Mext = ∅) then the zone z is covered by A and so the old
zone z is removed from the diagram (lines 31 − 32). Moreover, if at least one marked
point belongs to int(A) then the zone z is either split or covered and so a new zone is
generated and added to the diagram (lines 35 − 38).
3.2</p>
      </sec>
      <sec id="sec-3-3">
        <title>Relaxing the wellformedness condition WF2 and WF1</title>
        <p>WF2. We extend the algorithms to also handle crossing points with multiplicity greater
than 2 (i.e., more than two contours crossing transversely at a given point). For Euler
diagrams with WF3 relaxed, we used Observation 1 in Section 3 to compute the set of
zones split by the addition (or removal) of a contour A. Although Observation 1 (i) holds
for Euler diagrams with WF2 also relaxed, part (ii) does not hold if the crossing point
xi+1 mod m has multiplicity greater than 2. Fig. 9 (left) presents a schematic diagram,
similar to that in Fig. 4, in which there is a crossing point, x2, with multiplicity 3.
Observation 2 provides the modification of the strategy to deal with diagrams that relax
WF2 (as well as WF3).</p>
        <p>Observation 2 Let d be an Euler diagram with WF3 and WF2 relaxed. Let {x0, x1, . . . ,
xm−1} be all of the crossing points that we meet as we traverse the contour A from an
arbitrary point on A. If there are exactly ℓ ≥ 1 contours crossing A transversely at
a point xi+1 mod m then the zone descriptors of the zones that are split by the arcs
(xi, xi+1 mod m) and (xi+1 mod m, xi+2 mod m) differ by exactly ℓ contours, and these
are the contours that intersect with A comprising the crossing point xi+1 mod m.</p>
        <p>The algorithms in Section 3.1 can now be altered to deal with the relaxation of WF2.
WF1. Firstly, we relax WF1a. Since tangential intersection points do not affect the
zones which are split by the corresponding arc (see Fig. 9 (right)), we adapt the
algorithm to deal with tangential intersections by simply ignoring them. Hence even the
relaxion of WF1a is straightforward.</p>
        <p>Secondly, we relax WF1b, allowing concurrency. For this case, we assume that,
given two contours A and B of an Euler diagram, we can quickly: (i) check whether
they meet in a concurrent arc (i.e. a maximal non-discrete set of points of intersection).
(ii) check whether a concurrent arc is tangential (i.e. if a homotopy of the concurrent arc
to a point would leave a tangential intersection point; see Figure 10 left) or transversal
(i.e. if a homotopy of the concurrent arc to a point would leave a transverse crossing;
see Figure 10 right) and (iii) find the split points (the points where two contours that
meet in a concurrent arc separate).</p>
        <p>The split points will play essentially the same role as the crossing points within the
extended algorithms: they will be used as marking points for zones and to compute the
set of zones which are split by the addition of a new contour A (noting that the crossing
points are also still used, as before). There are two cases to consider: (i) tangential
concurrent arcs and (ii) transversal concurrent arcs. For a tangential concurrent arc,
both of the split points of that arc do not affect the zones which are split (see Figure
10 left), and so we treat such points in the same manner as tangential intersections;
For a transversal concurrent arc, the first split point that we encounter as we traverse
the contour A does not affect the zone which is split, whilst the corresponding second
split point does affect the zone which is split (see Figure 10 right). Therefore, the first
point will be treated as a tangential intersection while the second one will be treated as
a transverse crossing.
We provide complexity analysis for the MMPA for Euler diagrams.</p>
        <p>The invocation of procedure ComputeContourRelationships analyses the
relationship between A and each contour in C and updates the set of crossing points, taking time
O(|C| + |Cross(d)| log(|Cross(d)|)).</p>
        <p>Then, if there are intersection points, the procedure ComputeSplitRegions
computes the set Zs of zones having a split region and, for each such zone updates the
set of marked points. Hence the procedure ComputeSplitRegions requires O(|C| +
|Cross(d)| log(|Cross(d)|) steps.</p>
        <p>Finally, for contour addition, lines 9 − 23 and 24 − 38 respectively compute the
collection of marked points for zones having, and not having, split minimal regions,
respectively. We can compute this two collections in O(|Z| + |Cross(d)|) steps. Collectively,
algorithm NewContour operates within time O(|Z| + |Cross(d)| log(|Cross(d)|)).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Related work and conclusion</title>
      <p>
        The relationship of the Euler diagram abstraction problem with arrangements of Jordan
curves in the plane [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] was discussed in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We note that in our approach we do not need
to store or manipulate graphs, but we work directly with the diagrams utilising its
intersection points and the domain specific data structures, and we obtain a methodology
with a straightforward means of implementation.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], an application is presented that interprets an Euler Diagram sketched with a
pen or a mouse, and calculates the abstract diagram. The authors claim complexity that
is asymptotically similar to ours, but this claim is not substantiated, with the paper not
providing details of how the Zone List Refinement Step is performed. The only apparent
method that would be effective with the generality that they describe is a pixel based
inspection of the drawing (commonly available in programming languages) but which
has the drawback of being dependent on the resolution of the image. Our methodology
has the added advantage of being more general in that it is not dependent on the image
of the contours, but only on their analytical representation.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], a methodology is provided which takes a set of polygons (meaning regions
determined by sets of non-overlapping curves) and outputs a set of non-overlapping
polygons, which is essentially the boundary of a zone of the diagram in our
terminology; this enables the computation of polygon operations such as union, intersection,
difference and clipping. A graph based representation is constructed which consists of a
binary tree structure, encapsulating the structure of non-overlapping contours, together
with a winged-edge data structure which captures sets of polygons as a graph
(indicating the intersection points) and provides a simple means of traversing faces of the
graph. Their algorithm “corrects” input containing degeneracies (e.g. zero area contours
or coincident edges, meaning concurrency), whereas we wish to develop a method that
explicitly considers them. For ‘diagrams’ that consist of more than one connected
component, they compare each output contour with the others to determine if one is inside
the area of another or if they co-exist within the same area, and they record these contour
relationships in the hierarchical tree structure of the contours. Our approach (utilising
marked points) provides removes the need to compute these graph structures and then
to operate on them, whilst providing a means to explicitly capture the ‘singularities’
that may occur within certain contexts or application domains.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], they prove that the Gru¨nbaum encoding uniquely identifies simple Venn
diagrams (i.e. they are wellformed) which are monotone and polar symmetric, and develop
an algorithm utilising a matrix representation to enumerate the monotone simple
symmetric 7-Venn diagrams. The codes considered in the paper rely upon numbering the
curves (adopting certain conventions based on the curve segment in other and inner
faces to fix the choices) and for a given curve recording the sequence of curve numbers
that are given as one traverses the curve. Our methodology applies to a much wider
class of diagrams, but investigating the computation of encodings from the data
structures utilised in our algorithms is an interesting line of future investigation.
      </p>
      <p>
        In this paper, we have developed a new methodology, called the multiple marked
point approach, which enabled us to develop algorithms to solve the Euler diagram
abstraction problem for nonwellformed Euler diagrams relaxing the constraints imposed
on the previous state of the art in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which utilised the single marked point approach
and was limited to the wellformed diagram case. Furthermore, these algorithms extend
in a natural manner to enable the processing of generalised Euler diagrams (i.e. unions
of regions with holes).
      </p>
      <p>
        This enables greater flexibility for users of software tools, enabling them to work
with nonwellformed diagrams where it is convenient, or necessary, to do so. For
example, during user construction of wellformed diagrams if the user is permitted to
construct intermediary non-wellformed diagrams then this aids them in adopting a natural
construction method, whilst it can be very complex, or even impossible, to do so without
allowing passage through non wellformed diagrams. Furthermore, the extension to
generalised Euler diagrams ensures that every abstract diagram has a concrete realisation
(which is not the case for wellformed diagrams, as shown in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]).
      </p>
      <p>
        The algorithms presented in this paper are available in a Java library, although to
simplify implementation (and to improve the efficiency) it restricts the geometric shape
of contours to be arbitrarily rotated ellipses [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. This enables the specification of each
contour in parametric form, enabling easy implementation of operations such as
choosing a point on an arc, or checking contour relationships of intersection or containment.
      </p>
      <p>The applications of this work are widespread since the algorithms can be utilised in
any software system that utilise Euler diagrams or their extensions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>T.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Mamakani</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ruskey</surname>
          </string-name>
          .
          <article-title>Symmetric Monotone Venn Diagrams with Seven Curves</article-title>
          .
          <source>In Fifth Intern. Conference on Fun with Algorithms</source>
          ,
          <source>LNCS</source>
          <volume>6099</volume>
          ,
          <fpage>331</fpage>
          -
          <lpage>342</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>R. De Chiara</surname>
            , U. Erra, and
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Scarano</surname>
          </string-name>
          .
          <article-title>VennFS: A Venn diagram file manager</article-title>
          .
          <source>In Proceedings of Information Visualisation</source>
          , pages
          <fpage>120</fpage>
          -
          <lpage>126</lpage>
          . IEEE Computer Society,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>L.</given-names>
            <surname>Euler</surname>
          </string-name>
          .
          <article-title>Lettres a une princesse dallemagne sur divers sujets de</article-title>
          physique et de philosophie.
          <source>Letters</source>
          ,
          <volume>2</volume>
          :
          <fpage>102</fpage>
          -
          <lpage>108</lpage>
          ,
          <fpage>1775</fpage>
          . Berne, Socit Typographique.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Flower</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Howse</surname>
          </string-name>
          .
          <article-title>The Semantics of Augmented Constraint Diagrams</article-title>
          .
          <source>Journal of Visual Languages and Computing</source>
          ,
          <volume>16</volume>
          :
          <fpage>541</fpage>
          -
          <lpage>573</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.</given-names>
            <surname>Flower</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Howse</surname>
          </string-name>
          .
          <article-title>Euler diagram generation</article-title>
          .
          <source>Journal of Visual Languages and Computing</source>
          ,
          <volume>19</volume>
          :
          <fpage>675</fpage>
          -
          <lpage>694</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>G.</given-names>
            <surname>Cordasco</surname>
          </string-name>
          , R. De Chiara,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          .
          <article-title>Interactive Visual Classification with Euler Diagrams</article-title>
          .
          <source>In Proceedings of VL/HCC</source>
          , pages
          <fpage>185</fpage>
          -
          <lpage>192</lpage>
          . IEEE Press,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>G.</given-names>
            <surname>Cordasco</surname>
          </string-name>
          , R. De Chiara,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          . EulerDiagramNWF: source code. http://isis.dia.unisa.it/projects/EulerNWF,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>G.</given-names>
            <surname>Cordasco</surname>
          </string-name>
          , R. De Chiara,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          .
          <article-title>Efficient on-line algorithms for Euler diagram region computation</article-title>
          .
          <source>Comput. Geometry: Theory and Application (CGTA)</source>
          ,
          <volume>44</volume>
          :
          <fpage>52</fpage>
          -
          <lpage>68</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>H.</given-names>
            <surname>Edelsbrunner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Guibas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pollack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Seidel</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Sharir</surname>
          </string-name>
          .
          <article-title>Arrangements of curves in the plane-topology, combinatorics, and algorithms</article-title>
          .
          <source>In Theoretical Computer Science</source>
          , Vol.
          <volume>92</volume>
          N. 2, pages
          <fpage>319</fpage>
          -
          <lpage>336</lpage>
          . Elsevier Science Publishers Ltd.
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          . Euler Diagram Transformations.
          <source>Graph Transformations &amp; Visual Modelling Techniques, ECEASST</source>
          ,
          <volume>18</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>A. Gurr. Effective Diagrammatic Communication: Syntactic, Semantic and Pragmatic Issues</article-title>
          .
          <source>Journal of Visual Languages and Computing</source>
          ,
          <volume>10</volume>
          :
          <fpage>317</fpage>
          -
          <lpage>342</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>J. Howse</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Molina</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Taylor</surname>
            , S. Kent, and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Gil</surname>
          </string-name>
          .
          <article-title>Spider Diagrams: A Diagrammatic Reasoning System</article-title>
          .
          <source>Journal of Visual Languages and Computing</source>
          ,
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <fpage>299</fpage>
          -
          <lpage>324</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          .
          <article-title>Constraint Diagrams: Visualizing Invariants in Object Oriented Models</article-title>
          .
          <source>In Proceedings of OOPSLA97</source>
          , pages
          <fpage>327</fpage>
          -
          <lpage>341</lpage>
          . ACM Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. H.
          <string-name>
            <surname>Kestler</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Gress</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Buchholz</surname>
          </string-name>
          .
          <article-title>Generalized Venn diagrams: A new method for visualizing complex genetic set relations</article-title>
          .
          <source>J. of Bioinformatics</source>
          ,
          <volume>21</volume>
          (
          <issue>8</issue>
          ),
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>N. Henry</given-names>
            <surname>Riche</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Dwyer</surname>
          </string-name>
          .
          <article-title>Untangling Euler diagrams</article-title>
          .
          <source>IEEE Transactions on Visualization and Computer Graphics</source>
          ,
          <volume>16</volume>
          (
          <issue>6</issue>
          ):
          <fpage>1090</fpage>
          -
          <lpage>1099</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ruskey</surname>
          </string-name>
          .
          <article-title>A survey of Venn diagrams</article-title>
          .
          <source>Electronic Journal of Combinatorics</source>
          . www.combinatorics.org/Surveys/ds5/VennEJC.html,
          <year>1997</year>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>A.</given-names>
            <surname>Shimojima</surname>
          </string-name>
          .
          <article-title>Inferential and Expressive Capacities of Graphical Representations: Survey and Some Generalizations</article-title>
          .
          <source>In Proceedings of 3rd International Conference on the Theory and Application of Diagrams</source>
          , Vol.
          <volume>2980</volume>
          of LNAI, pages
          <fpage>18</fpage>
          -
          <lpage>21</lpage>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. G. Stapleton,
          <string-name>
            <given-names>J.</given-names>
            <surname>Masthoff</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Flower</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fish</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Southern</surname>
          </string-name>
          .
          <source>Automated Theorem Proving in Euler Diagrams Systems. Journal of Automated Reasoning</source>
          ,
          <volume>39</volume>
          :
          <fpage>431</fpage>
          -
          <lpage>470</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>N.</given-names>
            <surname>Swoboda</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Allwein</surname>
          </string-name>
          .
          <article-title>Using DAG Transformations to Verify Euler/Venn Homogeneous and Euler/Venn FOL Heterogeneous Rules of Inference</article-title>
          .
          <source>Journal on Software and System Modeling</source>
          ,
          <volume>3</volume>
          (
          <issue>2</issue>
          ):
          <fpage>136</fpage>
          -
          <lpage>149</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>J. Thie</surname>
          </string-name>
          <article-title>`vre, M. Viaud, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Verroust-Blondet</surname>
          </string-name>
          .
          <article-title>Using Euler Diagrams in Traditional Library Environments</article-title>
          .
          <source>In Euler Diagrams</source>
          <year>2004</year>
          , Vol.
          <volume>134</volume>
          of ENTCS, pages
          <fpage>189</fpage>
          -
          <lpage>202</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>J.</given-names>
            <surname>Venn</surname>
          </string-name>
          .
          <article-title>On the Diagrammatic and Mechanical Representation of Propositions and Reasonings</article-title>
          . Phil.Mag,
          <year>1880</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>M. Wang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Plimmer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Schmieder</surname>
            , G. Stapleton,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Rodgers</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Delaney</surname>
          </string-name>
          <article-title>SketchSet: Creating Euler diagrams using pen or mouse</article-title>
          .
          <source>In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing VL/HCC</source>
          , pages
          <fpage>75</fpage>
          -
          <lpage>82</lpage>
          . IEEE Press,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>K.</given-names>
            <surname>Weiler</surname>
          </string-name>
          .
          <article-title>Polygon comparison using a graph representation</article-title>
          .
          <source>Computer Graphics (SIGGRAPH '80 Proceedings)</source>
          ,
          <volume>14</volume>
          (
          <issue>3</issue>
          ):
          <fpage>10</fpage>
          -
          <lpage>18</lpage>
          ,
          <year>July 1980</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>