version 0.2.1 (flèches encodées sans redondance)

This commit is contained in:
Jean Sirmai 2021-12-07 19:38:42 +01:00
parent 16eb05fa05
commit 86eac95046
Signed by: jean
GPG Key ID: FB3115C340E057E3
3 changed files with 144 additions and 51 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gem-graph-model version="0.2"> <gem-graph-model version="0.2.1">
<identity> <identity>
<name>Modèle de test</name> <name>Modèle de test</name>
@ -27,9 +27,7 @@
<!-- loop_on_max="true" anything moved beyond max reenters at the zero of space--> <!-- loop_on_max="true" anything moved beyond max reenters at the zero of space-->
<!-- loop_on_max="false" anything moved beyond max is lost--> <!-- loop_on_max="false" anything moved beyond max is lost-->
<dimension> <dimension x="29"/>
<coord axis="x" at="29"/>
</dimension>
<!-- Site_multiplicity = number of sites in a space unit. --> <!-- Site_multiplicity = number of sites in a space unit. -->
<!-- Each site points towards a neighbouring space unit. --> <!-- Each site points towards a neighbouring space unit. -->
@ -45,8 +43,8 @@
<objects id="only dimers in this model" date="1630000000" author="inanimés,... âme ?"> <objects id="only dimers in this model" date="1630000000" author="inanimés,... âme ?">
<object id="a dimer" date="1630000000" author="Alphonse"> <object id="a dimer" date="1630000000" author="Alphonse">
<arrow site="1" weight="1"><coord axis="x" at="0"/></arrow> <arrow site="1" weight="1" x="0"/>
<arrow site="2" weight="1"><coord axis="x" at="1"/></arrow> <arrow site="2" weight="1" x="1"/>
</object> </object>
</objects> </objects>
@ -56,12 +54,12 @@
<savedstates id="texte" date="1630000000" author="Qui courrait dans l'herbe'"> <savedstates id="texte" date="1630000000" author="Qui courrait dans l'herbe'">
<state id="initial" date="1630000000" author="Une souris verte"> <state id="initial" date="1630000000" author="Une souris verte">
<arrow site="1" weight="1"><coord axis="x" at="0"/></arrow> <arrow site="1" weight="1" x="0"/>
<arrow site="2" weight="1"><coord axis="x" at="1"/></arrow> <arrow site="2" weight="1" x="1"/>
<arrow site="1" weight="1"><coord axis="x" at="10"/></arrow> <arrow site="1" weight="1" x="10"/>
<arrow site="2" weight="1"><coord axis="x" at="11"/></arrow> <arrow site="2" weight="1" x="11"/>
<arrow site="1" weight="1"><coord axis="x" at="20"/></arrow> <arrow site="1" weight="1" x="20"/>
<arrow site="2" weight="1"><coord axis="x" at="21"/></arrow> <arrow site="2" weight="1" x="21"/>
<!-- Three dimers 1-1 are drawn in the global space <!-- Three dimers 1-1 are drawn in the global space
at locations (0,1) (10,11) and (20,21) --> at locations (0,1) (10,11) and (20,21) -->
@ -76,16 +74,16 @@
<conditions id="random walk of dimers" date="1630000000" author="Zazard le lézard !"> <conditions id="random walk of dimers" date="1630000000" author="Zazard le lézard !">
<condition site="1" weight="1" node_id="1" parent="0"><coord axis="x" at="0"/></condition> <condition site="1" weight="1" node_id="1" parent="0" x="0"/>
<condition site="2" weight="1" node_id="2" parent="1"><coord axis="x" at="1"/></condition> <condition site="2" weight="1" node_id="2" parent="1" x="1"/>
<!-- as soon as conditions 1 and 2 are satisfied, a dimer is identified at atation (0,1). --> <!-- as soon as conditions 1 and 2 are satisfied, a dimer is identified at atation (0,1). -->
<condition site="1" weight="0" node_id="3" parent="2"><coord axis="x" at="2"/></condition> <condition site="1" weight="0" node_id="3" parent="2" x="2"/>
<!-- as soon as condition 3 is satisfied, <!-- as soon as condition 3 is satisfied,
the neighbouring space unit to East of the dimer is empty the neighbouring space unit to East of the dimer is empty
and the dimer identified by conditions (1,2) can be moved to East. --> and the dimer identified by conditions (1,2) can be moved to East. -->
<condition site="2" weight="0" node_id="4" parent="2"><coord axis="x" at="-1"/></condition> <condition site="2" weight="0" node_id="4" parent="2" x="-1"/>
<!-- as soon as condition 4 is satisfied, <!-- as soon as condition 4 is satisfied,
the neighbouring space unit to West of the dimer is empty the neighbouring space unit to West of the dimer is empty
and the dimer identified by conditions (1,2) can be moved to West. --> and the dimer identified by conditions (1,2) can be moved to West. -->
@ -97,20 +95,20 @@
<transition id="move_a_dimer_to_east" date="1630000000" author="Pas moi..." <transition id="move_a_dimer_to_east" date="1630000000" author="Pas moi..."
parent="3" probability="1"> parent="3" probability="1">
<arrow site="1" weight="0"><coord axis="x" at="0"/></arrow> <arrow site="1" weight="0" x="0"/>
<arrow site="2" weight="0"><coord axis="x" at="1"/></arrow> <arrow site="2" weight="0" x="1"/>
<arrow site="1" weight="1"><coord axis="x" at="1"/></arrow> <arrow site="1" weight="1" x="1"/>
<arrow site="2" weight="1"><coord axis="x" at="2"/></arrow> <arrow site="2" weight="1" x="2"/>
</transition> </transition>
<transition id="move_a_dimer_to_west" date="1630000000" author="Ni moi !" <transition id="move_a_dimer_to_west" date="1630000000" author="Ni moi !"
parent="4" probability="1"> parent="4" probability="1">
<arrow site="1" weight="0"><coord axis="x" at="0"/></arrow> <arrow site="1" weight="0" x="0"/>
<arrow site="2" weight="0"><coord axis="x" at="1"/></arrow> <arrow site="2" weight="0" x="1"/>
<arrow site="2" weight="1"><coord axis="x" at="0"/></arrow> <arrow site="2" weight="1" x="0"/>
<arrow site="1" weight="1"><coord axis="x" at="1"/></arrow> <arrow site="1" weight="1" x="1"/>
</transition> </transition>

83
models/testing.xml Normal file
View File

@ -0,0 +1,83 @@
<gem-graph-model version="0.2">
<!-- Model identity informations -->
<identity>
<name>Modèle de test</name>
<owner>Gaston Lagaffe</owner>
<owner_id>2</owner_id>
<date>1629830000</date>
<version>1.0</version>
<g_ref id="texte" date="1629830000" author="Jean" lang="en">Ref</g_ref>
</identity>
<!-- Model parameters -->
<parameters id="texte" date="0" author="Gaston Lagaffe">
<simulation>
<max_thread>0</max_thread>
<max_cycles>9</max_cycles>
</simulation>
<space-param>
<dimension>
<!-- loop_on_zero="true" anything moved before zero reenters at the end of space-->
<!-- loop_on_zero="false" anything moved before zero is lost-->
<!-- loop_on_max="true" anything moved beyond max reenters at the zero of space-->
<!-- loop_on_max="false" anything moved beyond max is lost-->
<axis name="x" size="29"/>
<axis name="y" size="0"/>
<axis name="z" size="0"/>
</dimension>
<!-- Site_multiplicity = number of sites in a space unit. -->
<!-- Each site points towards a neighbouring space unit. -->
<!-- Several arrows can be stacked in the same site. -->
<site_multiplicity>3</site_multiplicity>
</space-param>
</parameters>
<!-- Model objects definition -->
<objects id="texte" date="1629830000" author="Jean Sirmai">
<object id="dimer 1-1" date="1629830000" author="Jean Sirmai">
<arrow x="0" y="0" z="0" site="1" weight="1"/>
<arrow x="1" y="0" z="0" site="2" weight="1"/>
</object>
</objects>
<!-- Saved space description (initial space is sequence 0) -->
<savestates id="texte" date="1629830000" author="THE MATRIX">
<space id="initial" date="1629830000" author="Jean Sirmai" sequence="0">
<arrow x="0" y="0" z="0" site="1" weight="1"/>
<arrow x="1" y="0" z="0" site="2" weight="1"/>
<arrow x="10" y="0" z="0" site="1" weight="1"/>
<arrow x="11" y="0" z="0" site="2" weight="1"/>
<arrow x="20" y="0" z="0" site="1" weight="1"/>
<arrow x="21" y="0" z="0" site="2" weight="1"/>
<!-- Three dimers 1-1 are drawn in the global space
at locations (0,1) (10,11) and (20,21) -->
</space>
</savestates>
<!-- Model transitions definition (rules) -->
<!-- In this version : <xs:sequence minOccurs="0" maxOccurs="unbounded">-->
<!-- Transitions should be edited by hand and written in a 'human-readable' format -->
<conditions id="random walk of dimers" date="1629822222" author="Jean">
<condition x="0" y="0" z="0" site="1" weight="1" node_id="1" parent="0"/>
<condition x="1" y="0" z="0" site="2" weight="1" node_id="2" parent="1"/>
<!-- as soon as conditions 1 and 2 are satisfied, a dimer is identified at location (0,1). -->
<condition x="2" y="0" z="0" site="1" weight="0" node_id="3" parent="2"/>
<!-- as soon as condition 3 is satisfied,
the neighbouring space unit to East of the dimer is empty
and the dimer identified by conditions (1,2) can be moved to East. -->
<condition x="-1" y="0" z="0" site="2" weight="0" node_id="4" parent="2"/>
<!-- as soon as condition 4 is satisfied,
the neighbouring space unit to West of the dimer is empty
and the dimer identified by conditions (1,2) can be moved to West. -->
</conditions>
<transitions>
<transition id="move_a_dimer_to_east" date="1629811111" author="Jean" parent="3" probability="1">
<arrow x="0" y="0" z="0" site="1" weight="0"/>
<arrow x="1" y="0" z="0" site="2" weight="0"/>
<arrow x="1" y="0" z="0" site="1" weight="1"/>
<arrow x="2" y="0" z="0" site="2" weight="1"/>
</transition>
<transition id="move_a_dimer_to_west" date="1629811112" author="Jean" parent="4" probability="1">
<arrow x="0" y="0" z="0" site="1" weight="0"/>
<arrow x="1" y="0" z="0" site="2" weight="0"/>
<arrow x="0" y="0" z="0" site="2" weight="1"/>
<arrow x="-1" y="0" z="0" site="1" weight="1"/>
</transition>
</transitions>
</gem-graph-model>

View File

@ -14,6 +14,13 @@
<xs:attribute name="probability" type="xs:integer"/> <xs:attribute name="probability" type="xs:integer"/>
<xs:attribute name="site" type="xs:integer" default="0"/> <xs:attribute name="site" type="xs:integer" default="0"/>
<xs:attribute name="weight" type="xs:integer" default="0"/> <xs:attribute name="weight" type="xs:integer" default="0"/>
<xs:attribute name="u" type="xs:integer"/>
<xs:attribute name="v" type="xs:integer"/>
<xs:attribute name="w" type="xs:integer"/>
<xs:attribute name="x" type="xs:integer"/>
<xs:attribute name="y" type="xs:integer"/>
<xs:attribute name="z" type="xs:integer"/>
<xs:attribute name="t" type="xs:integer"/>
<xs:attributeGroup name="id_date_author"> <xs:attributeGroup name="id_date_author">
@ -35,40 +42,45 @@
<xs:element name="quote" substitutionGroup="g_ref"/> <xs:element name="quote" substitutionGroup="g_ref"/>
<xs:element name="coord">
<xs:complexType>
<xs:attribute name="axis" type="xs:string" use="required"/>
<xs:attribute name="at" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="dimension"> <xs:element name="dimension">
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:attribute ref="u" use="optional"/>
<xs:element ref="coord"/> <xs:attribute ref="v" use="optional"/>
</xs:sequence> <xs:attribute ref="w" use="optional"/>
<xs:attribute ref="x" use="optional"/>
<xs:attribute ref="y" use="optional"/>
<xs:attribute ref="z" use="optional"/>
<xs:attribute ref="t" use="optional"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="arrow"> <xs:element name="arrow">
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:attribute ref="site" use="required"/>
<xs:element ref="coord"/> <xs:attribute ref="weight" use="required"/>
</xs:sequence> <xs:attribute ref="u" use="optional"/>
<xs:attribute name="site" use="required"/> <xs:attribute ref="v" use="optional"/>
<xs:attribute name="weight" use="required"/> <xs:attribute ref="w" use="optional"/>
<xs:attribute ref="x" use="optional"/>
<xs:attribute ref="y" use="optional"/>
<xs:attribute ref="z" use="optional"/>
<xs:attribute ref="t" use="optional"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="condition"> <xs:element name="condition">
<xs:complexType> <xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded"> <xs:attribute ref="site" use="required"/>
<xs:element ref="coord" minOccurs="1" maxOccurs="unbounded"/> <xs:attribute ref="weight" use="required"/>
</xs:sequence>
<xs:attribute name="site" use="required"/>
<xs:attribute name="weight" use="required"/>
<xs:attribute ref="node_id" use="required"/> <xs:attribute ref="node_id" use="required"/>
<xs:attribute ref="parent" use="required"/> <xs:attribute ref="parent" use="required"/>
<xs:attribute ref="u" use="optional"/>
<xs:attribute ref="v" use="optional"/>
<xs:attribute ref="w" use="optional"/>
<xs:attribute ref="x" use="optional"/>
<xs:attribute ref="y" use="optional"/>
<xs:attribute ref="z" use="optional"/>
<xs:attribute ref="t" use="optional"/>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>