[kepler-users] nil vs. null

Derik Barseghian barseghian at nceas.ucsb.edu
Wed Jun 2 17:11:22 PDT 2010


Hi Corinna,
If I understand correctly, you may just want:

s.equals("nil")?"NULL":s

(nil as a String) in your Expression Actor. I'm guessing when you used  
the Expression Evaluator you set s = nil, which is different from s =  
"nil".

Derik

On Jun 2, 2010, at 4:49 PM, Corinna Gries wrote:

> Hi,
>
> I am trying to run some simple range checks on sensor data coming  
> from a DataTurbine actor. I.e. filtering out those -99999 values and  
> replacing them with NULL. I have managed to replace them with nil  
> and that works well for graphing the data in Kepler, but I can't  
> insert the data into a database. The RecordAssembler seems to take  
> 'nil' as a string. The expression s.equals(nil)?null:s works in the  
> expression evaluator (i.e. returning object(null) when true) but  
> returns always false when I put it into an expression actor.
>
> What am I missing here? The workflow is attached, although it won't  
> work because I have the DT instance running on my localhost.
>
> thanks
> Corinna
> <?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="DTrule1" class="ptolemy.actor.TypedCompositeActor">
>    <property name="_createdBy"  
> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>    </property>
>    <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList">
>    </property>
>    <property name="entityId" class="org.kepler.moml.NamedObjId"  
> value="urn:lsid:kepler-project.org/ns/:1266:178:886">
>    </property>
>    <property name="duration"  
> class="ptolemy.actor.parameters.PortParameter" value="days * 24 * 60  
> * 60">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> PortParameter component specifies a persistent value, but can also  
> accept an updated/current value via an associated port. The current  
> value and the persistent value may differ.</ 
> p>

<p>There are a few situations where  
> PortParameter might not behave as expected:</p>
<ol>  
> 
<li>If PortParameter is used in a transparent composite  
> actor, then a token provided to a PortParameter will never be read.  
> A transparent composite actor is one without a director. Workaround:  
> Put a director in the composite actor. </ 
> li>
<li>Certain actors (such as the Integrator in CT)  
> read parameter values only during initialization. During  
> initialization, a PortParameter can only have a value set via the  
> parameter (it can't have yet received a token). So if the initial  
> value of the Integrator is set to the value of the PortParameter,  
> then it will see only the parameter value, never the value provided  
> via the port. Workaround: Use a RunCompositeActor to contain the  
> model with the Integrator. </li>
</ol>
</ 
> configure></property>
> <property name="prop:portParameter"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> specified persistent value. </configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:425:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.parameters.PortParameter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1189:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>        </property>
>        <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>        </property>
>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>        </property>
>        <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>            <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:black" y="20">-P-</text>
>      </svg>
>    </configure>
>        </property>
>        <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[260.0, 55.0]">
>        </property>
>    </property>
>    <property name="days"  
> class="ptolemy.actor.parameters.PortParameter" value="5">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> PortParameter component specifies a persistent value, but can also  
> accept an updated/current value via an associated port. The current  
> value and the persistent value may differ.</ 
> p>

<p>There are a few situations where  
> PortParameter might not behave as expected:</p>
<ol>  
> 
<li>If PortParameter is used in a transparent composite  
> actor, then a token provided to a PortParameter will never be read.  
> A transparent composite actor is one without a director. Workaround:  
> Put a director in the composite actor. </ 
> li>
<li>Certain actors (such as the Integrator in CT)  
> read parameter values only during initialization. During  
> initialization, a PortParameter can only have a value set via the  
> parameter (it can't have yet received a token). So if the initial  
> value of the Integrator is set to the value of the PortParameter,  
> then it will see only the parameter value, never the value provided  
> via the port. Workaround: Use a RunCompositeActor to contain the  
> model with the Integrator. </li>
</ol>
</ 
> configure></property>
> <property name="prop:portParameter"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> specified persistent value. </configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:425:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.parameters.PortParameter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1189:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>        </property>
>        <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>        </property>
>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>        </property>
>        <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>            <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:black" y="20">-P-</text>
>      </svg>
>    </configure>
>        </property>
>        <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[260.0, 35.0]">
>        </property>
>    </property>
>    <property name="startTime"  
> class="ptolemy.actor.parameters.PortParameter" value="" 
> 2009-09-01 00:00:00"">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> PortParameter component specifies a persistent value, but can also  
> accept an updated/current value via an associated port. The current  
> value and the persistent value may differ.</ 
> p>

<p>There are a few situations where  
> PortParameter might not behave as expected:</p>
<ol>  
> 
<li>If PortParameter is used in a transparent composite  
> actor, then a token provided to a PortParameter will never be read.  
> A transparent composite actor is one without a director. Workaround:  
> Put a director in the composite actor. </ 
> li>
<li>Certain actors (such as the Integrator in CT)  
> read parameter values only during initialization. During  
> initialization, a PortParameter can only have a value set via the  
> parameter (it can't have yet received a token). So if the initial  
> value of the Integrator is set to the value of the PortParameter,  
> then it will see only the parameter value, never the value provided  
> via the port. Workaround: Use a RunCompositeActor to contain the  
> model with the Integrator. </li>
</ol>
</ 
> configure></property>
> <property name="prop:portParameter"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> specified persistent value. </configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:425:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.parameters.PortParameter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1189:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>        </property>
>        <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>        </property>
>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>        </property>
>        <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>            <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:black" y="20">-P-</text>
>      </svg>
>    </configure>
>        </property>
>        <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{260.0, 15.0}">
>        </property>
>    </property>
>    <property name="sampleInterval"  
> class="ptolemy.data.expr.Parameter" value="60">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>null</ 
> configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:420:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.data.expr.Parameter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1184:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>        </property>
>        <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>        </property>
>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>            <property name="_color"  
> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>            </property>
>        </property>
>        <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>            <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:blue" y="20">-P-</text>
>      </svg>
>    </configure>
>        </property>
>        <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{260, 80}">
>        </property>
>    </property>
>    <property name="maxLengthOfDataArrays"  
> class="ptolemy.data.expr.Parameter" value="(duration/sampleInterval)">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>null</ 
> configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:420:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.data.expr.Parameter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1184:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>        </property>
>        <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>        </property>
>        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
>            <property name="_color"  
> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>            </property>
>        </property>
>        <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>            <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:blue" y="20">-P-</text>
>      </svg>
>    </configure>
>        </property>
>        <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[260.0, 100.0]">
>        </property>
>    </property>
>    <property name="_windowProperties"  
> class="ptolemy.actor.gui.WindowPropertiesAttribute"  
> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>    </property>
>    <property name="_vergilSize"  
> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>    </property>
>    <property name="_vergilZoomFactor"  
> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>    </property>
>    <property name="_vergilCenter"  
> class="ptolemy.data.expr.ExpertParameter" value="{640.5, 420.0}">
>    </property>
>    <property name="PN Director"  
> class="ptolemy.domains.pn.kernel.PNDirector">
>        <property name="timeResolution"  
> class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
>        </property>
>        <property name="initialQueueCapacity"  
> class="ptolemy.data.expr.Parameter" value="1">
>        </property>
>        <property name="maximumQueueCapacity"  
> class="ptolemy.data.expr.Parameter" value="65536">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Mudit  
> Goel, Edward A. Lee, Xiaowen Xin</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy 
> .kernel.util.ConfigurableAttribute"><configure>
<p>PN  
> Directors are natural candidates for managing workflows that require  
> parallel processing on distributed computing systems. PN workflows  
> are powerful because they have few restrictions. On the other hand,  
> they can be very inefficient.</p>

<p>The  
> Process Network (PN) Director is similar to the SDF Director in that  
> it does not have a notion of time. However, unlike the SDF Director,  
> the PN Director does not statically calculate firing schedules.  
> Instead, a PN workflow is driven by data availability: tokens are  
> created on output ports whenever input tokens are available and the  
> outputs can be calculated. Output tokens are passed to connected  
> actors, where they are held in a buffer until that next actor  
> collects all required inputs and can fire. The PN Director finishes  
> executing a workflow only when there are no new data token sources  
> anywhere in the workflow. </p>

<p>The same  
> execution process that gives the PN Director its flexibility can  
> also lead to some unexpected results: workflows may refuse to  
> automatically terminate because tokens are always generated and  
> available to downstream actors, for example. If one actor fires at a  
> much higher rate than another, a downstream actor's memory buffer  
> may overflow, causing workflow execution to fail.</ 
> p>

 <p>There are at least three ways for a PN  
> model to terminate itself:
 <ol>
 <li>Have the  
> model starve itself.  Typically, a boolean switch is used.
 See  
> the PN OrderedMerge demo at
  <code>ptolemy/domains/pn/ 
> demo/OrderedMerge/OrderedMerge.xml</code></li>

  
> <li>Have the model call the Stop actor.  See the PN  
> RemoveNilTokens demo at
  <code>ptolemy/domains/pn/demo/ 
> RemoveNilTokens/RemoveNilTokens.xml</code></ 
> li>

 <li>Set the <i>firingCountLimit</ 
> i> actor
 parameter to the number of iterations desired.   
> Actors such as Ramp
 extend LimitedFiringSource and have the  
> <i>firingCountLimit</i> parameter.</li>
 </ 
> ol></p>
</configure></property>
> <property name="prop:initialQueueCapacity"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> initial size of the queues for each communication channel. The value  
> is an integer that defaults to 1. This is an advanced parameter that  
> can usually be left at its  default value.</configure></property>
> <property name="prop:maximumQueueCapacity"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> maximum size of the queues for each communication channel. The value  
> is an integer that defaults to 65536. To specify unbounded queues,  
> set the value to 0. This is an advanced parameter that can usually  
> be left at its  default value.</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:director:2:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.domains.pn.kernel.PNDirector">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:2:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Director">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Director">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{125, 55}">
>        </property>
>    </property>
>    <port name="duration"  
> class="ptolemy.actor.parameters.ParameterPort">
>        <property name="input"/>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{240.0, 50.0}">
>        </property>
>    </port>
>    <port name="days" class="ptolemy.actor.parameters.ParameterPort">
>        <property name="input"/>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{240.0, 30.0}">
>        </property>
>    </port>
>    <port name="startTime"  
> class="ptolemy.actor.parameters.ParameterPort">
>        <property name="input"/>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{240.0, 10.0}">
>        </property>
>    </port>
>    <entity name="DataTurbine"  
> class="org.kepler.data.datasource.dataturbine.DataTurbine">
>        <property name="DataTurbine Address"  
> class="ptolemy.actor.parameters.PortParameter"  
> value=""localhost:3333"">
>        </property>
>        <property name="Sink Mode"  
> class="ptolemy.data.expr.Parameter" value="Request">
>        </property>
>        <property name="Start Time (for Request or Subscribe modes)"  
> class="ptolemy.actor.parameters.PortParameter" value="startTime">
>        </property>
>        <property name="Duration (for Request or Subscribe modes)"  
> class="ptolemy.actor.parameters.PortParameter" value="duration">
>        </property>
>        <property name="Reference (for Request or Subscribe modes)"  
> class="ptolemy.data.expr.Parameter" value="absolute">
>        </property>
>        <property name="Block Timeout (ms) (for Fetch)"  
> class="ptolemy.data.expr.Parameter" value="15000">
>        </property>
>        <property name="Output Data Type"  
> class="ptolemy.data.expr.Parameter" value="Record of 2 arrays">
>        </property>
>        <property name="Pad data gaps with nils"  
> class="ptolemy.data.expr.Parameter" value="false">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Derik  
> Barseghian</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
The  
> DataTurbine actor retrieves data from a RBNB
				DataTurbine  
> server and
 outputs it as DoubleTokens. Sink mode
				 
> Request has been tested beneath SDF, 
 Monitor and  
> Subscribe
				modes briefly in PN.</configure></property>
> <property name="prop:Sink Mode"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
				 
> Sink mode.
				<br></br>
				<ul>
					 
> <li>"Request": Initiates a request for a specific  
> time slice of
						data.</li>
					 
> <li>"Subscribe": Starts a continuous feed of data on  
> the specified
						channels to this sink, for retrieval. Each  
> block retrieved will be
						duration time units in length.</ 
> li>
					<li>"Monitor": Similar to Subscribe,  
> but allows for continuous
						frames of data without gaps.</ 
> li>
				</ul>
			</configure></property>
> <property name="prop:Block Timeout (ms) (for Fetch)"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> amount of time (ms) to wait for data to become
				available.  
> Use 0 for no delay or any negative number for an infinite
				 
> delay.</configure></property>
> <property name="prop:Output Data Type"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Format  
> of output datapoint and timestamp pairs: Record of
				2 Arrays,  
> or an Array of X Records.</configure></property>
> <property name="prop:Duration (for Request or Subscribe modes)"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> duration of the request. Unit is seconds unless
				fetchByFrame  
> is set.</configure></property>
> <property name="prop:Start Time (for Request or Subscribe modes)"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Start  
> time for Request mode. "yyyy-MM-dd
				HH:mm:ss"</ 
> configure></property>
> <property name="prop:Reference (for Request or Subscribe modes)"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>For
				 
> Subscribe mode: Any of "newest",  
> "oldest",
				"absolute", "next",  
> or "previous".
				<br></br>
				For  
> Request mode:
				<ul>
					 
> <li>"absolute" -- The start parameter is absolute  
> time
						from midnight, Jan 1st, 1970 UTC.</li>
					 
> <li>"newest" -- The start parameter is measured from  
> the
						most recent data available in the server at the time  
> this request
						is received. Note that for this case, the  
> start parameter actually
						represents the end of the  
> duration, and positive times proceed
						toward oldest  
> data.</li>
					<li>"oldest" -- As  
> "newest", but relative to
						the oldest data.</ 
> li>
					<li>"aligned" -- As  
> "newest", but rather than
						per channel, this is  
> relative to the newest for all of the
						channels.</ 
> li>
					<li>"after" -- A combination between  
> "absolute"
						and "newest", this flag  
> causes the server to return the
						newest data available  
> after the specified start time. Unlike
						"newest",  
> you do not have to request the data to find
						out that you  
> already have it. Unlike "absolute", a gap
						may be  
> inserted in the data to provide you with the freshest data.
					 
> </li>
					<li>"modified" -- Similar to  
> "after", but
						attempts to return a duration's  
> worth of data in a contiguous
						block. If the data is not  
> available after the start time, it will
						be taken from  
> before the start time.</li>
					 
> <li>"next" - gets the data that immediately follows  
> the
						time range specified. This will skip over gaps.</ 
> li>
					<li>"previous" - get the data that  
> immediately preceeds
						the time range specified. This will  
> skip over gaps.</li>
				</ul>
			</configure></ 
> property>
> <property name="prop:DataTurbine Address"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The URL  
> to the DataTurbine Server</configure></property>
> <property name="prop:Pad data gaps with nils"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Will  
> attempt to identify and pad gappy data with pairs of
				 
> timestamps and nils Need at least 2 samples to be able to  
> pad.
			</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:179:6 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.data.datasource.dataturbine.DataTurbine">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:550:6 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#RemoteInputActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#RemoteInput">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[95.0, 545.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:550:6 
> ">
>        </property>
>        <port name="CrystalBogBuoy/RECORD"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/airTemp"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/c3Temp"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/cdom"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/chloro"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/dataloggerBatt"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/doptoPPM"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/doptoSat"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/doptoTemp"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/phyco"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/radioBatt"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/relHum"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(1)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(10)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(2)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(3)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(4)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(5)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(6)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(7)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(8)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/tempLine(9)"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="CrystalBogBuoy/windSpd"  
> class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>    </entity>
>    <entity name="Record Disassembler"  
> class="ptolemy.actor.lib.RecordDisassembler">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong  
> Xiong</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy 
> .kernel.util.ConfigurableAttribute"><configure>
<p>The  
> RecordDisassembler actor receives a record, which it disassembles  
> and outputs via user-specified output ports. The actor reads and  
> disassembles one record each time it fires.</ 
> p>

<p>A record is a composite data type consisting  
> of one or more elements. Each element is named and can have a  
> distinct type. For example, {number=1, name="dog"} is a  
> record containing two elements. The first element, named  
> "number", contains an integer value. The second element,  
> named "name", contains a string value. </ 
> p>

<p>The name of each record element must match  
> the name of a user-specified output port. For example, if the input  
> record is {day="Monday", week=5, month=12}, the output  
> ports must be named "Monday", "week" and  
> "month". If the record contains more fields than the actor  
> has output ports, the extra fields are ignored.</p>

</ 
> configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a record, which the actor will disassemble.  
> </configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:180:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.RecordDisassembler">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:924:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#RecordActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[205.0, 205.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:48:1 
> ">
>        </property>
>        <port name="timestamps" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>        <port name="data" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>        </port>
>    </entity>
>    <entity name="Array To Sequence"  
> class="ptolemy.domains.sdf.lib.ArrayToSequence">
>        <property name="arrayLength"  
> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>        </property>
>        <property name="enforceArrayLength"  
> class="ptolemy.data.expr.Parameter" value="false">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>unknown</ 
> configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> ArrayToSequence actor  outputs the individual values of an array as  
> a sequence of tokens.</p>

<p>The actor can  
> accept an array with any element type (e.g., int, double, etc.).  
> Each time the actor fires, it reads and disassembles one array and  
> outputs a sequence of values.</p>

<p>The  
> arrayLength parameter can be used to specify the length of the  
> source array. If the enforceArrayLength parameter is selected, then  
> the actor will only accept arrays of the specified length. The  
> enforceArrayLength parameter should be selected if using an SDF  
> director. If using other directors, such as DE or PN, the  
> enforceArrayLength parameter can be deselected, in which case the  
> arrayLength parameter is ignored.</p>

<p>The  
> ArrayToSequence actor is similar to the ArrayToElements actor,  
> except that it outputs values as a sequence via a single output  
> port. The ArrayToElements actor outputs individual values on  
> multiple channels of the output port. Use the ArrayAccumulator actor  
> to convert an array into a single string, where each value is  
> separated by a specified separator.</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts an array of elements of any type.</ 
> configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a sequence of the disassembled array  
> values. </configure></property>
> <property name="prop:enforceArrayLength"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify  
> whether or not to enforce the arrayLength parameter. By default, the  
> arrayLength is enforced, and the actor will only accept arrays of  
> the specified length.</configure></property>
> <property name="prop:arrayLength"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> size of the input array. The default is 1.</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:186:2 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.domains.sdf.lib.ArrayToSequence">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:907:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ArrayActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataArrayOperation">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[330.0, 175.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:31:1 
> ">
>        </property>
>    </entity>
>    <entity name="Array To Sequence2"  
> class="ptolemy.domains.sdf.lib.ArrayToSequence">
>        <property name="arrayLength"  
> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>        </property>
>        <property name="enforceArrayLength"  
> class="ptolemy.data.expr.Parameter" value="false">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>unknown</ 
> configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> ArrayToSequence actor  outputs the individual values of an array as  
> a sequence of tokens.</p>

<p>The actor can  
> accept an array with any element type (e.g., int, double, etc.).  
> Each time the actor fires, it reads and disassembles one array and  
> outputs a sequence of values.</p>

<p>The  
> arrayLength parameter can be used to specify the length of the  
> source array. If the enforceArrayLength parameter is selected, then  
> the actor will only accept arrays of the specified length. The  
> enforceArrayLength parameter should be selected if using an SDF  
> director. If using other directors, such as DE or PN, the  
> enforceArrayLength parameter can be deselected, in which case the  
> arrayLength parameter is ignored.</p>

<p>The  
> ArrayToSequence actor is similar to the ArrayToElements actor,  
> except that it outputs values as a sequence via a single output  
> port. The ArrayToElements actor outputs individual values on  
> multiple channels of the output port. Use the ArrayAccumulator actor  
> to convert an array into a single string, where each value is  
> separated by a specified separator.</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts an array of elements of any type.</ 
> configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a sequence of the disassembled array  
> values. </configure></property>
> <property name="prop:enforceArrayLength"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify  
> whether or not to enforce the arrayLength parameter. By default, the  
> arrayLength is enforced, and the actor will only accept arrays of  
> the specified length.</configure></property>
> <property name="prop:arrayLength"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> size of the input array. The default is 1.</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:187:2 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.domains.sdf.lib.ArrayToSequence">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:907:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ArrayActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataArrayOperation">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[325.0, 315.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:31:1 
> ">
>        </property>
>    </entity>
>    <entity name="generalRangeCheck"  
> class="ptolemy.actor.TypedCompositeActor">
>        <property name="_createdBy"  
> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>        </property>
>        <property name="entityId" class="org.kepler.moml.NamedObjId"  
> value="urn:lsid:kepler-project.org/ns/:1266:189:294">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.TypedCompositeActor">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Actor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#GeneralPurpose">
>        </property>
>        <property name="semanticType22"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Workflow">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong  
> Xiong</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A  
> Composite actor is an aggregation of actors. It may have a local  
> director that is responsible for executing the contained actors. A  
> Composite actor with a local director is called an opaque actor.  
> Composite actors do not require a local director. Composite actors  
> with no local director "inherit" the director from the  
> containing workflow and are called non-opaque.</ 
> p>

<p>To create a composite actor, drag and drop  
> the Composite actor onto the Workflow canvas. Right-click the actor  
> and select Open Actor from the drop-down menu. A new Kepler  
> application window will open for designing the composite.</p></ 
> configure></property>
> </property>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[580.0, 305.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1 
> ">
>        </property>
>        <property name="_windowProperties"  
> class="ptolemy.actor.gui.WindowPropertiesAttribute"  
> value="{bounds={16, 22, 1189, 916}, maximized=false}">
>        </property>
>        <property name="_vergilSize"  
> class="ptolemy.actor.gui.SizeAttribute" value="[872, 754]">
>        </property>
>        <property name="_vergilZoomFactor"  
> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>        </property>
>        <property name="_vergilCenter"  
> class="ptolemy.data.expr.ExpertParameter" value="{436.0, 377.0}">
>        </property>
>        <property name="upperLimit"  
> class="ptolemy.data.expr.Parameter" value="50">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>null</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:420:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.data.expr.Parameter">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1184:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>            </property>
>            <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>            </property>
>            <property name="_icon"  
> class="ptolemy.vergil.icon.ValueIcon">
>                <property name="_color"  
> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>                </property>
>            </property>
>            <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>                <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:blue" y="20">-P-</text>
>      </svg>
>    </configure>
>            </property>
>            <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{215, 35}">
>            </property>
>        </property>
>        <property name="lowerLimit"  
> class="ptolemy.data.expr.Parameter" value="10">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>null</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:420:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.data.expr.Parameter">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1184:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Parameter">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Parameter">
>            </property>
>            <property name="_hideName"  
> class="ptolemy.kernel.util.SingletonAttribute">
>            </property>
>            <property name="_icon"  
> class="ptolemy.vergil.icon.ValueIcon">
>                <property name="_color"  
> class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
>                </property>
>            </property>
>            <property name="_smallIconDescription"  
> class="ptolemy.kernel.util.SingletonConfigurableAttribute">
>                <configure>
>      <svg>
>        <text x="20" style="font-size:14; font-family:SansSerif;  
> fill:blue" y="20">-P-</text>
>      </svg>
>    </configure>
>            </property>
>            <property name="_editorFactory"  
> class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[215.0, 55.0]">
>            </property>
>        </property>
>        <port name="flagIn" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[20.0, 470.0]">
>            </property>
>        </port>
>        <port name="flagOut" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[770.0, 455.0]">
>            </property>
>        </port>
>        <port name="dataIn" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[20.0, 190.0]">
>            </property>
>        </port>
>        <port name="dataOut" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[760.0, 200.0]">
>            </property>
>        </port>
>        <entity name="belowRange"  
> class="ptolemy.actor.lib.logic.Comparator">
>            <property name="comparison"  
> class="ptolemy.kernel.util.StringAttribute" value=">">
>            </property>
>            <property name="tolerance"  
> class="ptolemy.data.expr.Parameter" value="0.0">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> Comparator reads two values and compares them. The actor outputs a  
> Boolean value (true or false) that indicates whether the comparison  
> criteria were met or not.</p>

<p>Specify the  
> type of comparison to perform with the comparison parameter. The  
> following comparisons may be performed:</p>

<table  
> border="1">
<tr><td>Comparison</ 
> td><td>Definition</td></ 
> tr>
<tr><td>></td><td>left is  
> greater than right; the default comparison.</td></ 
> tr>
<tr><td>>=</td><td>left is  
> greater than or equal to right</td></ 
> tr>
<tr><td>less than</td><td>left is  
> less than right</td></tr>
<tr><td>less  
> than or equal</td><td>left is less than or equal to  
> right</td></tr>
<tr><td>==</ 
> td><td>left equals right</td></tr>
</ 
> table>

<p>The input ports are named  
> "left" and "right" to indicate which side of the  
> comparison operator their value appears on.</ 
> p>

<p>The tolerance parameter, which defaults to  
> zero, defines an error tolerance. If the tolerance is greater than  
> zero, the actor will output true when the specified comparison is  
> not exactly satisfied, but rather is almost satisfied within the  
> specified tolerance.</p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a Boolean value (true or false) that  
> indicates whether the comparison criteria were met or not.</ 
> configure></property>
> <property name="port:right"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double(or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> right side of the comparison operator.</configure></property>
> <property name="port:left"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double (or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> left side of the comparison operator.</configure></property>
> <property name="prop:tolerance"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> tolerance for the comparison. If the tolerance is greater than zero,  
> the actor will output true when the comparison is satisfied within  
> the specified tolerance (i.e., the comparison need not be exactly  
> satisfied). The value is a double that defaults to 0.0.</configure></ 
> property>
> <property name="prop:comparison"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> comparison to perform. The default is greater than.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:64:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.logic.Comparator">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:939:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[90.0, 295.0]">
>            </property>
>            <property name=""  
> class="ptolemy.vergil.basic.DocAttribute">
>                <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="
<p>The  
> Comparator reads two values and compares them. The actor outputs a  
> Boolean value (true or false) that indicates whether the comparison  
> criteria were met or not.</p>

<p>Specify the  
> type of comparison to perform with the comparison parameter. The  
> following comparisons may be performed:</p>

<table  
> border="1">
<tr><td>Comparison</ 
> td><td>Definition</td></ 
> tr>
<tr><td>></td><td>left is  
> greater than right; the default comparison.</td></ 
> tr>
<tr><td>>=</td><td>left is  
> greater than or equal to right</td></ 
> tr>
<tr><td>less than</td><td>left is  
> less than right</td></tr>
<tr><td>less  
> than or equal</td><td>left is less than or equal to  
> right</td></tr>
<tr><td>==</ 
> td><td>left equals right</td></tr>
</ 
> table>

<p>The input ports are named  
> "left" and "right" to indicate which side of the  
> comparison operator their value appears on.</ 
> p>

<p>The tolerance parameter, which defaults to  
> zero, defines an error tolerance. If the tolerance is greater than  
> zero, the actor will output true when the specified comparison is  
> not exactly satisfied, but rather is almost satisfied within the  
> specified tolerance.</p>">
>                </property>
>                <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
>                </property>
>                <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>                </property>
>                <property name="comparison (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The comparison to  
> perform. The default is greater than.">
>                </property>
>                <property name="tolerance (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The tolerance for  
> the comparison. If the tolerance is greater than zero, the actor  
> will output true when the comparison is satisfied within the  
> specified tolerance (i.e., the comparison need not be exactly  
> satisfied). The value is a double that defaults to 0.0.">
>                </property>
>                <property name="left (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that accepts a double (or any data type that can be losslessly  
> converted to a double token) that will be used on the left side of  
> the comparison operator.">
>                </property>
>                <property name="right (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that accepts a double(or any data type that can be losslessly  
> converted to a double token) that will be used on the right side of  
> the comparison operator.">
>                </property>
>                <property name="output (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An output port  
> that broadcasts a Boolean value (true or false) that indicates  
> whether the comparison criteria were met or not.">
>                </property>
>            </property>
>        </entity>
>        <entity name="Boolean To Anything"  
> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>            <property name="falseValue"  
> class="ptolemy.data.expr.Parameter" value="0">
>            </property>
>            <property name="trueValue"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> BooleanToAnything actor converts a Boolean token (i.e., true or  
> false) into any data type and value. </ 
> p>

<p>The actor reads a Boolean value and assigns  
> a new value based on the specified conversion values. The actor  
> outputs the value of the trueValue parameter if the Boolean input is  
> true. The actor outputs the value of the falseValue parameter if the  
> Boolean input is false. The type of the output matches that of the  
> specified conversion values.
</p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted data. The actor will  
> output the value of the falseValue parameter if the input value is  
> false, or the value of the trueValue parameter if the input value is  
> true.</configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that receives a Boolean token.</configure></property>
> <property name="prop:trueValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "true" input is read. </configure></ 
> property>
> <property name="prop:falseValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "false" input is read.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:216:2 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:910:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[250.0, 295.0]">
>            </property>
>            <property name=""  
> class="ptolemy.vergil.basic.DocAttribute">
>                <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="<p>The  
> BooleanToAnything actor converts a Boolean token (i.e., true or  
> false) into any data type and value. </ 
> p>

<p>The actor reads a Boolean value and assigns  
> a new value based on the specified conversion values. The actor  
> outputs the value of the trueValue parameter if the Boolean input is  
> true. The actor outputs the value of the falseValue parameter if the  
> Boolean input is false. The type of the output matches that of the  
> specified conversion values.
</p>">
>                </property>
>                <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
>                </property>
>                <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>                </property>
>                <property name="falseValue (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The value to output  
> when a "false" input is read.">
>                </property>
>                <property name="trueValue (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The value to output  
> when a "true" input is read. ">
>                </property>
>                <property name="input (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that receives a Boolean token.">
>                </property>
>                <property name="output (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An output port  
> that broadcasts the converted data. The actor will output the value  
> of the falseValue parameter if the input value is false, or the  
> value of the trueValue parameter if the input value is true.">
>                </property>
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:34:1 
> ">
>            </property>
>        </entity>
>        <entity name="lowerLimit" class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="maxLengthOfDataArrays">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value="lowerLimit">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:209:6 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[55.0, 390.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="Boolean Switch"  
> class="ptolemy.actor.lib.BooleanSwitch">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> BooleanSwitch actor reads a value of any type, as well as a Boolean  
> token that is used as a control. If the Boolean token is true, the  
> actor outputs the received value to the trueOutput port; if the  
> Boolean token is false, the actor outputs the received value to the  
> falseOutput port.
If the actor has never received a value on the  
> control port, then the actor will output to the falseOutput  
> port.</p>

<p>The actor only works under certain  
> directors. It will not work under an SDF Director, but it will under  
> a PN Director, for example.</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts tokens of any type.</configure></property>
> <property name="port:falseOutput"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the input token when the control is  
> false.</configure></property>
> <property name="port:trueOutput"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the input token when the control is  
> true.</configure></property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a Boolean token used to select which output  
> port (trueOutput or falseOutput) to broadcast.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:54:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.BooleanSwitch">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:930:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#BooleanControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#BooleanControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[155.0, 195.0]">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="Select" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[310.0, 185.0]">
>            </property>
>            <property name=""  
> class="ptolemy.vergil.basic.DocAttribute">
>                <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="<p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p>">
>                </property>
>                <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
>                </property>
>                <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>                </property>
>                <property name="input (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="A multiport that  
> accepts tokens of any type.">
>                </property>
>                <property name="output (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An output port  
> that broadcasts the selected input channel.">
>                </property>
>                <property name="control (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that accepts integer tokens that indicate which input channel to  
> output (0, 1, 2, 3, etc). If the value is out of range (less than  
> zero, or greater than or equal to the width of the input), then the  
> actor will not fire.">
>                </property>
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="Boolean Switch2"  
> class="ptolemy.actor.lib.BooleanSwitch">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> BooleanSwitch actor reads a value of any type, as well as a Boolean  
> token that is used as a control. If the Boolean token is true, the  
> actor outputs the received value to the trueOutput port; if the  
> Boolean token is false, the actor outputs the received value to the  
> falseOutput port.
If the actor has never received a value on the  
> control port, then the actor will output to the falseOutput  
> port.</p>

<p>The actor only works under certain  
> directors. It will not work under an SDF Director, but it will under  
> a PN Director, for example.</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts tokens of any type.</configure></property>
> <property name="port:falseOutput"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the input token when the control is  
> false.</configure></property>
> <property name="port:trueOutput"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the input token when the control is  
> true.</configure></property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a Boolean token used to select which output  
> port (trueOutput or falseOutput) to broadcast.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:54:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.BooleanSwitch">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:930:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#BooleanControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#BooleanControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[505.0, 185.0]">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="Select2" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[650.0, 180.0]">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="aboveRange"  
> class="ptolemy.actor.lib.logic.Comparator">
>            <property name="comparison"  
> class="ptolemy.kernel.util.StringAttribute" value="<">
>            </property>
>            <property name="tolerance"  
> class="ptolemy.data.expr.Parameter" value="0.0">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> Comparator reads two values and compares them. The actor outputs a  
> Boolean value (true or false) that indicates whether the comparison  
> criteria were met or not.</p>

<p>Specify the  
> type of comparison to perform with the comparison parameter. The  
> following comparisons may be performed:</p>

<table  
> border="1">
<tr><td>Comparison</ 
> td><td>Definition</td></ 
> tr>
<tr><td>></td><td>left is  
> greater than right; the default comparison.</td></ 
> tr>
<tr><td>>=</td><td>left is  
> greater than or equal to right</td></ 
> tr>
<tr><td>less than</td><td>left is  
> less than right</td></tr>
<tr><td>less  
> than or equal</td><td>left is less than or equal to  
> right</td></tr>
<tr><td>==</ 
> td><td>left equals right</td></tr>
</ 
> table>

<p>The input ports are named  
> "left" and "right" to indicate which side of the  
> comparison operator their value appears on.</ 
> p>

<p>The tolerance parameter, which defaults to  
> zero, defines an error tolerance. If the tolerance is greater than  
> zero, the actor will output true when the specified comparison is  
> not exactly satisfied, but rather is almost satisfied within the  
> specified tolerance.</p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a Boolean value (true or false) that  
> indicates whether the comparison criteria were met or not.</ 
> configure></property>
> <property name="port:right"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double(or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> right side of the comparison operator.</configure></property>
> <property name="port:left"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double (or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> left side of the comparison operator.</configure></property>
> <property name="prop:tolerance"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> tolerance for the comparison. If the tolerance is greater than zero,  
> the actor will output true when the comparison is satisfied within  
> the specified tolerance (i.e., the comparison need not be exactly  
> satisfied). The value is a double that defaults to 0.0.</configure></ 
> property>
> <property name="prop:comparison"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> comparison to perform. The default is greater than.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:235:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.logic.Comparator">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:939:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[430.0, 295.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:64:1 
> ">
>            </property>
>        </entity>
>        <entity name="Boolean To Anything2"  
> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>            <property name="falseValue"  
> class="ptolemy.data.expr.Parameter" value="0">
>            </property>
>            <property name="trueValue"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> BooleanToAnything actor converts a Boolean token (i.e., true or  
> false) into any data type and value. </ 
> p>

<p>The actor reads a Boolean value and assigns  
> a new value based on the specified conversion values. The actor  
> outputs the value of the trueValue parameter if the Boolean input is  
> true. The actor outputs the value of the falseValue parameter if the  
> Boolean input is false. The type of the output matches that of the  
> specified conversion values.
</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that receives a Boolean token.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted data. The actor will  
> output the value of the falseValue parameter if the input value is  
> false, or the value of the trueValue parameter if the input value is  
> true.</configure></property>
> <property name="prop:trueValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "true" input is read. </configure></ 
> property>
> <property name="prop:falseValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "false" input is read.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:34:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:910:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[575.0, 295.0]">
>            </property>
>        </entity>
>        <entity name="outsideRangeValue2"  
> class="ptolemy.actor.lib.Const">
>            <display name="outsideRangeValue"/>
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value="nil">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:233:6 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[590.0, 150.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="upperLimit" class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value="upperLimit">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:234:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[420.0, 385.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="Select3" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:266:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[235.0, 455.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="outsideRangeFlag"  
> class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value=""C"">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:267:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[165.0, 440.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="outsideRangeFlag2"  
> class="ptolemy.actor.lib.Const">
>            <display name="outsideRangeFlag"/>
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value=""C"">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:267:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[550.0, 430.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="Select4" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:266:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[645.0, 455.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="outsideRangeValue"  
> class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value="nil">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:233:6 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[265.0, 175.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <relation name="relation4"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[205.0, 300.0]">
>            </vertex>
>        </relation>
>        <relation name="relation6"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation8"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
>            <vertex name="vertex1" value="[395.0, 200.0]">
>            </vertex>
>        </relation>
>        <relation name="relation9"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[535.0, 285.0]">
>            </vertex>
>        </relation>
>        <relation name="relation13"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation10"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation11"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
>        </relation>
>        <relation name="relation14"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[85.0, 215.0]">
>            </vertex>
>        </relation>
>        <relation name="relation7"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[345.0, 310.0]">
>            </vertex>
>        </relation>
>        <relation name="relation2"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation15"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation12"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation16"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation17"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation18"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[690.0, 305.0]">
>            </vertex>
>        </relation>
>        <relation name="relation"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation5"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation3"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <link port="flagIn" relation="relation15"/>
>        <link port="flagOut" relation="relation"/>
>        <link port="dataIn" relation="relation14"/>
>        <link port="dataOut" relation="relation12"/>
>        <link port="belowRange.left" relation="relation14"/>
>        <link port="belowRange.right" relation="relation6"/>
>        <link port="belowRange.output" relation="relation4"/>
>        <link port="Boolean To Anything.input" relation="relation4"/>
>        <link port="Boolean To Anything.output" relation="relation7"/>
>        <link port="lowerLimit.output" relation="relation6"/>
>        <link port="Boolean Switch.input" relation="relation14"/>
>        <link port="Boolean Switch.control" relation="relation4"/>
>        <link port="Boolean Switch.trueOutput" relation="relation3"/>
>        <link port="Select.input" relation="relation5"/>
>        <link port="Select.input" relation="relation3"/>
>        <link port="Select.output" relation="relation8"/>
>        <link port="Select.control" relation="relation7"/>
>        <link port="Boolean Switch2.input" relation="relation8"/>
>        <link port="Boolean Switch2.control" relation="relation9"/>
>        <link port="Boolean Switch2.trueOutput" relation="relation11"/>
>        <link port="Select2.input" relation="relation10"/>
>        <link port="Select2.input" relation="relation11"/>
>        <link port="Select2.output" relation="relation12"/>
>        <link port="Select2.control" relation="relation18"/>
>        <link port="aboveRange.left" relation="relation8"/>
>        <link port="aboveRange.right" relation="relation13"/>
>        <link port="aboveRange.output" relation="relation9"/>
>        <link port="Boolean To Anything2.input" relation="relation9"/>
>        <link port="Boolean To Anything2.output"  
> relation="relation18"/>
>        <link port="outsideRangeValue2.output" relation="relation10"/>
>        <link port="upperLimit.output" relation="relation13"/>
>        <link port="Select3.input" relation="relation2"/>
>        <link port="Select3.input" relation="relation15"/>
>        <link port="Select3.output" relation="relation17"/>
>        <link port="Select3.control" relation="relation7"/>
>        <link port="outsideRangeFlag.output" relation="relation2"/>
>        <link port="outsideRangeFlag2.output" relation="relation16"/>
>        <link port="Select4.input" relation="relation16"/>
>        <link port="Select4.input" relation="relation17"/>
>        <link port="Select4.output" relation="relation"/>
>        <link port="Select4.control" relation="relation18"/>
>        <link port="outsideRangeValue.output" relation="relation5"/>
>    </entity>
>    <entity name="monthSpecificRangeCheck"  
> class="ptolemy.actor.TypedCompositeActor">
>        <property name="_createdBy"  
> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>        </property>
>        <property name="entityId" class="org.kepler.moml.NamedObjId"  
> value="urn:lsid:kepler-project.org/ns/:1266:238:144">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.TypedCompositeActor">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Actor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#GeneralPurpose">
>        </property>
>        <property name="semanticType22"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Workflow">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong  
> Xiong</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A  
> Composite actor is an aggregation of actors. It may have a local  
> director that is responsible for executing the contained actors. A  
> Composite actor with a local director is called an opaque actor.  
> Composite actors do not require a local director. Composite actors  
> with no local director "inherit" the director from the  
> containing workflow and are called non-opaque.</ 
> p>

<p>To create a composite actor, drag and drop  
> the Composite actor onto the Workflow canvas. Right-click the actor  
> and select Open Actor from the drop-down menu. A new Kepler  
> application window will open for designing the composite.</p></ 
> configure></property>
> </property>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[475.0, 260.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1 
> ">
>        </property>
>        <property name="_windowProperties"  
> class="ptolemy.actor.gui.WindowPropertiesAttribute"  
> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>        </property>
>        <property name="_vergilSize"  
> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>        </property>
>        <property name="_vergilZoomFactor"  
> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>        </property>
>        <property name="_vergilCenter"  
> class="ptolemy.data.expr.ExpertParameter" value="{485.5, 420.0}">
>        </property>
>        <port name="month" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[20.0, 185.0]">
>            </property>
>        </port>
>        <port name="data" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[20.0, 460.0]">
>            </property>
>        </port>
>        <port name="flagOut" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[875.0, 515.0]">
>            </property>
>        </port>
>        <entity name="Lookup Table"  
> class="ptolemy.actor.lib.LookupTable">
>            <property name="table"  
> class="ptolemy.data.expr.Parameter" value="{0, -37.4, -40.19,  
> -33.16, -18.4, -7.67, -2.132, 2.302, 2.431, -5.869, -10.96, -25.26,  
> -33.23}">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul  
> Whitaker and Christopher Hylands</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy 
> .kernel.util.ConfigurableAttribute"><configure>
<p>The  
> LookupTable actor reads an array of elements and "looks  
> up" an element specified by a given index number. The specified  
> element is output.</p>

<p>The first element in  
> the array has an index of 0 (the second 1, and so on). The index  
> must be an integer. If the index is out of range, the actor will  
> output nothing. </p>

<p>The LookupTable actor  
> is similar to the ArrayElement actor in function; however, the two  
> actors specify arrays and index numbers in different ways. The  
> LookupTable actor specifies an array with its table parameter and  
> receives an index number via its input port. The ArrayElement actor  
> receives an array via its input port and an index number via a  
> parameter.</p>

</configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts an array index number. The index must be an  
> integer. If the index is out of range, the actor will output  
> nothing. The first element in the array has an index of 0 (the  
> second 1, and so on).</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the array element identified by the  
> index number.</configure></property>
> <property name="prop:table"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> array from which a value is "looked up" and output. The  
> default value is {0, 1}. </configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:255:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.LookupTable">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:952:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#TableActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[170.0, 280.0]">
>            </property>
>            <property name=""  
> class="ptolemy.vergil.basic.DocAttribute">
>                <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="
<p>The  
> LookupTable actor reads an array of elements and "looks  
> up" an element specified by a given index number. The specified  
> element is output.</p>

<p>The first element in  
> the array has an index of 0 (the second 1, and so on). The index  
> must be an integer. If the index is out of range, the actor will  
> output nothing. </p>

<p>The LookupTable actor  
> is similar to the ArrayElement actor in function; however, the two  
> actors specify arrays and index numbers in different ways. The  
> LookupTable actor specifies an array with its table parameter and  
> receives an index number via its input port. The ArrayElement actor  
> receives an array via its input port and an index number via a  
> parameter.</p>

">
>                </property>
>                <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Paul Whitaker and  
> Christopher Hylands">
>                </property>
>                <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>                </property>
>                <property name="table (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The array from  
> which a value is "looked up" and output. The default value  
> is {0, 1}. ">
>                </property>
>                <property name="input (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that accepts an array index number. The index must be an integer. If  
> the index is out of range, the actor will output nothing. The first  
> element in the array has an index of 0 (the second 1, and so on).">
>                </property>
>                <property name="output (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An output port  
> that broadcasts the array element identified by the index number.">
>                </property>
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:77:1 
> ">
>            </property>
>        </entity>
>        <entity name="Comparator"  
> class="ptolemy.actor.lib.logic.Comparator">
>            <property name="comparison"  
> class="ptolemy.kernel.util.StringAttribute" value=">">
>            </property>
>            <property name="tolerance"  
> class="ptolemy.data.expr.Parameter" value="0.0">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> Comparator reads two values and compares them. The actor outputs a  
> Boolean value (true or false) that indicates whether the comparison  
> criteria were met or not.</p>

<p>Specify the  
> type of comparison to perform with the comparison parameter. The  
> following comparisons may be performed:</p>

<table  
> border="1">
<tr><td>Comparison</ 
> td><td>Definition</td></ 
> tr>
<tr><td>></td><td>left is  
> greater than right; the default comparison.</td></ 
> tr>
<tr><td>>=</td><td>left is  
> greater than or equal to right</td></ 
> tr>
<tr><td>less than</td><td>left is  
> less than right</td></tr>
<tr><td>less  
> than or equal</td><td>left is less than or equal to  
> right</td></tr>
<tr><td>==</ 
> td><td>left equals right</td></tr>
</ 
> table>

<p>The input ports are named  
> "left" and "right" to indicate which side of the  
> comparison operator their value appears on.</ 
> p>

<p>The tolerance parameter, which defaults to  
> zero, defines an error tolerance. If the tolerance is greater than  
> zero, the actor will output true when the specified comparison is  
> not exactly satisfied, but rather is almost satisfied within the  
> specified tolerance.</p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a Boolean value (true or false) that  
> indicates whether the comparison criteria were met or not.</ 
> configure></property>
> <property name="port:right"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double(or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> right side of the comparison operator.</configure></property>
> <property name="port:left"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double (or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> left side of the comparison operator.</configure></property>
> <property name="prop:tolerance"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> tolerance for the comparison. If the tolerance is greater than zero,  
> the actor will output true when the comparison is satisfied within  
> the specified tolerance (i.e., the comparison need not be exactly  
> satisfied). The value is a double that defaults to 0.0.</configure></ 
> property>
> <property name="prop:comparison"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> comparison to perform. The default is greater than.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:257:2 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.logic.Comparator">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:939:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[175.0, 350.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:64:1 
> ">
>            </property>
>        </entity>
>        <entity name="Boolean To Anything"  
> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>            <property name="falseValue"  
> class="ptolemy.data.expr.Parameter" value="0">
>            </property>
>            <property name="trueValue"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> BooleanToAnything actor converts a Boolean token (i.e., true or  
> false) into any data type and value. </ 
> p>

<p>The actor reads a Boolean value and assigns  
> a new value based on the specified conversion values. The actor  
> outputs the value of the trueValue parameter if the Boolean input is  
> true. The actor outputs the value of the falseValue parameter if the  
> Boolean input is false. The type of the output matches that of the  
> specified conversion values.
</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that receives a Boolean token.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted data. The actor will  
> output the value of the falseValue parameter if the input value is  
> false, or the value of the trueValue parameter if the input value is  
> true.</configure></property>
> <property name="prop:trueValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "true" input is read. </configure></ 
> property>
> <property name="prop:falseValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "false" input is read.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:34:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:910:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[280.0, 410.0]">
>            </property>
>        </entity>
>        <entity name="Select" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:260:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[320.0, 500.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="trueFlag" class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value=""H"">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:261:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[255.0, 540.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="falseFlag" class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value="nil">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:262:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[255.0, 490.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <entity name="Lookup Table2"  
> class="ptolemy.actor.lib.LookupTable">
>            <property name="table"  
> class="ptolemy.data.expr.Parameter" value="{0, 8.61, 14.83, 28,  
> 28.3, 30.23, 34.95, 35.41, 36.48, 33.55, 27.23, 21.33, 14.91}">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul  
> Whitaker and Christopher Hylands</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy 
> .kernel.util.ConfigurableAttribute"><configure>
<p>The  
> LookupTable actor reads an array of elements and "looks  
> up" an element specified by a given index number. The specified  
> element is output.</p>

<p>The first element in  
> the array has an index of 0 (the second 1, and so on). The index  
> must be an integer. If the index is out of range, the actor will  
> output nothing. </p>

<p>The LookupTable actor  
> is similar to the ArrayElement actor in function; however, the two  
> actors specify arrays and index numbers in different ways. The  
> LookupTable actor specifies an array with its table parameter and  
> receives an index number via its input port. The ArrayElement actor  
> receives an array via its input port and an index number via a  
> parameter.</p>

</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the array element identified by the  
> index number.</configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts an array index number. The index must be an  
> integer. If the index is out of range, the actor will output  
> nothing. The first element in the array has an index of 0 (the  
> second 1, and so on).</configure></property>
> <property name="prop:table"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> array from which a value is "looked up" and output. The  
> default value is {0, 1}. </configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:263:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.LookupTable">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:952:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#TableActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[465.0, 275.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:77:1 
> ">
>            </property>
>        </entity>
>        <entity name="Comparator2"  
> class="ptolemy.actor.lib.logic.Comparator">
>            <property name="comparison"  
> class="ptolemy.kernel.util.StringAttribute" value="<">
>            </property>
>            <property name="tolerance"  
> class="ptolemy.data.expr.Parameter" value="0.0">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>
<p>The  
> Comparator reads two values and compares them. The actor outputs a  
> Boolean value (true or false) that indicates whether the comparison  
> criteria were met or not.</p>

<p>Specify the  
> type of comparison to perform with the comparison parameter. The  
> following comparisons may be performed:</p>

<table  
> border="1">
<tr><td>Comparison</ 
> td><td>Definition</td></ 
> tr>
<tr><td>></td><td>left is  
> greater than right; the default comparison.</td></ 
> tr>
<tr><td>>=</td><td>left is  
> greater than or equal to right</td></ 
> tr>
<tr><td>less than</td><td>left is  
> less than right</td></tr>
<tr><td>less  
> than or equal</td><td>left is less than or equal to  
> right</td></tr>
<tr><td>==</ 
> td><td>left equals right</td></tr>
</ 
> table>

<p>The input ports are named  
> "left" and "right" to indicate which side of the  
> comparison operator their value appears on.</ 
> p>

<p>The tolerance parameter, which defaults to  
> zero, defines an error tolerance. If the tolerance is greater than  
> zero, the actor will output true when the specified comparison is  
> not exactly satisfied, but rather is almost satisfied within the  
> specified tolerance.</p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a Boolean value (true or false) that  
> indicates whether the comparison criteria were met or not.</ 
> configure></property>
> <property name="port:right"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double(or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> right side of the comparison operator.</configure></property>
> <property name="port:left"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a double (or any data type that can be  
> losslessly converted to a double token) that will be used on the  
> left side of the comparison operator.</configure></property>
> <property name="prop:tolerance"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> tolerance for the comparison. If the tolerance is greater than zero,  
> the actor will output true when the comparison is satisfied within  
> the specified tolerance (i.e., the comparison need not be exactly  
> satisfied). The value is a double that defaults to 0.0.</configure></ 
> property>
> <property name="prop:comparison"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> comparison to perform. The default is greater than.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:268:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.logic.Comparator">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:939:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[470.0, 350.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:64:1 
> ">
>            </property>
>        </entity>
>        <entity name="Boolean To Anything2"  
> class="ptolemy.actor.lib.conversions.BooleanToAnything">
>            <property name="falseValue"  
> class="ptolemy.data.expr.Parameter" value="0">
>            </property>
>            <property name="trueValue"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> BooleanToAnything actor converts a Boolean token (i.e., true or  
> false) into any data type and value. </ 
> p>

<p>The actor reads a Boolean value and assigns  
> a new value based on the specified conversion values. The actor  
> outputs the value of the trueValue parameter if the Boolean input is  
> true. The actor outputs the value of the falseValue parameter if the  
> Boolean input is false. The type of the output matches that of the  
> specified conversion values.
</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that receives a Boolean token.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted data. The actor will  
> output the value of the falseValue parameter if the input value is  
> false, or the value of the trueValue parameter if the input value is  
> true.</configure></property>
> <property name="prop:trueValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "true" input is read. </configure></ 
> property>
> <property name="prop:falseValue"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value to output when a "false" input is read.</configure></ 
> property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:34:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.conversions.BooleanToAnything">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:910:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{510, 425}">
>            </property>
>        </entity>
>        <entity name="Select2" class="ptolemy.actor.lib.Select">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Select  actor "selects" and outputs a token from among its  
> input tokens. The actor accepts one or more values of any type via  
> its input multiport and selects the value on the channel specified  
> via the control port. The value of the selected channel is output  
> each time the actor iterates.</p>

<p>Each time  
> the actor iterates, it checks to see if a token is available on its  
> control port. If so, the actor reads the value and uses it to  
> determine which of its input channels to output next. If an input  
> token is available on the specified channel, then that token is read  
> and sent to the output. 
If the actor has never received a value  
> on the control port, then the actor will read and output channel  
> zero of the input port. If the value of the most recently received  
> token on the control port is out of range (less than zero, or  
> greater than or equal to the width of the input), then the actor  
> will not fire (although it will continue to consume tokens on the  
> control port). </p>

<p>The actor never discards  
> input tokens. Note that in DE workflows, where this actor is  
> commonly used, every time the actor receives a new  
> "select" channel via the control port, the actor will  
> output (at the next firing) all previously unread input tokens on  
> the specified channel in the order in which they arrived.</p></ 
> configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the selected input channel.</configure></ 
> property>
> <property name="port:control"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts integer tokens that indicate which input  
> channel to output (0, 1, 2, 3, etc). If the value is out of range  
> (less than zero, or greater than or equal to the width of the  
> input), then the actor will not fire.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:264:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Select">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:926:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ControlActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#WorkflowControl">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{530, 510}">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:50:1 
> ">
>            </property>
>            <port name="control" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>                <property name="_cardinal"  
> class="ptolemy.kernel.util.StringAttribute" value="NORTH">
>                </property>
>            </port>
>        </entity>
>        <entity name="trueFlag2" class="ptolemy.actor.lib.Const">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="value"  
> class="ptolemy.data.expr.Parameter" value=""H"">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:261:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[480.0, 565.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>            </property>
>        </entity>
>        <relation name="relation9"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation10"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation11"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation13"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="{100.0, 405.0}">
>            </vertex>
>        </relation>
>        <relation name="relation14"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation15"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation16"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation17"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation4"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation7"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation6"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation8"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation2"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="[165.0, 230.0]">
>            </vertex>
>        </relation>
>        <link port="month" relation="relation2"/>
>        <link port="data" relation="relation13"/>
>        <link port="flagOut" relation="relation17"/>
>        <link port="Lookup Table.input" relation="relation2"/>
>        <link port="Lookup Table.output" relation="relation7"/>
>        <link port="Comparator.left" relation="relation7"/>
>        <link port="Comparator.right" relation="relation13"/>
>        <link port="Comparator.output" relation="relation8"/>
>        <link port="Boolean To Anything.input" relation="relation8"/>
>        <link port="Boolean To Anything.output" relation="relation9"/>
>        <link port="Select.input" relation="relation10"/>
>        <link port="Select.input" relation="relation11"/>
>        <link port="Select.output" relation="relation14"/>
>        <link port="Select.control" relation="relation9"/>
>        <link port="trueFlag.output" relation="relation11"/>
>        <link port="falseFlag.output" relation="relation10"/>
>        <link port="Lookup Table2.input" relation="relation2"/>
>        <link port="Lookup Table2.output" relation="relation4"/>
>        <link port="Comparator2.left" relation="relation4"/>
>        <link port="Comparator2.right" relation="relation13"/>
>        <link port="Comparator2.output" relation="relation6"/>
>        <link port="Boolean To Anything2.input" relation="relation6"/>
>        <link port="Boolean To Anything2.output"  
> relation="relation15"/>
>        <link port="Select2.input" relation="relation14"/>
>        <link port="Select2.input" relation="relation16"/>
>        <link port="Select2.output" relation="relation17"/>
>        <link port="Select2.control" relation="relation15"/>
>        <link port="trueFlag2.output" relation="relation16"/>
>    </entity>
>    <entity name="Record Assembler"  
> class="ptolemy.actor.lib.RecordAssembler">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong  
> Xiong</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy 
> .kernel.util.ConfigurableAttribute"><configure>
<p>The  
> RecordAssembler actor receives tokens of various types on user- 
> defined input ports and assembles those tokens into a record, which  
> it outputs. The actor reads and converts one token from each port  
> every time it fires.</p>

<p>A record is a  
> composite data type consisting of one or more elements. Each element  
> is named and can have a distinct type. For example, {number=1,  
> name="dog"} is a record containing two elements. The first  
> element, named "number", contains an integer value. The  
> second element, named "name", contains a string value.  
> </p>

<p>The name of each record element  
> generated by the actor is the name of the input port from which the  
> value was received. An actor customized to use three input ports  
> named "day", "week", "month" could  
> output the following record {day="Monday", week=5,  
> month=12}.</p>

</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the generated records. </configure></ 
> property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:273:14 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.RecordAssembler">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:923:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#RecordActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStructureOperation">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[715.0, 225.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:47:1 
> ">
>        </property>
>        <port name="sampledate" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="general">
>            </property>
>        </port>
>        <port name="year4" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="int">
>            </property>
>        </port>
>        <port name="station_id" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="int">
>            </property>
>        </port>
>        <port name="month" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="int">
>            </property>
>        </port>
>        <port name="daynum" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="int">
>            </property>
>        </port>
>        <port name="sample_time" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="int">
>            </property>
>        </port>
>        <port name="air_temp" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="general">
>            </property>
>        </port>
>        <port name="flag_air_temp" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_type"  
> class="ptolemy.actor.TypeAttribute" value="string">
>            </property>
>        </port>
>    </entity>
>    <entity name="disassembleDate"  
> class="ptolemy.actor.TypedCompositeActor">
>        <property name="_createdBy"  
> class="ptolemy.kernel.attributes.VersionAttribute" value="8.0.1">
>        </property>
>        <property name="entityId" class="org.kepler.moml.NamedObjId"  
> value="urn:lsid:kepler-project.org/ns/:1266:274:51">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.TypedCompositeActor">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#Actor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#GeneralPurpose">
>        </property>
>        <property name="semanticType22"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Workflow">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong  
> Xiong</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A  
> Composite actor is an aggregation of actors. It may have a local  
> director that is responsible for executing the contained actors. A  
> Composite actor with a local director is called an opaque actor.  
> Composite actors do not require a local director. Composite actors  
> with no local director "inherit" the director from the  
> containing workflow and are called non-opaque.</ 
> p>

<p>To create a composite actor, drag and drop  
> the Composite actor onto the Workflow canvas. Right-click the actor  
> and select Open Actor from the drop-down menu. A new Kepler  
> application window will open for designing the composite.</p></ 
> configure></property>
> </property>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[435.0, 135.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1 
> ">
>        </property>
>        <property name="_windowProperties"  
> class="ptolemy.actor.gui.WindowPropertiesAttribute"  
> value="{bounds={0, 0, 1288, 1002}, maximized=false}">
>        </property>
>        <property name="_vergilSize"  
> class="ptolemy.actor.gui.SizeAttribute" value="[971, 840]">
>        </property>
>        <property name="_vergilZoomFactor"  
> class="ptolemy.data.expr.ExpertParameter" value="1.0">
>        </property>
>        <property name="_vergilCenter"  
> class="ptolemy.data.expr.ExpertParameter" value="{485.5, 420.0}">
>        </property>
>        <port name="timestamps" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
>            </property>
>        </port>
>        <port name="year" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[675.0, 170.0]">
>            </property>
>        </port>
>        <port name="month" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[675.0, 230.0]">
>            </property>
>        </port>
>        <port name="daynum" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[675.0, 285.0]">
>            </property>
>        </port>
>        <port name="sample_time" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[680.0, 350.0]">
>            </property>
>        </port>
>        <port name="sample_date" class="ptolemy.actor.TypedIOPort">
>            <property name="output"/>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[685.0, 410.0]">
>            </property>
>        </port>
>        <entity name="DateToString"  
> class="org.kepler.date.DateToString">
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="yyyy">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert  
> a date token to a string using a specific format. See
    
> java.text.SimpleDateFormat for formatting syntax.</configure></ 
> property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> formatted string of the date and time.</configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the string. See java.text.SimpleDateFormat for formatting  
> syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:253:2 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.DateToString">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:543:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[390.0, 135.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:543:1 
> ">
>            </property>
>        </entity>
>        <entity name="SecondsToMilliseconds"  
> class="ptolemy.actor.lib.Expression">
>            <property name="expression"  
> class="ptolemy.kernel.util.StringAttribute" value="x*1000">
>                <property name="_hide"  
> class="ptolemy.data.expr.Parameter" value="true">
>                </property>
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun  
> Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> Expression actor evaluates a specified expression (e.g., an addition  
> or multiplication operation), which may reference the values of user- 
> specified input ports, the current time, or the actor's iteration  
> count. The actor outputs the value of the evaluated expression. </ 
> p>

<p>Expressions are specified in the Ptolemy  
> expression language via the expression parameter. For more  
> information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf 
> . </p>

<p>By default, the expression parameter  
> is empty, and attempting to execute the actor without first  
> specifying an expression generates an error. Expressions can refer  
> to the values of inputs by the port name; to the current time by the  
> identifier "time"; and to the current iteration count by  
> the identifier "iteration." </ 
> p>

<p>Input ports are created by the user and  
> correspond to variables used in the specified expression. Currently,  
> the Expression actor does not support input multiports. The actor  
> requires all of its inputs to be present. If inputs are not all  
> present, then the actor will generate an error. </ 
> p>

<p>Note: the Expression actor can be used  
> instead of many of the arithmetic actors, such as AddSubtract,  
> MultiplyDivide, and TrigFunction. However, those actors will be  
> usually be more efficient, and sometimes more convenient to use.</ 
> p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the value of the evaluated expression.  
> The actor automatically determines the type based on the type of the  
> input.</configure></property>
> <property name="prop:expression"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> expression to evaluate. Expressions are specified in the Ptolemy  
> expression language. For more information about the expression  
> language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf 
> . By default, the parameter is empty, and attempting to execute the  
> actor without first specifying an expression generates an error.  
> Expressions can refer to the values of inputs by the port name; to  
> the current time by the identifier "time"; and to the  
> current iteration count by the identifier "iteration."</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:244:2 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Expression">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:950:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#MathOperationActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#GeneralPurpose">
>            </property>
>            <property name="_icon"  
> class="ptolemy.vergil.icon.BoxedValueIcon">
>                <property name="attributeName"  
> class="ptolemy.kernel.util.StringAttribute" value="expression">
>                </property>
>                <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="60">
>                </property>
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[105.0, 65.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:75:1 
> ">
>            </property>
>            <port name="x" class="ptolemy.actor.TypedIOPort">
>                <property name="input"/>
>            </port>
>        </entity>
>        <entity name="CreateDate" class="org.kepler.date.CreateDate">
>            <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>            </property>
>            <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>            </property>
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="milliseconds  
> since epoch">
>            </property>
>            <property name="input"  
> class="ptolemy.actor.parameters.PortParameter" value="">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Create  
> a date token. If a date string is not given on <i>input</ 
> i>, 
   the current date and time is used.</configure></ 
> property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time token.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If  
> connected, the actor will not run until a token is available.</ 
> configure></property>
> <property name="prop:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> string date and time. If not used, the current date and time  is  
> used.</configure></property>
> <property name="prop:firingCountLimit"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a  
> positive integer, then the number of iterations before the  actor  
> indicates to the scheduler that it is finished by returning  false  
> in its postfire() method.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the input date and time. See   java.text.SimpleDateFormat  
> for the syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:245:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.CreateDate">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:541:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[225.0, 50.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:541:1 
> ">
>            </property>
>            <property name=""  
> class="ptolemy.vergil.basic.DocAttribute">
>                <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="
Create a  
> date token. If a date string is not given on <i>input</ 
> i>, 
   the current date and time is used.">
>                </property>
>                <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Daniel Crawl">
>                </property>
>                <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>                </property>
>                <property name="firingCountLimit (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="If a positive  
> integer, then the number of iterations before the  actor indicates  
> to the scheduler that it is finished by returning  false in its  
> postfire() method.">
>                </property>
>                <property name="output (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="The date and time  
> token.">
>                </property>
>                <property name="trigger (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="If connected, the  
> actor will not run until a token is available.">
>                </property>
>                <property name="input (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="A string date and  
> time. If not used, the current date and time  is used.">
>                </property>
>                <property name="format (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="The format of the  
> input date and time. See   java.text.SimpleDateFormat for the  
> syntax.">
>                </property>
>            </property>
>        </entity>
>        <entity name="String To Int"  
> class="org.resurgence.actor.StringToInt">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The   
> StringToInt actor reads a string, converts it to an integer, and  
> outputs the result. </p>

<p>The actor creates  
> the integer by placing one byte (i.e., one character) of the string  
> into the least significant byte of an integer. Typically, this byte  
> is the ASCII code of the character.</p>
</configure></ 
> property>
> <property name="port:string"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a string.</configure></property>
> <property name="port:integer"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted string as an integer.</ 
> configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:294:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.resurgence.actor.StringToInt">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1119:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStringOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[540.0, 135.0]">
>            </property>
>        </entity>
>        <entity name="DateToString2"  
> class="org.kepler.date.DateToString">
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="M">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert  
> a date token to a string using a specific format. See
    
> java.text.SimpleDateFormat for formatting syntax.</configure></ 
> property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> formatted string of the date and time.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the string. See java.text.SimpleDateFormat for formatting  
> syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:253:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.DateToString">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:543:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[390.0, 205.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:543:1 
> ">
>            </property>
>        </entity>
>        <entity name="DateToString3"  
> class="org.kepler.date.DateToString">
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="D">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert  
> a date token to a string using a specific format. See
    
> java.text.SimpleDateFormat for formatting syntax.</configure></ 
> property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> formatted string of the date and time.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the string. See java.text.SimpleDateFormat for formatting  
> syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:253:3 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.DateToString">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:543:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[390.0, 270.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:543:1 
> ">
>            </property>
>        </entity>
>        <entity name="DateToString4"  
> class="org.kepler.date.DateToString">
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="HHmm">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert  
> a date token to a string using a specific format. See
    
> java.text.SimpleDateFormat for formatting syntax.</configure></ 
> property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time.</configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> formatted string of the date and time.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the string. See java.text.SimpleDateFormat for formatting  
> syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:253:4 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.DateToString">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:543:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[390.0, 340.0]">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:543:1 
> ">
>            </property>
>        </entity>
>        <entity name="String To Int2"  
> class="org.resurgence.actor.StringToInt">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The   
> StringToInt actor reads a string, converts it to an integer, and  
> outputs the result. </p>

<p>The actor creates  
> the integer by placing one byte (i.e., one character) of the string  
> into the least significant byte of an integer. Typically, this byte  
> is the ASCII code of the character.</p>
</configure></ 
> property>
> <property name="port:integer"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted string as an integer.</ 
> configure></property>
> <property name="port:string"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a string.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:294:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.resurgence.actor.StringToInt">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1119:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStringOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[540.0, 205.0]">
>            </property>
>        </entity>
>        <entity name="String To Int3"  
> class="org.resurgence.actor.StringToInt">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The   
> StringToInt actor reads a string, converts it to an integer, and  
> outputs the result. </p>

<p>The actor creates  
> the integer by placing one byte (i.e., one character) of the string  
> into the least significant byte of an integer. Typically, this byte  
> is the ASCII code of the character.</p>
</configure></ 
> property>
> <property name="port:integer"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted string as an integer.</ 
> configure></property>
> <property name="port:string"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a string.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:294:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.resurgence.actor.StringToInt">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1119:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStringOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[545.0, 270.0]">
>            </property>
>        </entity>
>        <entity name="String To Int4"  
> class="org.resurgence.actor.StringToInt">
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke  
> Sudholt</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> = 
> "ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The   
> StringToInt actor reads a string, converts it to an integer, and  
> outputs the result. </p>

<p>The actor creates  
> the integer by placing one byte (i.e., one character) of the string  
> into the least significant byte of an integer. Typically, this byte  
> is the ASCII code of the character.</p>
</configure></ 
> property>
> <property name="port:integer"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the converted string as an integer.</ 
> configure></property>
> <property name="port:string"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a string.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:294:1 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.resurgence.actor.StringToInt">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1119:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConversionActor">
>            </property>
>            <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DataStringOperation">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[545.0, 340.0]">
>            </property>
>        </entity>
>        <entity name="DateToString5"  
> class="org.kepler.date.DateToString">
>            <property name="format"  
> class="ptolemy.actor.parameters.PortParameter" value="yyyy-MM-dd  
> HH:mm:ss">
>            </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Daniel  
> Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Convert  
> a date token to a string using a specific format. See
    
> java.text.SimpleDateFormat for formatting syntax.</configure></ 
> property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> formatted string of the date and time.</configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> date and time.</configure></property>
> <property name="prop:format"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> format of the string. See java.text.SimpleDateFormat for formatting  
> syntax.</configure></property>
> </property>            <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:253:20 
> ">
>            </property>
>            <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.kepler.date.DateToString">
>                <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:543:1 
> ">
>                </property>
>            </property>
>            <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#Time">
>            </property>
>            <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{390.0, 410.0}">
>            </property>
>            <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:543:1 
> ">
>            </property>
>        </entity>
>        <relation name="relation"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation2"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation4"  
> class="ptolemy.actor.TypedIORelation">
>            <property name="width"  
> class="ptolemy.data.expr.Parameter" value="-1">
>            </property>
>            <vertex name="vertex1" value="{310.0, 95.0}">
>            </vertex>
>        </relation>
>        <relation name="relation3"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation5"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation6"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation7"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation8"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation9"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation10"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation11"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <relation name="relation12"  
> class="ptolemy.actor.TypedIORelation">
>        </relation>
>        <link port="timestamps" relation="relation"/>
>        <link port="year" relation="relation5"/>
>        <link port="month" relation="relation7"/>
>        <link port="daynum" relation="relation9"/>
>        <link port="sample_time" relation="relation11"/>
>        <link port="sample_date" relation="relation12"/>
>        <link port="DateToString.input" relation="relation4"/>
>        <link port="DateToString.output" relation="relation3"/>
>        <link port="SecondsToMilliseconds.output"  
> relation="relation2"/>
>        <link port="SecondsToMilliseconds.x" relation="relation"/>
>        <link port="CreateDate.output" relation="relation4"/>
>        <link port="CreateDate.input" relation="relation2"/>
>        <link port="String To Int.string" relation="relation3"/>
>        <link port="String To Int.integer" relation="relation5"/>
>        <link port="DateToString2.input" relation="relation4"/>
>        <link port="DateToString2.output" relation="relation6"/>
>        <link port="DateToString3.input" relation="relation4"/>
>        <link port="DateToString3.output" relation="relation8"/>
>        <link port="DateToString4.input" relation="relation4"/>
>        <link port="DateToString4.output" relation="relation10"/>
>        <link port="String To Int2.string" relation="relation6"/>
>        <link port="String To Int2.integer" relation="relation7"/>
>        <link port="String To Int3.string" relation="relation8"/>
>        <link port="String To Int3.integer" relation="relation9"/>
>        <link port="String To Int4.string" relation="relation10"/>
>        <link port="String To Int4.integer" relation="relation11"/>
>        <link port="DateToString5.input" relation="relation4"/>
>        <link port="DateToString5.output" relation="relation12"/>
>    </entity>
>    <entity name="Constant" class="ptolemy.actor.lib.Const">
>        <property name="firingCountLimit"  
> class="ptolemy.data.expr.Parameter" value="NONE">
>        </property>
>        <property name="NONE" class="ptolemy.data.expr.Parameter"  
> value="0">
>        </property>
>        <property name="value" class="ptolemy.data.expr.Parameter"  
> value="2702">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Constant actor outputs a constant, which is specified by the value  
> parameter. By default, the actor outputs the integer 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 often 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.ConfigurableAttribute"><configure>An  
> output port that broadcasts the specified constant. By default, the  
> output is 1.</configure></property>
> <property name="port:trigger"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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  
> connected, the actor will not fire until the trigger port receives  
> an input token. 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.ConfigurableAttribute"><configure>The  
> limit on the number of times the actor will fire. 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  
> provided as a value for this parameter.</configure></property>
> <property name="prop:value"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> value produced by the Constant actor. By default, the value is the  
> integer token 1. The value can be set to another type, e.g., a  
> string (such as "Hello") or a double (such as 1.2). The   
> output type matches the type of the value specified here.</ 
> configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:276:1 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Const">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:877:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#ConstantActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" 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.StringAttribute" value="value">
>            </property>
>            <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="40">
>            </property>
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{655, 225}">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:1:1 
> ">
>        </property>
>    </entity>
>    <entity name="Open Database Connection"  
> class="org.geon.OpenDBConnection">
>        <property name="databaseFormat"  
> class="ptolemy.data.expr.StringParameter" value="MySQL">
>            <display name="database format"/>
>        </property>
>        <property name="databaseURL"  
> class="ptolemy.data.expr.StringParameter" value="jdbc:mysql:// 
> localhost:3306/dbmaker">
>        </property>
>        <property name="username"  
> class="ptolemy.data.expr.StringParameter" value="">
>        </property>
>        <property name="password"  
> class="ptolemy.data.expr.StringParameter" value="">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>efrat  
> jaeger</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> OpenDatabaseConnection actor opens a database connection using the  
> specified database format and URL, username, and password. Once a   
> database connection has been established, the actor outputs a  
> reference to the connection. Actors downstream in the workflow can  
> use this reference to access the database.</p></configure></ 
> property>
> <property name="port:dbcon"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts a reference to the established database  
> connection. Other actors can use this reference to interact with the  
> database.</configure></property>
> <property name="prop:password"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>Database  
> password.</configure></property>
> <property name="prop:databaseFormat"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> type of database to access (e.g. Oracle, MySQL, etc)</configure></ 
> property>
> <property name="prop:databaseURL"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> location of the database (e.g. jdbc:db2://compute1.sdsc.geongrid.org: 
> 50000/testpgap)</configure></property>
> <property name="prop:username"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure>Database  
> user name.</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:277:8 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.geon.OpenDBConnection">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1013:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#DatabaseExternalInputActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DatabaseInputFunction">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[710.0, 100.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:155:1 
> ">
>        </property>
>    </entity>
>    <entity name="Database Writer" class="org.sdm.spa.DatabaseWriter">
>        <property name="table"  
> class="ptolemy.actor.parameters.PortParameter"  
> value="crystal_bog_buoy_hi_res">
>        </property>
>        <property name="autoIncColumnName"  
> class="ptolemy.actor.parameters.PortParameter" value="record_id">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yang  
> Zhao, Daniel Crawl</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> DatabaseWriter actor performs database updates against an open  
> database and outputs the number of rows inserted.</ 
> p>

<p>Use the OpenDatabaseConnection actor to  
> establish a database connection and generate a reference to that  
> connection. The reference is passed to the DatabaseWriter actor via  
> the dbcon port.</p>

<p>An update is passed to  
> the actor via the update port or parameter.</p>

</ 
> configure></property>
> <property name="port:result"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts how many rows were sucessfully updated.</ 
> configure></property>
> <property name="port:dbcon"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input port that accepts a reference to an established database  
> connection. The OpenDatabaseConnection actor can be used to generate  
> this reference.</configure></property>
> <property name="prop:query"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> input update string. Updates can be specified via the query port or  
> query parameter.</configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:278:2 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="org.sdm.spa.DatabaseWriter">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:998:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#DatabaseExternalInputActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#DatabaseInputFunction">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="{850, 170}">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:518:1 
> ">
>        </property>
>        <property name="" class="ptolemy.vergil.basic.DocAttribute">
>            <property name="description"  
> class="ptolemy.kernel.util.StringAttribute" value="<p>The  
> DatabaseWriter actor performs database updates against an open  
> database and outputs the number of rows inserted.</ 
> p>

<p>Use the OpenDatabaseConnection actor to  
> establish a database connection and generate a reference to that  
> connection. The reference is passed to the DatabaseWriter actor via  
> the dbcon port.</p>

<p>An update is passed to  
> the actor via the update port or parameter.</p>

">
>            </property>
>            <property name="author"  
> class="ptolemy.kernel.util.StringAttribute" value="Yang Zhao, Daniel  
> Crawl">
>            </property>
>            <property name="version"  
> class="ptolemy.kernel.util.StringAttribute" value="null">
>            </property>
>            <property name="dbcon (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An input port  
> that accepts a reference to an established database connection. The  
> OpenDatabaseConnection actor can be used to generate this reference.">
>            </property>
>            <property name="result (port)"  
> class="ptolemy.kernel.util.StringAttribute" value="An output port  
> that broadcasts how many rows were sucessfully updated.">
>            </property>
>            <property name="query (parameter)"  
> class="ptolemy.data.expr.StringParameter" value="An input update  
> string. Updates can be specified via the query port or query  
> parameter.">
>            </property>
>        </property>
>        <port name="dbcon" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>            <property name="tokenConsumptionRate"  
> class="ptolemy.data.expr.Parameter" value="1">
>            </property>
>        </port>
>    </entity>
>    <entity name="Display2" class="ptolemy.actor.lib.gui.Display">
>        <property name="_windowProperties"  
> class="ptolemy.actor.gui.WindowPropertiesAttribute"  
> value="{bounds={119, 150, 1008, 708}, maximized=false}">
>        </property>
>        <property name="_paneSize"  
> class="ptolemy.actor.gui.SizeAttribute" value="[1000, 653]">
>        </property>
>        <property name="rowsDisplayed"  
> class="ptolemy.data.expr.Parameter" value="10">
>        </property>
>        <property name="columnsDisplayed"  
> class="ptolemy.data.expr.Parameter" value="40">
>        </property>
>        <property name="suppressBlankLines"  
> class="ptolemy.data.expr.Parameter" value="false">
>        </property>
>        <property name="title"  
> class="ptolemy.data.expr.StringParameter" value="">
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure><p>The  
> Display actor reads tokens of any type via 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 persistently 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 advisable to use it to display large output  
> streams.</p></configure></property>
> <property name="port:input"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A  
> multiport that accepts tokens of any type.</configure></property>
> <property name="prop:suppressBlankLines"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify  
> whether the actor should display blank lines (the default) or  
> suppress them.</configure></property>
> <property name="prop:rowsDisplayed"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><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.ConfigurableAttribute"><configure>The  
> horizontal size of the display, in columns. The value is an integer  
> that defaults to 40.</configure></property>
> <property name="prop:title"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The  
> title of the text display window. If specified, the value will  
> appear in the title bar of the text display window.</configure></ 
> property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" 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.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#TextualOutputActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#TextualOutput">
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[905.0, 285.0]">
>        </property>
>    </entity>
>    <entity name="Expression" class="ptolemy.actor.lib.Expression">
>        <property name="expression"  
> class="ptolemy.kernel.util.StringAttribute" value="s.equals(nil)? 
> "NULL":s">
>            <property name="_hide"  
> class="ptolemy.data.expr.Parameter" value="true">
>            </property>
>        </property>
> <property name="KeplerDocumentation"  
> class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
> <property name="description"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="author"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun  
> Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
> <property name="version"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</ 
> configure></property>
> <property name="userLevelDocumentation"  
> class 
> ="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The  
> Expression actor evaluates a specified expression (e.g., an addition  
> or multiplication operation), which may reference the values of user- 
> specified input ports, the current time, or the actor's iteration  
> count. The actor outputs the value of the evaluated expression. </ 
> p>

<p>Expressions are specified in the Ptolemy  
> expression language via the expression parameter. For more  
> information about the expression language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf 
> . </p>

<p>By default, the expression parameter  
> is empty, and attempting to execute the actor without first  
> specifying an expression generates an error. Expressions can refer  
> to the values of inputs by the port name; to the current time by the  
> identifier "time"; and to the current iteration count by  
> the identifier "iteration." </ 
> p>

<p>Input ports are created by the user and  
> correspond to variables used in the specified expression. Currently,  
> the Expression actor does not support input multiports. The actor  
> requires all of its inputs to be present. If inputs are not all  
> present, then the actor will generate an error. </ 
> p>

<p>Note: the Expression actor can be used  
> instead of many of the arithmetic actors, such as AddSubtract,  
> MultiplyDivide, and TrigFunction. However, those actors will be  
> usually be more efficient, and sometimes more convenient to use.</ 
> p></configure></property>
> <property name="port:output"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> output port that broadcasts the value of the evaluated expression.  
> The actor automatically determines the type based on the type of the  
> input.</configure></property>
> <property name="prop:expression"  
> class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An  
> expression to evaluate. Expressions are specified in the Ptolemy  
> expression language. For more information about the expression  
> language, see http://ptolemy.eecs.berkeley.edu/papers/05/ptIIdesign1-intro/ptIIdesign1-intro.pdf 
> . By default, the parameter is empty, and attempting to execute the  
> actor without first specifying an expression generates an error.  
> Expressions can refer to the values of inputs by the port name; to  
> the current time by the identifier "time"; and to the  
> current iteration count by the identifier "iteration."</ 
> configure></property>
> </property>        <property name="entityId"  
> class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:1266:283:7 
> ">
>        </property>
>        <property name="class"  
> class="ptolemy.kernel.util.StringAttribute"  
> value="ptolemy.actor.lib.Expression">
>            <property name="id"  
> class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:950:1 
> ">
>            </property>
>        </property>
>        <property name="semanticType00"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 1:1#MathOperationActor">
>        </property>
>        <property name="semanticType11"  
> class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto: 
> 2:1#GeneralPurpose">
>        </property>
>        <property name="_icon"  
> class="ptolemy.vergil.icon.BoxedValueIcon">
>            <property name="attributeName"  
> class="ptolemy.kernel.util.StringAttribute" value="expression">
>            </property>
>            <property name="displayWidth"  
> class="ptolemy.data.expr.Parameter" value="60">
>            </property>
>        </property>
>        <property name="_location"  
> class="ptolemy.kernel.util.Location" value="[750.0, 355.0]">
>        </property>
>        <property name="derivedFrom"  
> class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:75:1 
> ">
>        </property>
>        <port name="s" class="ptolemy.actor.TypedIOPort">
>            <property name="input"/>
>        </port>
>    </entity>
>    <relation name="relation2" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation5" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation4" class="ptolemy.actor.TypedIORelation">
>        <property name="width" class="ptolemy.data.expr.Parameter"  
> value="-1">
>        </property>
>        <vertex name="vertex1" value="[460.0, 330.0]">
>        </vertex>
>    </relation>
>    <relation name="relation3" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation7" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation6" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation12" class="ptolemy.actor.TypedIORelation">
>        <property name="width" class="ptolemy.data.expr.Parameter"  
> value="-1">
>        </property>
>        <vertex name="vertex1" value="[530.0, 205.0]">
>        </vertex>
>    </relation>
>    <relation name="relation11" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation13" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation14" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation15" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation16" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation17" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
>    </relation>
>    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
>        <property name="width" class="ptolemy.data.expr.Parameter"  
> value="-1">
>        </property>
>        <vertex name="vertex1" value="[820.0, 310.0]">
>        </vertex>
>    </relation>
>    <link port="DataTurbine.CrystalBogBuoy/airTemp"  
> relation="relation"/>
>    <link port="Record Disassembler.input" relation="relation"/>
>    <link port="Record Disassembler.timestamps" relation="relation2"/>
>    <link port="Record Disassembler.data" relation="relation5"/>
>    <link port="Array To Sequence.input" relation="relation2"/>
>    <link port="Array To Sequence.output" relation="relation10"/>
>    <link port="Array To Sequence2.input" relation="relation5"/>
>    <link port="Array To Sequence2.output" relation="relation4"/>
>    <link port="generalRangeCheck.flagIn" relation="relation3"/>
>    <link port="generalRangeCheck.flagOut" relation="relation7"/>
>    <link port="generalRangeCheck.dataIn" relation="relation4"/>
>    <link port="generalRangeCheck.dataOut" relation="relation8"/>
>    <link port="monthSpecificRangeCheck.month" relation="relation12"/>
>    <link port="monthSpecificRangeCheck.data" relation="relation4"/>
>    <link port="monthSpecificRangeCheck.flagOut" relation="relation3"/>
>    <link port="Record Assembler.output" relation="relation17"/>
>    <link port="Record Assembler.sampledate" relation="relation15"/>
>    <link port="Record Assembler.year4" relation="relation6"/>
>    <link port="Record Assembler.station_id" relation="relation14"/>
>    <link port="Record Assembler.month" relation="relation12"/>
>    <link port="Record Assembler.daynum" relation="relation11"/>
>    <link port="Record Assembler.sample_time" relation="relation13"/>
>    <link port="Record Assembler.air_temp" relation="relation9"/>
>    <link port="Record Assembler.flag_air_temp" relation="relation7"/>
>    <link port="disassembleDate.timestamps" relation="relation10"/>
>    <link port="disassembleDate.year" relation="relation6"/>
>    <link port="disassembleDate.month" relation="relation12"/>
>    <link port="disassembleDate.daynum" relation="relation11"/>
>    <link port="disassembleDate.sample_time" relation="relation13"/>
>    <link port="disassembleDate.sample_date" relation="relation15"/>
>    <link port="Constant.output" relation="relation14"/>
>    <link port="Open Database Connection.dbcon" relation="relation16"/>
>    <link port="Database Writer.dbcon" relation="relation16"/>
>    <link port="Database Writer.input" relation="relation17"/>
>    <link port="Display2.input" relation="relation9"/>
>    <link port="Expression.output" relation="relation9"/>
>    <link port="Expression.s" relation="relation8"/>
> </entity>
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://mercury.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users




More information about the Kepler-users mailing list