You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Francesco Spegni <fr...@gmail.com> on 2012/12/03 15:30:06 UTC
[scxml] question on datamodel
Hello everybody,
I'm new to SCXML and with my research group we are trying to understand
if it fits our needs.
We developed our own languages to represent FSMs with different kinds of
constraints (e.g. semantic assertions, time constraints, ...) and now we
are evaluating whether through SCXML we can "standardize" our languages
and tools.
One of our languages is named XAL and deals with FSM, time constraints
(as in Timed Automata) and actions associated to the single states (an
example can be found here:
http://www.computervaritt.it/xal/index.php/en/tutorial/49-progettazione-dellapplicazione-.html
).
The first problem we are trying to solve is: how to extend the
definition of Transition to accept custom XML nodes to be interpreted as
complex conditions? E.g. we would like to express something as:
<scxml xmlns="http://www.w3.org/2005/07/scxml"
version="1.0"
initialstate="a"
datamodel="xmlns:cc="someurl" >
<state id="a">
<transition target="b" cond="cc:eval(//condition)" >
<cc:condition>
<time exp="clock > 1 sec" />
</cc:condition>
</transition>
</state>
<state id="b" final="true">
</state>
</scxml>
In this case I have two states (a,b) and the transition a -> b is
activated only when the time condition (clock > 1 sec) is true, provided
a meaningful interpretation function "eval" is provided. In particular I
would like to specify to the eval function the "child element" named
condition
As far as I've got is possible to use the xpath data-model for this
purpose (there is a similar example in appendix D.3.2 at this URL
http://www.w3.org/TR/scxml/ ). Unfortunately the "datamodel" in the root
attribute <scxml ...> is not supported in the current implementation of
the Parser in Apache commons.
Provided all that, we are thinking about implementing an xpath datamodel
for the scxml (or an ecmascript datamodel, in which case the solution
would be very similar).
My questions are:
- is there any documentation explaining how to implement a new Datamodel
in a standard way?
- would it be possible to reach the same result without implementing a
brand new Datamodel, i.e. just using the default one (so-called
null-datamodel)?
Any suggestion would be very helpful. Thanks in advance :)
--
Francesco Spegni
Post Doc
Dipartimento di Ingegneria dell'Informazione (DII)
Universit� Politecnica delle Marche
via Brecce Bianche, 60131 Ancona, Italy
Phone: (+39) 328-8694618
Web: http://www.manuefra.eu
Skype: francesco.spegni
"Ama le nuvole, le macchine, i libri, ma prima di tutto ama l'uomo" -
Nazim Hilkmet
Re: [scxml] question on datamodel
Posted by Jacob Beard <jb...@cs.mcgill.ca>.
On Mon, Dec 3, 2012 at 2:13 PM, Francesco Spegni
<fr...@gmail.com> wrote:
> On 03/12/2012 16:02, Jacob Beard wrote:
>>
>> Hi Francesco,
>
> Hi Jacob,
>
> thanks for your solution that I've read with interest. First of all, your
> solution has a minor issue I'm concerned about:
>
> - in Statecharts, AFAIK, the notion of timeout implies that something must
> be executed after a known amount of time; in the semantics I've in mind,
> borrowed from Timed Automata, a transition is enabled/disabled in certain
> time-windows. This means that nothing *happens* but something *can happen*
> (non deterministically) when the condition is true ... but this may be a
> minor issue, because it happened that our work stemmed from Timed Automata
Just to be clear, what's happening in the SCXML example I cited is
that an event ("$timeout_1") is sent to the state machine after a
specified amount of time. The mechanism by which the event is
scheduled is platform-specific. If the system is in a state which does
not have a transition with a trigger corresponding to that event, then
the event will be ignored. This behaviour is deterministic, but
whether the state machine will select a particular transition that has
a timeout after the amount of time specified in the timeout, is
non-deterministic.
>
> A major concern we have is that right now we have in mind more complex
> expressions. For instance, at the moment we consider two kinds of conditions
> on transitions:
> - time conditions that enable/disable a transition;
> - a conjunctive boolean formula, that refers to a finite set of propositions
> in description logic;
> - a combination of the above two.
>
It sounds like the second item on your list could be accomplished
through scripting. I'd have to see an example of the third item to
understand what this looks like.
> This apparently heterogeneous language is aimed at describing parametrized
> FSMs (i.e. FSM with an undefined number of running "instances") to reason on
> timed and RESTful services.
As SCXML is just XML, it's easy to parameterize, for example using XSLT.
> Due to the fact that the research project is a
> work-in-progress, the "shape" of those expressions are not yet definitive
> and may change, so we'd figure leveraging the flexibility of SCXML (in
> particular its datamodel) would give us a more "stable" ground to work on,
> possibly re-using the base Apache Commons libraries and Eclipse editor, and
> maybe extend it.
>
> -FS
>
>>
>> The example you describe looks like the special "timeout" event described
>> by Harel in his original papers on Statechart semantics:
>> http://research.microsoft.com/apps/pubs/default.aspx?id=148785
>> http://dl.acm.org/citation.cfm?id=235322
>>
>> If so, this event can be implemented in SCXML as a transformation, as in
>> the following example: https://gist.github.com/4195449
>>
>> In this example, on entering state "a", the event "$timeout_1" is
>> scheduled
>> to be sent after 1 second. If the state is exited before that time, the
>> scheduled event will be cancelled via the <cancel> action. If the machine
>> stays in state "a", and after 1 second the event is sent, then the
>> transition in state "a" with event "$transition_1" will be selected, and
>> the machine will leave state "a" and enter state "b".
>>
>> This transformation can be implemented easily in a language like XSLT.
>> Therefore, SCXML should be able to handle your example out of the box.
>> Does
>> your application have other, more complex requirements for transition
>> conditions?
>>
>> Jake
>>
>> On Mon, Dec 3, 2012 at 9:30 AM, Francesco Spegni
>> <francesco.spegni@gmail.com
>>>
>>> wrote:
>>> The first problem we are trying to solve is: how to extend the definition
>>> of Transition to accept custom XML nodes to be interpreted as complex
>>> conditions? E.g. we would like to express something as:
>>>
>>> <scxml
>>> xmlns="http://www.w3.org/2005/**07/scxml<http://www.w3.org/2005/07/scxml>
>>>
>>> "
>>> version="1.0"
>>> initialstate="a"
>>> datamodel="xmlns:cc="someurl" >
>>>
>>> <state id="a">
>>> <transition target="b" cond="cc:eval(//condition)" >
>>> <cc:condition>
>>> <time exp="clock > 1 sec" />
>>> </cc:condition>
>>> </transition>
>>> </state>
>>>
>>> <state id="b" final="true">
>>>
>>> </state>
>>> </scxml>
>>>
>
>
> --
> Francesco Spegni
>
>
> "Ama le nuvole, le macchine, i libri, ma prima di tutto ama l'uomo" -
> Nazim Hikmet
>
> http://www.manuefra.eu
> skype: francesco.spegni
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [scxml] question on datamodel
Posted by Francesco Spegni <fr...@gmail.com>.
On 03/12/2012 16:02, Jacob Beard wrote:
> Hi Francesco,
Hi Jacob,
thanks for your solution that I've read with interest. First of all,
your solution has a minor issue I'm concerned about:
- in Statecharts, AFAIK, the notion of timeout implies that something
must be executed after a known amount of time; in the semantics I've in
mind, borrowed from Timed Automata, a transition is enabled/disabled in
certain time-windows. This means that nothing *happens* but something
*can happen* (non deterministically) when the condition is true ... but
this may be a minor issue, because it happened that our work stemmed
from Timed Automata
A major concern we have is that right now we have in mind more complex
expressions. For instance, at the moment we consider two kinds of
conditions on transitions:
- time conditions that enable/disable a transition;
- a conjunctive boolean formula, that refers to a finite set of
propositions in description logic;
- a combination of the above two.
This apparently heterogeneous language is aimed at describing
parametrized FSMs (i.e. FSM with an undefined number of running
"instances") to reason on timed and RESTful services. Due to the fact
that the research project is a work-in-progress, the "shape" of those
expressions are not yet definitive and may change, so we'd figure
leveraging the flexibility of SCXML (in particular its datamodel) would
give us a more "stable" ground to work on, possibly re-using the base
Apache Commons libraries and Eclipse editor, and maybe extend it.
-FS
>
> The example you describe looks like the special "timeout" event described
> by Harel in his original papers on Statechart semantics:
> http://research.microsoft.com/apps/pubs/default.aspx?id=148785
> http://dl.acm.org/citation.cfm?id=235322
>
> If so, this event can be implemented in SCXML as a transformation, as in
> the following example: https://gist.github.com/4195449
>
> In this example, on entering state "a", the event "$timeout_1" is scheduled
> to be sent after 1 second. If the state is exited before that time, the
> scheduled event will be cancelled via the <cancel> action. If the machine
> stays in state "a", and after 1 second the event is sent, then the
> transition in state "a" with event "$transition_1" will be selected, and
> the machine will leave state "a" and enter state "b".
>
> This transformation can be implemented easily in a language like XSLT.
> Therefore, SCXML should be able to handle your example out of the box. Does
> your application have other, more complex requirements for transition
> conditions?
>
> Jake
>
> On Mon, Dec 3, 2012 at 9:30 AM, Francesco Spegni <francesco.spegni@gmail.com
>> wrote:
>> The first problem we are trying to solve is: how to extend the definition
>> of Transition to accept custom XML nodes to be interpreted as complex
>> conditions? E.g. we would like to express something as:
>>
>> <scxml xmlns="http://www.w3.org/2005/**07/scxml<http://www.w3.org/2005/07/scxml>
>> "
>> version="1.0"
>> initialstate="a"
>> datamodel="xmlns:cc="someurl" >
>>
>> <state id="a">
>> <transition target="b" cond="cc:eval(//condition)" >
>> <cc:condition>
>> <time exp="clock > 1 sec" />
>> </cc:condition>
>> </transition>
>> </state>
>>
>> <state id="b" final="true">
>>
>> </state>
>> </scxml>
>>
--
Francesco Spegni
"Ama le nuvole, le macchine, i libri, ma prima di tutto ama l'uomo" -
Nazim Hikmet
http://www.manuefra.eu
skype: francesco.spegni
Re: [scxml] question on datamodel
Posted by Jacob Beard <jb...@cs.mcgill.ca>.
Hi Francesco,
The example you describe looks like the special "timeout" event described
by Harel in his original papers on Statechart semantics:
http://research.microsoft.com/apps/pubs/default.aspx?id=148785
http://dl.acm.org/citation.cfm?id=235322
If so, this event can be implemented in SCXML as a transformation, as in
the following example: https://gist.github.com/4195449
In this example, on entering state "a", the event "$timeout_1" is scheduled
to be sent after 1 second. If the state is exited before that time, the
scheduled event will be cancelled via the <cancel> action. If the machine
stays in state "a", and after 1 second the event is sent, then the
transition in state "a" with event "$transition_1" will be selected, and
the machine will leave state "a" and enter state "b".
This transformation can be implemented easily in a language like XSLT.
Therefore, SCXML should be able to handle your example out of the box. Does
your application have other, more complex requirements for transition
conditions?
Jake
On Mon, Dec 3, 2012 at 9:30 AM, Francesco Spegni <francesco.spegni@gmail.com
> wrote:
> The first problem we are trying to solve is: how to extend the definition
> of Transition to accept custom XML nodes to be interpreted as complex
> conditions? E.g. we would like to express something as:
>
> <scxml xmlns="http://www.w3.org/2005/**07/scxml<http://www.w3.org/2005/07/scxml>
> "
> version="1.0"
> initialstate="a"
> datamodel="xmlns:cc="someurl" >
>
> <state id="a">
> <transition target="b" cond="cc:eval(//condition)" >
> <cc:condition>
> <time exp="clock > 1 sec" />
> </cc:condition>
> </transition>
> </state>
>
> <state id="b" final="true">
>
> </state>
> </scxml>
>
Re: [scxml] question on datamodel
Posted by liuhuan123 <li...@yahoo.com>.
Today, a advanced array of Converse shoes are accessible for the consumers.
They are trendy, affected and admirable and advised for altered sports
activities. Vans Shoes and sneakers are the absolute footwears that are both
fashionable as able-bodied as adequate for users. If you are searching for
the active shoe that is fabricated up of altered abstracts like printed
textiles, rubber, denim, covering and suede cloth, again Check More
<http://converseso.com/goods-29-Converse-All-Star-Chuck-Taylor-Shoes-Hi-top-New-York-Map-Red.html>
shoes is a absolute option. Although, Converse ireland shoes were initially
affected by the sports legends like backward basketball amateur Chuck
Taylor, but now they accept become a accepted cast in the appearance arena.
If you are a quick and an able agent again you would wish something added
from your shoe than just ablaze weight. This next shoe is ablaze weight
afterwards compromising on the cushioning aftereffect of the bottom bed.
--
View this message in context: http://apache-commons.680414.n4.nabble.com/scxml-question-on-datamodel-tp4642836p4644968.html
Sent from the Commons - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org
Re: [scxml] question on datamodel
Posted by liuhuan123 <li...@yahoo.com>.
Hermes replica totes are actually ambrosial in accretion to about apprenticed
that you acquire complete admiring for those who acquire 1. Irrespective of
your breadth activity to, accepting a afflicted by hermes belt kit women
<http://justhermes.net/goods-29-UK-Hermes-Belts-New-Arrivals-86.html> , you
should not all-overs any bootless affliction. Every abandoned afflicted will
be anxiously bogus to accomplish it abide best than it's competitors on the
market. This can be a haversack an abandoned broker by appliance delight. If
you're a sweetheart with out them these these reproductions, that you are
accepting larboard aback with the assets of Hermes. There're below than this
18-carat ones and the identical axial development. Hermes won't discriminate
rolling about in its carriers.
--
View this message in context: http://apache-commons.680414.n4.nabble.com/scxml-question-on-datamodel-tp4642836p4647247.html
Sent from the Commons - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org