Christophe Vergon 02/2007
V)
Modélisation d'un Intégrateur de données MajicII
V.1 Utilisation des données majicii : étude de cas Définission d'un mcd
Cette étude s'appuiera sur le guide d'utilisation des données majicII
produit par le CERTU, celui-ci fournit une description détaillée
des données et de leur interprétation. Ce chapitre tentera de
définir l'architecture d'un intégrateur vers une base de
donnée relationnelle et en conséquence un modèle décrivant les données littérales
plus affiné que celui présenté au chapitre II .
Nous nous placerons dans le contexte d'un utilisateur à mission de
service publique ayant accès aux différentes données cadastrales
produites par la DGI, telles que définies dans les précédents chapitres. Il est bon de rappeler que ces données
sont soumises à autorisation de la CNIL dans le cadre de leurs
délivrance et exploitation.
La nature des fichiers fournis par la DGI oblige à une "traduction"
pour permettre l'exploitation des données. Cette exploitation consistera
principalement à l'interrogation de la base au travers de requêtes.
MajicII est une application informatique DGI utilisée depuis les années 80. Le site de téléchargement du CERTU
propose un document de René DESMOND de la DGI permettant de visualiser
l'alimentation et la modification des données majic dans le cadre des
flux définis au chapitre I . Il s'agit de la situation actuelle (sur le plan liaison BNDP-MAJIC), mais
elle était différente il y a peu (3 ans). Depuis 1980
l'ensemble des saisies était manuel, il le reste pour les
locaux. La nature hiéarchique de la base et les garde fous de saisie
mis en place (quelque fois étranges) ajoutés aux éventuelles fautes de
frappes et au système déclaratif pour les locaux, peuvent conduire à
des erreurs dans les données et dans les liens, plus certainement à leur absence.
En conséquence il faut garder à l'esprit que les données majic ne sont pas toujours le reflet des données Hypothécaires.
Même si l'on peut raisonnablement espérer que le taux d'erreur
soit faible, la phase d'intégration
se doit d'inclure une vérifications des liens, et donc définir
les
différents états d'anomalies constatés.
Comme
nous l'avons vu précédement, un des intérêts est l'exploitation dans le
cadre d'un SIG, ce qui implique une liaison entre données littérales et
données graphiques. Certains SBDR possèdent une
cartouche spatiale qui permet d'intégrer la géométrie des objets
et d'effectuer des requêtes spatiales. Dans le registre libre
PostGrès/PostGis, sous licence payante Oracle spatial, sont des
exemples. L'
option spatiale est une extention des
cas d'utilisation généraux.
Ceci a une première conséquence sur le
modèle, il ne doit pas exister de dichotomie entre les objets (données
littérales) stockés dans les tables de la base et leur éventuel
frère
graphique (données topo). Ceci en ne prenant pas en compte certains
objets géocodables comme les adresses, de façon à pouvoir utiliser les
données PCI dans leur ensemble (image ou vecteur). L'ensemble de
données foncières commun aux deux systèmes de gestion est composé des objets suivants :
- commune
- section
- subsection
- parcelle

Une commune est composée de n sections, qui sont composées de
sous-sections qui sont composées de parcelles. Si l'unicité du numéro
de parcelle est au niveau de la section, la notion de sous section est
impérative pour associer les images, si c'est ce type de gestion
PCI.
Dans le cas étendu des BD spatiales la géométrie des images sera le
rectangle englobant, sections et commune le rectangle résultant de
l'union des rectangles des objets composant, les parcelles auront comme
géomètrie un point. Les autres données littérales
(propriétaires, lots, adresse) peuvent se greffer directement ou
indirectement à une ou des parcelles, comme vu au chapitre II. Cette
définition de la géométrie image est simplifiée. Une modification de
l'application de géoréférencement, permettant d'associer une polyligne
de contour de feuille cadastrale, doit permettre de traiter les
agrandissements et raccords en marge des feuilles cadastrales scannées
(définis en tant que subsection supplémentaire), et d'utiliser ces
polylignes dans les algorithmes spatiaux , ce sans topologie, car il
existe toujours un polygone non vide résultant de l'intersection de
deux polygones de contour de feuille.
Le lien entre parcelle et lot est particulier. En
effet si la parcelle ne contient aucun lot, c'est elle qui devient
l'objet de relation avec les propriétaires,ou les locaux. Qu'est-ce
qu'un
lot ? C'est une fraction de propriété. Si cette fraction est égale à 1,
ce lot est la parcelle. Pour permettre l'homogénéité du modèle, nous
définirons donc un lot, dit "lot fictif", qui représentera la
parcelle et qui sera présent systématiquement. le numérateur et
dénominateur seront égaux à "*". Le compte communal sera celui de la
parcelle, donc dans le cas d'une PDL (ou BND) il commencera par *. Une
parcelle est composée d'une à n surfaces (cf guide), surfaces qui
peuvent éventuellement être en lien avec un lot. C'est une relation 1 à
1 non explicite au niveau de la base de donnée (pas de contrôle d'intégrité référentielle). La table Surface contiendra un champs ptrlot contenant soit 0 ( Null ) soit la valeur de la clef primaire du lot impliqué.
L'utilisation
de requêtes sera le cas d'utilisation le plus fréquent du sytème, il se
spécialisera en fonction des besoins de l'utilisateur et de son
imagination. Nous devons donc établir un modèle qui permette via une
interface SQL de poser des questions naturelles. Nous prendrons comme
point de départ des questions et des
hypothèses simples.
Mr Y possède des droits de propriété
dans 1 appartement d'une copropriété (sur la parcelle X), et
une maison, dans la commune 1, un terrain dans la commune 2.

Nous devrons donc pouvoir interroger le système pour obtenir ces
informations, en partant du principe que nous ne connaissons que les
parcelles, ou le nom, prénom, et date de naissance de Mr Y .
De même
nous souhaitons obtenir facilement l'ensemble des copropriétaires de la
parcelle X, et non pas obtenir comme unique propriétaire "Les copropriétaires de X".
L'existence d'une personne de même nom, prénom, date de naissance mais
de numéro de personne différent est un homonyme (réel ou fictif ?) ,
qui même s'il est rare, mérite la création d'une alerte.
La notion de
propriété est utilisée ici au sens large, non au sens juridique. Car
les locaux sont évalués sur le système déclaratif . Même si l'apport des données
DRE à travers l'application Lascot permet une fiabilisation, la nature
de la base Lascot associée à la présence d'un taux important de
données inexploitables au sens cadastral du terme (pas de parcelle
identifiable) incitent à la prudence. De plus, la mise à jour du plan
cadastral n'est pas toujours en phase avec l'évaluation, le recoupement
avec une requête spatiale doit donner des résultats instructifs mais
cela ne permet pas d'affirmer que les résultats seront exhaustifs. En
conséquence lorsque l'on interroge la base en terme de propriété d'un
local, il faut retenir que l'on obtient les locaux évalués d'un lot ou
d'une personne.
Une personne peut exercer des droits sur un bien au
sens juridique sans pour autant que le bien ou la personne soient
présents dans la base ou que les liens soient établis, le septième
enfant d'une succession récente, s'il ne possède rien d'autre dans le secteur
géographique du CDIF ne sera pas connus ou sera sans lien avec le bien
(résultat à vérifier).
L'utilisation de requêtes se
réalise à travers l'emploi du langage SQL, ce qui implique une
contrainte dans la réalisation d'une relation n à n. Un exemple de relation n-n : Mr Y possède 2
parcelles, une de ces parcelles a plusieurs
propriétaires, La femme de Y née Z, par exemple.(un propriétaire est toujours
identifié par son nom de naissance). SQL
n'utilisant que les jointures 1-n on utilise un artifice pour créer une jointure n-n, la création d'une table
supplémentaire : "jointproplot" par exemple, où chaque table (proprio,
lot) possède une relation 1-n avec elle. Ces tables sont
composées de deux champs de type Long stockant la valeur de la clef
primaire de chaque objet du couple composant la relation. La création
d'une clef primaire pour ces tables n'est d'aucune utilité.
La lecture du
guide CERTU nous apprend que le propriétaire est en fait
représenté dans les fichiers, à l'intérieur d'un compte communal
contenant les 6 premières personnes exerçant un droit sur un bien
donné. Donc si Mr Y possède en propre le lot de copro et avec sa femme
la maison, Mr Y apparaîtra dans deux comptes communaux pour la commune
1, et dans un compte sur la commune 2. En conséquence, propriétaires et
comptes communaux possèdent une relation n-n, qui est caractérisée par
la nature du droit exercé (propriétaire,propriétaire indivisaire, usufruitié etc ...).

Le modèle présenté chapitre II doit donc être modifié, en tenant compte
des
précédentes remarques. Il peut-être défini comme présenté dans le shéma
ci-dessous. Chaque objet peut être stocké sous forme de tables,
les relations qui les lient étant toutes utilisables sous forme de
jointure au sens SQL. Il faut noter que mis à part les relations
unaires surface/lot, adresse/lot, adresse/local, les liens sont des
compositions. Ce qui se traduira en SQL par la création de ces
jointures en mode "suppression en cascades". Si une parcelle est
supprimée, les lots qui la composent le seront aussi mais les
propriétaires, les locaux concernés ne le seront pas. Les fichiers
Majic étant annuels, cette remarque prends son sens dans le cadre d'une
mise à jour de la base de donnée, permettant la
création d'un historique. Le maintien du compte communal en tant
qu'attribut de Lot ou de Local paralellement à l'existence d'une
jointure et l'existence d'une table CompteCommunal est voulu. Il permet
d'interroger la base selon différents chemins. "Quelles sont les
propriétés de Mr Y" utilisera le joint lotprop, "Quels sont les
propriétaires partageant des droits avec Mr Y", utilisera le joint
PropCompteCom, le résultat sera calculé sur l'ensemble des communes de
la base
V.2
Données Initiales, traduction primaire dans des tables temporaires,
processus general:
Comme nous l'avons déjà vu, les données initiales dont nous
pouvons disposer sont les données topo et les données littérales.
Nous allons y
ajouter un nouveau fichier "DonneeDepartementale" qui contiendra a minima
le code
INSEE de la commune et son nom. La provenance peut-être diverse selon
les utilisateurs: Table Commune d'une base TPLascot ou Lascot pour les
membres de la DGI, fichiers rdf téléchargeables sur le site de l'INSEE,
ou BDCarto de l'IGN. Nous y ajouterons un champs de données de type
booleen "Vecteur" avec la valeur Faux par défaut. Cette base aura pour
vocation de permettre une reconnaissance automatique de la commune dans
le traitement des données initiales. Qu'il s'agisse du contenu Edigéo
ou DXF-PCI , des noms de fichiers image ou localisant, la normalisation
existante permet d'atteindre rapidement les données, code insee,
section, subsection. La base départementale n'a pas vocation à exister
dans le cas d'un SGBR puissant permettant d'intégrer tout un
département. Elle est remplacée par la table "Commune". Dans le cadre
d'un projet mettant en oeuvre une base par commune (Type access + vb),
cette base sert au système pour diffuser une requête sur les communes
choisies par l'utilisateur. Dans ce cadre l'unicité du propriétaire
n'est pas assurée au delà de la commune autrement que par la valeur du
champs DNUMPER.
Les données MajicII
initiales sont des fichiers texte.
La date d'édition de ces fichiers diffère de
celle des fichiers topo. Ceci induit un état d'anomalie pour les
parcelles qui peuvent être absentes d'un des deux ensembles. La
codification des fichiers et les abrévations de noms de champs rendent
peu intelligibles le contenu des fichiers Majic. La
réalisation du cas d'utilisation "Integration données dans un SGBR" se
révèle donc être complexe. Traduire les fichiers texte, vérifier le
formatage et le type de valeur obtenu, enregistrer les valeurs dans les
tables, vérifier et créer les liens, pour les parcelles établir les
discordances avec les données topo ... et assurer en plus la
compatibilité du processus avec les BD spatiales.
Une façon de simplifier les choses est de considérer le cas
d'utilisation "intégration des données" comme un processus automatisé
composé d'étapes successives formés des cas d'utilisation inclus.
Sous cet angle vient l'idée que les données peuvent être transformées,
formatées puis intégrer dans une BD sans création de liens. Puis
l'ensemble de ces données est à nouveau traité pour établir les liens
et les vérifier. Il est possible d'utiliser une base de donnée
temporaire.Les
tables de cette BD seront préfixées "BdTemp". Cette BD est la
traduction des fichiers textes Majic sans établir de relations entre
les entités autre que PEV et local, Parcelle et Surface. Le fichier FANTOIR (adresses) et lui directement
intégré dans la base finale. La
notion de compte communal est définie comme attribut d'un proprietaire
de la base temporaire. Chaque compte communal verra donc la création de
1 à 6 propriétaires différents dans la base temporaire, en conséquence
une même personne physique pourra avoir plusieurs représentations.
L'unicité de la personne sera crée lors de la seconde phase.
L'avantage de la création d'une base
temporaire est double, il permet de se focaliser sur les pbs de
formatage de données dans la phase d'intégration MajicTxtFile vers
BdTemp, et d'utiliser ensuite des requêtes SQL pour l'intégration dans
la base finale.
Les
fonctions de gestion d'une base de donnée manipulent en général un
objet général Record (enregistrement) et renvoient un jeu
d'enregistrement (Recordset). Les paramètres BOF et EOF s'ils
sont
vrais tous les deux indiquent que le "recordset" ne contient aucun
enregistrement. Nous partirons du principe que le système intégrateur
que nous modélisons comporte une interface "SQL" permettant de
manipuler l'ensemble des objets contenus dans une base de donnée et
d'executer des requêtes. Les résultats étant délivrés sous forme de jeu
d'enregistrements.

Nous étendrons le principe précédent à
l'implementation des interfaces de lecture des fichiers textes et des
données EDIGéo ou DXF-PCI. L'interface est un service capable de
réaliser des opérations spécifiques, dont seul le résultat est visible
à l'utilisateur du service. Ceci est par exemple le cas avec Spatial
Data Integrator de la société Talend, la lecture EDIgéo est un service
accéssible. L'intégration des données Majic2 est modélisée ici sous
forme de méthode du système intégrateur, ceci pour porter l'accent sur
ce que nous cherchons à réaliser. Dans la pratique l'intégration des
données majic serait implémentée sous forme d'interface utilisée par le
système intégrateur.

Le
processus général d'intégration peut-être défini par un diagramme
d'activités, qui sera le reflet de l'utilisation séquentielle des
interfaces. Activité décomposée en trois phases majeures, qui reflètent
les trois états possibles du système intégrateur . La phase 1 n'a
lieu qu'une fois, les phases 2 et 3 se répétant pour chaque commune.
Les activités de la phase 2 peuvent se dérouler dans un ordre
quelconque, mais elles doivent toutes être achevées pour passer à la
phase 3.
- Phase 1 terminée : Toutes les communes sont identifiées
Toutes les parcelles d'une commune sont connues à l'état graphique dans la base finale