AT&T Home | AT&T Labs | Research
AT&T Labs, Inc. - Research

The Yoix® Scripting Language

Home | What's New | Grammar | Documentation | Download | License | YChart | YDAT | YWAIT | Byzgraf | FAQs


This page includes a collection of Yoix applications that can be run by Java Web Start, and every one works under Java Web Start's strictest security. That means you don't have to accept a certificate just to start an application and according to Sun's documentation:
Applications launched with Java Web Start are, by default, run in a restricted environment where they have limited access to local computing resources, such as storage devices and the local network. In this sandbox environment, Java Web Start can guarantee that a downloaded and potentially untrusted application cannot compromise the security of the local files or the network.
All of our applications are perfectly happy playing in this sandbox, so you don't have to worry about security when you run any of them. Our limited experience with Java Web Start has been positive overall and we believe these demos should start up without a problem. However, in case you do encounter an issue, we included a little information about Java Web Start later in this page that may prove helpful.

Yoix Demos

We divided the demos into two groups. The first group, which we plan to expand in future releases, consists of non-trivial applications that we think will be useful as more than just demos to some of you.

Periodic Table An interactive YChart application that lets you pan and zoom around in two versions of the Periodic Table, a chart of the naturally occurring isotopes, a simple Chart of the Nuclides, and a jigsaw-like puzzle. We think it's a unique application that we hope will be particularly interesting to beginning chemistry students.
Unicode Character Display Another interactive YChart application that features panning and zooming as a way to navigate around a screen that can display up to 64K different Unicode characters. The initial display only shows the first 16K characters, but it's easy to get all 64K characters if you want - just select the Charts→Unicode Plane 0 menu item, but be prepared to wait 20+ seconds.
Wikipedia Edit History A Yoix query screen controlling an interactive YDAT application that displays portions of the Wikipedia edit history for one or more users. User names can be entered manually, extracted from the edit history of a Wikipedia article, or obtained from entries on Wikipedia's Recent Changes page.

This application needs access to the Wikipedia web site, so Java Web Start will prompt you with a security dialog the first time it tries to collect data from that site. If you don't agree, access will be denied and the data visualization won't start.

Click here for more information about this application.

This second group is primarily intended to illustrate capabilities that some of you might find interesting rather than provide applications that are immediately useful.

College Schedule Yet another interactive YChart application that features panning and zooming as a way to navigate around a screen that displays a college course catalog as a demonstation of using YChart to display cells of different sizes. The chart shows Spring 2009 courses for Bryn Mawr, Haverford and Swarthmore colleges.
BYZGRAF Sampler BYZGRAF is a package of Yoix 2D drawing routines for business graphics. This demo shows the configurability and other features of the package.
YDAT HTTPD Log Demo A demo of the YDATCLF instantiation of YDAT. It is a interactive data visualization and mining tool for examining weblogs that are in either common log format or combined log format (CLF). The Apache site provides a description of the two, very similar CLF formats.
YDAT Demo 1 This demo is the New Mexico brain tumor incidence YDAT demo that is part of the standard Yoix distribution and described on the YDAT page.
YDAT Demo 2 This demo is the online auction activity YDAT demo that is part of the standard Yoix distribution and described on the YDAT page.
YDAT Demo 3 This demo is the fabricated network activity YDAT demo that is part of the standard Yoix distribution and described on the YDAT page.
YDAT Graph Demo 1 This demo is the GraphViz regularly shaped nodes YDAT demo that is part of the standard Yoix distribution and described on the YDAT page.
YDAT Graph Demo 2 This demo is the GraphViz oddly shaped nodes YDAT demo that is part of the standard Yoix distribution and described on the YDAT page.

YChart Summary

All YChart applications come with a menu item, namely Help→Summary, that provides a detailed description of the controls that are available to users. Here's a brief summary that should get you started.
  • Use the mouse wheel to zoom in and out in the chart or quickly change selections in the comboboxes.
  • The selection in the combobox at the lower left corner of the main screen determines what happens when you use the left mouse button. It's "Pan" by default, but if you change it remember that the middle mouse button can always be used to pan, no matter what's showing in that combobox.
  • Hold SHIFT when you press the left button and if the cursor is over a cell you will always be able to drag that cell around.
  • Hold CTRL (or the Apple command key if you're on a Mac) when you press the left button and you will always be able to toggle the selection state of the cell that's under the cursor.
  • Press the left mouse button over the blue "zoom label" to toggle between 1.0 and the current setting.
  • Type CTRL-F to toggle the visibility of the find panel.
  • Use the arrow keys to scroll the table up and down by half a row or right and left by half a column.
  • The Page Up and Page Down keys scroll vertically, but hold SHIFT and they scroll horizontally or hold CTRL and the zoom in and out.
  • Pressing the right mouse button in the chart displays a popup menu that, among other things, lets you select an action (e.g., marking the table) that will only be applied to the next press of the left mouse button.
  • The small panel that spans the bottom of the chart has room for three labels. The labels on the left and right sides of that panel are updated as the cursor moves from cell to cell in the chart, while the label at the center is currently only used to provide status information about the thread that's responsible for generating cell labels.

Charts are often displayed before all the cell labels are built, so don't worry if you see empty or partly empty cells. A thread running in the background is responsible for labeling cells and it updates the chart (and the status label mentioned above) after each step is finished. Most YChart applications are configured so the individual labels in a cell can be dragged and dropped when "Cell DnD" is selected (via the popup menu or the combobox at the lower left corner of the main screen).

YDAT Summary

YDAT is a configurable data visualization module included with the Yoix interpreter. YDAT applications feature a collection of linked objects that, among other things, usually include an event plot or graph as the main screen, multiple histograms, and at least one table. Unfortunately there's currently no menu item help available in YDAT applications, so this brief summary will have to do.
  • Use the mouse wheel to scroll vertically in a histogram or table, "zoom" horizontally in an event plot, and zoom in and out in a graph.
  • Hold the left mouse button while you drag the cursor in an event plot and information about the events that have their tips in the rectangle that you sweep out will be displayed in a table (e.g., the screen labeled "Edit Detail" in our Wikipedia example).
  • Hold SHIFT or CTRL as you sweep out a rectangle in an event plot and some YDAT applications will display the selected events in a simple graph.
  • The narrow light gray rectangle displayed in horizontal and vertical axes is called the axis slider. It has ends that can be moved when you press the left mouse button and drag the cursor, and the events that aren't "covered" by the slider are automatically deselected.
  • Pressing and holding the right (or middle) mouse button when the cursor is in the slider will let you drag it along its axis, provided the slider doesn't span the entire axis.
  • Hold the left (right) mouse button as you drag the cursor and you can select (deselect) rows in a histogram and table or the nodes (and sometimes edges) in a graph.
  • Use the View→Style menu selections to adjust the display in an event plot. Stacked and bucketed styles divide the total time into fixed size intervals that have a width that can be adjusted using the View→Customize→Data Buckets menu item.
  • Use the Zoom→Fit to Loaded menu item to quickly restore the slider and the event plot to their original configuration.
  • Use the Show→All On and Show→All Off menu items to quickly select or deselect all items in a histogram, table, or graph.
  • Use the File→Load→Selected or File→Load→Unselected menu items to load a subset of the original data. When you're done with the subset use File→Load→All to restore the original data.
  • The small "diamond" that appears at the bottom of histogram screens is active and can be dragged left (right) when you want to allocate more (less) space to the bar labels.

Drag and drop is supported, but enabling it isn't as friendly as we would like. Right now you have to hit the "F2" key to toggle drag and drop mode in the screen that has the keyboard focus, and when drag and drop is enabled your only indication will be that a hand cursor is displayed in the component (e.g., histogram) that's managed by the screen. Tables or graphs that are populated by sweeping out a rectangle in an event plot can also be loaded by dragging and dropping information out of objects like histograms.

Transient mode, which is available in histograms and tables, modifies the select/deselect behavior so changes aren't permanent but instead only apply while a mouse button is pressed and the cursor is in a particular row. Release the mouse button or move the cursor out of the row and its original selection state will be restored. The usual way transient mode is used is to select the histogram's Show→All Off and Show→Transient menu items and then press the left mouse button and drag the cursor slowly over the rows in the histogram.

Wikipedia Edit History

Perhaps the easiest way to see what happens in this application (once it's started) is to go to the "Recent Changes" panel in the query screen, change the first combobox from "None" to a small number, say 3, press the "Submit" button, and user names will be collected from the 3 most recent entries on Wikipedia's Recent Changes page. After that Wikipedia is queried about the contributions made by each of the users and the data that's returned is formatted and displayed by YDAT.

When the data visualization starts, the main YDAT screen will be an event plot that's positioned near the upper left corner of your screen. By default events (i.e., user edits) are bucketed into time slices and the ones that end up in the same bucket are stacked (and sorted) to produce multi-colored vertical bars. The colors initially represent individual users (as presented in the "Users" histogram), but the coloring scheme can be changed using the event plot's Colors menu or by selecting the Show→Color Data menu item that's available in all histograms. As mentioned earlier, the event plot display can be changed using the View→Style menu item, but in this example the "non-stacked" choices aren't very interesting.

Another YDAT screen that you'll notice is an empty table labeled "Edit Detail" that you can fill with data records by moving the cursor to the event plot, pressing and holding the left mouse button, and dragging the cursor. As you do you'll sweep out a rectangle and by default the events represented by any of the stacked line segments that have their tips in that rectangle will end up in the "Edit Detail" table when the mouse button is released. Hold SHIFT or CTRL when the button is released the events will instead be displayed in a simple graph.

The "Article" and "User" histograms and the "Edit Detail" table start a browser that displays the appropriate Wikipedia page when you hold CTRL while pressing the left mouse button over a row (remember to use the Apple command key instead of CTRL if you're on a Mac). For example, hold CTRL and press a row in the "Article" histogram and that Wikipedia article will be shown in a browser. Do the same thing in the "User" histogram and the selected user's Wikipedia page ends up in the browser, while if you do it in the "Edit Detail" table the browser will display a page that shows the changes that were made to the article by that particular edit.

Finally we should point out that this is a fairly new application and we're not completely satisfied with it yet, mostly because the time axis attached to the event plot can lead to a misinterpretation of the data. As far as we know there's no simple way to collect all the edits that a user made between an arbitrary start and end time, so for the time being we take the easy way out and just ask Wikipedia for the same number of edits for every user. In other words, just because the initial event plot shows that a user's edits (when you're looking at more than one user) all happened in a time interval that's smaller than span of the time axis doesn't necessarily mean the user did nothing outside that time interval.

Java Web Start Help

Java Web Start gets its instructions from XML files that are sent to your browser when you click on a link to a file that usually ends with the ".jnlp" suffix. Our server associates the MIME type
with JNLP files, which means we're assuming your browser (or operating system) has been configured to kick off a helper application named javaws (or javaws.exe) when it encounters this MIME type. However, if you try to run one of our applications and your browser pops up a dialog that says it doesn't know how to handle the MIME type, just look for a program named javaws (or javaws.exe) on your system and add the association. If you don't find javaws all you have to do to get it is install the latest release of the Java Runtime Environment (JRE), which is available at from Sun if you're on a Windows, Linux, and Solaris platform.

Sun's main Java Web Start document is primarily for developers, but the FAQ page has a section of general questions that might be worth a quick look if you're having problems. There's also a discussion forum that's a good place to go for hints or problems that you just can't resolve. Finally we should note that if run a program named jcontrol or if you type something like

javaws -viewer
you'll start the Java Control Panel and if you go to the "Advanced" tab you'll be able to adjust some of the default security settings used by Java Web Start. For example, if you wanted you could get rid of the "sandbox warning banner" that by default is attached to all windows.


Yoix is a registered trademark of AT&T Inc.