diff --git a/frame/railway-ontology.ttl b/frame/railway-ontology.ttl
index d1ac7f5df7983f1996a330549d8cd37448e432b3..53a2eb3d89f39f8b4e12931c285c444981b8e982 100644
--- a/frame/railway-ontology.ttl
+++ b/frame/railway-ontology.ttl
@@ -26,26 +26,46 @@ sys:Abstraction
   rdf:type owl:Class ;
   rdfs:label "Abstraction"@en ;
   rdfs:label "Abstraction"@fr ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
   sys:is_class "Abstraction" ;
 .
+sys:Adjective
+  rdf:type owl:Class ;
+  rdfs:label "Adjective" ;
+  rdfs:subClassOf sys:Grammatical_Property ;
+.
+sys:Adverb
+  rdf:type owl:Class ;
+  rdfs:label "Adverb" ;
+  rdfs:subClassOf sys:Grammatical_Property ;
+.
 sys:Annotation
   rdf:type rdf:Property ;
   rdfs:label "structure property" ;
   rdfs:subPropertyOf sys:Property ;
 .
+sys:Constraint
+  rdf:type owl:Class ;
+  rdfs:label "Constraint" ;
+  rdfs:subClassOf sys:System_Description ;
+.
+sys:Determiner
+  rdf:type owl:Class ;
+  rdfs:label "Determiner" ;
+  rdfs:subClassOf sys:Grammatical_Property ;
+.
 sys:Entity
   rdf:type owl:Class ;
   rdfs:label "entity"@en ;
   rdfs:label "entité"@fr ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
   sys:is_class "Entity" ;
 .
 sys:Event
   rdf:type owl:Class ;
   rdfs:label "Event"@en ;
   rdfs:label "Evénèment"@fr ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
   sys:has_object_property "eventObjectProperty" ;
   sys:is_class "Event" ;
 .
@@ -53,13 +73,19 @@ sys:Feature
   rdf:type owl:Class ;
   rdfs:label "caractéristique"@fr ;
   rdfs:label "feature"@en ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
   sys:is_class "Feature" ;
 .
+sys:Grammatical_Property
+  rdf:type owl:Class ;
+  rdfs:comment "TODO: complete with commonly English parts of speech (noun, verb, adjective, adverb, pronoun, preposition, conjunction, interjection, numeral, article, or determiner). See wiki (https://en.wikipedia.org/wiki/Part_of_speech)" ;
+  rdfs:label "Grammatical Property" ;
+  rdfs:subClassOf sys:Structure ;
+.
 sys:Mathematic
   rdf:type owl:Class ;
   rdfs:label "Mathématique"@fr ;
-  rdfs:subClassOf sys:Abstraction ;
+  rdfs:subClassOf sys:System_Description ;
 .
 sys:ObjectProperty
   rdf:type rdf:Property ;
@@ -69,13 +95,43 @@ sys:ObjectProperty
 sys:Physical_Element
   rdf:type owl:Class ;
   rdfs:label "Physical Element" ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
+.
+sys:Preposition
+  rdf:type owl:Class ;
+  rdfs:label "Preposition" ;
+  rdfs:subClassOf sys:Grammatical_Property ;
 .
 sys:Property
   rdf:type rdf:Property ;
   rdfs:label "Property" ;
   sys:has_reference "property" ;
 .
+sys:PseudoB
+  rdf:type owl:Class ;
+  rdfs:label "Pseudo B" ;
+  rdfs:subClassOf sys:Structure ;
+.
+sys:PseudoBProperty
+  rdf:type rdf:Property ;
+  rdfs:label "Pseudo BProperty" ;
+  rdfs:subPropertyOf sys:Property ;
+.
+sys:PseudoB_Condition
+  rdf:type owl:Class ;
+  rdfs:label "Pseudo b Condition" ;
+  rdfs:subClassOf sys:PseudoB ;
+.
+sys:PseudoB_Message
+  rdf:type owl:Class ;
+  rdfs:label "Pseudo b Message" ;
+  rdfs:subClassOf sys:PseudoB ;
+.
+sys:PseudoB_Variable
+  rdf:type owl:Class ;
+  rdfs:label "Pseudo b Variable" ;
+  rdfs:subClassOf sys:PseudoB ;
+.
 sys:Relation
   rdf:type rdf:Property ;
   rdfs:label "system property" ;
@@ -91,7 +147,7 @@ sys:State_Property
   rdf:type owl:Class ;
   rdfs:label "Propriété d'état"@fr ;
   rdfs:label "State Property"@en ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:System_Description ;
   sys:has_object_property "statePropertyObjectProperty" ;
   sys:is_class "State_Property" ;
 .
@@ -101,11 +157,21 @@ sys:Structure
   sys:has_frame_uri "https://unsel.tetras-libre.fr/tenet/frame/system-ontology/" ;
   sys:has_reference "class" ;
 .
+sys:System_Description
+  rdf:type owl:Class ;
+  rdfs:label "System Description" ;
+  rdfs:subClassOf sys:Structure ;
+.
 sys:Train
   rdf:type owl:Class ;
   rdfs:label "Train" ;
   rdfs:subClassOf sys:moving_element ;
 .
+sys:Value
+  rdf:type owl:Class ;
+  rdfs:label "Value" ;
+  rdfs:subClassOf sys:System_Description ;
+.
 sys:Vehicle
   rdf:type owl:Class ;
   rdfs:label "Vehicle" ;
@@ -114,7 +180,7 @@ sys:Vehicle
 sys:Verb
   rdf:type owl:Class ;
   rdfs:label "Verb" ;
-  rdfs:subClassOf sys:Structure ;
+  rdfs:subClassOf sys:Grammatical_Property ;
   sys:is_class "Verb" ;
 .
 sys:abstract_thing
@@ -153,6 +219,47 @@ sys:agent
   sys:has_restriction "icl>person" ;
   sys:is_class "agent" ;
 .
+sys:any_adjective
+  rdf:type owl:Class ;
+  rdfs:label "any adjective (unspecified)" ;
+  rdfs:subClassOf sys:Adjective ;
+  sys:has_mother_class sys:Adjective ;
+  sys:has_restriction "icl>adj" ;
+  sys:is_class "any_adjective" ;
+.
+sys:any_adverb
+  rdf:type owl:Class ;
+  rdfs:label "any adjective (unspecified)" ;
+  rdfs:subClassOf sys:Adverb ;
+  sys:has_mother_class sys:Adverb ;
+  sys:has_restriction "more" ;
+  sys:is_class "any_adverb" ;
+.
+sys:any_determiner
+  rdf:type owl:Class ;
+  rdfs:label "any determiner (unspecified)" ;
+  rdfs:subClassOf sys:Determiner ;
+  sys:has_mother_class sys:Determiner ;
+  sys:has_restriction "icl>det" ;
+  sys:is_class "any_determiner" ;
+.
+sys:any_preposition
+  rdf:type owl:Class ;
+  rdfs:label "any preposition (unspecified)" ;
+  rdfs:subClassOf sys:Preposition ;
+  sys:has_mother_class sys:Preposition ;
+  sys:has_restriction "between" ;
+  sys:is_class "any_preposition" ;
+.
+sys:any_value
+  rdf:type owl:Class ;
+  rdfs:label "any value"@en ;
+  rdfs:label "valeur quelconque"@fr ;
+  rdfs:subClassOf sys:Value ;
+  sys:has_mother_class sys:Value ;
+  sys:has_restriction "100m" ;
+  sys:is_class "any_value" ;
+.
 sys:attributive_verb
   rdf:type owl:Class ;
   rdfs:label "attributive verb" ;
@@ -178,8 +285,18 @@ sys:component
 .
 sys:distance
   rdf:type owl:Class ;
-  rdfs:label "Interval"@fr ;
+  rdfs:label "distance"@en ;
+  rdfs:label "distance"@fr ;
   rdfs:subClassOf sys:Mathematic ;
+  sys:has_mother_class sys:Mathematic ;
+  sys:has_restriction "distance" ;
+  sys:is_class "distance" ;
+.
+sys:distance_bvar
+  rdf:type owl:Class ;
+  rdfs:label "Pseudo b distance" ;
+  rdfs:subClassOf sys:PseudoB_Variable ;
+  sys:has_specific_where_code "abs(acc:$1_position($1)'offset - acc:$2_position($2)'offset)" ;
 .
 sys:entityClassProperty
   rdf:type rdf:Property ;
@@ -262,6 +379,11 @@ sys:has_restriction_on_unl_relation_target
   rdfs:label "has restriction on unl relation target" ;
   rdfs:subPropertyOf sys:Seed ;
 .
+sys:has_specific_where_code
+  rdf:type rdf:Property ;
+  rdfs:label "has specific code in \"where\" part" ;
+  rdfs:subPropertyOf sys:PseudoBProperty ;
+.
 sys:has_target
   rdf:type rdf:Property ;
   rdfs:label "has target" ;
@@ -279,6 +401,22 @@ sys:is_class
   sys:has_object_property "statePropertyObjectProperty" ;
   sys:is_class "State_Property" ;
 .
+sys:logical_constraint
+  rdf:type owl:Class ;
+  rdfs:label "contrainte logique"@en ;
+  rdfs:label "logical constraint"@fr ;
+  rdfs:subClassOf sys:Constraint ;
+  sys:has_mother_class sys:Constraint ;
+  sys:is_class "logical_constraint" ;
+.
+sys:mathematical_constraint
+  rdf:type owl:Class ;
+  rdfs:label "contrainte mathématique"@fr ;
+  rdfs:label "mathematical constraint"@en ;
+  rdfs:subClassOf sys:Constraint ;
+  sys:has_mother_class sys:Constraint ;
+  sys:is_class "mathematical_constraint" ;
+.
 sys:message
   rdf:type owl:Class ;
   rdfs:label "message"@en ;
@@ -326,6 +464,14 @@ sys:range
         ) ;
     ] ;
 .
+sys:set_constraint
+  rdf:type owl:Class ;
+  rdfs:label "contrainte ensembliste"@fr ;
+  rdfs:label "set constraint"@en ;
+  rdfs:subClassOf sys:Constraint ;
+  sys:has_mother_class sys:Constraint ;
+  sys:is_class "set_constraint" ;
+.
 sys:stateProperty
   rdf:type rdf:Property ;
   rdfs:label "state property" ;