[kepler-dev] Problem with excess documentation being included in xml files?
Christopher Brooks
cxh at eecs.berkeley.edu
Wed Mar 12 21:20:27 PDT 2008
I just glanced through the demo Dan checked in and if you look at the
XML, it seems like it is copying the contents of the parent class
documentation into the xml file. Is this right?
It seems wrong because the xml files will be huge and will be out of
date if the parent class changes.
I'm not sure if it is a Kepler-only problem or a Ptolemy problem.
_Christopher
--------
higgins 08/03/12 20:22:47
Added: demos/Python PythonFileLineCounter.xml
Log:
Example of a PythonScript actor that opens a text file and then counts th
e number of lines in the file. This example just illustrates how to access t
he file system using Python. Many script based actions are thus possible usi
ng Python/Jython that otherwise would require Java programmng.
Revision Changes Path
1.1 kepler/demos/Python/PythonFileLineCounter.xml
Index: PythonFileLineCounter.xml
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<entity name="PythonFileLineCount" class="ptolemy.actor.TypedCompositeAct
or">
<property name="_createdBy" class="ptolemy.kernel.attributes.VersionA
ttribute" value="7.0.beta">
</property>
<property name="SDF Director" class="ptolemy.domains.sdf.kernel.SDFDi
rector">
<property name="iterations" class="ptolemy.data.expr.Parameter" v
alue="1">
</property>
<property name="vectorizationFactor" class="ptolemy.data.expr.Par
ameter" value="1">
</property>
<property name="allowDisconnectedGraphs" class="ptolemy.data.expr
.Parameter" value="false">
</property>
<property name="allowRateChanges" class="ptolemy.data.expr.Parame
ter" value="false">
</property>
<property name="constrainBufferSizes" class="ptolemy.data.expr.Pa
rameter" value="true">
</property>
<property name="period" class="ptolemy.data.expr.Parameter" value
="0.0">
</property>
<property name="synchronizeToRealTime" class="ptolemy.data.expr.P
arameter" value="false">
</property>
<property name="timeResolution" class="ptolemy.moml.SharedParamet
er" value="1E-10">
</property>
<property name="Scheduler" class="ptolemy.domains.sdf.kernel.SDFS
cheduler">
<property name="constrainBufferSizes" class="ptolemy.data.exp
r.Parameter" value="constrainBufferSizes">
</property>
</property>
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
cumentationAttribute">
<property name="description" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>null</configure></property>
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
><configure>Steve Neuendorffer</configure></property>
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
"><configure>null</configure></property>
<property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
urableAttribute"><configure>
<p>The SDF Director is often used to oversee fairly simple, sequential wo
rkflows in which the director can determine the order of actor invocation fr
om the workflow. Types of workflows that would run well under an SDF Directo
r include processing and reformatting tabular data, converting one data type
to another, and reading and plotting a series of data points. A workflow in
which an image is read, processed (rotated, scaled, clipped, filtered, etc.
), and then displayed, is also an example of a sequential workflow that requ
ires a director simply to ensure that each actor fires in the proper order (
i.e., that each actor executes only after it receives its required inputs).<
/p>
<p>The SDF Director is very efficient and will not tax system resources w
ith overhead. However, this efficiency requires that certain conditions be m
et, namely that the data consumption and production rate of each actor in an
SDF workflow be constant and declared. If an actor reads one piece of data
and calculates and outputs a single result, it must always read and output a
single token of data. This data rate cannot change during workflow executio
n and, in general, workflows that require dynamic scheduling and/or flow con
trol cannot use this director. Additionally, the SDF Director has no underst
anding of passing time (at least by default), and actors that depend on a no
tion of time may not work as expected. For example, a TimedPlotter actor wil
l plot all values at time zero when used in SDF. </p>
<p>By default, the SDF Director requires that all actors in its workflow
be connected. Otherwise, the director cannot account for concurrency between
disconnected workflow parts. Usually, a PN Director should be used for work
flows that contain disconnected actors; however, the SDF Director's allowDis
connectedGraphs parameter may also be set to true. The SDF Director will the
n schedule each disconnected "island" independently. The director cannot inf
er the sequential relationship between disconnected actors (i.e., nothing fo
rces the director to finish executing all actors on one island before firing
actors on another). However, the order of execution within each island shou
ld be correct. Usually, disconnected graphs in an SDF model indicate an erro
r.</p>
<p>Because SDF Directors schedule actors to fire only after they receive
their inputs, workflows that require loops (feeding an actor's output back i
nto its input port for further processing) can cause "deadlock" errors. The
deadlock errors occur because the actor depends on its own output value as a
n initial input. To fix this problem, use a SampleDelay actor to generate an
d inject an initial input value into the workflow.</p>
<p>The SDF Director determines the order in which actors execute and how
many times each actor needs to be fired to complete a single iteration of th
e workflow. This schedule is calculated BEFORE the director begins to iterat
e the workflow. Because the SDF Director calculates a schedule in advance, i
t is quite efficient. However, SDF workflows must be static. In other words,
the same number of tokens must be consumed/produced at every iteration of t
he workflow. Workflows that require dynamic control structures, such as a Bo
oleanSwitch actor that sends output on one of two ports depending on the val
ue of a 'control', cannot be used with an SDF Director because the number of
tokens on each output can change for each execution.</p>
<p>Unless otherwise specified, the SDF Director assumes that each actor c
onsumes and produces exactly one token per channel on each firing. Actors th
at do not follow the one-token-per-channel firing convention (e.g., Repeat o
r Ramp) must declare the number of tokens they produce or consume via the ap
propriate parameters. </p>
<p>The number of times a workflow is iterated is controlled by the direct
or's iterations parameter. By default, this parameter is set to "0". Note th
at "0" does not mean "no iterations." Rather, "0" means that the workflow wi
ll iterate forever. Values greater than zero specify the actual number of ti
mes the director should execute the entire workflow. A value of 1, meaning t
hat the director will run the workflow once, is often the best setting when
building an SDF workflow. </p>
<p>The amount of data processed by an SDF workflow is a function of both
the number of times the workflow iterates and the value of the director's ve
ctorizationFactor parameter. The vectorizationFactor is used to increase the
efficiency of a workflow by increasing the number of times actors fire each
time the workflow iterates. If the parameter is set to a positive integer (
other than 1), the director will fire each actor the specified number of tim
es more than normal. The default is 1, indicating that no vectorization shou
ld be performed. Keep in mind that changing the vectorizationFactor paramete
r changes the meaning of a nested SDF workflow and may cause deadlock in a w
orkflow that uses it. </p>
<p>The SDF Director has several advanced parameters that are generally on
ly relevant when an SDF workflow contains composite components. In most case
s the period, timeResolution, synchronizeToRealTime, allowRateChanges, timeR
esolution, and constrainBufferSizes parameters can be left at their default
values.</p>
<p>For more information about the SDF Director, see the Ptolemy documenta
tion (http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign3-domains/ptIIdes
ign3-domains.pdf).</p>
</configure></property>
<property name="prop:allowDisconnectedGraphs" class="ptolemy.kernel.util.
ConfigurableAttribute"><configure>Specify whether to allow disconnected acto
rs in the workflow (by default, all actors are required to be connected). If
disconnected actors are permitted, the SDF Director will schedule each disc
onnected 'island' independently. Nothing "forces" the director to finish exe
cuting all actors on one island before firing actors on another. However, th
e order of execution within each island should be correct. Usually, disconne
cted graphs in an SDF workflow indicate an error.</configure></property>
<property name="prop:allowRateChanges" class="ptolemy.kernel.util.Configu
rableAttribute"><configure>Specify whether dynamic rate changes are permitte
d or not. By default, rate changes are not permitted, and the director will
perform a check to disallow such workflows. If the parameter is selected, th
en workflows that require rate parameters to be modified during execution ar
e valid, and the SDF Director will dynamically compute a new schedule at run
time. This is an advanced parameter that can usually be left at its default
value.</configure></property>
<property name="prop:timeResolution" class="ptolemy.kernel.util.Configura
bleAttribute"><configure>The time precision used by this director. All time
values are rounded to the nearest multiple of this number. The value is a do
uble that defaults to "1E-10" (which is 10-10). This is an advanced paramete
r that can usually be left at its default value.</configure></property>
<property name="prop:constrainBufferSizes" class="ptolemy.kernel.util.Con
figurableAttribute"><configure>Specify whether buffer sizes are fixed. By de
fault, buffers are fixed, and attempts to write to the buffer that cause the
buffer to exceed its scheduled size result in an error. This is an advanced
parameter that can usually be left at its default value.</configure></prope
rty>
<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableA
ttribute"><configure>Specify the number of times a workflow is iterated. By
default, this parameter is set to "0". Note that "0" does not mean "no itera
tions." Rather, "0" means that the workflow will iterate forever. Values gre
ater than zero specify the actual number of times the director should execut
e the entire workflow. A value of 1, meaning that the director will run the
workflow once, is often the best setting when building an SDF workflow. </co
nfigure></property>
<property name="prop:vectorizationFactor" class="ptolemy.kernel.util.Conf
igurableAttribute"><configure>The vectorizationFactor is used to increase th
e efficiency of a workflow by increasing the number of times actors fire eac
h time the workflow iterates. If the parameter is set to a positive integer
(other than 1), the director will fire each actor the specified number of ti
mes more than normal. The default is 1, indicating that no vectorization sho
uld be performed. Keep in mind that changing the vectorizationFactor paramet
er changes the meaning of a nested SDF workflow and may cause deadlock in a
workflow that uses it. </configure></property>
<property name="prop:synchronizeToRealTime" class="ptolemy.kernel.util.Co
nfigurableAttribute"><configure>Specify whether the execution should synchro
nize to real time or not. By default, the director does not synchronize to r
eal time. If synchronize is selected, the director will only process the wor
kflow when elapsed real time matches the product of the period parameter and
the iteration count. Note: if the period parameter has a value of 0.0 (the
default), then selecting this parameter has no effect. This is an advanced p
arameter that can usually be left at its default value.</configure></propert
y>
<property name="prop:period" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>The time period of each iteration. The value is a double th
at defaults to 0.0, which means that the director does not increment workflo
w time. If the value greater than 0.0, the actor will increment workflow tim
e each time it fires. This is an advanced parameter that can usually be left
at its default value. </configure></property>
</property> <property name="entityId" class="org.kepler.moml.Named
ObjId" value="urn:lsid:kepler-project.org:director:1:1">
</property>
<property name="class" class="ptolemy.kernel.util.StringAttribute
" value="ptolemy.domains.sdf.kernel.SDFDirector">
<property name="id" class="ptolemy.kernel.util.StringAttribut
e" value="urn:lsid:kepler-project.org:directorclass:1:1">
</property>
</property>
<property name="semanticType00" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:1:1#Director">
</property>
<property name="semanticType11" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:2:1#Director">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" v
alue="{45, 35}">
</property>
</property>
<property name="_windowProperties" class="ptolemy.actor.gui.WindowPro
pertiesAttribute" value="{bounds={278, 49, 883, 802}, maximized=false}">
</property>
<property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute"
value="[600, 681]">
</property>
<property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertPar
ameter" value="1.0">
</property>
<property name="_vergilCenter" class="ptolemy.data.expr.ExpertParamet
er" value="{300.0, 340.5}">
</property>
<property name="Annotation" class="ptolemy.vergil.kernel.attributes.T
extAttribute">
<property name="_hideName" class="ptolemy.data.expr.SingletonPara
meter" value="true">
</property>
<property name="_hideAllParameters" class="ptolemy.data.expr.Para
meter" value="true">
</property>
<property name="textSize" class="ptolemy.data.expr.Parameter" val
ue="14">
</property>
<property name="textColor" class="ptolemy.actor.gui.ColorAttribut
e" value="{0.0, 0.0, 1.0, 1.0}">
</property>
<property name="fontFamily" class="ptolemy.data.expr.StringParame
ter" value="SansSerif">
</property>
<property name="bold" class="ptolemy.data.expr.Parameter" value="
false">
</property>
<property name="italic" class="ptolemy.data.expr.Parameter" value
="false">
</property>
<property name="text" class="ptolemy.kernel.util.StringAttribute"
value="This is an example of how the PythonScript actor can be used to exam
ine a file. In this case a file is simply opened and the number of line
in the text file are counted and displayed. In this case the entire file
is read into memory, which may cause a proble for very large text file
s. Dan Higgins March, 2008">
<property name="_style" class="ptolemy.actor.gui.style.TextSt
yle">
<property name="height" class="ptolemy.data.expr.Paramete
r" value="20">
</property>
<property name="width" class="ptolemy.data.expr.Parameter
" value="80">
</property>
</property>
</property>
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
cumentationAttribute">
<property name="description" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>null</configure></property>
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
><configure>Edward A. Lee</configure></property>
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
"><configure>null</configure></property>
<property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
urableAttribute"><configure>Use the Annotation attribute to annotate a workf
low. Double-click the attribute to customize the content, font size, color,
and basic formatting (bold and italics).</configure></property>
<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableA
ttribute"><configure>The font face. Select a font from the drop-down menu. T
he default is "SansSerif".</configure></property>
<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>Select to indicate that the type should be italics. By defa
ult, type will not be italicized.</configure></property>
<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribu
te"><configure>Select to indicate that the type should be bold. By default,
type will not be bold.</configure></property>
<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAt
tribute"><configure>The font color. Specify a string representing an array o
f four elements: red, green, blue, and alpha, where alpha is transparency. T
he default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAtt
ribute"><configure>The font size. Select an integer from the drop-down menu
or specify a new size by typing it directly into the value field. The defau
lt is 14.</configure></property>
<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribu
te"><configure>The text of the annotation.</configure></property>
</property> <property name="entityId" class="org.kepler.moml.Named
ObjId" value="urn:lsid:kepler-project.org:actor:436:1">
</property>
<property name="class" class="ptolemy.kernel.util.StringAttribute
" value="ptolemy.vergil.kernel.attributes.TextAttribute">
<property name="id" class="ptolemy.kernel.util.StringAttribut
e" value="urn:lsid:kepler-project.org:class:1199:1">
</property>
</property>
<property name="semanticType00" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
</property>
<property name="semanticType11" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" v
alue="[35.0, 240.0]">
</property>
</property>
<entity name="PythonScript" class="ptolemy.actor.lib.python.PythonScr
ipt">
<property name="script" class="ptolemy.kernel.util.StringAttribut
e" value="import os from ptolemy.data import IntToken class Main :&#
10; "Number of lines" def fire(self) : if not self.
input.hasToken(0) : return t = self.input.get(0) f
s = t.toString() # Note the fs includes quotes at both ends that mus
t be removed ! print 'File: '+fs[1:len(fs)-1] # will print to the te
rminal if open file = open(fs[1:len(fs)-1],'r') lines = file
.readlines(); cnt = len(lines) cwd = os.getcwd() # not use
d except in the next line; irrelevent to the workflow print 'current
working directory: ' + cwd # will print to the terminal if open st
= IntToken(cnt) self.output.broadcast(st) ">
</property>
<property name="entityId" class="org.kepler.moml.NamedObjId" valu
e="urn:lsid:localhost:entity:1:1">
</property>
<property name="class" class="ptolemy.kernel.util.StringAttribute
" value="ptolemy.actor.lib.python.PythonScript">
<property name="id" class="ptolemy.kernel.util.StringAttribut
e" value="null">
</property>
</property>
<property name="semanticType0" class="org.kepler.sms.SemanticType
" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
</property>
<property name="_editorFactory" class="ptolemy.vergil.toolbox.Tex
tEditorConfigureFactory">
<property name="attributeName" class="ptolemy.kernel.util.Str
ingAttribute" value="script">
</property>
</property>
<property name="_location" class="ptolemy.kernel.util.Location" v
alue="{320.0, 145.0}">
</property>
<port name="input" class="ptolemy.actor.TypedIOPort">
<property name="input"/>
</port>
<port name="output" class="ptolemy.actor.TypedIOPort">
<property name="output"/>
</port>
</entity>
<entity name="Constant" class="ptolemy.actor.lib.Const">
<property name="firingCountLimit" class="ptolemy.data.expr.Parame
ter" value="NONE">
</property>
<property name="NONE" class="ptolemy.data.expr.Parameter" value="
0">
</property>
<property name="value" class="ptolemy.data.expr.Parameter" value=
"property("KEPLER")+"/build.xml"">
</property>
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
cumentationAttribute">
<property name="description" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>null</configure></property>
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
><configure>null</configure></property>
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
"><configure>null</configure></property>
<property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
urableAttribute"><configure><p>The Constant actor outputs a constant, which
is specified by the value parameter. By default, the actor outputs the integ
er 1.</p>
<p>The actor can be used to output other types of values, e.g., a string
(such as "Hello") or a double (such as 1.2). The actor'
s output type matches the type of the specified value.</p>
<p>NOTE: If using a PN Director, the 'firingCountLimit' parameter is ofte
n set to a finite integer (e.g. '1') so that the workflow will terminate. </
p>
</configure></property>
<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>An output port that broadcasts the specified constant. By d
efault, the output is 1.</configure></property>
<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttr
ibute"><configure>A multiport that has no declared type (in other words, the
port can accept any data type: double, int, array, etc.) If the port is con
nected, the actor will not fire until the trigger port receives an input tok
en. Connecting the port is optional, but useful when scheduling the actor to
perform at a certain time.</configure></property>
<property name="prop:firingCountLimit" class="ptolemy.kernel.util.Configu
rableAttribute"><configure>The limit on the number of times the actor will f
ire. The default value is 'NONE', meaning there is no limit on the number of
time the constant will be provided to the output port. Any integer can be p
rovided as a value for this parameter.</configure></property>
<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttrib
ute"><configure>The value produced by the Constant actor. By default, the va
lue is the integer token 1. The value can be set to another type, e.g., a st
ring (such as "Hello") or a double (such as 1.2). The output type matches t
he type of the value specified here.</configure></property>
</property> <property name="entityId" class="org.kepler.moml.Named
ObjId" value="urn:lsid:kepler-project.org:actor:1:1">
</property>
<property name="class" class="ptolemy.kernel.util.StringAttribute
" value="ptolemy.actor.lib.Const">
<property name="id" class="ptolemy.kernel.util.StringAttribut
e" value="urn:lsid:kepler-project.org:class:877:1">
</property>
</property>
<property name="semanticType00" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:1:1#ConstantActor">
</property>
<property name="semanticType11" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:2:1#Constant">
</property>
<property name="kar" class="ptolemy.kernel.util.StringAttribute"
value="urn:lsid:kepler-project.org:kar:57:1">
</property>
<property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon"
>
<property name="attributeName" class="ptolemy.kernel.util.Str
ingAttribute" value="value">
</property>
<property name="displayWidth" class="ptolemy.data.expr.Parame
ter" value="40">
</property>
</property>
<property name="_location" class="ptolemy.kernel.util.Location" v
alue="[155.0, 140.0]">
</property>
</entity>
<entity name="Display" class="ptolemy.actor.lib.gui.Display">
<property name="_windowProperties" class="ptolemy.actor.gui.Windo
wPropertiesAttribute" value="{bounds={772, 542, 484, 208}, maximized=false}"
>
</property>
<property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute
" value="[484, 164]">
</property>
<property name="rowsDisplayed" class="ptolemy.data.expr.Parameter
" value="10">
</property>
<property name="columnsDisplayed" class="ptolemy.data.expr.Parame
ter" value="40">
</property>
<property name="suppressBlankLines" class="ptolemy.data.expr.Para
meter" value="false">
</property>
<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDo
cumentationAttribute">
<property name="description" class="ptolemy.kernel.util.ConfigurableAttri
bute"><configure>null</configure></property>
<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"
><configure>Yuhong Xiong, Edward A. Lee</configure></property>
<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute
"><configure>null</configure></property>
<property name="userLevelDocumentation" class="ptolemy.kernel.util.Config
urableAttribute"><configure><p>The Display actor reads tokens of any type vi
a its input multiport, and displays each token on a separate line in a text
display window.</p>
<p>Specify the size of the text display window with the rowsDisplayed and
columnsDisplayed parameters. Simply resizing the window onscreen does not p
ersistently change the size when the workflow is saved, closed, and then re-
opened. </p>
<p>If the input is a string token, then the actor strips the surrounding
quotation marks before displaying the value.</p>
<p>Select the suppressBlankLines parameter to specify that the actor not
add blank lines to the display. By default, the actor will add blank lines.<
/p>
<p>Note: this actor can consume large amounts of memory. It is not advisa
ble to use it to display large output streams.</p></configure></property>
<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttrib
ute"><configure>A multiport that accepts tokens of any type.</configure></pr
operty>
<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.Confi
gurableAttribute"><configure>Specify whether the actor should display blank
lines (the default) or suppress them.</configure></property>
<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.Configurab
leAttribute"><configure>The vertical size of the display, in rows. The value
is an integer that defaults to 10.</configure></property>
<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.Configu
rableAttribute"><configure>The horizontal size of the display, in columns. T
he value is an integer that defaults to 40.</configure></property>
<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttrib
ute"><configure>The title of the text display window. If specified, the valu
e will appear in the title bar of the text display window.</configure></prop
erty>
</property> <property name="entityId" class="org.kepler.moml.Named
ObjId" value="urn:lsid:kepler-project.org:actor:7:1">
</property>
<property name="class" class="ptolemy.kernel.util.StringAttribute
" value="ptolemy.actor.lib.gui.Display">
<property name="id" class="ptolemy.kernel.util.StringAttribut
e" value="urn:lsid:kepler-project.org:class:883:1">
</property>
</property>
<property name="semanticType00" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
</property>
<property name="semanticType11" class="org.kepler.sms.SemanticTyp
e" value="urn:lsid:localhost:onto:2:1#TextualOutput">
</property>
<property name="_location" class="ptolemy.kernel.util.Location" v
alue="[435.0, 180.0]">
</property>
</entity>
<relation name="relation" class="ptolemy.actor.TypedIORelation">
<property name="width" class="ptolemy.data.expr.Parameter" value=
"1">
</property>
</relation>
<relation name="relation2" class="ptolemy.actor.TypedIORelation">
<property name="width" class="ptolemy.data.expr.Parameter" value=
"1">
</property>
</relation>
<link port="PythonScript.input" relation="relation"/>
<link port="PythonScript.output" relation="relation2"/>
<link port="Constant.output" relation="relation"/>
<link port="Display.input" relation="relation2"/>
</entity>
_______________________________________________
Kepler-cvs mailing list
Kepler-cvs at ecoinformatics.org
http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-cvs
--------
More information about the Kepler-dev
mailing list