Embryo Systems

HBDS

La Hypergraph-Based Data Structure : six types abstraits de données, un hypergraphe pour les tenir, et tout un système par-dessus.

Origine

HBDS a été conçue par François Bouillé entre 1975 et 1977 à l’Université Pierre et Marie Curie. Son but : représenter les phénomènes du monde réel, aussi complexes soient-ils, et les ranger dans une très grande base de données cachée à l’utilisateur, à qui tout semble tenir en mémoire centrale. Le modèle est récursif et auto-extensible : la structure qui décrit les données est elle-même décrite en HBDS.

Elle est issue de la thèse de Bouillé, Un modèle universel de banque de données, simultanément partageable, portable et répartie, a été présentée dans les conférences de bases de données et de cartographie des années 1980, et enseignée au L.I.S.T. au moins jusqu’au milieu des années 1990.

Les types abstraits de données

Le polycopié de 1995 en définit six. Trois décrivent le schéma, trois décrivent les données qui le peuplent :

Classe
Un ensemble d'objets partageant les mêmes attributs et les mêmes liens.
Attribut de classe
Une propriété déclarée sur une classe.
Lien
Une relation déclarée entre deux classes, ou d'une classe vers elle-même.
Objet
Un membre d'une classe.
Attribut d'objet
La valeur qu'un objet porte pour l'un des attributs de sa classe.
Lien d'objet
Une instance d'un lien, entre deux objets des classes liées.

Les synthèses ultérieures ramènent cela à quatre (classe, objet, attribut, lien) en repliant chaque type de niveau objet sur son type de niveau classe. Pour l’échelle, le polycopié note qu’une structure de SIG comprend généralement entre 300 et 500 classes selon le thème géographique.

Deux extensions

Le polycopié étend ensuite deux fois les six types de base.

Hyperclasse, hyperattribut, hyperlien
Une classe de classes, ses attributs, et les liens entre hyperclasses. D'où l'hypergraphe : un graphe relie des objets, un hypergraphe relie des ensembles d'objets.
Embryon, prototype, structure
Les modèles, puis le réel. Un embryon est une classe, un lien ou un attribut de classe pris comme modèle ; un prototype compose des embryons et des prototypes ; une structure est un prototype réalisé, là où vivent les objets. L'embryon est ce qui donne son nom à ce site.
HBDShDhaDhEHcAaA1aA2oacBaBcCaCLRol
La notation HBDS, d'après les figures 6 et 7 du polycopié : des classes et leurs objets, des attributs, des liens, deux hyperclasses et un hyperlien.

Le système autour

EXEL
Le langage algorithmique de Jacques Arsac (1974), dans lequel les algorithmes sont écrits.
ADT'81
Un langage de très haut niveau pour les types abstraits : traitement complet de HBDS, expression d'inférences, calcul scientifique.
DSS
Data System Strings : le format de stockage caché, indépendant de la machine, si bien qu'une base passe d'un ordinateur 8 à 64 bits à un autre et peut être répartie par réseau.
SES
Le Structured Expert System. Une structure porte ses propres règles ; ses composants se comportent comme des processus ; HBDS a son propre moteur d'inférence.
Q-graph
L'outil de structuration du dialogue entre le système et l'utilisateur.

Les applications publiées par Bouillé sont la cartographie et les données géographiques : des catalogues de structures de thèmes cartographiques de quelque 150 classes, 1000 attributs et 600 liens, et en 1986 une structure HBDS comme intelligence embarquée d’un robot topographe.

Le système en 1995

Le polycopié est l’énoncé du projet de génie logiciel 1995-96 : des projets d’équipe numérotés de 0 à 20, un par couche, dans cet ordre, avec les articles sur lesquels chaque couche repose.

Coordination des équipes
Projet 0 : cahier des charges, interfaces, codes d'erreur, documentation et planning de toutes les équipes. « Ingrat et fascinant ».
C2
L'outil de base : les moteurs M0 à M5.
Compilateur ADT'81
Projets 1, 2, 3 et 11 : la BNF simplifiée du langage, ses modules, le A-CODE qu'il génère et les tables de ce code.
Optimiseur
Projets 4 et 5.
Décompilateur
Projets 6 et 7.
Noyau de l'exécuteur
Projets 8, 9, 10 et 12 : les six types de base et leurs extensions, le système multicouche, prototypes et structures.
SFSI-ZE
Projet 13 : le système de fichiers séquentiel-indexé et sa zone d'échange. La couche de stockage.
Moteurs de listes et de foncteurs
Projets 14 et 15 : foncteurs HBDS, multifoncteurs et moteur fonctoriel.
Moteurs de système expert
Projet 16 : chaînage avant, CHAV et HYPOCHAV.
Moteur de simulation discrète
Projet 17.
Moteur neuronal
Projet 18 : du réflexe au neurone, « une partie du coeur du noyau HBDS ».
Moteur de dialogue
Projet 19 : le Q-graph, et un dialogue pour construire des dialogues.
NINJAS
Projet 20 : la protection contre, et la culture de, virus orientés objet.
Autres sujets
Types flous, complexes et quaternions, un moteur de contraintes, des précompilateurs ADTmin vers C, Ada, Pascal et Fortran 8X.