Saturday, November 29, 2014

Tahuti: Recognize UML Diagrams

Citation
T. Hammond and R. Davis, “Tahuti : A Sketch Recognition System for UML Class Diagrams,” pp. 1–2, 1998.
Link: http://rationale.csail.mit.edu/pubs/hammond/hammondsketchsymp2001.pdf

This paper presents a simple yet a very excellent idea of how to recognize the components of a UML diagram. This paper uses a set of intuitive Geometric rules to recognize things like Arrows (Simple and Diamond Arrow Heads). e.g. It performs recognition of a Diamond Arrow (shown in the diagram below) in the following manner:


Fig: Diamond Arrow (used in UML Diagrams)
(Source: https://docs.google.com/document/d/1wg0goMTn22zs82zkjo-khW0arM02X2FXp2hkfpw9HT0/edit)

  1. It first looks for two furthest points in the diagram (A & B in this case) and label them as end-points of Arrow Shaft,
  2. It, then, looks for two furthest points on the either side of the arrow (in this case C and D) originating from one of the points A or B,
  3. It, then, finds a point of intersection for a line going from C to D on AB (let's say F),
  4. If it finds any point E that is at a distance in the range equal to distance between F and B and is on the other side of F, it labels it the whole arrow as Diamond Arrow. Else it labels it as a simple arrow.
My thoughts:
As explained above, this idea is pretty intuitive and very simple to implement as well. Since this system is based on Geometric rules, it is free from the errors/complexities of a Gesture based recognition system. The components can be drawn in any manner.

Future Work:
Going on the lines of this idea, I would like to design such a recognition in domains that are based on Action-plans (e.g. Military attack planning, for Strategies in games like Hockey, Football).

No comments:

Post a Comment