Distributome Game

There are diverse kinds of natural processes and only a small finite number of well-described probability distribution models. One can gain intuition about the varieties of different processes and the characteristics of different probability distributions by interactively exploring their properties using the Distributome tools (calculators, simulators and experiments). The Probability Distributome Game Webapp enables this exploration of natural phenomena and models as a game of matching pairs of processes and distributions.

The goal of the Distributome Game is to correctly identify the correspondences between pairs of processes (represented as problems) and probability distributions (as models).

How to play?

  • The game board is a Cartesian plane where Rows and Columns represent problems/processes and distribution models, respectively.
  • As you move the mouse over the grid, the zoom-function automatically expands the Cartesian space around the mouse location. Matching Problem-Distribution pairs corresponding for the current location are highlighted.
  • Try to find which distribution(s) may represent good model(s) for the process described in the problem.
  • Use one mouse click on a cell in this 2D Cartesian plane to select and highlight a matching problem-distribution pair. Correct or incorrect matches are indicated by green and red cell background coloring, respectively.
  • Clicking on a highlighted cell provides access to appropriate Distributome tools for the selected distribution and optional hints for solving the problem.


The Distributome Game is available at:

  1. Source Code SVN: https://distributome.googlecode.com/svn/trunk/web_site/V3
  2. Webapp: http://www.distributome.org/V3/DistributomeGame.html

Updates/Expansions to the set of Problems/Processes would be easy (expand in this CSV format):

  1. Problem-Distribution Meta-Data SVN
  2. Current Meta-Data (CSV)

Future Improvements

  1. Always pick the same number of rows – say 20 picked randomly from problem database and add a clock so players try to beat their best time and score.  Score = # of guesses until all correct plus number of hints requested + 10*(#of seconds used).  Low scores are good.
  2.  After you make a selection the cell could stay the same color (red or green as the case may be) until the whole round is over (start-over button)?  That way players can know which problems they have completed and how many errors they have made total.
  3.  Label the columns with the distribution names and have them alphabetical so players can easily find the one they are looking for (this is related to the search functionality)
  4.  Perhaps allow for problems to be picked from the level of distributions appropriate (i.e., top level, middle level, or all).
  5.  Introduce three modes of play.
      1. Beginner mode = see the distribution descriptions and only have columns for the distributions used in the round of play.
      2. Intermediate mode = don’t see the distribution descriptions and only have columns for distributions used in the round of play.
      3. Advanced mode = don’t see the distribution descriptions and have columns for all distributions at level under use.
  6.  Another possibility may be to allow some way to enter numerical values of parameters when they are given in the problem.  For example, when you get a distribution correct (green rectangle) that has numerical answers to parameter values then a “bonus” box is seen with place(s) to enter parameter(s) and students get 1 bonus point for each correct parameter removed from their score.  This might detract from the flow of the game – but it would be nice to require parameter values where appropriate.

Distributome Navigator V.3: Status Update

This is an update on the recent developments of the Probability Distributome project:

(1) We have V.3 of the Navigator available online

(2) All these changes are pushed to:

(3) Documentation is available online:

(4) Further ongoing Distributome Developments:

  • The Distributome DB Editor is still being developed and will allow crowd-based contributions in editing, expanding, correcting and updating the Distributome Database.
  • Transition from Protovis to D3 JavaScript library.
  • Other features, improvements and customizations are also ongoing.
  • We are expanding the collection of tools (calc, sim, exp).
  • We are drafting additional activities.

Distributome XML Database: Types of distributions/nodes and relations/edges

The following types of Distributions (nodes) and relations (edges) are currently allowed. These may later be modified or expanded. These types are referred to in the Distributome.xml Database (see the HTML rendering of the XML).

Node (distribution) Types will be (full-Name and abbreviation)

  • 0 No Type Given
  • 1 Convolution (Conv)
  • 2 Memoryless (Mless)
  • 3 Inverse (Inv)
  • 4 Linear Combination (LinComb)
  • 5 Minimum (min)
  • 6 Maximum (max)
  • 7 Product (Prod)
  • 8 Conditional ResIDual (CondRes)
  • 9 Scaling (Scale)
  • 10 Simulate (Sim)
  • 11 Variate Generation(VGen)

Edge Types (directional distribution relations)

  • 0 No Type Given
  • 1 Special Case (SC)
  • 2 Transform (T)
  • 3 Limiting (Lim)
  • 4 Bayesian (Bayes)

Distributome Navigator Status: Preference Files and Tool Validation

Below is the status of the Probability Distributome Navigator which describes the new textbook based ontological classification of distributions, using a preference XML file, and the  current status of the integration of the Navigator and different Distributome tools (calculators, experiments, and simulators), also see the technical documentation.

Distribution  Calculator  Experiment  Simulator  Notes 
TopLevel Bernoulli OK missing missing
Binomial OK OK missing
OK missing OK
Geometric OK
missing missing
Hypergeometric OK OK missing
Multinomial missing missing missing
OK OK missing
Poisson OK
MiddleLevel Beta OK missing OK
Cauchy OK missing OK
Chi-Square OK missing OK
OK missing OK
Exponential OK
missing missing
(Fisher’s F)
OK missing OK
Gamma OK OK OK
Normal OK missing OK
Pareto OK missing OK


Updates and Dynamic Distribution Name-to-Resource Mapping

In March 2012, we expanded the collection of Distributome calculators, simulators and experiments.

In addition we introduced a new mechanism to infer the unique URLs (HTML wrappers) for the Distributome Tools (calculatorssimulators and experiments). When users navigate the Distributome universe, the second panel on the right side contains dynamic links to Sim, Calc and Exp that are specific for the user-selected distribution. These links need to be dynamically generated using the name of the Distribution. In distributome.js, this dynamic linking is accomplished via:

  • document.getElementById(‘distributome.calculator’).href = ‘./calc/’+firstChar+nodeName+’Calculator.html‘;
  • document.getElementById(‘distributome.experiment’).href = ‘./exp/’+firstChar+nodeName+’Experiment.html‘;
  • document.getElementById(‘distributome.simulation’).href = ‘./sim/’+firstChar+nodeName+’Simulation.html‘;

In Distributome Navigator these 3 HTML tags/fields are defined as:

  • <li><a href=“./calc/NormalCalculator.html” target=“_blank” title=“Interactive Distribution Calculator” id=distributome.calculator>Calculator</a></li>
  • <li><a href=“./exp/PoissonExperiment.html” target=“_blank” title=“Run Virtual Distribution Experiment” id=distributome.experiment>Experiment</a></li>
  • <li><a href=“./sim/NormalSimulation.html” target=“_blank” title=“Distribution Sampling and Simulation” id=distributome.simulation>Simulation</a></li>

We are looking for the best (most-efficient, most-reliable, most-scalable, most-extensible) solution to this mapping issue.

Distributome Blog allows LaTeX Post Editing Using MathJax

The Distributome Blog now allows editing using MathJax-based math typography. For example:

  • Typing \\( \\int\_{\\pi}^{\\infty}{\\ln (x) dx} \\), replace the “\\” by “\” to render the formula in the blog page,
  • Would generate this: \( \int_{\pi}^{\infty}{\ln (x) dx} \)
For hidden fields you need to use the following alternatives as analogues of commonly used TeX/LaTeX syntax (as the JavaScript code behind the MathJax and the Hidden-answers plug-ins are incompatible):
  • For equal-sign “=”, use the \( \\equiv \) symbol (\(\equiv \))
  • For vertical bar “|”, use \( \\vert \) symbol (\(\vert \))
  • There may be other LaTeX/TeX alternative symbols that may need to be used for MathJax math typesetting in hidden fields!

Distributome Navigator: Ontology/Hierarchical Graph Display

We introduced a new Distributome.xml.pref file, which allows customization of the look-and-feel of the Distributome Navigator and Editor.

One example of this customization is the ability to display hierarchically the Ontology of the collection of distributions contain in the Distributome XML DB. That is we have a mechanism to render the nodes and edges as 3 levels: Top, Middle or All/Complete levels (affording to the pref file). The figure below illustrates this new hierarchical Distributome Navigator display.

Distributome BibTeX citation manager

We have finalized the new format for the Distributome meta-data about (XML) distributions and relations (Distributome.xml) and (BiBTeX) bibliographical citations (Distributome.bib).

There is a new Distributome DB/Meta-data HTML validator which renders the entire database, including references and citation URL links into a dynamic HTML webpage.

Background/Initial Proposal

The Distributome meta-data editor will provide an interactive bibliography BibTeX citation manager. This prototype contains an example demonstrating how we can elegantly handle Citations/references (parsing, editing, writing, etc.) using pure HTML5/JavaScript:

  1. Background: Using BibTex-js project
  2. Example HTML (Distributome_BibTeX.html) that interactively consumes raw BiBTeX source files, converts them to JS/JSON and displays the references in HTML page.
  3. An example of raw BibTeX source file (BibTeX_ExampleCitations.bib). These BibTeX sources can easily be obtained by users from the “Citation Download” or “Export Citation” links on most publisher’s web-sites (See this example). So, these BiB sources are very easy to copy-paste into the Distributome References Editor Panel from another web-browser-window.
  4. A JavaScript library (bibtex_js.js), which we may need to extend, that allows parsing BiB files and generating the JSON constructs hat are then rendered in the HTML (example, during editing in the Bibliography/References panel of the Distributome Editor, or in the References tab of the Distributome Navigator, during

We decouple the references Section (Distributome_BibTeX.bib) from the main Distributome.xml DB, as the Distributome BiBTeX reference may increase to become very large (error prone). Thus we’ll need to have a way to reference publications (from Distributome_BibTeX.bib) into theDistributome.xml. This can be achieved by the DOI (Unique Digital Object Identifier) or the URL that every publication has. So inside the <cite>Publication_DOI_or_URL</cite> tag of distribution-nodes or relation-edges in the main Distributome.xml DB, we’ll just have pointers to unique DOI’s – the same unique DOI/URL will be available in the Distributome_BibTeX.bib source file. Hence we can pair the references by their unique DOIs/URLs.

Then inside the Distributome_BibTeX.bib, each reference will have its unique DOI – this will enable linking of Bibliographic/references meta-data contained in Distributome_BibTeX.bib (on-demand) from inside the Distributome.xml and the Navigator, itself. This may be an easy, clean and scalable approach.

There are many examples of resources for retrieving BibTeX publication references (bibliographic citations):

Below are examples of the second generation (V2) of the Distributome XML meta-data – this version decouples the meta information about distirbutions (nodes) and their relation (edges) from the reference citation management (using BibTeX):
Both the XML and the BibTeX files still need to be expanded, but they illustrate the integration (mapping) between distributions(nodes)/relations(edges) and the corresponding bibliographical references (citations) using the unique Digital Object Identifiers (DOI) or URL addresses, specific to each publication/citation. See

Distributome Update: December 07, 2011

  • Distributome Human XML DB Search. We modified the search functionality to include:
  • Bibliography (Reference Manager) – we are still exploring BibJSON. Jim’s Distributome BibJSON construct looks great. We just need to figure out how to computationally consume (parse, read, load) and produce (revise, update, modify, save) these references programmatically. Looking for specific tools and examples of how we can accomplish these 2 operations from the Distributome site/webapps? Are there open-source HTML5/JS parsers for BibJSON and how to tie these with the Distributome.xml DB?
  • Resource Debugging: For technical users, we’ve introduced an optional debugging functionality documented here. This is the infrastructure that we’ll be now populating.
  • Distributome Editor: We are in the process of implementing the user-interface for editing the XML DB meta-data in the browser. Aiming to complete this in the next 1-2 months.
  • Distributome Navigator Layered/Multiscale View: Trying to simplify the Navigator view by introducing hierarchical multiscale rendering of the Distributome DB (nodes and edges). We’re working on this and the approach is to employ a new Distributome.xml.pref (preferences file) that allows specifying diverse run-time Navigator behaviors, incl. the hierarchy of Distributions/Relations to display. Please have a look at the current (15+15+All) list of 3-level hierarchy and let us know if we need modifications. This functionality will be live in the next few weeks.