kernel package
supports clustered hierarchical graphs, which are collections of
entities and relations between those entities. Its
actor package extends the kernel so that entities have
functionality and can communicate via the relations. Its
domains extend the actor package by imposing models of computation
on the interaction between entities. Examples of
models of computation include discrete-event systems, dataflow,
process networks, synchronous/reactive systems, and communicating
sequential processes.
Ptolemy II includes a number of support packages, such as
data, providing a type system, data encapsulation and an
expression parser,
plot, providing visual display of data,
math, providing matrix and vector math and signal
processing functions, and
graph, providing graph-theoretic manipulations.
The Ptolemy Book describes the Ptolemy II design and the implementation of the Java classes.
Building Graphical Models describes how to use Vergil.
Ptolemy II includes a growing suite of domains, each of which realizes a model of computation. It also includes a component library, in which most components are domain polymorphic, in that they can operate in several of the domains. Most are also data polymorphic, in that they operate on several data types. The domains that have been implemented are listed below.
Domains that are reasonably mature:
The core of Ptolemy II 11.0.devel is 100% Java, so it should work on any platform that has JDK 1.6 or later.
We developed Ptolemy II 11.0.devel under Mac OS X, Windows and Linux with JDK1.7.0_25 and JDK1.8.0_11 Under MacOS 10.7.5, we were also able to use Java 1.6.0_26.
Ptolemy II 10.0 will not compile under Java 1.3 because we use the java.lang.URI class, which is present only in Java 1.4 and later. JDK 1.5 or later is required so that these packages can use generics: backtrack, ptalon and others. JDK 1.6 is required because ptdb uses javax.swing.GroupLayout and because of other changes.
In the past, Ptolemy II has been compiled and run under IBM JDK 1.6.0. However, the IBM JDK has not be tried recently. There are the following limitations under IBM JDK 1.6.0
Contents:
Below are the highlights of this release.
Description
Authors and one line description.
More text
For the current list of bugs, see Ptolemy II Bugs
and Kepler Bugs.
A few features and classes were removed outright.
directorMost models developed under Ptolemy II 1.0.1, 2.0.1, 3.0.2, 4.0.1, 5.0.2 or HyVisual 2.2-beta, 3.0, 4.0.1, 5.0.1, 6.0.2, 7.0.1, 8.0.1 and 10.0.1 should run under Ptolemy II 11.0.devel
The MoMLParser includes a list of backward compatibility filters that make certain changes on models when read, handling such issues as actors being moved or renamed and parameter names being changed. The filters themselves are defined in ptolemy.moml.filter. If you have developed your own actors under earlier versions of Ptolemy II by writing your own Java files, you should recompile all your java code with the new release. In theory, copying the .class files should work, but recompiling is safer.
Features that were new in previous Ptolemy II releases
Version 11.0.devel has the following limitations:
ptII11.0.devel.src.tar.gz)
requires GNU tar or WinZip. Solaris 2.5.1 tar will fail to
untar this file with a checksum error because the pathnames are longer
than 100 characters.
Note further that some of the .class names are longer than 31 characters, which may cause problems when downloading zip files on the Macintosh and using Stuffit.
#in_browser, then
Ptolemy II will invoke the User's web browser. Unfortunately, this
does not always work, especially under Windows.
The workaround is to exit Netscape and let Ptolemy II
start up your browser for you.vergil.jnlp file has spaces in it. The workaround is
to place your Ptolemy II tree in a directory that does not have spaces
in the path name if you plan on using Web Start.ptolemy.kernel.util.IllegalActionException: The file 'System.in' does not have any data. in .ReadStdIn.LineReader at ptolemy.actor.lib.io.LineReader._openAndReadFirstTwoLines(LineReader.java:344) at ptolemy.actor.lib.io.LineReader.fire(LineReader.java:225)
$PTII/bin/vergil org/ptolemy/ptango/demo/Exception/Exception.xml
ptolemy.kernel.util.IllegalActionException: Unable to login to XMPP server.
in .OccupancyAlert.XMPPGateway
Because:
SASL authentication DIGEST-MD5 failed: not-authorized
with the server up, the message is:
ptolemy.kernel.util.IllegalActionException: Error evaluating expression: "http://localhost:" + port + "/simulator#in_browser"
in .OccupancyAlert.link
Because:
Error evaluating expression: WebServer.getAttribute("deployedPort").getToken().intValue()
in .OccupancyAlert.port
Because:
The object on which method "getToken" is invoked on is null, but the method is not found or is not static.
in .OccupancyAlert.link
Because:
Error evaluating expression: "http://localhost:" + port + "/simulator#in_browser"
in .OccupancyAlert.link
Because:
Error evaluating expression: WebServer.getAttribute("deployedPort").getToken().intValue()
in .OccupancyAlert.port
Because:
The object on which method "getToken" is invoked on is null, but the method is not found or is not static.
at ptolemy.data.expr.Variable.validate(Variable.java:1532)
There are several known problems:
The PN domain documents that it locally handles mutations. However, this is currently not true in the implementation. For the basic PN model, this doesn't really matter, since mutations happen pretty much the same as they would otherwise. (i.e. they are non-deterministic in when they execute) However, for timed PN models, there is actually some expressiveness lost, since timed PN models can locally execute mutations deterministically.
Embedding a PN typed composite actor inside a non-process top level such as DE does not work. In fact embedding a process domain inside a non-process domain is likely to have problems. Profess Lee wrote:
Yes, it looks as if the code is designed so that process domains (PN, CSP) can only be used within process domains. I'm not sure to what extent this is a limitation of the process domains vs. a semantic problem. What would PN mean within DE? Since PN has no well-defined notion of a "firing", how would you assign time stamps to the outputs of a PN actor? By default in DE, the time stamps of the outputs of an actor match those of the inputs that triggered the firing. There is no such notion in PN.
Below are some of the limitations of Vergil, the Ptolemy II Graphical User Interface.
http://www.geocities.com/marcoschmidt.geo/java-libraries-pdf.html
export JAVAFLAGS=-Dsun.java2d.print.pipeline=pdl vergilThen edit the file by hand in Illustrator to add the transparency back in.
For limitations discovered after the release, see the Ptolemy II 11.0.devel website
Last Updated: $Date: 2015-01-28 06:14:50 +0100 (Wed, 28 Jan 2015) $