Main Page: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{merge|Domain of discourse|discuss=Talk:Domain of discourse#Proposed merge with Universe (mathematics)|date=May 2014}}
{{Infobox Software
{{bots|deny=AWB}}
| name                  = IBM OpenDX
In [[mathematics]], and particularly in [[set theory]] and the [[foundations of mathematics]], a '''universe''' is a [[class (set theory)|class]] that contains (as [[element (set theory)|element]]s) all the entities one wishes to consider in a given situation. There are several versions of this general idea, described in the following sections.
| logo                  = [[File:Opendx-logo.jpg|250px]]
| screenshot            = [[File:Opendx-screenshot2.jpg|250px]]
| caption                = visualization of a scalar field
| developer              =
| released              =
| frequently_updated    = yes<!-- Release version update? Don't edit this page, just click on the version number! -->
| latest_preview_version = Through [[Concurrent Versions System|CVS]]
| programming language  = mainly [[C (programming language)|C]]
| platform              = [[Cross-platform]]
| language              =
| status                = Active
| genre                  = [[List of graphing software|Plotting]]
| license                = [[IBM Public License]]
| website                = {{url|http://www.opendx.org}}
}}
'''OpenDX''' stands for '''Open Data Explorer''' and is [[IBM]]'s [[Scientific visualization|scientific data visualization]] [[software]]. <!-- OpenDX is a [[visualization (graphic)|visualization]] program for complex [[data]]. Complex meaning more than one [[dimension]]. --> It can handle complex domains (such as a mechanical [[gear]] or a human [[brain]]) along with [[measurement|measured]] or [[computer simulation|computed]] data. The data may be [[Scalar field|scalar]] (such as the concentration of a chemical agent in the brain), [[vector field|vector]] or [[tensor field|tensor]] fields (like the displacement or [[strain tensor]] fields when the gear is in action) at different points of the object. The points at which data is measured don't have to be equally spaced, and not need to be homogeneously spaced. The project started in 1991 as ''Visualization Data Explorer''.


==In a specific context==
<!--
Perhaps the simplest version is that ''any'' set can be a universe, so long as the object of study is confined to that particular set.
Many [[Computer program|programs]] make nice [[information graphic|graphs]] of a [[function (mathematics)|function]] like <math>y=f(x)</math>, or represent discrete points data <math>(x_i,y_i)</math> as a curve. [[OpenDx]] is oriented to more complex data is more complex data as a set of surface heights as a function of positions <math>z=f(x,y)</math> or arrays like <math>(x_i,y_i,z_i)</math>. -->
If the object of study is formed by the [[real number]]s, then the [[real line]] '''R''', which is the real number set, could be the universe under consideration.
Implicitly, this is the universe that [[Georg Cantor]] was using when he first developed modern [[naive set theory]] and [[cardinality]] in the 1870s and 1880s in applications to [[real analysis]].
The only sets that Cantor was originally interested in were [[subset]]s of '''R'''.


This concept of a universe is reflected in the use of [[Venn diagram]]s.
''OpenDX'' can produce 3D images with the quantities plotted as color or gray-scale coded, or as [[vector graphics|vectors]], [[Streamlines, streaklines, and pathlines|streamlines]] and ribbons. It allows the object to be sliced to obtain a view of the internal structure, and then represent the data on this slice plane as a height-coded graph. It can rotate the object to provide a view of the data from any angle, and allows [[Computer animation|animations]] of this motion to be made.
In a Venn diagram, the action traditionally takes place inside a large rectangle that represents the universe ''U''.
One generally says that sets are represented by circles; but these sets can only be subsets of ''U''.
The [[complement (set theory)|complement]] of a set ''A'' is then given by that portion of the rectangle outside of ''A'''s circle.
Strictly speaking, this is the [[complement (set theory)|relative complement]] ''U'' \ ''A'' of ''A'' relative to ''U''; but in a context where ''U'' is the universe, it can be regarded as the [[complement (set theory)|absolute complement]] ''A''<sup>C</sup> of ''A''.
Similarly, there is a notion of the [[nullary intersection]], that is the [[intersection (set theory)|intersection]] of [[0 (number)|zero]] sets (meaning no sets, not [[null set]]s).
Without a universe, the nullary intersection would be the set of absolutely everything, which is generally regarded as impossible; but with the universe in mind, the nullary intersection can be treated as the set of everything under consideration, which is simply ''U''.


These conventions are quite useful in the algebraic approach to basic set theory, based on [[Boolean lattice]]s.
== Graphical User Interface ==
Except in some non-standard forms of [[axiomatic set theory]] (such as [[New Foundations]]), the [[class (set theory)|class]] of all sets is not a Boolean lattice (it is only a [[relatively complemented lattice]]).
In contrast, the class of all subsets of ''U'', called the [[power set]] of ''U'', is a Boolean lattice.
The absolute complement described above is the complement operation in the Boolean lattice; and ''U'', as the nullary intersection, serves as the [[Greatest element|top element]] (or nullary [[meet (mathematics)|meet]]) in the Boolean lattice.
Then [[De Morgan's laws]], which deal with complements of meets and [[join (mathematics)|join]]s (which are [[union (set theory)|union]]s in set theory) apply, and apply even to the nullary meet and the nullary join (which is the [[empty set]]).


==In ordinary mathematics==
''OpenDX'' is based on the [[Motif (software)|Motif]] widget toolkit on top of the [[X Window System]]. Its [[graphical user interface]] has a wide variety of [[InterActor|interactors]], both direct and indirect. Direct interactors allow the user to directly manipulate images (e.g. [[rotate]] or [[Page zooming|zoom]]). Indirect interactors ([[Rotary dial|dials]], [[Switch statement|switches]], [[Button (computing)|buttons]], sliders) enable the user to control various aspects of her visualization. Interactors are ''smarter'' because they are data-driven. Interactors are auto-ranging and self-limiting. They examine the data and, depending on its type, will determine the [[minimum]] and [[maximum]] of the data, or create a list for an option [[menu (computing)|menu]] based on the data. The user can even set the label of the interactor based on some aspect of the data (e.g., [[Metadata (computing)|metadata]]).
However, once subsets of a given set ''X'' (in Cantor's case, ''X'' = '''R''') are considered, the universe may need to be a set of subsets of ''X''.
(For example, a [[topological space|topology]] on ''X'' is a set of subsets of ''X''.)
The various sets of subsets of ''X'' will not themselves be subsets of ''X'' but will instead be subsets of '''P'''''X'', the power set of ''X''.
This may be continued; the object of study may next consist of such sets of subsets of ''X'', and so on, in which case the universe will be '''P'''('''P'''''X'').
In another direction, the [[binary relation]]s on ''X'' (subsets of the [[Cartesian product]] {{Nowrap|''X'' × ''X'')}} may be considered, or [[function (mathematics)|function]]s from ''X'' to itself, requiring universes like {{Nowrap|'''P'''(''X'' × ''X'')}} or ''X''<sup>''X''</sup>.


Thus, even if the primary interest is ''X'', the universe may need to be considerably larger than ''X''.
[[File:opendx-screenshot.jpg|frame|none|OpenDX screen shot showing the Visual Program Editor and several interactors]]
Following the above ideas, one may want the '''superstructure''' over ''X'' as the universe.
This can be defined by [[structural recursion]] as follows:
* Let '''S'''<sub>0</sub>''X'' be ''X'' itself.
* Let '''S'''<sub>1</sub>''X'' be the [[union (set theory)|union]] of ''X'' and '''P'''''X''.
* Let '''S'''<sub>2</sub>''X'' be the union of '''S'''<sub>1</sub>''X'' and '''P'''('''S'''<sub>1</sub>''X'').
* In general, let '''S'''<sub>''n''+1</sub>''X'' be the union of '''S'''<sub>n</sub>''X'' and '''P'''('''S'''<sub>''n''</sub>''X'').
Then the superstructure over ''X'', written '''S'''''X'', is the union of '''S'''<sub>0</sub>''X'', '''S'''<sub>1</sub>''X'', '''S'''<sub>2</sub>''X'', and so on; or
: <math> \mathbf{S}X := \bigcup_{i=0}^{\infty} \mathbf{S}_{i}X \mbox{.} \! </math>


Note that no matter what set ''X'' is the starting point, the [[empty set]] {} will belong to '''S'''<sub>1</sub>''X''.
The data-driven concept is not simply for sliders, dials and option menus. It also applies to vector interactors. These will reconfigure themselves based on the dimensionality of the data. They will also auto-range themselves based on the maximum and minimum of each vector component.
The empty set is the [[von Neumann ordinal]] [0].
Then {[0]}, the set whose only element is the empty set, will belong to '''S'''<sub>2</sub>''X''; this is the von Neumann ordinal [1].
Similarly, {[1]} will belong to '''S'''<sub>3</sub>''X'', and thus so will {[0],[1]}, as the union of {[0]} and {[1]}; this is the von Neumann ordinal [2].
Continuing this process, every [[natural number]] is represented in the superstructure by its von Neumann ordinal.
Next, if ''x'' and ''y'' belong to the superstructure, then so does {{''x''},{''x'',''y''}}, which represents the [[ordered pair]] (''x'',''y'').
Thus the superstructure will contain the various desired Cartesian products.
Then the superstructure also contains [[function (mathematics)|function]]s and [[relation (mathematics)|relation]]s, since these may be represented as subsets of Cartesian products.
The process also gives ordered ''n''-tuples, represented as functions whose domain is the von Neumann ordinal [''n''].
And so on.


So if the starting point is just ''X'' = {}, a great deal of the sets needed for mathematics appear as elements of the superstructure over {}.
== Design ==
But each of the elements of '''S'''{} will be [[finite set]]s!
Each of the natural numbers belongs to it, but the set '''N''' of ''all'' natural numbers does not (although it is a ''subset'' of '''S'''{}).
In fact, the superstructure over {} consists of all of the [[hereditarily finite set]]s.
As such, it can be considered the ''universe of [[finitist mathematics]]''.
Speaking anachronistically, one could suggest that the 19th-century finitist [[Leopold Kronecker]] was working in this universe; he believed that each natural number existed but that the set '''N''' (a "[[completed infinity]]") did not.


However, '''S'''{} is unsatisfactory for ordinary mathematicians (who are not finitists), because even though '''N''' may be available as a subset of '''S'''{}, still the power set of '''N''' is not.
Data Explorer is a system of tools and user interfaces for visualizing data. In general terms the visualization of data can be considered a 3-stage process:
In particular, arbitrary sets of real numbers are not available.
So it may be necessary to start the process all over again and form '''S'''('''S'''{}).
However, to keep things simple, one can take the set '''N''' of natural numbers as given and form '''SN''', the superstructure over '''N'''.
This is often considered the ''universe of [[ordinary mathematics]]''.
The idea is that all of the mathematics that is ordinarily studied refers to elements of this universe.
For example, any of the usual [[constructions of the real numbers]] (say by [[Dedekind cut]]s) belongs to '''SN'''.
Even [[non-standard analysis]] can be done in the superstructure over a [[non-standard model]] of the natural numbers.


One should note a slight shift in philosophy from the previous section, where the universe was any set ''U'' of interest.
* Describing and importing data
There, the sets being studied were ''subset''s of the universe; now, they are ''members'' of the universe.
* Processing the data through a visualization program
Thus although '''P'''('''S'''''X'') is a Boolean lattice, what is relevant is that '''S'''''X'' itself is not.
* Presenting the resulting image.
Consequently, it is rare to apply the notions of Boolean lattices and Venn diagrams directly to the superstructure universe as they were to the power-set universes of the previous section.
Instead, one can work with the individual Boolean lattices '''P'''''A'', where ''A'' is any relevant set belonging to '''S'''''X''; then '''P'''''A'' is a subset of '''S'''''X'' (and in fact belongs to '''S'''''X''). In Cantor's case ''X'' = '''R''' in particular, arbitrary sets of real numbers are not available, so there it may indeed be necessary to start the process all over again.


==In set theory==
The principal components of '''OpenDX''' are
It is possible to give a precise meaning to the claim that '''SN''' is the universe of ordinary mathematics; it is a [[model theory|model]] of [[Zermelo set theory]], the [[axiomatic set theory]] originally developed by [[Ernst Zermelo]] in 1908.
Zermelo set theory was successful precisely because it was capable of axiomatising "ordinary" mathematics, fulfilling the programme begun by Cantor over 30 years earlier.
But Zermelo set theory proved insufficient for the further development of axiomatic set theory and other work in the [[foundations of mathematics]], especially [[model theory]].
For a dramatic example, the description of the superstructure process above cannot itself be carried out in Zermelo set theory!
The final step, forming '''S''' as an infinitary union, requires the [[axiom of replacement]], which was added to Zermelo set theory in 1922 to form [[Zermelo–Fraenkel set theory]], the set of axioms most widely accepted today.
So while ordinary mathematics may be done ''in'' '''SN''', discussion ''of'' '''SN''' goes beyond the "ordinary", into [[metamathematics]].


But if high-powered set theory is brought in, the superstructure process above reveals itself to be merely the beginning of a [[transfinite recursion]].
; Data model:  This is the set of definitions, rules, and conventions used to describe Data Explorer entities (including data fields, geometrical objects, and images).
Going back to ''X'' = {}, the empty set, and introducing the (standard) notation ''V''<sub>''i''</sub> for '''S'''<sub>''i''</sub>{}, ''V''<sub>0</sub> = {}, ''V''<sub>1</sub> = '''P'''{}, and so on as before.
But what used to be called "superstructure" is now just the next item on the list: ''V''<sub>ω</sub>, where ω is the first [[Infinity|infinite]] [[ordinal number]].
This can be extended to arbitrary [[ordinal number]]s:
: <math> V_{i} := \bigcup_{j<i} \mathbf{P}V_j \! </math>
defines ''V''<sub>''i''</sub> for ''any'' ordinal number ''i''.
The union of all of the ''V''<sub>''i''</sub> is the [[von Neumann universe]] ''V'':
: <math> V := \bigcup_{i} V_{i} \! </math>.
Note that every individual ''V''<sub>''i''</sub> is a set, but their union ''V'' is a [[proper class]].
The [[axiom of foundation]], which was added to [[Zermelo–Fraenkel set theory|ZF]] set theory at around the same time as the axiom of replacement, says that ''every'' set belongs to ''V''.


: ''[[Kurt Gödel]]'s [[constructible universe]] ''L'' and the [[axiom of constructibility]]''
; Data Prompter: A user interface for describing data to be imported into Data Explorer.
: ''[[Inaccessible cardinal]]s yield models of ZF and sometimes additional axioms, and are equivalent to the existence of the [[Grothendieck universe]] set''


==In category theory==
; Data Browser: A user interface for viewing a data file, determining the layout and organization of the data it contains, and transferring this information to the Data Prompter.
There is another approach to universes which is historically connected with [[category theory]].  This is the idea of a [[Grothendieck universe]].  Roughly speaking, a Grothendieck universe is a set inside which all the usual operations of set theory can be performed.  This version of a universe is defined to be any set for which the following axioms hold: <ref>Mac Lane 1998, p.22</ref>
# <math>x\in u\in U</math> implies <math>x\in U</math>
# <math>u\in U</math> and <math>v\in U</math> imply {''u'',''v''}, (''u'',''v''), and <math>u\times v\in U</math>.
# <math>x\in U</math> implies <math>\mathcal{P}x\in U</math> and <math>\cup x\in U</math>
# <math>\omega\in U</math> (here <math>\omega=\{0,1,2,...\}</math> is the set of all [[Ordinal number|finite ordinals]].)
# if <math>f:a\to b</math> is a surjective function with <math> a\in U</math> and <math>b\subset U</math>, then <math>b\in U</math>.


The advantage of a Grothendieck universe is that it is actually a ''set'', and never a proper class. The disadvantage is that if one tries hard enough, one can leave a Grothendieck universe.{{citation needed|date=December 2013}}
; Scripting Language: A high-level language for creating visualization programs. It can also be used directly in a command mode to perform various tasks. Visual programs—i.e., the visualization programs displayed in the Visual Program Editor window as ''networks'' of module icons—are also written in the scripting language. A visual program constructed in this window by the user is translated into the same language when it is saved to disk.


The most common use of a Grothendieck universe ''U'' is to take ''U'' as a replacement for the category of all sets.  One says that a set ''S'' is '''''U'''''-'''small''' if ''S'' ∈''U'', and '''''U'''''-'''large''' otherwise.  The category ''U''-'''Set''' of all ''U''-small sets has as objects all ''U''-small sets and as morphisms all functions between these sets.  Both the object set and the morphism set are sets, so it becomes possible to discuss the category of "all" sets without invoking proper classes. Then it becomes possible to define other categories in terms of this new category.  For example, the category of all ''U''-small categories is the category of all categories whose object set and whose morphism set are in ''U''.  Then the usual arguments of set theory are applicable to the category of all categories, and one does not have to worry about accidentally talking about proper classes.  Because Grothendieck universes are extremely large, this suffices in almost all applications.
; Visual Program Editor (VPE): A graphical user interface for creating and modifying visual programs (networks). Programs created with this editor are translated into the scripting language by Data Explorer and are stored in that form.


Often when working with Grothendieck universes, mathematicians assume the [[Tarski–Grothendieck set theory|Axiom of Universes]]: "For any set ''x'', there exists a universe ''U'' such that ''x'' ∈''U''."  The point of this axiom is that any set one encounters is then ''U''-small for some ''U'', so any argument done in a general Grothendieck universe can be applied.  This axiom is closely related to the existence of [[Inaccessible cardinal|strongly inaccessible cardinal]]s.
; Modules: The ''building blocks'' (visualization ''tools'') that constitute a visual program network. They can be directly accessed and manipulated in the ''Visual Program Editor''.


: '''''Set'''-like [[topos]]es''
; Module Builder: A user interface for creating customized modules to be used in visual programs.


==See also==
; Image Window: An interactive window for viewing and modifying the presentation of the image produced by a visual program.
* [[Herbrand universe]]
* [[Free object]]


==Notes==
; Control Panels: A user interface for changing the parameter values used by a visual program.
{{reflist}}


==References==
== Screen shots ==
*Mac Lane, Saunders (1998). ''Categories for the Working Mathematician''. Springer-Verlag New York, Inc.
 
=== Visualization of a scalar field ===
 
[[File:opendx-screenshot2.jpg|frame|none|OpenDX screen-shot showing visualization of a scalar field.]]
 
In this example we show the visualization of the flow of a particulated material (dust) inside a building. In this case the quantity visualized is a scalar, namely the concentration of the particles. The concentration of particles at each point in space is represented using colors. The reader can deduce the concentration by comparing the colors with the ''colorbar'' at the right upper corner of the image. To improve the visualization the drawing is shadowed as if it had an elevation in the direction normal to the plane proportional to the concentration. In '''OpenDX''' this is called the ''rubber-sheet'' effect.
 
=== Visualization of vector fields ===
 
{|
| [[File:opendx-cubcav1.jpg|300px]]
| [[File:opendx-cubcav2.jpg|300px]]
|-
| [[File:opendx-cubcav3.jpg|300px]]
| [[File:opendx-cubcav4.jpg|300px]]
|}
 
[[Vector fields]] are harder to visualize than scalar ones. Consider in this case
the flow in a cubic cavity (the 3D version of the well studied
[http://www.mathematik.uni-dortmund.de/~featflow/album/dc.html square cavity] benchmark. The use of [[Streamlines, streaklines, and pathlines|streamlines]] helps in realizing the direction of the flow. The ''rockets'' (the big red arrows on the top of the cavity) represent the imposed flow.
 
<!--
To be short, OpenDX is one of the best visualisation programs out there, and it is free ! Twenty years ago, when IBM made the program, there were big computer centers on campuses and research centers who could afford to buy the product for a lot of money. Then PCs became available and powerful, capable of running such a heavy program ; IBM on the other judged probably that the cost of maintenance of the program was higher than the revenue from it, and decided to opensource it.
The program was made by engineers for engineers, so it will seem a little heavy at the beginning. If however, you have complex data on a regular basis, it is definitively a good choice.
-->


==External links==
==External links==
*{{springer|title=Universe|id=p/u095770}}
*{{official website|http://www.opendx.org}} (out-of-date)
*{{MathWorld |title=Universal Set|id=UniversalSet}}
*[http://www.vizsolutions.com/ Commercial support, physical media] (out-of-date)
*[http://www-beams.colorado.edu/dxhdf5/ module] for reading [[HDF5]] files


{{DEFAULTSORT:Universe (Mathematics)}}
[[Category:Data visualization software]]
[[Category:Mathematical logic]]
[[Category:IBM software|OpenDX]]
[[Category:Set families]]
[[Category:Free software programmed in C]]

Revision as of 09:18, 11 August 2014

Template:Infobox Software OpenDX stands for Open Data Explorer and is IBM's scientific data visualization software. It can handle complex domains (such as a mechanical gear or a human brain) along with measured or computed data. The data may be scalar (such as the concentration of a chemical agent in the brain), vector or tensor fields (like the displacement or strain tensor fields when the gear is in action) at different points of the object. The points at which data is measured don't have to be equally spaced, and not need to be homogeneously spaced. The project started in 1991 as Visualization Data Explorer.


OpenDX can produce 3D images with the quantities plotted as color or gray-scale coded, or as vectors, streamlines and ribbons. It allows the object to be sliced to obtain a view of the internal structure, and then represent the data on this slice plane as a height-coded graph. It can rotate the object to provide a view of the data from any angle, and allows animations of this motion to be made.

Graphical User Interface

OpenDX is based on the Motif widget toolkit on top of the X Window System. Its graphical user interface has a wide variety of interactors, both direct and indirect. Direct interactors allow the user to directly manipulate images (e.g. rotate or zoom). Indirect interactors (dials, switches, buttons, sliders) enable the user to control various aspects of her visualization. Interactors are smarter because they are data-driven. Interactors are auto-ranging and self-limiting. They examine the data and, depending on its type, will determine the minimum and maximum of the data, or create a list for an option menu based on the data. The user can even set the label of the interactor based on some aspect of the data (e.g., metadata).

OpenDX screen shot showing the Visual Program Editor and several interactors

The data-driven concept is not simply for sliders, dials and option menus. It also applies to vector interactors. These will reconfigure themselves based on the dimensionality of the data. They will also auto-range themselves based on the maximum and minimum of each vector component.

Design

Data Explorer is a system of tools and user interfaces for visualizing data. In general terms the visualization of data can be considered a 3-stage process:

  • Describing and importing data
  • Processing the data through a visualization program
  • Presenting the resulting image.

The principal components of OpenDX are

Data model
This is the set of definitions, rules, and conventions used to describe Data Explorer entities (including data fields, geometrical objects, and images).
Data Prompter
A user interface for describing data to be imported into Data Explorer.
Data Browser
A user interface for viewing a data file, determining the layout and organization of the data it contains, and transferring this information to the Data Prompter.
Scripting Language
A high-level language for creating visualization programs. It can also be used directly in a command mode to perform various tasks. Visual programs—i.e., the visualization programs displayed in the Visual Program Editor window as networks of module icons—are also written in the scripting language. A visual program constructed in this window by the user is translated into the same language when it is saved to disk.
Visual Program Editor (VPE)
A graphical user interface for creating and modifying visual programs (networks). Programs created with this editor are translated into the scripting language by Data Explorer and are stored in that form.
Modules
The building blocks (visualization tools) that constitute a visual program network. They can be directly accessed and manipulated in the Visual Program Editor.
Module Builder
A user interface for creating customized modules to be used in visual programs.
Image Window
An interactive window for viewing and modifying the presentation of the image produced by a visual program.
Control Panels
A user interface for changing the parameter values used by a visual program.

Screen shots

Visualization of a scalar field

OpenDX screen-shot showing visualization of a scalar field.

In this example we show the visualization of the flow of a particulated material (dust) inside a building. In this case the quantity visualized is a scalar, namely the concentration of the particles. The concentration of particles at each point in space is represented using colors. The reader can deduce the concentration by comparing the colors with the colorbar at the right upper corner of the image. To improve the visualization the drawing is shadowed as if it had an elevation in the direction normal to the plane proportional to the concentration. In OpenDX this is called the rubber-sheet effect.

Visualization of vector fields

Vector fields are harder to visualize than scalar ones. Consider in this case the flow in a cubic cavity (the 3D version of the well studied square cavity benchmark. The use of streamlines helps in realizing the direction of the flow. The rockets (the big red arrows on the top of the cavity) represent the imposed flow.


External links