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.
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.