Table des matières

Création des objets

Licence Creative Commons Le cours "Informatique pour les historiens" de Francesco Beretta, avec tous les documents, scripts et indications pratiques associées, est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Retour vers l'accueil

Exercice pour la prochaine séance

Exercice pour la séance du 13 octobre – à remettre au plus tard dimanche soir

  1. Créer une trentaine d'objets dans votre base personnelle, de différents types, et les associer entre eux (quelques explications sur le sens des associations sont données ci-dessous)
  2. Exporter le schéma 'objets' de votre base de données personnelle selon les indications fournies ici
  3. Envoyez-moi le fichier de sauvegarde du schéma 'objets'comportant votre nom dans le nom de dossier et compressé (.zip). Dans windows 7, la compression se fait avec un click droit sur le dossier, puis Envoyer vers > Dossier compressé; dans MacOSX, click droit, puis Compresser

Création des objets

Du modèle conceptuel à la base de données

Le modèle conceptuel: la sémantique du système d'information

Voici le fichier du MCD à télécharger.

Le modèle conceptuel (MCD) est le fondement de la construction d'une base de données. Il indique les entités qui vont étre créées ainsi que leurs associations. Il indique donc en quelque sorte le sens, la sémantique des données qu'on va produire.

Les entités représentent des classes d'objets, c'est-à-dire des ensembles d'objets qui partagent les mêmes propriétés. Le MCD liste donc également les propriété des entités et de leurs associations.

Dans notre MCD, la partie concernant les objets dont s'occupe l'historien (c'est-à-dire les acteurs, les lieux, les ouvrages consultés, etc.) comporte deux entités: les objets eux-mêmes et les noms des objets. Ces entités sont reliées par deux associations: l'une entre les objets et leurs noms, l'autre entre deux objets (on appelle cette association réflexive car elle relie l'entité objet à elle-même). La cardinalité des associations, c'est-à-dire les numéros qui figurent sur les pattes des associations indiquent qu'un nom d'objet ne peut être relié qu'à un seul objet, alors qu'on objet peut avoir plusieurs noms. Quant aux associations entre objets, elles peuvent associer autant de paires d'objets qu'on veut: c'est une association de cardinalité maximale de 'n' à 'n', comme disent les spécialistes.

Tous les objets, ainsi que leurs liens essentiels (un livre qui parle d'un personnage historique, une photo qui représente une personne avec ses caractéristiques, etc.) sont traités avec seulement deux entités et deux associations. Ce modèle des données est donc dit générique car il permet de tout traiter de manière simple et efficace.

Un modèle générique requiert quelques paramètres qui spécifient quel est le type des objets (acteurs, acteurs collectifs, objets abstraits, etc.) ainsi que le type des associations qui subsistent entre les objets (documentation, classes, reproduction, etc.). Tel est le rôle de l'entité 'paramètre système' et de l'association 'associer parametres systeme' qui permettent le bon fonctionnement du système d'information.

Les tables comme 'représentation informatique' du modèle

A partir du modèle des données, on a créé les tables qui se trouvent dans le schéma 'objets' de la base de données, ainsi que dans le schéma 'parametres'.

Un schéma est une sorte de dossier qui contient des tables, des fonctions, etc.
Une table est un ensemble de cellules, organisées en lignes et en colonnes. Une cellule appartient toujours à la même ligne et à la même colonne et ne peut pas être déplacée (ce qui est en revanche le cas dans une feuille de calcul qui, précisément, n'est pas une table de stockage de données mais un outil de calcul).

Dans une table, les lignes représentent les individus, c'est-à-dire les objets. Les colonnes représentent les propriétés des objets (les mêmes qu'on trouve dans le modèle conceptuel). Une cellule contient donc la valeur de la propriété pour l'individu représenté par la ligne. La table elle même représente informatiquement l'entité, la classe ou ensemble des individus.

Le logiciel client pgAdminIII permet de visualiser directement les tables. Dans le schéma 'objets' on trouve les trois tables qui vont accueillir vos propres objets. Dans le schéma 'parametres' se trouvent les deux tables des paramètres. Il ne faut pas toucher aux données de ces dernières car, pour une question de cohérence, c'est moi qui définis leur contenu.

L'interface du client Base (suite LibreOffice) permet une visualisation des tables et de leur contenu plus organique et facile à manipuler que d'accéder directement aux tables. Dans un même formulaire on voit apparaître des lignes et des cellules issues de plusieurs tables différentes: les objets, les noms, les associations entre objets et les valeurs des paramètres.

Sur une fiche de formulaire on voit apparaître toutes les cellules issues de différentes talbes concernant le même objet. La clé de l'objet, la primary key (pk_objet), se situe généralement en haut du formulaire. Par convention, nous parlerons d'une 'pk' pour la clé purement numérique (1, 2, 3, etc.), alors que nous appellerons 'clé' (clé semi-sémantique) la clé avec préfixe (ObPe1, ObPe2, etc.) ajouté automatiquement par concaténation avec la clé numérique. Le préfixe indique que, dans ce cas, il s'agit d'un 'objet à usage personnel'. Il est ainsi distingué des objets de la base de données collaborative du projet SyMoGIH (cf. ci-dessous)

Création des objets

Avant de procéder il faut vérifier que la base de données dont on dispose est à jour tant au point de vue des paramètres et des autres tables que de l'interface.

Les fichiers à jour à télécharger et les instructions se trouvent ici.

PRINCIPE ESSENTIEL: les objets de la base de données permettent d'identifier des objets du monde historique, c'est-à-dire de leur attribuer un identifiant avec quelques éléments qui permettent de les reconnaitres (nom, dates, adresse, type, classe) – mais ce n'est pas ici qu'on stocke les connaissances qui les concernent, les informations dont nous disposons sur eux: celà sera traité dans une autre partie de la base.

Manipulation de l'interface

La création d'un nouvel objet dans la base de données s'effectue grâce au formulaire 'objets_création' qu'on trouve dans la liste des formulaires et qu'on active par un double click.

Il faut en premier lieu introduire une définition de l'objet en quelques mots, ou plus longue si souhaité. Cette opération est essentielle pour se souvenir plus tard quel est le sens exact de l'objet qu'on a créé. Elle est donc obligatoire. On ne peut pas crééer de nom de l'objet si on n'a pas créé une définition.

On créé ensuite le nom de l'objet. Le nom créé avec ce formulaire sera le nom standard par défaut de l'objet. On pourra ensuite ajouter d'autres noms avec les autres formulaires des objets. Si l'objet est un livre ou un article d'archives on entre tout simplement comme nom la référence archivistique ou la référence bibliographique.

Pour les acteurs, on peut choisir entre différents types de noms. Pour les autres objets, ce n'est pas la peine. On peut également choisir une langue pour le nom. Il suffit de la taper dans le champs de la langue, si elle n'existe pas encore, ou de la choisir parmi les langues existantes.

On peut aussi mettre une date de début et/ou de fin pour l'utilisation d'un nom. Les dates doivent être au format ISO, par ex. 1566-03-07. Elles peuvent être tronquées : 1566 ou 1566-03. Si le nom termine tel jour, mois ou année (en fonction de la troncature de la date), le prochain nom doit commencer le jour, mois ou année suivante. Par ex. fin = 1566-03-07, début du prochain nom = 1566-03-08 ; fin = 1566-03, début du prochain nom 1566-04.

Pour enregistrer une valeur que vous avez entrée, on peut se déplacer dans un autre champs ou clicquer en dehors des champs (c'est-à-dire des zones blanches qui font apparaître le contenu des cellules). On peut aussi appuyer sur le bouton 'Enregistrer l'enregistrement' (= les cellules du formulaire) qui se trouve en bas. Si le changements on été enregistrés, le bouton 'Enregistrer' est grisé. Si un changement attendu n'apparaît pas après enregistrement, il faut appuyer sur le bouton 'actualiser' pour rafraîchir le formulaire.

Si on se déplace vers la prochaine fiche du formulaire on déclanche automatiquement l'enregistrement des valeurs modifiées. On se déplace entre les fiches avec les boutons en forme de fléche tout en bas. Il est toutefois nécessaire de se positionner dans un champs marqué par [P] = champs principal du formulaire.

On renseigne ensuite la date de début et la date de fin d'existence d'un objet. Les dates sont partout au format ISO, par ex. 2014-10-02, et peuvent être tronquées, par ex. 2014-10 ou 2014.

La date de début a un signification différente pour chaque type d'objets: date de naissance pour les acteur, date de création pour une institution, date de publication pour une référence bibliographique.

La date de début doit être renseignée chaque fois qu'on le peut pour pouvoir trier et mieux reconnaître les objets. Si on ne connait pas une date précise on peut mettre un paramètre concernant la certitude de la date: elle est reconstituée si elle correspond à peu pres à la date exacte (différence de quelques jours, mois ou années en fonction de la troncature) sur la base d'éléments d'information dont on dispose et qu'on peut indiquer dans les notes; elle est postulée si on la fixe de manière arbitraire, en prenant en compte des éléments génériques (par ex. que telle personne devait avoir vingt ans lorsque elle fréquentait l'université en 1600, et que donc elle était née vers 1580).

Dans le cas des objets de type acteur on peut leur attribuer un sexe (masculin, féminin ou indéterminé).
Dans celui des objets de type lieu ou immeuble, on peut mettre des coordonnées géographiques décimales. Par ex. pour Lyon : (longitude = ) 4.833512 – (latitude = ) 45.767463. On peut retrouver les coordonnées d'un lieu grâce à Wikipedia ou à un gazetteer comme Geonames

Choix du type d'objet

Il reste à choisir le type d'objet. Le système d'information que je vous mets à disposition et que je vous propose d'utiliser pour réaliser la collecte d'informations au cours de votre travail de master est une version simplifiée du modèle de données du projet SyMoGIH: Système modulaire de gestion de l'information historique. Sur le site du projet, trouverez de la documentation si vous voulez en savoir plus et, surtout, plein d'exemples en parcourant les objets dans le menu de gauche sur la page d'accueil du site.

Les données issues de la base de donnée collaborative en ligne, dans laquelle se trouvent des données produites par une cinquantaine d'historiens et une dizaine de projets, nous serviront d'exemple et de référence.

L'expérience du projet SyMoGIH, montre qu'il convient de répartir tous les objets dont s'occupe l'historien en une dizaine d'ensembles ou classes que nous allons identifier grâce à la propriété 'type' de l'entité 'objet historique'. Le type nous permet de savoir à quelle classe appartient un objet. Avec cette dizaine de types on puet classer aisément, et de manière relativement objective, l'ensemble des objets dont s'occupe l'historien.

Le site public du projet a une fonction d'illustration et ne présente donc pas tous les aspect de la base de données collaborative. Tous les types d'objets n'y sont donc pas représentés.

Vous trouverez ici de suite quelques explications concernant le sens de chaque type et des exemples des objets qui relèvent des différentes classes.

Bibliographie

Les objets de ce type correspondent aux ouvrages, articles, etc. que vous trouvez dans la bibliographie. Leur nom est tout simplement la référence bibliographique.

Objet concret (ou matériel)

Les objets concrets (ou matériels) sont les objets uniques qui ont un existence individuelle et qu'on peut toucher, déplacer, etc. Par ex. la chaise sur laquelle vous êtes assis ou le livre que vous tenez entre vos mains. Le descriptif bibliographique du livre (qui comprend tous les exemplaires existants de ce livre) est un objet de type 'Bibliographie' tandis que l'exemplaire précis que vous possédez, éventuellement dédicacé par l'auteur, est un objet concret.

Font partie de cet exemple les articles d'archives (c'est à dire les volumes ou autres objets cotés), les monnaies, les stèles conservées dans les musées, mais aussi les fonds d'archives comme ensembles concrets de documents. Tous les objets archivistiques sont donc traités comme 'Objet concret' et on met comme nom soit le nom de l'objet, soit la cote d'archive, ou on peut créer une ligne 'nom' dans la base de données pour le nom et une autre pour la cote d'archive.

Objet digital

Tout site web, photo numérique, texte ou document numérique (comme la base de donnée du cours) etc. Tout objet qui est stocké sous forme binaire (utilisant une combinaison de 0 et 1, ce qui est la base de tout en informatique). Vous pouvez utiliser ce type d'objets pour identifier les sites web que vous consultez, vos photos digitales sur votre disque dur, etc.

Le nom de l'objet sera le nom que vous lui donnez ou son adresse (URL, par ex. 'Projet SyMoGIH' pour le nom, http://symogih.org pour l'URL, file:/Users/fberetta/Documents/…/bd_formulaire_objets.png ou C:\Utilisateurs\fberetta\Mes documents\…\bd_formulaire_objets.png pour un document).

Comme pour les Objets concrets vous pourrez indiquer plusieurs noms pour un objet, un pour le nom effectif, un pour l'URL, etc.

Unité documentaire

Avec les trois objets qui précédent, on peut traiter toute la bibliographie et les références aux sources. On a toutefois besoin souvent d'identifier des objets qui se situent en dessous du niveau d'identification bibliographique ou archivistique:

Pour traiter ces cas, on crée des objets de type Unité documentaire, on nomme et on décrit tous ces objets: chapitre, photo, lettre, article, et on associe ces objets avec une association de type 'est une partie de' à l'objet principal (bibliographie, article d'archives, etc.), tout en indiquant dans la propriété/champs 'reference_precise' les pages ou l'indicaiton de la référence exacte de l'objet. On saura aussi où se trouve cet objet et, si on se positionne sur l'objet qui le contient, tous les chapitres traités de ce livre ou les photos identifiées de ce fonds.

Acteur

Tous les acteurs de l'histoire qui agissent individuellement: personnes humaines, personnes fictives dans un récit, animaux précis ayant un nom (le chien tel et tel du roi), etc.

Acteur collectif

Tous les acteurs qui agissent collectivement: institutions, familles, groupe informels, etc.

Objets abstraits

Tous les concepts, idées, problématiques de recherche, etc. qu'il s'agisse de concepts généraux (un chaise, un livre) ou individualisés (la première loi du mouvement des planètes de Kepler, la loi de séparation de l'Eglise et de l'Etat) saut tout ce qui relève du statut social d'un acteur (cf. l'objet suivant)

Caractère social

Tous les objets abstraits qui concernent des propriétés des acteurs relatives à leur fonctionnement en société: professions, statuts, décorations militaires, diplomes. Mais toutes conçues non pas dans l'abstrait (une chaire d'historie à l'Université – objet abstrait) mais comme caractéristique l'acteur (professeur d'histoire, niveau universitaire – caractère social).
Relèvent de ce type également les fonctions individualisées: pape, président de la République française, chancelier de la République fédérale allemande, etc. On pourra ainsi écrire l'histoire de ces objets

Lieu / Immeuble

Il s'agit de deux types d'objets munis de géolocalisation mais de nature différente.

La navigation et la mise à jour des objets se fait grâce au formulaire principal des objets, appelé 'objets'. On peut parcourir les objets un par un, et ouvrir la liste de tous les objets que contient la table –en utilisant le bouton en bas à droite.

On peut appliquer de filtres, trier, chercher dans le texte, etc.: l'objet sélectionné dans la liste de la partie supérieur est celui qu'on voit sur la fiche – on peut donc naviguer facilement parmi les objets, chercher uniquement les acteurs, etc.

Paramètres

ATTENTION: ne pas toucher au contenu des tables du schéma 'paramètres' car elles permettent à votre base de données de fonctionner correctement et vous risquez de compromettre l'affichage de vos données (mais soyez rassurés, les données elles du schéma 'objets' ne seront pas compromises car elles sont stockées à part)

Création des associations

L'association entre deux objets est représentée dans le modèle conceptuel (MCD) par l'association 'associer_objets'. Cette association est représentée par une table dans le schéma 'objets' appelée 'associer_objets'.
Chaque ligne de la table associe deux objets. La clé primaire de chaque objet est reportée dans une colonne distincte de la table – la clé primaire est alors appelée clé étrangère (foreign key) car elle pointe vers une table contenant la clé primaire (primary key) c'est-à-dire l'identifiant de cet objet dans le système.

L'association a un sens, une direction: on a un objet en colonne A et un objet on colonne B. Par convention, on appelle l'objet A source et l'objet B cible. De plus, l'association est typée: on indique quelle est le sens de l'association. Si on change la position des objets, et on met l'objet B en position A, la dignification de l'association change. Par exemple, si on dit que l'acteur A. est classé par le concept B., ou que la photo A reproduit le tableau B, changer la position des objets entraine des assertions absurdes.

Dans l'interface de la base de données, les associations sont à saisir dans le formulaire 'objets'. Celui-ci présente sur chaque fiche d'un objet deux affichages des associations de cet objet: celles dans lesquelles l'objet de la fiche est en position de source et celles dans lesquelles il est en position de cible.

Les prédicats utilisés pour typer les associations indiquent clairement le sens des associations: par ex. l'objet ObPe3 Mathématiques est classé par l'objet ObPe34 Discipline enseignée à l'Université; l'objet ObPe6 Kepler est l'objet cible de l'association qui indique que la monographie de Depondt/Véricourt consacrée à l'astronome allemand (ObPe28) documente l'objet 'Kepler'.

IMPORTANT: concernant l'utilisation des clés, nous utilisons la primary key, c'est-à-dire une valeur de type entier (1,2, etc.) pour toutes les associations entre tables dans la base de données, alors que à l'extérieur, et notamment dans le codage des textes, nous utilisons la clé avec le préfixe 'ObPe' (ObPe1, ObPe2, etc.) pour distinquer les objets des informations les concernant, qu'on appellera des unités de connaissance et qui auront leur clé préfixée par 'UnCo': UnCo1, UnCo2, etc.

Outre le formulaire 'objets', deux autres formulaires permettent de visualiser les associations entre objets: 'objets_associes_objet_source' et objets_associes_objet_cible'. Dans ces formulaires on ne voit pas tous les objets qu'on a créés mais seulement ceux qui sont associés, c'est-à-dire pour lesquels on a créé un ligne dans la table 'associer_objets' contenant leur clé primaire dans une des deux colonnes de l'association, source ou cible.

La liste des associations peut être affichée dans une liste en haut de la page en utilisant le bouton 'Source des données comme table' présenté précédemment (cf. navigation et recherche d'objets). Dans le formulaire 'objets_associes_objet_source', lorsqu'on parcourt les lignes de la table affichée en haut, on voit en bas apparaître la fiche de chaque objet source. Dans le formulaire 'objets_associes_objet_cible', lorsqu'on parcourt les lignes de la table affichée en haut, on voit en bas apparaître la fiche de chaque objet cible.

Il nous reste à présenter brièvement le sens des associations prévues dans notre système d'information:

est classé par

Associe un objet source avec un objet cible qui le classe. L'objet cible est en régle générale de type objet abstrait. On peut ainsi créer des concepts qui permettent de constituer des groupes d'objet en lien avec sa propre recherche. Par ex. on peut créer un sous-ensemble des acteurs, une population répondant à un intérrogation précise, grâce à un classement avec un objet abstrait qui indique que nous voulons nous intéresser plus précisément à cette population.

Avec cette association on peut aussi créer une typologie plus fine des objets. On peut, par ex., créer un objet abstrait 'Monographie', 'Article de revue scientifique', etc. et utiliser ces objets cible pour classer des objets sources de type bibliographie pour retrouver ensuite tous les articles, les livres, etc. concernant tel sujet.

Enfin, on peut aussi créer des hiérarchies d'objets abstraits ou de cractères sociaux, en remontant de l'objet plus spécifique (objet source) vers l'objet plus générique (objet cible): l'astronomie copernicienne sera par ex. classée par l'astronomie, ou la profession de 'marchand–tireur d'or' sera classée par la profession de 'marchand'.

est une partie de

Avec cette association fort utile on peut traiter les inclusions d'un objet dans un autre. Par ex. on peut créer un objet bibliogrpahique qui représente un périodique, Les Annales, et y associer en tant qu'objets source tous les objets qui identifient des articles tirés de cette revue.

Cette association est particulièrement important pour associer les objets de type Unité documentaire avec l'objet qui les contient: par ex. un chapitre de livre, ou l'édition d'un fragment de papyrus (objets source), seront associés à l'objet qui contient la référence bibliographique de l'édition (objet cible de type bibliographie) tout en indiquant dans le champs 'reference_precise' les pages du chapitre, ou le numéro d'ordre du fragment.

se situe dans

Si l'association 'est une partie de' a un sens lié à la localisation géographique, par ex. que telle ville se situe dans tel territoire, on utilise l'association de type se situe dans.

Ce type d'association est donc réservé aux inclusions de type geographique. Elle permet aussi d'inclure une partie d'un immeuble dans l'immeuble même, telle une tour dans l'objet chateau dont elle fait partie.

documente

La fonction principale de cette association est de réaliser une biliographie concernant un objet. On produit les références biliographiques sous forme d'objets de type 'Bibliographie', puis on créé les objets dont parlent ces ouvrages, puis on associe chaque ouvrage ou article ou site web qui fournit des informations (objet source) avec le ou les objet dont il parle et qui nous intéressent (objet cible) tout en donnant des précision sur les pages dans le champs 'reference_precise'.

On pourra ainsi retrouver très facilement toute la bilbiographie dont un dispose sur un sujet (un acteur, un concept historiographique, un lieu, etc.) et on connaîtra aussi d'emblée tous les sujets dont parle tel ouvrage.

Plus en général, ce type d'association permet de recolter aussi des références d'archives et tout autre forme de documentation concernant un objet.

reproduit

Cette association est également très pratique pour gérer les reproductions photographique, transcriptions, éditions des sources d'archives ou autres objets qui nous intéressent. L'objet source est tout objet pour lequel existe une reproduction, l'objet cible identifie cette reproduction, le champs 'référence exacte' permet le cas échéant d'indiquer quelle partie de l'objet cible (par ex. un catalogue d'exposition) contient une photo de telle statue. Ce champs ne sera pas renseigné si l'objet cible (par ex. une photo) reproduit l'objet source comme tel.

concerne

Enfin, l'association générique 'concerner' indique que tel objet concerne tel autre objet sans préciser de quelle manière.

Remarque importante

Ni les objets, ni les associations entre objets n'ont pour fonction de collecter des connaissances historiques concernant les objets. L'entité 'objet' du système d'information sert uniquement à identifier des objets et à leur attribuer un identifant. Les associations doivent être impérativement utilisées dans le sens indiqué et pas un autre: elles expriment des relations élémentaires entre objets mais pas des connaissances historiques, car elle ne comportent pas de date, ni de source.

Le stockage des informations historiques en tant que relations entre objets sera le sujet de la suite du cours.