Ptolemy II
Ptolemy II [1][6] is an open-source software framework supporting experimentation with actor-oriented design. Actors are software components that execute concurrently and communicate through messages sent via interconnected ports. A model is a hierarchical interconnection of actors. In Ptolemy II, the semantics of a model is not determined by the framework, but rather by a software component in the model called a director, which implements a model of computation. The Ptolemy Project has developed directors supporting process networks (PN), discrete-events (DE), dataflow (SDF), synchronous/reactive(SR), rendezvous-based models, 3-D visualization, and continuous-time models. Each level of the hierarchy in a model can have its own director, and distinct directors can be composed hierarchically. A major emphasis of the project has been on understanding the heterogeneous combinations of models of computation realized by these directors. Directors can be combined hierarchically with state machines to make modal models [2]. A hierarchical combination of continuous-time models with state machines yields hybrid systems [3]; a combination of synchronous/reactive with state machines yields StateCharts [4] (the Ptolemy II variant is close to SyncCharts).
Ptolemy II has been under development since 1996; it is a successor to Ptolemy Classic, which was developed since 1990. The core of Ptolemy II is a collection of Java classes and packages, layered to provide increasingly specific capabilities. The kernel supports an abstract syntax, a hierarchical structure of entities with ports and interconnections. A graphical editor called Vergil supports visual editing of this abstract syntax. An XML concrete syntax called MoML provides a persistent file format for the models. Various specialized tools have been created from this framework, including HyVisual (for hybrid systems modeling), Kepler (for scientific workflows), VisualSense (for modeling and simulation of wireless networks), Viptos (for sensor network design), and some commercial products. Key parts of the infrastructure include an actor abstract semantics, which enables the interoperability of distinct models of computation with a well-defined semantics; a model of time (specifically, super-dense time, which enables interaction of continuous dynamics and imperative logic); and a sophisticated type system supporting type checking, type inference, and polymorphism. The type system has recently been extended to support user-defined ontologies [5]. Various experiments with synthesis of implementation code and abstractions for verification are included in the project.
References
[1]
Johan Eker, Jorn Janneck, Edward A. Lee, Jie Liu, Xiaojun
Liu, Jozsef Ludvig, Sonia Sachs, Yuhong Xiong.
Taming heterogeneity - the Ptolemy approach,
Proceedings of the IEEE, 91(1):127-144,
January 2003.
(Key citation for the Ptolemy project)
[2] Edward A. Lee. Finite State Machines and Modal Models in Ptolemy II, Technical report, EECS Department, University of California, Berkeley, UCB/EECS-2009-151, December, 2009.
[3] E. A. Lee and H. Zheng, "Operational Semantics of Hybrid Systems," Invited paper in Proceedings of Hybrid Systems: Computation and Control (HSCC) LNCS 3414, Zurich, Switzerland, March 9-11, 2005, pp.25-53.
[4] E. A. Lee, H. Zheng, "Leveraging Synchronous Language Principles for Heterogeneous Modeling and Design of Embedded Systems," EMSOFT '07, September 30 - October 3, 2007, Salzburg, Austria.
[5] M.-K. Leung, T. Mandl, E. A. Lee, E. Latronico, C. Shelton, S. Tripakis, and B. Lickly, "Scalable Semantic Annotation using Lattice-based Ontologies," ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems (MODELS), Denver, CO, USA, 4-9 October, 2009.
[6]Christopher Brooks, Edward A. Lee. Ptolemy II - Heterogeneous Concurrent Modeling and Design in Java, 11 February, 2010; Poster presented at the 2010 Berkeley EECS Annual Research Symposium (BEARS).
The Ptolemy Project web page contains much more information about the project. The work is conducted in the Department of Electrical Engineering and Computer Sciences of the University of California at Berkeley. The project is directed by Prof. Edward Lee. The project is named after Claudius Ptolemaeus, the second century Greek astronomer, mathematician, and geographer.
The Ptolemy project has a long history of folding in software contributions from off site developers, see the Ptolemy II FAQ for details.
Recent Releases and News
The Ptolemy II development sources are always available via Subversion.
Ptolemy II 8.0.1
was made available on October 28, 2010
Ptolemy II 8.0.1 includes the following major new work since the
previous release:
Ptolemy II 8.0.beta was made available on February 26, 2010
Ptolemy II 7.0.1
was made available on April 4, 2008.
Ptolemy II 7.0.1 includes
Ptolemy II 7.0.beta was made available on February 7, 2008
Ptolemy II 6.0.2
was made available on February 4, 2007
Ptolemy II 6.0 includes
Ptolemy II 6.0.1 was made available on January 15, 2006.
Ptolemy II 6.0.beta was made available on October 31, 2006.
Viptos 1.0.beta
was released on October 30, 2006. Viptos is an interface between
TinyOS
and
Ptolemy II.
TinyOS is an
event-driven operating system designed for sensor network nodes
that have very limited resources (e.g., 8K bytes of program
memory, 512 bytes of RAM). TinyOS, is used, for example, on the
Berkeley MICA motes, which are small wireless sensor nodes.
The Viptos1.0.beta release is a source only release that works
under Linux and Windows.
Ptolemy II 6.0.alpha was made available on October 2, 2006.
Viptos 5.1-alpha
was released on November 1, 2005.
Viptos is an interface between
TinyOS
and
Ptolemy II.
TinyOS is an
event-driven operating system designed for sensor network nodes
that have very limited resources (e.g., 8K bytes of program
memory, 512 bytes of RAM). TinyOS, is used, for example, on the
Berkeley MICA motes, which are small wireless sensor nodes.
The Viptos5.1-alpha release is a source only release that works
under Linux only. Under Windows, Viptos will not run TinyOS models,
though the models are viewable.
HyVisual 5.0.1
was released on October 7, 2005.
This release fixes a few bugs in the 5.0 release and includes
a standalone HyVisual-5.0.1 installer.
Ptolemy II 5.0.1
was made available on October 5, 2005.
This is a bug fix release only, no new features were added.
See the Ptolemy II 5.0.1
page for details.
Ptolemy II 5.0
was made available on July 21, 2005
Ptolemy II 5.0 includes
HyVisual 5.0-alpha
was made available on March 4, 2005
HyVisual is a Hybrid Systems Visual Modeler based on Ptolemy II.
The semantics of the Discrete Event and Continuous Time domains
have changed slightly between HyVisual-4.0.2 and HyVisual 5.0-alpha.
The semantics of HyVisual are described in the following paper:
Edward A. Lee and Haiyang Zheng, " Operational Semantics of Hybrid Systems," Invited paper in Proceedings of Hybrid Systems: Computation and Control (HSCC) LNCS 3414, Zurich, Switzerland, March 9-11, 2005.
Ptolemy II 4.0.1
was made available on August 4, 2004
Ptolemy II 4.0.1 includes
VisualSense 4.0.1
was made available on August 4, 2004
VisualSense is a visual editor and simulator for wireless sensor
network systems.
Older Releases
HyVisual 4.0.2
was made available on October 28, 2004.
HyVisual is a Hybrid Systems Visual Modeler based on Ptolemy II.
Ptolemy II 3.0.2 was made available on August 21, 2003.
Ptolemy II 3.0 includes a HSIF to Ptolemy converter, the expression language has been reworked and the code generator updated. It also includes a set of mature and experimental domains, and a more comprehensive actor library than previous releases.
HyVisual 2.2 was made available on January 28, 2003. HyVisual is a Hybrid Systems Visual Modeler based on Ptolemy II.
Ptolemy II 2.0.1 was made available on August 7, 2002
Other recent news about Ptolemy II can be found on the Projects page.
Ptolemy II 2.0.1 was the first release that includes a limited prototype of our code generation facility that will generate class files for non-hierarchical SDF models. This release also includes support for modal models, a Timed Multitasking domain and a Synchronous reactive domain.
The release is available in several formats, see the Ptolemy II 2.0.1 page.
Ptolemy II 1.0.1 was made available on March 19, 2001.
Ptolemy II 1.0.1 was the first major release to include Vergil, a graphical user interface supporting block diagram editing of Ptolemy II models. It also includes a set of mature and experimental domains, and a more comprehensive actor library than previous releases. Ptolemy II 1.0.1 supports an XML schema called MoML for specifying component-based models.
The release consists of on-line demonstrations and downloads.
Ptolemy II 0.4beta was made available on February 7, 2000. Ptolemy II 0.4beta was the second Ptolemy II release to include domains, actors, and applets of sufficient quality and architectural stability to use as models for development. The domain-polymorphic actor libraries, in the ptolemy.actor.lib and ptolemy.actor.gui packages are still small, but reasonably solid.
Ptolemy II 0.4beta supports an XML language called MoML for specifying component-based models. Chapter 2 of the Ptolemy II Design Document describes how to use MoML to create models.
The release consists of on-line demonstrations and downloads.
Ptolemy II 0.3 was made available on August 2, 1999. This release consists of domains, actors and applets to use as models for development and extensive documentation.
The demonstrations that we ran during the 1999 Ptolemy Miniconference, are available online.
The Ptolemy II 0.2devel snapshot release we used for the demonstrations is also available for downloading.
