RC sur l'encodage des caractères

À https://en.wikipedia.org/wiki/Character_encoding#Terminology (et à+depuis
https://en.wikipedia.org/wiki/Code_point), lisez les définitions des types de concept suivants :
Character, Character_set, Latin_character_set, Character_repertoire,
Glyph, Abstract_character, Code_point, Code_page, Code_space et Code_unit.
Compte-tenu de ces définitions, représentez (en FL, FL-DF ou UML) toutes les relations de
type "sous-type" (s, \.), exclusion (e, £), "member" (m), "part" (p) et "representation" (repr, r)
reliant ces types de concept (ceux listés ci-dessus) ou leurs instances.
Pour les représenter|organiser de manière plus claire et plus précise,
n'hésitez pas à représenter d'autres types de concept que ceux listés ci-dessus.
Notes:
- "representation", "member" et leurs inverses impliquent "exclusion",
  donc inutile de spécifier ces relations d'exclusion là.
- "exclusion" réfère à
  "subtype_exclusion" (des types "subtype exclusifs" ne peuvent avoir des sous-types communs),
  pas à "part_exclusion" (des choses "part exclusives" ne peuvent avoir des parties communes),
- une relation "part" entre deux ensembles est une relation "sous-ensemble".
- pour les relations qui ne sont pas des "relations depuis un type"
  (donc pour les relations "repr" et "member", pas les autres),
  le quantificateur de la source est implicitement "any" (comme en UML pour de telles relations).

Information_object =  Abstract_representation_object  Abstract_description_instrument-or-result,
 /^ (Representation_object   = Description_instrument-or-result,
      /^ (Description_object = Description_content-or-instrument-or-result-or-container) ),
 \. p{ (Information_object_that_is_not_a_collection   //rappel: "p{...}"→partition, "e{...}"→exclusion
         \. e{ (Character  //minimal unit of text that has semantic value
                 member of: 1..* Character_set,
                 \. e{ Glyph  //graphical representation of a character, in a particular font 
                       (Abstract_character      //each character be "indexed" via many "code points"  
                         repr: 0..* Code_point) // (one in each Coded_character_set|Code_space
                     } )                        //  or several ones if different glyphs are represented)
               (Code_point = Character_indexing_result  Code_position, //index|value in a Code_space
                 member of:  1..* Code_space   0..* Code_page,
                 repr: 0..* Code_unit) //since each Code_point may be "encoded" in many ways
             })
       (Information_object_that_is_a_collection  //hence, a collection of information objects
         \. e{ (Character_set
                 \. e{ (Abstract-character_set  member: 1..* Abstract_character, 
                                                repr: 0..* Coded_character_set,
                         \. (Character_set_for_a_particular_script 
                              \. e{ Latin_character_set  Greek_character_set  Cyrillic_character_set } )
                            Character_repertoire ) //set of abstract characters that a system may support
                       (Coded_character_set //CCS; indexes/associates abstract characters by/to code points
                         repr of: 1..* Abstract-character-set,
                         member: 1..* Code_point,
                         instance:  Windows_code_pages  Unicode,
                         part: 1..* Code_space, //Unicode is/has only 1 Code_(page/)space 
                         \. (Code_space  part: 0..* Code_page) //interval of code points
                            (Code_page = Charmap Charset) //e.g. 1 per Character_set_for_a_particular_script
                       )                                  //  or 1 per country
                     })
               (Code_unit = Character_encoding_result  Code_value,  //bit sequence; in UCS-4: 4 bytes
                 repr of: 1..* Code_point )
             })
     }.