[Interests | Publications | Projects]
My research interests are primarily in information visualization and
software reengineering: e.g.,
graph drawing, programming environments, development tools,
J. Abello, J. Korn,
MGV: A System for Visualizing Massive Multidigraphs,
IEEE Transactions on Visualization and Computer Graphics ,
Vol. 8, No 1, January-March 2002.
J. Abello, J. Korn, and M. Kreuseler,
Advanced Visualization Interfaces (AVI),
Trento, Italy, 2002. Pdf.
J. Abello, I. Finocchi, and J. Korn,
IEEE Information Visualization 2001, San Diego, CA,
October 2001. Pdf.
J. Abello, J. Korn,
Visualizing Massive Multi-digraphs,
IEEE Information Visualization 2000, Salt Lake City, UT,
October 2000, 39-48.
S. Mancoridis, T. Souder, Y. Chen, E. Gansner, J. Korn,
REportal: A Web-based Portal Site for Reverse Engineering,
Working Conference on Reverse Engineering,
J. Korn, Y. Chen, E. Koutsofios,
Chava: Reverse Engineering and Tracking of Java Applets,
Working Conference on Reverse Engineering,
J. Korn, A. Appel,
Traversal-based Visualization of Data Structures,
IEEE Information Visualization 1998,
October, 1998, 11-18.
D. Wang, A. Appel, J. Korn, C Serra,
The Zephyr Abstract Syntax Description Language,
Proceedings of the 1997 Conference on Domain-Specific Languages,
Santa Barbara, CA, Oct. 1997, 213-227.
J. L. Korn and D. R. Hanson. A Simple and Extensible Graphical Debugger,
Proceedings of the Winter USENIX Technical Conference, Anaheim,
CA, Jan. 1997, 173-184.
J. L. Korn. Tksh: A Tcl Library for KornShell, Fourth Annual
Tcl/Tk Workshop, Monetery, CA, July 1996, 149-159.
D. G. Korn, C. J. Northrup and J. L. Korn. The New Korn Shell,
The Linux Journal #27, (July 1996), 30-37.
J. Korn. Data Compression Techniques,
Brown University Senior Thesis,
Providence, RI, December, 1993.
J. Korn. A Database File System for Plan 9,
AT&T Bell Laboratories Technical Memorandum,
(with Eleftherios Koutsofios)
AT&T generates and collects massive amounts of information.
For example, the voice network produces about 250 million records a day.
These data feeds are a valuable source of information for
managing the network, quality of service and capacity planning.
The datasets are generated in real-time, and the benefits of using
them are greatest when their analysis and visualization can be done
in real-time as well. This requires the careful design of the
analysis and visualization tools. SWIFT3D is a prototype system
for the processing, analysis, and visualization of very large datasets
in real-time. It was designed to be a general toolkit that can be
applied to a variety of datasets. SWIFT3D has three components:
data processing, analysis, visualization, and uses two types of data:
record data and aggregate data. SWIFT3D provides libraries and tools
for operating on these two types of data. To provide data independence,
these data types contain self-describing information.
(with Yih-Farn Chen and Eleftherios Koutsofios)
Java applets have been used increasingly on web sites to perform client-side processing and provide dynamic content. While many web site analysis tools are available, their focus has been on static HTML content and most ignore applet code completely. Chava is a system that analyzes and tracks changes in Java applets. The tool extracts information from applet code about classes, methods, fields and their relationships into a relational database. A suite of programs queries the database to display structural information about the application. Other tools built on top of the database perform advanced tasks such as reachability and clustering analysis, and can graphically display query and analysis results. Databases contain supplementary checksum information which is used detect changes in two versions of a Java applet. Our tool is able to generate a database using only the compiled class files, making it possible to analyze remote applets whose source code is unavailable. Chava is publicly available for download from AT&T Labs Research.
(with James Abello)
Processing, querying, exploring and visualizing massive data sets pose interesting computational and visualization challenges. A variety of these data sets can be modeled as very large but sparse multi-digraphs with a special collection of application dependent edge attributes. Geographic information systems, telecommunications traffic and internet data are prime examples of the type of data that this system (MGV) is targeted to handle.
This research is based on a metaphor called hierarchical graph slices. This is the key to provide hierarchical graph browsing. Slices are represented visually in a variety of ways, such as 2D needle and star grids, star maps, surfaces or a conventional graph drawing.
MGV follows the client-server paradigm and it is implemented in C and Java 3D. The techniques developed in this research are being applied to multi-digrahs defined on vertex sets with sizes ranging from 100 to 250 million vertices.
Algorithm animation systems and graphical debuggers perform the task of translating program state into visual representations. While algorithm animations typically rely on user augmented source code to produce visualizations, debuggers make use of symbolic information in the target program. As a result, visualizations produced by debuggers often lack important semantic content, making them inferior to algorithm animation systems. This research introduces a method to provide higher-level, more informative visualizations in a debugger using a technique called traversal-based visualization. The debugger traverses a data structure using a set of user-supplied patterns to identify parts of the data structure to be drawn a similar way. A declarative language is used to specify the patterns and the actions to take when the patterns are encountered. Alternatively, the user can construct traversal specifications through a graphical user interface to the declarative language. Furthermore, the debugger supports modification of data. Changes made to the on-screen representation are reflected in the underlying data.
(with David Hanson)
Deet (Desktop Error Elimination Tool) is a simple but powerful debugger for C and Java. It differs from conventional debuggers in that it is machine-independent, graphical, programmable, distributed, extensible, and small. Low-level operations are performed by communicating with a "nub," which is a small set of machine-dependent functions that are embedded in the target program at compile-time, or are implemented on top of existing debuggers. Deet has a set of commands that communicate with the target's nub. The target and deet communicate by passing messages through a pipe or socket, so they can be on different machines. deet is implemented in Tksh, an extension of the KornShell that provides the graphical facilities of Tcl/Tk. Users can browse source files, set breakpoints, watch variables, and examine data structures by pointing and clicking. Additional facilities, like conditional breakpoints, can be written in either Tcl or the shell. Most debuggers are large and complicated, deet is less than 3,000 lines of code plus a few hundred lines of machine-specific nub code. It is thus easy to understand, modify, and extend. We have implemented nubs for Java and C. Deet is publicly available, and to date there have been several thousand downloads of the software.
Tksh is a graphical language (similar to Visual Basic or Tcl/Tk) that uses KornShell (ksh93) for scripting and Tk for graphical user interface. Tksh is implemented as a ksh93 extension, and allows Tcl libraries such as Tk to run on top of ksh93 unchanged. ksh93 is well suited for graphical scripting because it is backward compatible with sh, making it both easy to learn and easy to extend existing scripts to provide user interface. Tksh also allows Tcl scripts to run without modification, making it possible to mix and match components written in either Tcl or ksh93.
(with Dan Wang and
The National Compiler Infrastructure project aims to develop a common compiler platform to support the collaboration of compiler researchers and to facilitate the transfer of technology. I have worked on tools for the abstract syntax definition language (ASDL). Specifically, I have authored a graphical browser-editor of ASDL structures. The browser-editor is able to display structures as hierarchical lists or as graphical trees. By allowing the selection of colors, fonts, etc., the user can specify how each kind of node is drawn. Trees can be edited using standard cut and paste operations or by creating/modifying nodes.