Définition formelle d'un hypertexte et calcul de coefficients locaux
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Premières définitionsUn hypertexte H est donné par quatre éléments: (U, C, d, d*). U est l'ensemble des unités d'information, C est l'ensemble des concepts. d et d* représentent deux relations sur C x U . C'est-à-dire que d et d* sont deux prédicats définissant deux sous-ensembles de C x U. Les deux sous-ensemble de C x U donnés par les relations d et d* seront notés D et D*. Ces notions formelles ne présupposent aucune réalisation (ou modèle) particulière. Toutefois, selon la signification attribuée le plus communément, la relation d peut être vue comme la signalisation qu'un concept c est descripteur d'une unité u (un pointeur sur u) ; d(c,u) peut se lire comme "c décrit (résume) u" (1). Quant à d* il s'agit de la relation "duale" sur C x U. d*(c,u) signifie que c est un référent dans u (en principe un lien sortant de u à partir d'une ancre dans le texte). C'est-à-dire que l'on considère une unité d'information comme étant la juxtaposition de concepts explicités et de concepts référés. Mais d'autres interprétations sont possibles. On le verra dans l'exemple d'UTOPIA, les concepts principaux sont à la fois des descripteurs et des référents. Ce modèle implique des choix au niveau d'une réalisation physique. Pour les unités d'information, par exemple, on pourra choisir des paragrahes, des chapitres, des articles entiers, etc. Ce problème du découpage et de la définition des unités composites est discuté dans [SAL 96] (p 51). Il y a souvent une ambiguité entre descripteur et référent. C'est une difficulté bien connue des documentalistes à propos de l'indexation des documents (d'autant plus si celle-ci est automatique). Il est difficile d'indexer un document dont les mots-clés sont souvent perçus comme un résumé "amorphe". Si, par exemple, un texte traite d'expériences en psychologie animale et relate un résultat faisant recours à des statistiques inférentielles, les descripteurs ne devraient en principe pas mentionner l'aspect statistique (contrairement à l'index), et à moins qu'une méthode originale ne soit développée à cette occasion. Dans notre cas, le modèle a été établi en prenant pour base l'idée d'apport d'information; quand un concept est descripteur d'une unité d'information, il indique que l'unité d'information apporte de l'information sur le concept. Un concept en tant que référent est utilisé dans une unité d'information comme apport des ressources informatives externes. En indexant une unité d'information, il faudrait donc distinguer deux types de concepts: ceux qui y sont "expliqués", les descripteurs, et ceux qui renvoient à l'explication, les référents. Exemple: Dans le cas d'une base de données simple: U est l'ensemble des fiches. C correspond à l'ensemble des rubriques (champs) de la fiche. La relation d relie les concepts à toutes les fiches. d* est nulle (2). Sur le modèle de la base de donnée, Fraissé [FRA 97] fait la disctinction entre unité d'information (UI) et unité d'information conceptuelle (UIC). Il donne comme exemple: pour une UI: la Joconde, pour une UIC: une uvre (ce qui sous-entend: une école, une période, un peintre, etc.). Dans ce cas, une UIC est l'ensemble des attributs (notions de école, période, peintre, etc.) pouvant admettre plusieurs valeurs qui, une fois valués définissent un objet particulier. Ce cas est un cas particulier du modèle base de données. [LUC 96] introduit une schéma "objet" de description des hypertextes qui précise formellement cette idée (avec son langage, une unité d'information UI devient une instance d'une UIC). Balpe [BAL 90] introduit l'idée de sous-concept pour appréhender cette idée d'instantiation (dans une base de donnée, Mozart devient un sous-concept de musicien) (3). Dans notre cas ce qui nous intéresse, n'est pas ce processus d'instanciation (de la classe vers l'objet), mais dans un premier temps, le processus contraire, des objets vers les classes. Ainsi dans l'exemple de Fraissé, nous nous contentons de noter:
Ces concepts à leur tour peuvent être des descripteurs d'autres unités d'information. L'introduction de types de concepts permettra par la suite de proposer une structuration de l'ensemble des unités d'informations accumulées. Notations et coefficents numériques
|
|
On définit encore les notions relatives:
De plus on note les valeurs moyennes pour un hypertexte:
Pour une unité et un concept on définit les rapport:
Si on définit la notion relative: Er(u) = Dr*(u)/Dr(u), on a: Er(u) = E(u) (N/N*).
Les relations peuvent aussi être représentées par des matrices (à valeur 0 ou 1). La matrice correspondant à d sera notée D et celle correspondant à d* sera notée R. Chaque ligne des ces matrices représentera un document et chaque colonne un concept.
On laisse au lecteur le soin de constater que les différents coefficients locaux défininis peuvent s'exprimer en terme de sommes de lignes et de colonnes des matrices R et D.
Quelques valeurs extrêmes permettent d'avoir une meilleure appréhension des coefficients introduits. Le tableau 1 donne quelques interprétations de valeurs particulières de ces coefficients.
Tableau 1: Interprétation
de quelques valeurs particulières des coefficients: Re, Re*,
Di et Di*
Re(c) = 0
C(c) = |
Le concept est une "question sans réponse", il n'est pas descripteur (concept minimal, considéré mais non défini). |
Re(c) = 1 | L'unité u telle que U(c) = {u} est une illustration ou une définition du concept de c. Si de plus D(u) = {c}, il s'agit d'une note, par exemple. |
Re(c) = #U | C'est la valeur maximale que peut atteindre Re(c). Dans ce cas le concept n'a aucune valeur discriminante. |
Di(u) = 0
E(u) = |
Le noeud est une unité isolée, une "source" ce qui est le cas d'une unité racine (table des matières, par exemple). |
Di(u) = 1 | Indique que u n'a qu'un seul descripteur, ce qui est une situation assez courante. |
Di(u) = #C | C'est la valeur maximale que peut atteindre Di(u). Tous les concepts sont descripteur de u. |
Re*(c) = 0
C(c) = 0 |
Le concept n'apparaît pas comme référent. |
Di*(u) = 0
E(u) = 0 |
L'unité d'information est sans référent, un "puit" qui correspond à une unité terminale (feuille). |
C(c) = 1 | Re(c) = Re*(c). Le concept c est descripteur autant de fois qu'il est référent. |
E(u) = 1 | Di(u) = Di*(u). Il y a autant de descripteurs que de référents pour u. |
Exemples
Les valeurs des coefficients seront calculées pour deux exemples typiques, l'un en "largeur" et l'autre en "profondeur": une base de donnée "classique" et une arborescence.
1) Base de données "classique"
Elle sera donnée par n fiches contenant p champs. Chacun représente un concept c (par exemple: nom, prénom, adresse, etc.).
2) Arborescence (fig 3)
Chaque unité d'information, sauf celles qui sont terminales
contient un menu avec rubriques, chacune représentant un concept
unique. Chaque rubrique, conduit à une unité d'information.
L'arbre a une profondeur de +1
(
1).
Figure 3: Organisation de l'information sous
forme d'arbre (système de menus)
Nombre de concepts p' = +
2
+ ... +
=
(
-1)/(
- 1)
Nombre d'unités d'information: n' = 1 + p'
Le tableau 2 présente les valeurs des coefficients pour ces deux cas particuliers.
Tableau 2: Coefficients pour deux hypertextes simples
#U | #C | N | N* | |
Base de données | n | p | np | 0 |
Arborescence | 1+p' | p' | p' | p' |
Re(c) | Re*(c) | Di(u) | Di*(u) | |
Base de données | n | 0 | p | 0 |
Arborescence | 1 | 1 | 0 pour racine; 1 sinon | ![]() |
Rr(c) | Rr*(c) | Dr(u) | Dr*(u) | |
Base de données | 1/p | indéfini | 1/n | indéfini |
Arborescence | 1/p' | 1/p' | 0 pour racine ; 1/p' | ![]() |
Rm | Rm* | Dm | Dm* | |
Base de données | n | 0 | p | 0 |
Arborescence | 1 | 1 | p'/n' ![]() |
![]() ![]() ![]() ![]() |
E(u) | C(c) | |
Base de données | 0 | 0 |
Arborescence | ![]() ![]() |
1 |
Ce schéma permet de comparer, par exemple, un système
de fiches d'adresses organisé tout dabord comme un ensemble de
fiches séparées avec nom et adresse (p = 2) et sous la
forme d'une liste de noms avec un lien sur l'adresse (
= n,
= 1, donc p' =
= n, n' = 1 + n). Les coefficients dépendent de la structure
choisie et non de l'ensemble des unités d'information en présence.
En définitive, le modèle utilisé permet de rendre compte d'un certain nombre de structures et donne un cadre à l'utilisation d'une famille de coefficients classiques tels que ceux définis par [BAL 90]. Ce modèle offre un "instantané"; s'il s'agissait de prendre en compte certains outils de navigations et plus généralement des liens calculés, il faudrait considérer ces valeurs comme fonction du temps et de donner des règles de transition.
Dans les problèmes d'indexation des documents chaque document
est caractérisé par un vecteur. On notera ici: v(u) =
(<u,c>)cC
. Le poids <u,c> peut être donné par diverses formules
dont celle de Salton (citée par [BAL
96 p 107] et [SME 96 p 6])
<u,c> = occ(c,u) log (#C / Re(c))
où occ(c,u) est le nombre de fois où le concept c apparaît dans l'unité d'information u.
Mais ce coefficient peut aussi être "subjectif" (intérêt)
ou encore tenir compte de l'information référencée.
Par ailleurs, dans notre perspective, l'indexage du document contient
en plus le contenu référent qui donne lieu à un
autre poids <u,c>*. De façon duale, on peut aussi considérer
les profils des concepts (<u,c>)uU.
Dès ce moment, il est possible de définir sur l'ensemble des unités d'information produit scalaire, corrélation, distance "euclidienne", voire d'autres distances. Dans notre cas, sauf indication contraire, <u,c> est donné par 1 si c est un descripteur de u et 0 sinon. De même pour <u,c>*.
Quant à la distance, on utilisera principalement le nombre de désaccords et le pourcentage de désaccords (cette deuxième mesure de l'écart est également une distance (7) ). C'est-à-dire que la distance entre u1 et u2 sera:
(u1,u2)
= Card ( D(u1)
D(u2) ) (8)
ou dans le cas "relatif":
r(u1,u2)
= Card ( D(u1)
D(u2) ) / Card (D(u1)
D(u2)) (9)
Le poids d'une unité d'information (sa longueur ou sa distance
à l'unité d'information vide) est donné par |u|
= (u,0)
=
c
C
<u,c> = Di(u).
La corrélation de deux unités d'information est donnée par le produit scalaire des vecteurs correspondant. Dans notre cas par:
(u1,u2)
= Card ( D(u1)
D(u2) ) / Card (D(u1)
D(u2)).
On a: (u1,u2)
= 1 -
r(u1,u2).
Ces définitions peuvent également s'utiliser avec les référents:
*(u1,u2)
= Card ( D*(u1)
D*(u2) ) / Card (D*(u1)
D*(u2)).
On a encore dans le cas " pourcent de désaccords ":
*(u1,u2)
= 1 -
r*(u1,u2).
et
* correspondent
aux notions de couplage classiques introduites par Kessler et Weinberg
(selon [SAV 96]).
Les mêmes notions sont également utilisables entre les concepts:
r(c1,c2)
= Card ( U(c1)
U(c2) ) / Card (U(c1)
U(c2))
(c1,c2)
= 1 -
r(c1,c2)
= Card ( U(c1)
U(c2) ) / Card (U(c1)
U(c2))
Même chose pour *r
et
*
.
Tout d'abord mentionnons que l'on peut considérer les graphes bipartites correspondant aux relations d et d*. Dans ce cas, Re(c) correspond à l'ordre du sommet c et Di(u) à l'ordre du sommet u.
Relation ternaire sur U x C x U : du(u,c,u') si et seulement si d*(c,u) et d(c,u'). Cette relation est celle considérée dans [LUC 96]. On le verra ultérieurement, cette relation permet d'induire un type sur les liens entre unités d'information.
De même on définira une relation sur C x U x C : dc(c,u,c') si et seulement si d(c,u) et d*(c',u).
Quant au graphe classique [FUR 96] entre les unités d'information, il dépend de la relation dérivée suivante:
Relation induite sur U : ru(u,u') ssi il existe c tel que d*(c,u) et d(c,u'). Le graphe orienté associé à cette relation est utilisé par [FUR 96] pour comparer les hypertextes. On le notera: Gu(H). En général on impose que le graphe associé soit faiblement connexe. Cette relation peut s'exprimer sous la forme d'un calcul matriciel : la matrice GU (associée à ru) ayant en ligne i et colonne j le nombre de liens de ui vers uj est le produit de R (matrice documents x référents) et D' (transposée de D matrice documents x descripteurs). GU= RD'.
On notera S(u,u') = 1 si ru(u,u') et S(u,u') = 0 sinon.
Par ailleurs, M(u,u') = Card { c
C | du(u,c,u') }. Les nombres M(u,u') sont les coefficients
de GU.
M(u,u') indique le degré de connexion de deux unités u et u'. S(u,u') indique simplement s'il y a connexion ou pas.
De même on considérera la relation induite sur C : rc(c,c') ssi il existe u telle que d(c,u) et d*(c',u). On dira dans ce cas que c' est un sous-concept de c, ou que c dépend de c'. (c est descripteur de u et c' fait partie du référent de u). Le graphe associé est Gc(H). Cette relation peut s'exprimer sous la forme d'un calcul matriciel : la matrice GC = R'D ayant en ligne i et colonne j le nombre de connexions entre ci et cj , est le produit de R' (transposée de la matrice document x référents) et D (matrice documents x descripteurs).
Les mêmes coefficients peuvent être introduits pour les concepts: S(c,c') = 1 si rc(c,c') et S(c,c') = 0 sinon.
Par ailleurs, M(c,c') = { u
U | dc(c,u,c') }.
M(c,c') indique le degré de connexion de deux concepts c et c'. S(c,c') indique simplement s'il y a "connexion" entre les concepts ou pas. Ces coefficients joueront un rôle lors du double typage (descripteur et référent) par regroupement des concepts.
Les autres coefficients qui peuvent être introduits:
Valence ou rendement d'une unité d'information (liens sortants de u)
VS*(u) = Card {u'
U | ru(u,u') } =
u'
S(u,u') = nombre d'arêtes du graphe d'origine u.
VM*(u) = c
D*(u) Re(c) =
u'
M(u,u'). (prise en compte de la multiplicité).
On a : VS*(u)
VM*(u)
Di*(u) VS*(u)
Disponibilité totale d'une unité d'information (liens rentrants)
VS(u) = Card {u'
U | ru(u',u) } =
u'
S(u',u) = nombre d'arêtes du graphe "pointant" sur u.
VM(u) = c
D(u) Re*(c) =
u'
M(u',u)
VS(u)
VM(u)
Di(u) VS(u)
Notion de corrélation moyenne
Ce qui précède suggère de définir:
comme une corrélation moyenne des référents liés à l'unité d'information u. Ce coefficient est compris entre 1/Di*(u) et 1. Plus r*(u) est grand, et plus les liens sortants conduisent aux mêmes unités d'information.
Dans le cas où D*(u) = {c1, c2}, on a:
r*(u) = (c1,c2)
/ (1 +
(c1,c2))
avec, on le rappelle:
(c1,c2)
= Card(U(c1)
U(c2)) / (Card (U(c1)
Card(U(c2) )
r* est donc bien lié à une corrélation de concepts. Il est sensible à la valeur de Di*(u) (comme tous les coefficents de corrélation) surtout pur les petites valeurs (un correctif valant Di*(u)/(Di*(u)-1) pourrait être introduit).
De même, le coefficient dual peut être introduit:
Il représente une corrélation moyenne des descripteurs de u. Les valeurs de r sont comprises entre 1/Di(u) et 1. Plus r(u) est grand, et plus les liens entrants proviennent des mêmes unités d'information.
Ramification de c
RS*(c) = Card {c'
C | rc(c',c) } = nombre d'arêtes
du graphe d'origine c. Ce nombre est Inférieur ou égal
à
u
U*(c) Di(u) = RM*(c). Par ailleurs:
RM*(c)
Re*(c) RS*(c)
Propagation de c
RS(c) = Card {c'
C | rc(c,c') } = nombre d'arêtes
du graphe "pointant" sur c. Ce coefficient est inférieur
ou égal à RM(c) =
u
U(c) Di*(u). Par ailleurs,
RM(c)
Re(c) RS(c)
Notion de corrélation moyenne
r(c) = (Re(c)/(Re(c) - 1) ) (1 - RS(c)/RM(c)) corrélation moyenne des unités d'information décrites par c.
r*(c) = (Re*(c)/(Re*(c) - 1) ) (1 - RS*(c)/RM*(c)) corrélation moyenne des unités d'information contenant le référent c.
VX(u)
=
VX*(u)
=
RX(c)
=
RX*(c)
= nombre d'arêtes des deux graphes associés.
On définit également VX*(u)/VX(u) et RX*(c)/RX(c).
VX*(u)/VX(u) constitue une approximation de premier ordre de la "balance", c'est-à-dire du rapport entre les unités d'informations attachées à u et celles auxquelles u est attachée (6).
Le tableau 3 donne les valeurs des coefficients dérivés pour les deux cas particuliers de la "base de données" et de l'arborescence. Les valeurs 0 sont typiques d'unités isolées et de concepts sans sous-concept.
Tableau 3: Coefficients dérivés pour la base de données simples et l'arborescence
VS(u) | VS*(u) | RS(c) | RS*(c) | |
Base de données | 0 | 0 | 0 | 0 |
Arborescence | 0 pour ui racine ; 1 sinon | ![]() |
0 pour concept racine; 1 sinon | ![]() |
1) d correspond à l'association classique " mot-document ".
2) Il n'y a évidemment a priori aucun rapport entre les relations d et d* et les relations permettant de configurer une base de données relationnelle.
3) On notera parfois: c1 < c2 ; si U(c1)
U(c2) (c2 décrit au moins toutes les unités d'information
décrites par c1) et u1
u2 ; si D(u1)
D(u2) (les descripteurs de u1 sont tous des descripteurs de u2)
4) Un concept est à prendre au sens large, il pourrait tout aussi bien s'agit d'un mot, d'une expresssion plus complexe, d'un type d'argumentation, etc.
5) De ce point de vue formel, un hypertexte est constitué de deux parties qui se correspondent l'une à l'autre comme espace vectoriel et espace affine associé. La partie "vectorielle" considère l'existence de relations entre concepts et unités d'information du point de vue ensembliste. La partie "affine" tient compte de la réalisation physique d'un hypertexte. Elle considère la répartition d'un même concept dans les unités d'information et, de façon duale, le nombre de fois où une unité d'information est décrite par un concept donné.
6) On retrouve ici l'idée de bilan informationnel introduit par Yona Friedman [ESC 76] à propos de la transmission de l'information dans un groupe. Dans ce cas on considérerait plutôt le bilan additif: Di*(u) -Di(u)
Dans le cas le plus défavorable:
r(A,C)
= 1 ;
r(A,B)
= (a+b+b')/(a+a'+b+b') = 1 - a'/(a+a'+b+b');
r(B,C)
= (a'+b+c)/(a'+b+b'+c) = 1 - b'/(a'+b+b'+c)
et r(A,C)
est inférieur à
r(A,B)
+
r(B,C)
8) D'autres distances peuvent être utilisées,
par exemple la distance euclidienne: (u1,u2)
= (
c
(<u1,c> - <u2,c>)2 )1/2. Dans le cas
où <u,c> vaut 1 ou 0 selon que c est dans u ou non, les
distances sont équivalentes. En l'occurence dans le cas euclidien:
(u1,u2)
= Card (D(u1)
D(u2)) 1/2. Son poids est Di(u)1/2.
9) Pour la commodité des calculs on utilise parfois Card (D(u1)) + Card(D(u2)).
(c) A. Favre, VisioSoft, S.A. & L.-O. Pochon, IRDP, 2000