WIP: XMLS non redondant et renommages

This commit is contained in:
Jean Sirmai 2021-12-05 17:44:05 +01:00
parent 544a34de7c
commit 16eb05fa05
Signed by: jean
GPG Key ID: FB3115C340E057E3
2 changed files with 74 additions and 104 deletions

View File

@ -1,22 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<gem-graph-model version="0.2">
<!-- Model identity informations -->
<identity>
<name>Modèle de test</name>
<owner>Gaston Lagaffe</owner>
<owner>Léontine Patinette</owner>
<owner_id>2</owner_id>
<date>1629830000</date>
<date>1630000000</date>
<version>1.0</version>
<g_ref id="texte" date="1629830000" author="Jean" lang="en">Ref</g_ref>
<g_ref id="Cause" date="1630000000" author="toujours" lang="en">Ref</g_ref>
</identity>
<!-- Model parameters -->
<parameters id="texte" date="0" author="Gaston Lagaffe">
<parameters id="texte" date="0" author="Léontine Trottine.">
<simulation>
<max_thread>0</max_thread>
<max_cycles>9</max_cycles>
@ -24,18 +22,19 @@
</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>
<coord axis="x" at="29"/>
</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>
@ -43,50 +42,50 @@
</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"/>
<objects id="only dimers in this model" date="1630000000" author="inanimés,... âme ?">
<object id="a dimer" date="1630000000" author="Alphonse">
<arrow site="1" weight="1"><coord axis="x" at="0"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="1"/></arrow>
</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"/>
<savedstates id="texte" date="1630000000" author="Qui courrait dans l'herbe'">
<state id="initial" date="1630000000" author="Une souris verte">
<arrow site="1" weight="1"><coord axis="x" at="0"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="1"/></arrow>
<arrow site="1" weight="1"><coord axis="x" at="10"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="11"/></arrow>
<arrow site="1" weight="1"><coord axis="x" at="20"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="21"/></arrow>
<!-- Three dimers 1-1 are drawn in the global space
at locations (0,1) (10,11) and (20,21) -->
</space>
</state>
</savestates>
</savedstates>
<!-- 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">
<conditions id="random walk of dimers" date="1630000000" author="Zazard le lézard !">
<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 site="1" weight="1" node_id="1" parent="0"><coord axis="x" at="0"/></condition>
<condition site="2" weight="1" node_id="2" parent="1"><coord axis="x" at="1"/></condition>
<!-- as soon as conditions 1 and 2 are satisfied, a dimer is identified at atation (0,1). -->
<condition x= "2" y="0" z="0" site="1" weight="0" node_id="3" parent="2"/>
<condition site="1" weight="0" node_id="3" parent="2"><coord axis="x" at="2"/></condition>
<!-- 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"/>
<condition site="2" weight="0" node_id="4" parent="2"><coord axis="x" at="-1"/></condition>
<!-- 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. -->
@ -95,27 +94,26 @@
<transitions>
<transition id="move_a_dimer_to_east" date="1629811111" author="Jean"
<transition id="move_a_dimer_to_east" date="1630000000" author="Pas moi..."
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"/>
<arrow site="1" weight="0"><coord axis="x" at="0"/></arrow>
<arrow site="2" weight="0"><coord axis="x" at="1"/></arrow>
<arrow site="1" weight="1"><coord axis="x" at="1"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="2"/></arrow>
</transition>
<transition id="move_a_dimer_to_west" date="1629811112" author="Jean"
<transition id="move_a_dimer_to_west" date="1630000000" author="Ni moi !"
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"/>
<arrow site="1" weight="0"><coord axis="x" at="0"/></arrow>
<arrow site="2" weight="0"><coord axis="x" at="1"/></arrow>
<arrow site="2" weight="1"><coord axis="x" at="0"/></arrow>
<arrow site="1" weight="1"><coord axis="x" at="1"/></arrow>
</transition>
</transitions>
</gem-graph-model>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- https://www.freeformatter.com/xml-validator-xsd.html -->
<!-- https://www.w3schools.com/xml/el_attribute.asp -->
<xs:attribute name="id" type="xs:string"/>
<xs:attribute name="node_id" type="xs:integer"/>
<xs:attribute name="parent" type="xs:integer"/>
<xs:attribute name="date" type="xs:integer"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="lang" type="xs:string"/>
@ -11,12 +11,7 @@
<xs:attribute name="owner_id" type="xs:integer"/>
<xs:attribute name="author" type="xs:string"/>
<xs:attribute name="version" type="xs:float"/>
<xs:attribute name="sequence" type="xs:integer"/>
<xs:attribute name="probability" type="xs:integer"/>
<xs:attribute name="parent" type="xs:integer"/>
<xs:attribute name="x" type="xs:integer" default="0"/>
<xs:attribute name="y" type="xs:integer" default="0"/>
<xs:attribute name="z" type="xs:integer" default="0"/>
<xs:attribute name="site" type="xs:integer" default="0"/>
<xs:attribute name="weight" type="xs:integer" default="0"/>
@ -27,14 +22,6 @@
<xs:attribute ref="author"/>
</xs:attributeGroup>
<xs:attributeGroup name="xyz_site_nb">
<xs:attribute ref="x"/>
<xs:attribute ref="y"/>
<xs:attribute ref="z"/>
<xs:attribute ref="site"/>
<xs:attribute ref="weight"/>
</xs:attributeGroup>
<xs:element name="g_ref">
<xs:complexType>
<xs:simpleContent>
@ -48,31 +35,38 @@
<xs:element name="quote" substitutionGroup="g_ref"/>
<xs:element name="axis">
<xs:element name="coord">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="quote"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="size" type="xs:integer" use="required"/>
<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:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="coord"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="arrow">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="quote"/>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="coord"/>
</xs:sequence>
<xs:attributeGroup ref="xyz_site_nb"/>
<xs:attribute name="site" use="required"/>
<xs:attribute name="weight" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="condition">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="quote"/>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="coord" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="xyz_site_nb"/>
<xs:attribute name="site" use="required"/>
<xs:attribute name="weight" use="required"/>
<xs:attribute ref="node_id" use="required"/>
<xs:attribute ref="parent" use="required"/>
</xs:complexType>
@ -89,16 +83,6 @@
<xs:element name="object" substitutionGroup="state"/>
<xs:element name="space">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="arrow"/>
</xs:sequence>
<xs:attributeGroup ref="id_date_author"/>
<xs:attribute ref="sequence" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="transition">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
@ -113,50 +97,38 @@
<xs:element name="gem-graph-model">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="identity">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="name" type="xs:string"/>
<xs:element name="owner" type="xs:string"/>
<xs:element name="owner_id" type="xs:integer"/>
<xs:element name="date" type="xs:integer"/>
<xs:element name="version" type="xs:float"/>
<xs:element minOccurs="0" ref="g_ref"/>
<xs:element ref="g_ref" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="parameters">
<xs:element name="parameters">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="simulation">
<xs:complexType>
<xs:sequence>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="max_thread" type="xs:integer"/>
<xs:element name="max_cycles" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="space-param">
<xs:complexType>
<xs:sequence>
<xs:element name="dimension">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="axis"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element ref="dimension"/>
<xs:element name="site_multiplicity" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -169,16 +141,16 @@
<xs:element name="objects">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="state"/>
<xs:element ref="object"/>
</xs:sequence>
<xs:attributeGroup ref="id_date_author"/>
</xs:complexType>
</xs:element>
<xs:element name="savestates">
<xs:element name="savedstates">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="space"/>
<xs:element ref="state"/>
</xs:sequence>
<xs:attributeGroup ref="id_date_author"/>
</xs:complexType>