diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-28 00:26:28 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-04-28 00:26:28 (GMT) |
commit | 8374808893010864660d5b018928aefd543b0294 (patch) | |
tree | 7355ca2bcc0b5088c2c986843369398ae192776a /test | |
parent | 00f5d8af3c8e42ba8a0d0c206d2c2e8f1867a61e (diff) | |
download | uscxml-8374808893010864660d5b018928aefd543b0294.zip uscxml-8374808893010864660d5b018928aefd543b0294.tar.gz uscxml-8374808893010864660d5b018928aefd543b0294.tar.bz2 |
Work on prolog datamodel and libdl fix for nices
Diffstat (limited to 'test')
-rw-r--r-- | test/samples/uscxml/test-prolog.scxml | 122 |
1 files changed, 98 insertions, 24 deletions
diff --git a/test/samples/uscxml/test-prolog.scxml b/test/samples/uscxml/test-prolog.scxml index e29def1..8d171e6 100644 --- a/test/samples/uscxml/test-prolog.scxml +++ b/test/samples/uscxml/test-prolog.scxml @@ -1,46 +1,120 @@ <?xml version="1.0"?> <scxml datamodel="prolog" initial="start" binding="late"> + <!-- + % see http://www.swi-prolog.org/FAQ/Multifile.html + :- multifile animal/1. + --> <datamodel> - <data id="facts"> -% see http://www.swi-prolog.org/FAQ/Multifile.html -:- multifile animal/1. -cat(tom). -animal(X):- cat(X). + <!-- + Various possible uses for the data element + --> + + <!-- if no id is given, we assume assertion mode --> + <data> + father(bob, jim). + father(bob, john). + father(bob, jack). + mother(martha, jim). + mother(martha, john). + mother(martha, jack). + </data> + <!-- if id is given, we treat it the name of a predicate --> + <data id="sibling/2"> + jim, john. + jim, jack. + john, jack. + </data> + <!-- if an id is given, json data is transformed into a prolog compound term --> + <data id="john"> + { + "name": "John", + "age": 25, + "address": { + "streetAddress": "21 2nd Street", + "city": "New York", + }, + "phoneNumbers": [ + { + "type": "home", + "number": "212 555-1234" + }, + { + "type": "fax", + "number": "646 555-4567" + } + ] + } + </data> + <!-- If an id is given, parse XML as nested compund terms --> + <data id="jack"> + <person name="jack" age="27"> + <address> + <street>23 3rd Street</street> + <city>New York</city> + </address> + <phone type="mobile"> + 384 234-5534 + </phone> + </person> </data> </datamodel> + <!-- + scripts are executed in assertion mode + --> <script> -mouse(jerry). -animal(X):- mouse(X). + older(bob, martha). + older(bob, john). + older(bob, jack). + older(bob, jim). </script> <state id="start"> <onentry> - <log label="SessionId" expr="sessionId(X)"/> + <!-- + Evaluation to string will return a list of valid solutions for the free variables. + --> + <log label="SessionId" expr="sessionid(X)"/> <log label="Name" expr="name(X)"/> + <send event="foo">This is a foo event.</send> </onentry> - <transition event="foo" cond="not(cat(jerry)), cat(tom), mouse(jerry)." target="s1"/> + <!-- boolean expressions are true if there is a solution--> + <transition event="foo" cond="not(father(X, jim)), mother(X, john), older(bob, X)." target="sending"/> </state> - <state id="s1"> + <state id="sending"> <onentry> - <log expr="eventName(X)."/> - <send event="bar"> - <ISBNdb server_time="2009-03-19T02:01:00Z"> - <BookList total_results="1" page_size="10" page_number="1" shown_results="1"> - <BookData book_id="the_data_compression_book" isbn="1558514341"> - <Title>The Data Compression Book</Title> - <TitleLong/> - <AuthorsText>Mark Nelson, Jean-Loup Gailly, </AuthorsText> - <PublisherText publisher_id="m_t_books">M&T Books</PublisherText> - </BookData> - </BookList> - </ISBNdb> + <send event="bar" type="basichttp" targetexpr="ioprocessors(basichttp(location(X)))"> + <param name="foo" expr="name(X)" /> + <param name="bar" expr="name(X)" /> + <param name="bar" expr="sessionid(X)" /> + <content> + <person name="jack" age="27"> + <address> + <street>23 3rd Street</street> + <city>New York</city> + </address> + <phone type="mobile"> + 384 234-5534 + </phone> + </person> + </content> </send> </onentry> - <transition target="end"/> + <transition event="bar" cond="in('sending')" target="assigning"/> + </state> + <state id="assigning"> + <onentry> + <!-- assigning with retract attribute --> + <assign id="older/2" retract=""> + older(jim, john). + older(jim, jack). + older(john, jack). + </assign> + </onentry> + <transition event="bar" cond="in('assigning')" target="end"/> </state> <state id="end" final="true"> <onentry> - <log expr="animal(X)."/> + <log label="Listing" expr="listing."/> </onentry> </state> </scxml> |