FR2805378A1 - System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data - Google Patents

System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data Download PDF

Info

Publication number
FR2805378A1
FR2805378A1 FR0007250A FR0007250A FR2805378A1 FR 2805378 A1 FR2805378 A1 FR 2805378A1 FR 0007250 A FR0007250 A FR 0007250A FR 0007250 A FR0007250 A FR 0007250A FR 2805378 A1 FR2805378 A1 FR 2805378A1
Authority
FR
France
Prior art keywords
user
links
added
page
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR0007250A
Other languages
French (fr)
Inventor
Enrico Maim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR9914151A external-priority patent/FR2805373A1/en
Priority claimed from FR0004207A external-priority patent/FR2807179A1/en
Application filed by Individual filed Critical Individual
Priority to FR0007250A priority Critical patent/FR2805378A1/en
Priority to PCT/FR2001/001730 priority patent/WO2001095231A2/en
Publication of FR2805378A1 publication Critical patent/FR2805378A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9562Bookmark management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/014Force feedback applied to GUI

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The data is organized into first containers with first data accessible via these containers. A second set of data is in second containers, with second data accessible via these containers. Connections are established containers, and provision made for the user to add data to first or second data sets. Where data is added to one set it can be suggested for addition to the other set.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

La présente invention concerne d'une façon générale les systèmes de traitement de données orientés objet. The present invention generally relates to object-oriented data processing systems.

Il existe des applications orientées objet dans lesquelles, en raison de différents facteurs et notamment l'allocation de temps machine, l'allocation de temps de communication sur réseau, etc., le comportement de l'application pour l'utilisateur n'est pas perçu comme identique à chaque exécution, ou en d'autres termes n'est pas reproductible. There are object-oriented applications in which, due to various factors, including the allocation of machine time, the allocation of network communication time, etc., the behavior of the application for the user is not perceived as identical to each execution, or in other words is not reproducible.

Ceci est indésirable en ce que l'utilisateur peut percevoir cette non-reproductibilité comme un défaut de l'application. This is undesirable in that the user may perceive this non-reproducibility as a fault of the application.

Notamment, lorsqu'une application orientée objets est exécutée dans un mode dit de multi-threading selon la terminologie anglo-saxonne et lorsque des objets de l'application sont répliqués pour être exécutés simultanément dans deux unités de traitement différentes (telles qu'un serveur et un poste client reliés par réseau), il n'est pas évident de gérer le déroulements des actions dans les deux objets exécutés pour qu'ils soient synchrones et pour obtenir un déroulement harmonieux de l'exécution de l'application. In particular, when an object-oriented application is executed in a so-called multi-threading mode according to the English terminology and when application objects are replicated to be executed simultaneously in two different processing units (such as a server and a client station connected by network), it is not easy to manage the actions of the two executed objects so that they are synchronous and to achieve a smooth running of the application.

La présente invention vise donc à doter ce genre d'application orientée objets d'un comportement déterministe, permettant notamment de pallier ces difficultés. The present invention therefore aims to provide this kind of object-oriented application of a deterministic behavior, in particular to overcome these difficulties.

Ainsi, rechercher le déterminisme est le fruit d'une double motivation, permettant d'assurer les propriétés suivantes : - Pouvoir reproduire de façon identique une même exécution : un utilisateur s'attend à ce que l'application qu'il utilise soit reproductible, c'est-à-dire ait toujours le même comportement. Thus, to look for the determinism is the result of a double motivation, allowing to ensure the following properties: - To be able to reproduce exactly the same execution: a user expects that the application which he uses is reproducible, that is to say, always has the same behavior.

- Pouvoir reproduire de façon identique une exécution entre plusieurs machines à l'aide d'un mécanisme de réplication par calcul. - Can reproduce an execution between different machines identically using a replication mechanism by calculation.

<Desc/Clms Page number 2><Desc / Clms Page number 2>

Assurer un tel déterminisme est cependant loin d'être évident en particulier pour une application constituée de plusieurs objets actifs en même temps, c'est-à-dire qui évoluent en parallèle dans le mode de multi-threading précité. En effet un tel mode d'exécution, bien que présentant certains avantages, crée de façon inhérente du non-déterminisme, lié en particulier au fait que, d'une exécution à l'autre, l'occupation du système peut varier, et les tâches effectuées par les objets peuvent prendre plus ou moins de temps.  Ensuring such a determinism is, however, far from being obvious, particularly for an application consisting of several active objects at the same time, that is to say that evolve in parallel in the aforementioned multi-threading mode. Indeed, such a mode of execution, although having certain advantages, inherently creates non-determinism, in particular linked to the fact that, from one execution to another, the occupation of the system may vary, and the tasks performed by objects may take longer or shorter.

Une telle approche, où chaque objet évolue selon un déroulement ( thread selon la terminologie anglosaxonne) indépendant, ne peut donc pas répondre à l'objectif de déterminisme recherché. Such an approach, in which each object evolves according to an independent flow (thread according to Anglosaxon terminology), can not therefore answer the objective of determinism sought.

La présente invention vise à résoudre ce problème Elle propose à cet effet un système de traitement de données, comprenant des moyens de traitement exécutant une application orientée objets réactive et dans laquelle il peut exister des instants où les comportements d'objets différents sont vus par un utilisateur comme se produisant en parallèle, et dans laquelle au moins certains des objets présentent des états dans lesquels s'exécutent respectivement un ensemble ininterruptible d'une ou plusieurs premières actions et/ou un ensemble interruptible d'une ou plusieurs secondes actions. The present invention aims to solve this problem It proposes for this purpose a data processing system, comprising processing means executing a reactive object-oriented application and in which there may exist times when the behaviors of different objects are seen by a user. user as occurring in parallel, and wherein at least some of the objects have states in which respectively execute an uninterruptible set of one or more first actions and / or an interruptible set of one or more second actions.

Le système est caractérisé en ce que chaque état de chaque objet est décomposé en un premier sous-état le cas échéant, dans lequel s'exécutent les seules premières actions, et en un ou plusieurs seconds sous-états le cas échéant, dans lesquels s'exécutent respectivement les secondes actions. The system is characterized in that each state of each object is decomposed into a first sub-state, where appropriate, in which the first actions execute only, and into one or more second sub-states where appropriate, in which s execute the second actions respectively.

Il est prévu en association avec les seconds sous-états un moyen de séquencement apte à communiquer de façon bidirectionnelle avec les objets dans chacun de leurs seconds sous-états pour organiser de façon séquentielle et reproductible le A sequencing means is provided in association with the second sub-states capable of bidirectionally communicating with the objects in each of their second sub-states to sequentially and reproducibly

<Desc/Clms Page number 3><Desc / Clms Page number 3>

déroulement des secondes actions dans lesdits seconds sous-états tout en conservant la vision parallèle des comportements des objets pour l'utilisateur.  running the second actions in said second sub-states while maintaining the parallel view of the object behaviors for the user.

Des aspects préférés, mais non limitatifs, du système selon l'invention sont les suivants : - une transition d'un objet vers un état dans lequel s'exécutent une ou plusieurs premières actions amène ledit objet dans le premier sous-état dudit état de façon automatique. Preferred, but not limiting, aspects of the system according to the invention are the following: a transition from an object to a state in which one or more first actions execute brings said object into the first sub-state of said state of Automatic way.

- chaque objet possédant des secondes actions présente un premier sous-état dans lequel s'exécute, en sus des éventuelles premières actions, un envoi au moyen de séquencement d'un message de demande de déclenchement, par ledit moyen de séquencement, de l'exécution de la ou des secondes actions. each object having second actions has a first sub-state in which, in addition to the possible first actions, a sending by means of sequencing of a trigger request message, by said sequencing means, of the execution of the second action (s).

- chaque objet possède une transition automatique du premier sous-état vers un état sous-état intermédiaire d'attente d'un événement de déclenchement d'exécution de la part du moyen de séquencement, apte à provoquer une transition de l'objet vers l'un des seconds sous-états. each object has an automatic transition from the first sub-state to an intermediate sub-state state waiting for an execution trigger event on the part of the sequencing means, capable of causing a transition from the object to the one of the second sub-states.

- la transition dudit sous-état intermédiaire vers l'un des seconds sous-états, de même que la transition d'un second sous-état vers un autre second sous-état, s'effectuent en réponse à un même événement (Next). the transition from said intermediate sub-state to one of the second sub-states, as well as the transition from a second sub-state to another second sub-state, is performed in response to the same event (Next) .

- chaque objet est apte à adresser au moyen de séquencement un message de demande d'activité (Put(next,...)) indiquant qu'il existe dans ce même objet un ensemble interruptible d'une ou plusieurs secondes actions, tandis que le moyen de séquencement comprend un moyen de mémorisation des messages reçus, et un moyen pour parcourir les messages mémorisés dans l'ordre de leur arrivée. each object is capable of addressing, by means of sequencing, an activity request message (Put (next, ...)) indicating that there exists in the same object an interruptible set of one or more second actions, whereas the sequencing means comprises means for storing the received messages, and means for traversing the stored messages in the order of their arrival.

<Desc/Clms Page number 4><Desc / Clms Page number 4>

- chaque message de demande d'activité émis par un objet contient au moins une identification de l'objet.  each activity request message sent by an object contains at least one identification of the object.

- chaque objet comprend un compteur d'envois de messages de demande de déclenchement d'exécution apte à permettre de déterminer l'éventuelle caducité d'un événement de déclenchement d'exécution correspondant délivré par le moyen de séquencement. each object comprises an execution request message sending counter capable of making it possible to determine the eventual lapse of a corresponding execution triggering event delivered by the sequencing means.

- chaque objet possède un moyen de comparaison de la valeur contenue dans ledit compteur avec une valeur contenue dans un événement de déclenchement d'exécution reçu par ledit objet pour entrer dans ledit second sous-état donné. each object has a means for comparing the value contained in said counter with a value contained in an execution trigger event received by said object to enter said second given sub-state.

- le moyen de mémorisation est également apte à conserver la trace des actions effectuées par lesdits objets. - The storage means is also able to keep track of the actions performed by said objects.

- le moyen de mémorisation est également apte à mémoriser une succession de messages de trace reçus par le moyen de séquencement et comprenant chacun: - une identification de l'objet effectuant une transition ; et - une identification de l'origine de l'événement qui a déclenché ladite transition. the storage means is also able to store a succession of trace messages received by the sequencing means and each comprising: an identification of the object effecting a transition; and an identification of the origin of the event that triggered said transition.

- chaque message de trace comprend en outre une identification de l'état dudit objet avant cette transition. each trace message further comprises an identification of the state of said object before this transition.

- chaque message susceptible d'être reçu par le moyen de séquencement comprend une information de type (next/trace) permettant de distinguer un message de trace d'un message de demande d'activité. each message that can be received by the sequencing means comprises a type of information (next / trace) making it possible to distinguish a trace message from an activity request message.

- le moyen de mémorisation est apte à mémoriser les messages de trace avec les messages de demande d'activité selon une séquence correspondant à leur succession temporelle, tandis que le moyen de séquencement comprend en outre un curseur de the storage means is capable of storing the trace messages with the activity request messages in a sequence corresponding to their temporal succession, while the sequencing means further comprises a cursor of

<Desc/Clms Page number 5><Desc / Clms Page number 5>

traitement apte à parcourir, dans le sens de la séquence, les seuls messages de demande d'activité en vue de leur traitement.  treatment able to browse, in the sense of the sequence, the only activity request messages for their treatment.

- à chaque message est associée une information représentative de sa position dans le moyen de mémorisation. each message is associated with information representative of its position in the storage means.

- le moyen de séquencement est également apte à organiser de façon séquentielle le déroulement de premières actions causées par des événements extérieurs au système. - The sequencing means is also able to organize sequentially the course of first actions caused by events outside the system.

- il existe des objets aptes à exécuter une première action dite premier cycle en réponse à un événement extérieur au système, notamment provoqué par l'utilisateur, en ce que chacun de ces objets est apte à adresser au moyen de séquencement, une demande d'activité correspondante, tandis que le moyen de séquencement est apte à délivrer à l'objet effectuant une telle demande un message d'autorisation correspondance (Proceed) seulement lorsqu'il n'existe pas un autre premier cycle en cours d'exécution. - There are objects able to perform a first action called first cycle in response to an event outside the system, in particular caused by the user, in that each of these objects is able to address by means of sequencing, a request for corresponding activity, while the sequencing means is capable of delivering to the object making such a request a permission message match (Proceed) only when there is no other first cycle running.

- chaque objet apte à effectuer un premier cycle est apte, lors de la fin de l'exécution de celui-ci, à adresser au moyen de séquencement un message de fin de premier cycle, de manière à ce que le moyen de séquencement puisse ensuite le cas échéant autoriser un autre premier cycle. each object capable of performing a first cycle is capable, at the end of the execution thereof, of addressing by means of sequencing a message of the end of the first cycle, so that the sequencing means can then be if necessary, authorize another first cycle.

D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante d'une forme de réalisation préférée de celle-ci, donnée à titre d'exemple non limitatif et faite en référence aux dessins annexés, sur lesquels les figures 1 à 13 illustrent schématiquement différents états et comportements d'un procédé de gestion d'affichage selon l'invention, Other aspects, objects and advantages of the present invention will appear better on reading the following detailed description of a preferred embodiment thereof, given by way of nonlimiting example and with reference to the appended drawings. in which Figures 1 to 13 schematically illustrate different states and behaviors of a display management method according to the invention,

<Desc/Clms Page number 6><Desc / Clms Page number 6>

les figures 14 à 17 sont des vues schématiques en perspective illustrant le comportement de deux éléments d'affichage superposés et des zones associées selon une généralisation de l'invention, la figure 18 est une vue en plan des différentes zones exploitées, la figure 19 représente deux positions possibles d'un élément d'affichage donné, la figure 20 indique une symbolique de représentation des états du système de gestion d'affichage, la figure 21 est un diagramme d'états-transitions du système, la figure 22 illustre par une modélisation en section, transversalement au plan de l'affichage, les comportements illustrés sur la figure 21, les figures 23 à 25 sont des vues schématiques en perspective illustrant le comportement du système de l'invention avec trois éléments d'affichage superposés, la figure 26 illustre par une modélisation en section, transversalement au plan de l'affichage, le comportement d'un système selon l'invention appliqué à une pluralité d'éléments d'affichage superposés. les figures 27 à 31illustrent les différentes étapes du comportement d'un procédé de gestion d'affichage selon l'invention, appliqué à des fenêtres d'un système d'exploitation, la figure 32 illustre une structure de liens entre pages ajoutés par un utilisateur selon la présente invention,  FIGS. 14 to 17 are diagrammatic perspective views illustrating the behavior of two superimposed display elements and associated zones according to a generalization of the invention, FIG. 18 is a plan view of the various zones exploited, FIG. two possible positions of a given display element, FIG. 20 indicates a representation symbol of the states of the display management system, FIG. 21 is a state-transition diagram of the system, FIG. sectional modeling, transversely to the plane of the display, the behaviors illustrated in FIG. 21, FIGS. 23 to 25 are diagrammatic perspective views illustrating the behavior of the system of the invention with three superimposed display elements, FIG. 26 illustrates by a sectional modeling, transversely to the plane of the display, the behavior of a system according to the invention applied to a plurality é superimposed display elements. FIGS. 27 to 31 illustrate the various steps of the behavior of a display management method according to the invention, applied to windows of an operating system, FIG. 32 illustrates a structure of links between pages added by a user. according to the present invention,

<Desc/Clms Page number 7><Desc / Clms Page number 7>

la figure 33 illustre la combinaison de la Toile et d'une toile personnelle constituée par de tels liens ajoutés, la figure 34 illustre schématiquement la façon de créer l'association entre une page et ses liens ajoutés, la figure 35 illustre une façon d'afficher une page et les liens ajoutés qui y ont été associés, les figures 36a à 36c illustrent un exemple de combinaison de liens ajoutés, la figures 37 illustre différentes opérations permettant de créer des liens ajoutés entre pages, les figures 38 et 39 illustrent l'application d'un mécanisme de gestion d'affichage selon l'invention à une superposition de pages pourvues de leurs liens ajoutés, la figure 40 illustre un agencement d'affichage différent des liens ajoutés associés à des pages, la figure 41 illustre la correspondance entre les opérations de création de liens ajoutés et le stockage de tels liens ajoutés, la figure 42 illustre de façon analogue à la figure 41 une correspondance dans le cas où les liens ajoutés incluent également des liens ajoutés inverses, la figure 43 illustre schématiquement un mode de stockage des liens ajoutés la figure 44 illustre schématiquement un premier mode d'obtention via réseau d'une page et des liens ajoutés qui y ont été associés,  Figure 33 illustrates the combination of the Web and a personal web consisting of such added links, Figure 34 schematically illustrates how to create the association between a page and its added links, Figure 35 illustrates a way to to display a page and the added links associated therewith, Figures 36a to 36c illustrate an example of a combination of added links, Figures 37 illustrates various operations for creating links added between pages, Figures 38 and 39 illustrate the application of a display management mechanism according to the invention to a superposition of pages provided with their added links, FIG. 40 illustrates a different display arrangement of the added links associated with pages, FIG. the added link creation operations and the storage of such added links, Figure 42 illustrates in a similar manner to Figure 41 a correspondence in the case o the links added also include inverse added links, Figure 43 schematically illustrates a storage mode of the links added Figure 44 schematically illustrates a first method of obtaining network via a page and links added which were associated,

<Desc/Clms Page number 8><Desc / Clms Page number 8>

la figure 45 illustre schématiquement un deuxième mode d'obtention via réseau d'une page et des liens ajoutés qui y ont été associés, les figure 46 à 51 illustrent six exemples de manipulations de pages et de liens ajoutés dans le cadre de pages contenues dans des répertoires d'utilisateur, les figures 52 et 53 illustrent deux modes de présentation de liens mémorisés ou liens ajoutés de deuxième rang en relation avec une page courante la figure 54 illustre un exemple d'interface d'accès à l'utilisateur dans le cadre d'une page à laquelle sont associés des liens ajoutés, la figure 55a illustre un exemple d'interface utilisateur dans laquelle à une page sont associés d'une part des liens ajoutés, et d'autre part une sélection de répertoires proches, la figure 55b illustre un détail d'affichage d'une page et de liens ajoutés associés permettant de changer un attribut d'un lien ajouté, la figure 56 illustre dans une représentation standard UML un diagramme de classe pour les liens ajoutés et leur attribut précité, la figure 57 présente de manière schématique les principes d'accès direct aux liens ajoutés et aux répertoires, les figures 58 et 59 illustrent schématiquement les fondements du mode de calcul primaire de proximité entre répertoires pour une page courante donnée, la figure 60 illustre schématiquement les fondements du mode de calcul de proximité transitive entre répertoires pour une page courante donnée  FIG. 45 schematically illustrates a second method of obtaining via a network a page and the links added thereto, FIGS. 46 to 51 illustrate six examples of manipulations of pages and links added in the context of pages contained in user directories, Figures 52 and 53 illustrate two modes of presentation of links stored or links added second rank in relation to a current page Figure 54 illustrates an example of access interface to the user in the frame of a page with associated links added, Figure 55a shows an example of a user interface in which a page is associated on the one hand with the links added, and on the other hand a selection of close directories, the figure 55b illustrates a display detail of a page and associated added links for changing an attribute of an added link, FIG. 56 illustrates in a standard UML representation a diagram of class for the added links and their attribute above, figure 57 schematically presents the principles of direct access to the added links and the directories, figures 58 and 59 schematically illustrate the foundations of the primary mode of computation of proximity between directories for a given given current page, Figure 60 schematically illustrates the foundations of the transitive proximity computation mode between directories for a given current page.

<Desc/Clms Page number 9><Desc / Clms Page number 9>

les figures 61 à 63 illustrent schématiquement les fondements de trois modes évolués de calcul de proximité entre répertoires, la figure 64 illustre deux modes de représentation graphique d'un lien ajouté associé à une page, la figure 65 illustre schématiquement l'accès direct aux répertoires , la figure 66 illustre un détail d'affichage d'un répertoire et des liens qu'il contient permettant de changer un attribut d'un lien, la figure 67 illustre dans une représentation standard UML un diagramme de classe pour les liens et leur attribut précité, la figure 68 illustre schématiquement le placement de contenants dans un document, la figure 69 illustre schématiquement l'importation d'un contenu d'un contenant dans un autre, la figure 70 illustre schématiquement la dérivation d'un contenant, la figure 71 illustre schématiquement l'importation d'un contenu d'un document vers un contenant d'un autre document, la figure 72 illustre schématiquement le principe de composition des contenus, la figure 73 illustre schématiquement le principe de structuration de références entre éléments, la figure 74 illustre schématiquement l'accès indirect à une page sur la Toile par l'intermédiaire du système,  FIGS. 61 to 63 schematically illustrate the foundations of three advanced modes of calculation of proximity between directories, FIG. 64 illustrates two modes of graphical representation of an added link associated with a page, FIG. 65 diagrammatically illustrates direct access to the directories. FIG. 66 illustrates a display detail of a directory and the links it contains making it possible to change an attribute of a link, FIG. 67 illustrates in a standard UML representation a class diagram for the links and their attribute. Figure 68 schematically illustrates the placement of containers in a document, Figure 69 schematically illustrates the import of a content from one container to another, Figure 70 schematically illustrates the derivation of a container, Figure 71. schematically illustrates the import of a content of a document to a container of another document, Figure 72 illustrates schematically the principle of composi FIG. 73 schematically illustrates the principle of structuring references between elements. FIG. 74 schematically illustrates the indirect access to a page on the Web via the system.

<Desc/Clms Page number 10><Desc / Clms Page number 10>

la figure 75 illustre schématiquement le procédé mis en #uvre par le système, la figure 76 illustre schématiquement deux contenants, la figure 77 illustre schématiquement le procédé d'importation, la figure 78 illustre schématiquement le procédé d'importation d'un contenu dans un contenant de catégorie différente, la figure 79 illustre schématiquement des containers imbriqués, les figures 80a et 80b illustrent schématiquement le procédé de dérivation, la figure 81illustre schématiquement une structure infinie de dérivation, la figure 82 illustre schématiquement un exemple simple de structure de document, la figure 83 illustre schématiquement le principe de stockage des attributs des contenus, la figure 84a illustre un exemple d'interface utilisateur dans laquelle à une page sont notamment associés des liens ajoutés et des liens sur des contenus dans un contenant, la figure 84b illustre un exemple d'interface utilisateur dans laquelle figurent des cases à cocher Demandeur et Offreur , la figure 85 est un diagramme de classe en représentation UML d'une structure hiérarchique de Contenants d'informations utilisée selon un troisième aspect de la présente invention,  Figure 75 schematically illustrates the method implemented by the system, Figure 76 schematically illustrates two containers, Figure 77 schematically illustrates the import process, Figure 78 schematically illustrates the process of importing a content into a container. Figure 79 schematically illustrates nested containers, Figures 80a and 80b diagrammatically illustrate the derivation process, Figure 81 illustrates schematically an infinite derivation structure, Figure 82 schematically illustrates a simple example of a document structure. FIG. 83 illustrates schematically the principle of storing the attributes of the contents, FIG. 84 a illustrates an example of a user interface in which one page is associated in particular with added links and links on contents in a container, FIG. 84b illustrates an example user interface in which there are check boxes Applicant and Provider, Fig. 85 is a class diagram in UML representation of a hierarchical structure of Information Containers used according to a third aspect of the present invention,

<Desc/Clms Page number 11><Desc / Clms Page number 11>

la figure 86 est un diagramme de classe incluant la notion de Profil d'Utilisateur, la figure 87 est une autre illustration de l'organisation de Profils, Contenants et Contenus, la figure 88 est un diagramme de classe dans lequel sont introduites les notions de Référence à Contenu (lien vers contenu) et de popularité de Contenu, la figure 89 est un diagramme de classe dans lequel sont introduites les notions de Contenu Direct et de Contenu Indirect, la figure 90 illustre un avantage essentiel d'une forme de réalisation de base de l'invention, la figure 91 est un diagramme de classe illustrant la notion de Référence en cascade, la figure 92 illustre un principe de propagation de profil, les figures 93 et 94 illustrent la création de liens correspondant à la propagation de Profils de la figure 92, la figure 95 illustre un autre principe de propagation de profil, les figures 96 et 97 illustrent la création de liens correspondant à la propagation de Profils de la figure 95, les figures 98 et 99 illustrent des créations de liens occasionnées par un processus de Référencement, la figure 100 est un diagramme de classe intégrant les notions de propagation de Profils et de Référencement de Profils,  Figure 86 is a class diagram including the notion of User Profile, Figure 87 is another illustration of the organization of Profiles, Containers and Contents, Figure 88 is a class diagram in which are introduced the notions of Referring to Contents (link to content) and Popularity of Content, Figure 89 is a class diagram in which the concepts of Direct Content and Indirect Content are introduced, Figure 90 illustrates an essential advantage of an embodiment of FIG. 91 is a class diagram illustrating the notion of cascade reference, FIG. 92 illustrates a profile propagation principle, FIGS. 93 and 94 illustrate the creation of links corresponding to the propagation of profiles of FIG. 92, FIG. 95 illustrates another principle of profile propagation, FIGS. 96 and 97 illustrate the creation of links corresponding to the propagation of profiles of FIG. FIGS. 98 and 99 illustrate link creations caused by a referencing process, FIG. 100 is a class diagram incorporating the notions of Profile Propagation and Profile Referencing,

<Desc/Clms Page number 12><Desc / Clms Page number 12>

les figures 101à 104 illustrent quatre configurations possibles de transition de liens, les figures 105 à 107 illustrent des créations de liens concernant l'archivage d'éléments et leur restauration, la figure 108 illustre un principe de collecte de Profils sous forme d'un ensemble de fichiers communs, la figure 109 est un diagramme de classe mettant en #uvre le principe de la figure 108, la figure 110 illustre une construction d'arborescence dans le cadre du principe de la figure 108, la figure 111 est un diagramme de classe reprenant l'ensemble des principes des figures 85 à 110, la figure 112 illustre une structure arborescente de classeurs selon la présente invention, la figure 113est un diagramme de classe intégrant cette notion de classeurs, la figure 114 illustre la structure d'une base de données SQL associée à l'organisation en classeurs, la figure 115 illustre une table de classeurs, la figure 116 illustre une table d'éléments propres à l'utilisateur dans un classeur, la figure 117 illustre une table de liens,  Figs. 101 to 104 illustrate four possible link transition configurations, Figs. 105 to 107 illustrate link creation for item archiving and restoration, Fig. 108 illustrates a principle of collecting Profiles as a set. Figure 109 is a class diagram implementing the principle of Figure 108, Figure 110 illustrates a tree structure in the context of the principle of Figure 108, Figure 111 is a class diagram. using the set of principles of FIGS. 85 to 110, FIG. 112 illustrates a tree structure of binders according to the present invention, FIG. 113 is a class diagram integrating this concept of binders, FIG. 114 illustrates the structure of a base of FIG. SQL data associated with organization into workbooks, Figure 115 illustrates a workbook table, Figure 116 illustrates a table of user-specific items in a clas- Figure 117 shows a table of links,

<Desc/Clms Page number 13><Desc / Clms Page number 13>

la figure 118 illustre la création d'un élément Dérivé , la figure 119 illustre la suppression d'un sous-élément propre non Dérivé, les figures 120a à 120c illustrent la suppression d'un sous-élément propre Dérivé, la figure 121 illustre une table de liens lors de la restauration d'un sous-élément, la figure 122 illustre le comportement de sous-éléments implicites , la figure 123 illustre une table de liens correspondante, la figure 124 illustre l'acceptation de sous-éléments implicites, la figure 125 illustre une table de liens correspondante, la figure 126 illustre le refus d'un sous-classeur implicite, la figure 127 illustre la table de liens correspondante, la figure 127a illustre un exemple possible d'interface utilisateur, la figure 128 illustre une mesure de proximité entre deux Profils, la figure 129 illustre une autre mesure de proximité possible, la figure 130 illustre les contenus respectifs de deux pages de classeurs d'utilisateurs, organisées selon deux critères communs, la figure 131illustre des suggestions par Recommandation Collaborative,  FIG. 118 illustrates the creation of a Derived element, FIG. 119 illustrates the deletion of a non-Derived clean sub-element, FIGS. 120a to 120c illustrate the deletion of a derived sub-element. FIG. link table when restoring a sub-element, Figure 122 illustrates the behavior of implicit sub-elements, Figure 123 illustrates a corresponding link table, Figure 124 illustrates the acceptance of implicit sub-elements, the Figure 125 illustrates a corresponding link table, Figure 126 illustrates the rejection of an implicit sub-workbook, Figure 127 illustrates the corresponding link table, Figure 127a illustrates a possible example of a user interface, Figure 128 illustrates a proximity measurement between two profiles, FIG. 129 illustrates another possible proximity measurement, FIG. 130 illustrates the respective contents of two pages of user files organized According to two common criteria, Figure 131 illustrates suggestions by Collaborative Recommendation,

<Desc/Clms Page number 14><Desc / Clms Page number 14>

la figure 132 illustre les deux pages de classeurs d'utilisateurs après insertion d'un élément accepté, la figure 133 illustre ces deux mêmes pages de classeurs, avec des insertions d'éléments acceptés en des positions répondant à d'autres critères, la figure 134 illustre une architecture de serveurs permettant, avec le présente invention, de mettre en #uvre des fonctions d'anonymat et de commission sur opérations de commerce électronique. la figure 135 schématise le comportement séquentiel d'une pluralité d'objets, selon un quatrième aspect de la présente invention, la figure 136 illustre la notation normalisée UML , la figure 137 illustre un exemple simplifié de diagramme de classe, la figure 138 illustre le diagramme d'état-transition pour l'exemple précité, la figure 139 représente un objet simplifié comportant une méthode, la figure 140 illustre par un exemple simplifié une équivalence entre attribut d'une classe et lien entre deux classes, la figure 141 illustre l'équivalence entre une action sur transition et un état intermédiaire à transition sortante automatique, la figure 142 illustre l'ajout d'un pseudo-état à un diagramme d'état-transition standard,  FIG. 132 illustrates the two pages of user files after insertion of an accepted element, FIG. 133 illustrates these two same pages of binders, with insertions of elements accepted at positions corresponding to other criteria, FIG. 134 illustrates a server architecture allowing, with the present invention, to implement anonymity and commission functions on e-commerce transactions. FIG. 135 schematizes the sequential behavior of a plurality of objects, according to a fourth aspect of the present invention, FIG. 136 illustrates the standardized notation UML, FIG. 137 illustrates a simplified example of a class diagram, FIG. transition-state diagram for the above-mentioned example, FIG. 139 represents a simplified object comprising a method, FIG. 140 illustrates by a simplified example an equivalence between attribute of a class and link between two classes, FIG. equivalence between a transition action and an automatic outgoing transition intermediate state, Figure 142 illustrates the addition of a pseudo state to a standard transition state diagram,

<Desc/Clms Page number 15><Desc / Clms Page number 15>

la figure 143 illustre un exemple simplifié d'un objet possédant deux types d'actions, la figure 144 illustre un exemple enrichi de l'exemple simplifié de la figure 137, la figure 145 illustre le comportement d'un objet de la figure 144, la figure 146 illustre le principe de décomposition des états d'un objet, la figure 147 donne un exemple d'un objet auquel est appliqué le principe illustré sur la figure 146, la figure 148 illustre l'objet après transformation selon ce principe, la figure 149 illustre la structure d'un message émis par l'objet, la figure 150 illustre le comportement de base d'un séquenceur en réponse à un tel message, la figure 151 illustre la notion de cycle utilisée selon l'invention, la figure 152 illustre le comportement d'objets sous contrôle du séquenceur pour certains types de cycles, la figure 153 illustre par un diagramme d'état-transition le comportement du séquenceur avec le contrôle illustré sur la figure 152, la figure 154 reprend la figure 148 avec un enrichissement, la figure 155 illustre le même enrichissement dans le cas où un objet possède un certain type d'actions, la figure 156 illustre une succession de messages mémorisés par le séquenceur,  FIG. 143 illustrates a simplified example of an object having two types of actions, FIG. 144 illustrates an enriched example of the simplified example of FIG. 137, FIG. 145 illustrates the behavior of an object of FIG. FIG. 146 illustrates the principle of decomposition of the states of an object, FIG. 147 gives an example of an object to which the principle illustrated in FIG. 146 is applied, FIG. 148 illustrates the object after transformation according to this principle, FIG. FIG. 149 illustrates the structure of a message sent by the object, FIG. 150 illustrates the basic behavior of a sequencer in response to such a message, FIG. 151 illustrates the notion of cycle used according to the invention, FIG. 152 illustrates the behavior of objects under the control of the sequencer for certain types of cycles, FIG. 153 illustrates by a state-transition diagram the behavior of the sequencer with the control illustrated in FIG. 152, FIG. FIG. 155 illustrates the same enrichment in the case where an object has a certain type of action, FIG. 156 illustrates a succession of messages stored by the sequencer,

<Desc/Clms Page number 16><Desc / Clms Page number 16>

la figure 157 illustre le diagramme d'état-transition du séquenceur avec une fonction de gestion d'historique, la figure 158 illustre une exploitation additionnelle par le séquenceur des messages de la figure 156, la figure 159 illustre par un diagramme d'état-transition le comportement du séquenceur modifié en conséquence, la figure 160 illustre le diagramme d'état-transition complet du séquenceur, la figure 161 illustre les diagrammes d'état-transition initiaux de six objets dans un exemple de mise en #uvre de l'invention, la figure 162 indique les nouveaux diagrammes d'état-transition des objets selon l'aspect de l'invention illustré jusqu'ici, la figure 163 illustre le diagramme de séquence de certains événements et actions dans une certaine phase pour ce même exemple, la figure 164 illustre un extrait de la liste de messages correspondante, la figure 165 illustre le diagramme de séquence dans une autre phase, la figure 166 illustre un extrait correspondant de la liste de messages, la figure 167 illustre le diagramme de séquence dans une troisième phase, la figure 168 illustre un extrait correspondant de la liste de messages,  FIG. 157 illustrates the sequence-transition state diagram of the sequencer with a history management function, FIG. 158 illustrates an additional operation by the sequencer of the messages of FIG. 156, FIG. 159 illustrates by a state diagram of FIG. transition the behavior of the sequencer modified accordingly, Figure 160 illustrates the complete state-transition diagram of the sequencer, Figure 161 illustrates the initial state-transition diagrams of six objects in an example of implementation of the FIG. 162 shows the new state-transition diagrams of the objects according to the aspect of the invention illustrated so far, FIG. 163 illustrates the sequence diagram of certain events and actions in a certain phase for this same example. Fig. 164 illustrates an extract from the corresponding message list, Fig. 165 illustrates the sequence diagram in another phase, Fig. 166 illustrates a corresponding extract of the iste of messages, Fig. 167 illustrates the sequence diagram in a third phase, Fig. 168 illustrates a corresponding extract of the message list,

<Desc/Clms Page number 17><Desc / Clms Page number 17>

la figure 169 illustre le diagramme de séquence d'un autre type d'action géré par le séquenceur, la figure 170 illustre un exemple d'objets et de leurs liens, la figure 171 illustre une structure arborescente d'objets et de liens, la figure 172 illustre de façon plus détaillée une telle structure arborescente, la figure 173 illustre un chemin entre objets utilisé selon un cinqième aspect de l'invention, la figure 174 illustre une composition particulière de liens dans un chemin, la figure 175 illustre le principe de regroupement de certains objets d'une structure arborescente, la figure 176 illustre l'application d'un tel regroupement à des zones de visualisation associées à des objets, la figure 177 illustre des liens en relation avec la proximité entre zones de visualisation, la figure 178 illustre des regroupements d'objets selon le même principe, avec une granularité croissante, la figure 179 illustre deux possibilités de transformations de liens, la figure 180 illustre par un diagramme UML simplifié deux types d'objets, à savoir objet proprement-dit ou élément de collection,  Figure 169 illustrates the sequence diagram of another type of action managed by the sequencer, Figure 170 illustrates an example of objects and their links, Figure 171 illustrates a tree structure of objects and links, the Figure 172 illustrates in more detail such a tree structure, Figure 173 illustrates an object-to-object path used in a fifth aspect of the invention, Figure 174 illustrates a particular composition of links in a path, Figure 175 illustrates the principle of grouping of certain objects of a tree structure, FIG. 176 illustrates the application of such a grouping to visualization zones associated with objects, FIG. 177 illustrates links in relation to the proximity between viewing zones, FIG. 178 illustrates groupings of objects according to the same principle, with increasing granularity, Figure 179 illustrates two possibilities of link transformations, Figure 180 ill. using a simplified UML diagram, two types of objects, namely the object itself or the collection element,

<Desc/Clms Page number 18><Desc / Clms Page number 18>

les figures 181 et 182 illustrent une première phase d'un procédé de connexion entre objets, la figure 183 illustre sous une autre forme un regroupement d'objets, la figure 184 illustre un certain nombre d'actions dans une structure arborescente d'objets en liaison avec des objets d'affichage regroupés sur un objet constituant une zone de visualisation, la figure 185 illustre le diagramme de séquence correspondant, les figures 186 à 189 illustrent une application du cinquième aspect de l'invention à des liens de composition changeants, la figure 190 illustre une liste de messages de séquenceur conforme au cinquième aspect de l'invention dans le contexte des figures 186 à 189, la figure 191 illustre une transition d'objet dans le cadre d'un perfectionnement du cinquième aspect de l'invention, la figure 192 illustre le principe d'une connexion anticipative entre objets, la figure 193 illustre une telle connexion anticipative sous la forme d'un diagramme UML, la figure 194 illustre le diagramme de séquence correspondant, les figures 195 et 196 illustrent deux modes de connexion anticipative d'objets, en fonction du type d'objet,  FIGS. 181 and 182 illustrate a first phase of a connection method between objects, FIG. 183 illustrates in another form a grouping of objects, FIG. 184 illustrates a certain number of actions in a tree structure of objects in connection with display objects grouped on an object constituting a viewing area, FIG. 185 illustrates the corresponding sequence diagram, FIGS. 186 to 189 illustrate an application of the fifth aspect of the invention to changing composition links, the FIG. 190 illustrates a list of sequencer messages according to the fifth aspect of the invention in the context of FIGS. 186 to 189; FIG. 191 illustrates an object transition as part of an improvement of the fifth aspect of the invention; FIG. 192 illustrates the principle of an anticipatory connection between objects, FIG. 193 illustrates such an anticipatory connection in the form of a UML diagram, FIG. the corresponding sequence diagram, Figures 195 and 196 illustrate two modes of anticipatory connection of objects, depending on the type of object,

<Desc/Clms Page number 19><Desc / Clms Page number 19>

la figure 197 illustre l'architecture de base d'un serveur de données partagées et de postes clients, la figure 198 illustre la manipulation d'objets partagés par deux utilisateurs de postes clients, la figure 199 illustre un principe de réplication mixte selon un sixième aspect de l'invention, la figure 200 illustre le même principe, appliqué au cas où les objets partagés sont gérés par deux serveurs, la figure 201 illustre les diagrammes d'état-transition pour un exemple de quatre objets, dont trois sont de types différents, la figure 202 illustre le comportement de ces quatre objets lors d'une transition causée par l'utilisateur sur l'un des objets, la figure 203 illustre le comportement associé au niveau de deux listes de messages, respectivement du côté d'un poste client et du côté d'un serveur, la figure 204 illustre une codification d'objets utilisée sur la figure 205, la figure 205 illustre la propagation d'une transition à partir d'un poste client vers un serveur et vers d'autres postes clients, la figure 206 illustre le même principe de propagation dans le cas où il existe deux serveurs, la figure 207 est un schéma de l'architecture des moyens de communication entre les postes clients et le serveur,  Figure 197 illustrates the basic architecture of a shared data server and client computers, Figure 198 illustrates the manipulation of shared objects by two endpoint users, Figure 199 illustrates a mixed replication principle in a sixth aspect of the invention, Figure 200 illustrates the same principle, applied in the case where the shared objects are managed by two servers, Figure 201 illustrates the state-transition diagrams for an example of four objects, three of which are types 202 illustrates the behavior of these four objects during a transition caused by the user on one of the objects, Figure 203 illustrates the behavior associated with the level of two message lists, respectively on the side of a user. client node and on the server side, Figure 204 illustrates an object coding used in Figure 205, Figure 205 illustrates the propagation of a transition from a client node to a server and to other client stations, Figure 206 illustrates the same principle of propagation in the case where there are two servers, Figure 207 is a diagram of the architecture of the means of communication between the client stations and the server,

<Desc/Clms Page number 20><Desc / Clms Page number 20>

la figure 208 est un diagramme de séquence d'une procédure de connexion entre poste client et serveur, la figure 209 est un schéma analogue à celui de la figure 207, illustrant les flux d'informations lors d'un appel de méthode, les figures 210 et 211sont des diagrammes de séquence correspondants, la figure 212 est un diagramme de séquence illustrant la fin d'une connexion, les figures 213 et 214 sont des diagrammes de séquence illustrant l'attribution de verrous à des objets, les figures 215 et 216 sont des diagrammes d'état-transition illustrant les comportements de verrous sur un objet, les figures 217 et 218 sont des diagrammes de séquence illustrant une demande de verrou de lecture et d'écriture d'un poste client à un serveur, la figure 219 est une autre forme de diagramme de séquence illustrant un temps de latence dans le processus d'attribution du verrou, la figure 220 est un diagramme de séquence illustrant une demande de verrou de lecture d'un poste client à un serveur, la figure 221 est une autre forme de diagramme de séquence illustrant un temps de latence dans le processus d'attribution du verrou, les figures 222 à 224 illustrent une situation de blocage mutuel lors de l'attente de verrous entre objets,  FIG. 208 is a sequence diagram of a connection procedure between client and server station, FIG. 209 is a diagram similar to that of FIG. 207, illustrating the information flows during a method call, the FIGS. 210 and 211are corresponding sequence diagrams, FIG. 212 is a sequence diagram illustrating the end of a connection, FIGS. 213 and 214 are sequence diagrams illustrating the allocation of locks to objects, FIGS. 215 and 216. are state-transition diagrams illustrating the lock behaviors on an object, Figures 217 and 218 are sequence diagrams illustrating a read and write lock request from a client node to a server, Figure 219 is another form of sequence diagram illustrating a latency in the lock allocation process, Figure 220 is a sequence diagram illustrating a read lock request from a client station to a 221 is another form of sequence diagram illustrating a latency in the lock allocation process, Figs. 222 to 224 illustrate a mutual blocking situation when waiting for locks between objects,

<Desc/Clms Page number 21><Desc / Clms Page number 21>

la figure 225 illustre un exemple de demandes et attributions de verrous sur les axes des temps logiques de deux postes clients en association avec un tel blocage mutuel, la figure 226 illustre deux situations correspondant respectivement à un blocage mutuel et à l'absence d'un tel blocage, la figure 227 illustre le recours à un compteur pour délier des situations de blocage mutuel, la figure 228 illustre des propagations de transitions entre cinq objets, afin d'illustrer une fonction de retour en arrière, la figure 229 illustre l'état de listes de messages correspondants côté serveur et côté client, la figure 230 illustre d'autres propagations de transitions dans le même exemple, la figure 231illustre l'état correspondant de la liste de messages côté serveur, la figure 232 illustre d'autres propagations de transitions encore dans le même exemple, la figure 233 illustre l'état correspondant de la liste de messages côté client, la figure 234 est un diagramme d'états et de messages illustrant une situation de conflit entre serveur et client, les figures 235 à 238 illustrent au niveau de la liste des messages côté serveur les étapes de résolution du conflit.  FIG. 225 illustrates an example of requests and assignments of locks on the logical time axes of two client stations in association with such a mutual blocking, FIG. 226 illustrates two situations corresponding respectively to a mutual blocking and the absence of a Figure 227 illustrates the use of a counter to untie mutual blocking situations, Figure 228 illustrates transitions propagations between five objects, to illustrate a back-and-forth function, Figure 229 illustrates the state of server-side and client-side message lists, Figure 230 illustrates further transitions propagations in the same example, Figure 231 illustrates the corresponding state of the server-side message list, Figure 232 illustrates further propagation of transitions still in the same example, Figure 233 illustrates the corresponding state of the client-side message list, Figure 234 is a state diagram t of messages illustrating a situation of conflict between server and client, figures 235 to 238 illustrate at the level of the server-side message list the conflict resolution steps.

<Desc/Clms Page number 22> <Desc / Clms Page number 22>

Introduction de la description On va présenter dans la suite dans six chapitres, différents systèmes et procédés - liés entre eux - visant d'une façon générale des perfectionnements à des outils informatiques liés à l'Internet et plus généralement à l'informatique partagée via réseau. Introduction of the description We will present in the following in six chapters, different systems and processes - related - aimed generally at improvements to computer tools related to the Internet and more generally to shared computing via network .

Le chapitre 1 vise en particulier des perfectionnements à la gestion de l'affichage sur écran d'éléments graphiques tels que des pages de la Toile, des parties de pages ou encore des fenêtres d'un système d'exploitation, dans différentes circonstances telles que le chargement de pages ou des opérations de glisser-déposer. Chapter 1 aims in particular improvements to the management of the on-screen display of graphic elements such as pages of the Web, parts of pages or even windows of an operating system, under different circumstances such as loading pages or drag and drop operations.

Le chapitre II vise, en utilisant notamment la gestion d'affichage du chapitre I, à permettre à un utilisateur de créer des liens personnels entre des pages de la Toile, et vise également différentes techniques pour mettre à profit ces liens créés. Chapter II aims, in particular by using the display management of Chapter I, to allow a user to create personal links between pages of the Web, and also aims at different techniques to take advantage of these links created.

Le chapitre III vise, en utilisant notamment les techniques de liens créés du chapitre II, différentes techniques d'enrichissement mutuel des connaissances notamment via l'Internet. Il reprend à cet égard des notions exposées dans le chapitre II. Chapter III aims, using in particular the linkage techniques created in Chapter II, different techniques of mutual enrichment of knowledge especially via the Internet. In this respect he reiterates the concepts set out in Chapter II.

Le chapitre IV concerne quant à lui les applications orientées objet et des moyens destinés à rendre déterministe le comportement de telles applications lorsqu'elles sont partagées notamment via l'Internet. Chapter IV relates to object-oriented applications and means to make deterministic the behavior of such applications when they are shared especially via the Internet.

Le chapitre V vise, dans la lignée des applications partagées du chapitre IV, à proposer des techniques d'exécution telles applications qui s'affranchissent au moins en partie des problèmes de bande passante faible ou limitée. Chapter V aims, in line with the shared applications of Chapter IV, to propose execution techniques such as applications that are at least partly free of low or limited bandwidth problems.

Le chapitre VI concerne enfin, toujours dans le cadre d'applications orientées objet partagées et en liaison particulière avec les chapitres IV et V, des techniques Finally, Chapter VI is concerned, again in the context of shared object-oriented applications and in particular with Chapters IV and V,

<Desc/Clms Page number 23><Desc / Clms Page number 23>

permettant de faciliter la bonne exécution partagée d'applications possédant différents types d'objets.  to facilitate the successful execution of shared applications with different types of objects.

<Desc/Clms Page number 24> <Desc / Clms Page number 24>

Chapitre I - Gestion de zones d'affichage superposées (Figures 1-27) En référence tout d'abord à la figure 1, on a représenté schématiquement une page interactive P, telle qu'une page en langage HTML, qui doit être chargée sur un réseau lent et/ou irrégulier tel que l'Internet, et qui est volumineuse (quelques dizaines de Kilo-octets, voire plus de cent Kilo-octet, ou même plus). Chapter I - Management of superimposed display areas (FIGS. 1-27) With reference first of all to FIG. 1, there is shown schematically an interactive page P, such as a page in HTML language, which must be loaded on a slow and / or irregular network such as the Internet, which is bulky (a few tens of kilobytes or even more than one hundred kilobytes, or even more).

Cette page est décomposée en deux zones d'affichage Zl et Z2 couvrant ensemble, typiquement, une fenêtre d'un logiciel de navigation sur Internet. Dans l'exemple de la figure 1, un élément de page E2 est chargé dans la zone Zl, tandis qu'un élément de page E5 est chargé dans la zone Z2. This page is broken down into two display areas Z1 and Z2 covering, typically, a window of a browser software on the Internet. In the example of Figure 1, a page element E2 is loaded in the zone Z1, while a page element E5 is loaded in the zone Z2.

L'une de ces zones (la zone Zl en l'occurrence) est définie comme pouvant tolérer le recouvrement de l'affichage de la page P par l'affichage d'éléments externes. One of these zones (the zone Z1 in this case) is defined as being able to tolerate the recovery of the display of the page P by the display of external elements.

Autrement dit, la décomposition en zones permet de distinguer une zone (Zl) dans laquelle l'affichage de l'élément courant (l'élément E2) peut être recouvert (entièrement ou partiellement) par l'affichage d'un (ou plusieurs) éléments qui n'appartiennent pas à la page interactive P. In other words, the zone decomposition makes it possible to distinguish a zone (Z1) in which the display of the current element (the element E2) can be covered (entirely or partially) by the display of one (or more) elements that do not belong to the interactive page P.

Bien entendu, les zones en question pourraient être de n'importe quelle forme, et constituées de parties (sous-zones) contiguës ou non. Of course, the areas in question could be of any shape, and consist of parts (sub-areas) contiguous or not.

Selon la présente invention, on vise à faire patienter l'utilisateur pendant le chargement de la page interactive, l'idée de base consistant à lui présenter au préalable un élément supplémentaire (élément Eldans les schémas qui suivront) dont la caractéristique essentielle est d'être légère en termes de volume de données à transmettre, en étant par exemple constituée d'un simple texte introductif, c'est-àdire très rapidement chargeable. According to the present invention, it is intended to make the user wait during the loading of the interactive page, the basic idea of presenting him beforehand with an additional element (element E in the diagrams that will follow) whose essential characteristic is to be light in terms of the volume of data to be transmitted, for example by being a simple introductory text, that is to say, very quickly loadable.

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

La figure 2 illustre l'élément El affiché dans la zone Z1après avoir été chargé. Figure 2 illustrates the element El displayed in zone Z1 after being loaded.

L'affichage de cet élément El est effectuée dans la zone Zlafin de pouvoir recouvrir par la suite l'affichage de certains éléments de la page interactive (et plus précisément l'élément E2) quand ceux-ci seront chargés. The display of this element El is performed in the zone Zlafin can subsequently cover the display of certain elements of the interactive page (and more specifically the element E2) when they will be loaded.

On va maintenant décrire un certain nombre de détails de mise en #uvre concrète de l'invention. We will now describe a number of details of concrete implementation of the invention.

Section 1- Stabilité de l'affichage de l'élément El La durée de chargement cumulée des éléments E2 et E5 destinés à constituer la page P n'étant pas exactement prévisible, et par ailleurs la durée nécessaire à l'examen complet par l'utilisateur du contenu de l'élément El - c'est-à-dire la durée de lecture du texte qu'il contient - étant dépendante des capacités et de l'attention de l'utilisateur, il est avantageux que l'élément El reste affiché jusqu'à que l'utilisateur l'ôte de sa propre initiative. Il est en effet désagréable pour l'utilisateur de se voir tout à coup privé d'un texte il est en train de lire. Section 1- Stability of the display of the element El The cumulative loading time of the elements E2 and E5 intended to constitute the page P not being exactly predictable, and moreover the duration necessary for the complete examination by the user of the content of the element El - that is to say the duration of reading the text it contains - being dependent on the capabilities and attention of the user, it is advantageous that the element El remains displayed until the user removes it on his own initiative. It is indeed unpleasant for the user to be suddenly deprived of a text he is reading.

L'approche adoptée, qui va maintenant être décrite plus en détail en référence à la figure 3, est la suivante : dès la fin du chargement des éléments E2 et E5 initialement nécessaires à l'exécution de la page interactive P, tout ou partie de la zone Z1 dans laquelle doit être affiché l'élément El sert de zone sensible , de manière à ce que, quand le pointeur d'une souris (ou tout autre périphérique d'entrée de la machine constituant un dispositif de pointage) entre dans cette zone Zl (et sans qu'un clic de souris ne soit nécessaire), l'affichage de l'élément El est automatiquement remplacé par celui de l'élément E2. The approach adopted, which will now be described in more detail with reference to FIG. 3, is as follows: as soon as the loading of the elements E2 and E5 initially necessary for the execution of the interactive page P, all or part of the zone Z1 in which the element El is to be displayed serves as a sensitive zone, so that when the pointer of a mouse (or any other input device of the machine constituting a pointing device) enters this zone, zone Zl (and without a mouse click is necessary), the display of the element El is automatically replaced by that of the element E2.

On observera ici que l'on peut équiper la machine de moyens (bouton, fenêtre de dialogue ou autre) permettant alors à l'utilisateur de déclarer le cas échéant que par la It will be observed here that one can equip the machine means (button, dialogue window or other) then allowing the user to declare if necessary that by the

<Desc/Clms Page number 26><Desc / Clms Page number 26>

suite, il ne souhaite plus voir l'élément El affiché. Ce moyen peut par exemple être un sous-élément d'interactivité dans E2 ou El.  then he does not want to see the El element displayed anymore. This means may for example be a sub-element of interactivity in E2 or El.

<Desc/Clms Page number 27> <Desc / Clms Page number 27>

Section 2- Ré-affichage de l'élément El Sauf indication contraire explicitement donnée par l'utilisateur comme indiqué cidessus, on prévoit alors que l'utilisateur puisse retrouver ultérieurement l'élément El de sa propre initiative et le plus facilement possible, par exemple dans le cas où il l'aurait ôté par erreur. Section 2- Re-Display of the El Element Unless explicitly stated otherwise by the user as indicated above, it is then expected that the user can retrieve the El element later on his own initiative and as easily as possible, for example in the event that he has removed it by mistake.

Or, après le remplacement de l'élément El par l'élément E2, puisque l'élément E2 doit offrir à l'utilisateur toutes ses propres possibilités d'interactivité (liens hypertexte, etc. ) dans la zone d'affichage Zl, il est avantageux que cette zone Zl ne serve pas à déclencher l'opération inverse, c'est-à-dire le remplacement de l'élément E2 par l'élément El. However, after the element E2 has been replaced by the element E2, since the element E2 must offer the user all his own possibilities of interactivity (hypertext links, etc.) in the display area Z1, he is advantageous that this zone Zl is not used to trigger the opposite operation, that is to say the replacement of the element E2 by the element El.

Pour satisfaire à cette contrainte, et comme illustré sur la figure 4, au moment où l'élément E2 est affiché, on prévoit que tout ou partie de la zone d'affichage Z2 dans laquelle est affiché l'élément E5 devienne à son tour zone sensible ; l'élément El pourra ainsi être ré-affiché dès la détection de l'entrée du pointeur dans cette zone. To satisfy this constraint, and as illustrated in FIG. 4, at the moment when the element E2 is displayed, it is expected that all or part of the display zone Z2 in which element E5 is displayed will in turn become zone sensitive; the element El can thus be re-displayed as soon as the pointer input is detected in this zone.

Toutefois, dès que l'élément El a été de nouveau affiché, il faut que l'élément E5 offre toutes ses propres possibilités d'interactivité. C'est alors, comme précédemment, tout ou partie de la zone Zl (contenant alors l'élément El) qui redevient zone sensible. Ceci est illustré sur la figure 5. However, as soon as the element El has been displayed again, element E5 must have all its own possibilities for interactivity. It is then, as before, all or part of the zone Zl (then containing the element El) which becomes sensitive area again. This is illustrated in Figure 5.

Les comportements des figures 4 et 5 peuvent, dans la présente forme de réalisation, être enchaînés à l'infini, aussi longtemps que l'utilisateur n'a pas appelé d'autres pages. The behaviors of Figures 4 and 5 may, in the present embodiment, be chained to infinity, as long as the user has not called other pages.

Bien évidemment, tant E2 que El peuvent aussi posséder des sous-éléments d'interaction, constituant d'autres zones sensibles, pour respectivement amener et enlever l'élément El. Of course, both E2 and E1 may also have interaction sub-elements, constituting other sensitive areas, to respectively bring and remove the element El.

<Desc/Clms Page number 28><Desc / Clms Page number 28>

On va maintenant décrire en détail différents déroulements du procédé selon l'invention.  We will now describe in detail different sequences of the process according to the invention.

Cas 1 :Le pointeur de la souris se trouve initialement dans la zone Z2 Il s'agit du cas où, au moment où les éléments nécessaires à l'exécution initiale de la page interactive P sont finis d'être chargés, le pointeur de la souris se trouve dans la zone d'affichage qui ne contient pas l'élément El. Case 1: The mouse pointer is initially in zone Z2 This is the case where, at the moment when the elements necessary for the initial execution of the interactive page P are finished to be loaded, the pointer of the mouse is in the display area that does not contain the El element.

Le déroulement du procédé est alors le suivant : - l'élément El est chargé et affiché en premier, et reste affiché tant que les éléments nécessaires à l'exécution initiale de la page interactive P (à savoir les éléments E2 et E5) ne sont pas encore chargés ; - l'élément Elreste affiché, même après chargement des éléments E2 et E5, tant que le pointeur actionné par la souris n'effectue pas une entrée dans la zone d'affichage Z1 contenant l'élément El ; - c'est seulement lors d'une telle entrée qu'il est remplacé par les éléments E2 et E5 ; - au cas où le pointeur est ensuite amené dans la zone d'affichage Z2 qui ne contient pas l'élément E2, l'élément El est affiché à nouveau (E2 peut rester affiché ou pas). The flow of the process is then as follows: the element El is loaded and displayed first, and remains displayed as long as the elements necessary for the initial execution of the interactive page P (namely the elements E2 and E5) are not not yet loaded; the element Elreste displayed, even after loading the elements E2 and E5, as long as the pointer actuated by the mouse does not make an entry in the display zone Z1 containing the element El; - it is only during such an entry that it is replaced by the elements E2 and E5; - In case the pointer is then brought into the display area Z2 which does not contain the element E2, the element El is displayed again (E2 can remain displayed or not).

Cette séquence est présentée dans le diagramme de la figure 6. This sequence is shown in the diagram of Figure 6.

Cas 2 : Le pointeur de la souris se trouve initialement dans la zone Zl Il s'agit du cas où, au moment où les éléments E2 et E5 nécessaires à l'exécution initiale de la page interactive P ont été chargés, le pointeur de la souris se trouve dans la zone d'affichage Z1 qui contient l'élément El. Case 2: The mouse pointer is initially located in the zone Z1 This is the case where, at the moment when the elements E2 and E5 necessary for the initial execution of the interactive page P have been loaded, the pointer of the mouse is in the Z1 display area that contains the El element.

<Desc/Clms Page number 29><Desc / Clms Page number 29>

Dans ce cas l'élément El reste affiché aussi longtemps que le pointeur n'est pas sorti de la zone Z1, puis à nouveau entré dans celle-ci ; c'est seulement dans ce dernier cas que l'élément El est remplacé par les éléments E2 et E5 sur l'écran d'affichage.  In this case the element El remains displayed as long as the pointer has not left the zone Z1, and then entered again therein; it is only in the latter case that the element El is replaced by the elements E2 and E5 on the display screen.

Cette séquence est présentée dans le diagramme de la figure 7. This sequence is shown in the diagram of Figure 7.

Approche dite de streaming Bien entendu, dans tous les cas, les éléments E2 et E5 de la page interactive P pourront être transmis dans une approche dite de streaming , approche classique dans laquelle des éléments d'une page sont affichés et exécutés avant que la page soit entièrement chargée. Il n'est en effet pas nécessaire d'attendre que la totalité de ces éléments de la page soient chargés pour activer la ou les zones sensibles . The so-called streaming approach Of course, in all cases, the elements E2 and E5 of the interactive page P can be transmitted in a so-called streaming approach, a conventional approach in which elements of a page are displayed and executed before the page be fully charged. It is indeed not necessary to wait for all of these elements of the page to be loaded to activate the sensitive area or zones.

On va présenter ci-après une approche de streaming pour l'élément El, qui dans le présent exemple est constitué par deux sous-éléments E 1.1 et E 1.2. We will present hereinafter a streaming approach for the element El, which in the present example consists of two sub-elements E 1.1 and E 1.2.

Plutôt que d'attendre la fin du chargement complet de l'élément El, les parties distinctes E1.1et E 1.2 de l'élément El(qui peuvent être par exemple principalement du texte) peuvent être chargées et affichées successivement, dans l'ordre de lecture. Rather than wait for the end of the complete loading of the element El, the distinct parts E1.1 and E 1.2 of the element El (which may be for example mainly text) can be loaded and displayed successively, in the order reading.

Le principe d'affichage des éléments en fonction des déplacements du pointeur de la souris peut rester identique, comme le présente le schéma de la figure 8. The principle of displaying the elements according to the movements of the mouse pointer can remain identical, as shown in the diagram of FIG. 8.

En variante, le comportement des différentes parties de l'élément El peuvent être dissociées, selon les règles énoncées ci-dessous et décrites en référence aux figures 9 à 12, sur lesquelles chaque fenêtre a pour but de montrer d'une part les nouveaux éléments affichés en réaction à l'action de déplacement du pointeur de la souris présentée dans la fenêtre immédiatement précédente, le cas échéant, d'autre part une Alternatively, the behavior of the different parts of the element El can be dissociated, according to the rules set out below and described with reference to FIGS. 9 to 12, on which each window aims to show on the one hand the new elements displayed in response to the movement action of the mouse pointer presented in the immediately preceding window, if any, on the other hand a

<Desc/Clms Page number 30><Desc / Clms Page number 30>

nouvelle action de déplacement de la souris dont l'effet est montré dans la fenêtre suivante, le cas échéant.  new move action of the mouse whose effect is shown in the next window, if any.

Règle 1 Il s'agit ici d'un simple rappel du principe déjà énoncé dans le paragraphe Cas 2 : Le pointeur de la souris se trouve initialement dans Z1 : Dans le cas où, au moment de la fin du chargement des éléments E2 et E5 de la page interactive P, le pointeur de la souris se trouve dans la zone Zl, les déplacements du pointeur n'ont pas d'effet tant que le pointeur n'est pas amené en dehors de la zone Zl (c'est-à-dire introduit dans la zone Z2) puis retourné ensuite dans la zone Zl. Rule 1 This is a simple reminder of the principle already stated in the paragraph Case 2: The mouse pointer is initially in Z1: In the case where, at the moment of the end of the loading of the elements E2 and E5 of the interactive page P, the mouse pointer is in the zone Zl, the movements of the pointer have no effect as long as the pointer is not brought outside the zone Zl (that is to say say introduced into the zone Z2) and then returned to the zone Z1.

Ceci est illustré sur la figure 9. This is illustrated in Figure 9.

Règle 2 Le déplacement du pointeur de la souris, de la zone Z2 à la zone Zl, déclenche le remplacement de l'affichage du seul sous-élément touché par le sous-élément correspondant de la page interactive. Dans l'exemple illustré sur la figure 10, l'entrée du pointeur dans la région affectée au sous-élément E 1.1 de l'élément Elprovoquera son remplacement par un sous-élément E2.1de l'élément E2, tandis que l'autre sous- élément E 1.2 de l'élément Elrestera intact. Rule 2 Moving the mouse pointer from Z2 to Zl causes the display of the only sub-element touched by the corresponding sub-element of the interactive page to be replaced. In the example illustrated in FIG. 10, the entry of the pointer in the region assigned to the sub-element E 1.1 of the element Elprovocate its replacement by a sub-element E2.1 of the element E2, while the other sub-element E 1.2 of the intact Elrestera element.

Règle 3 Cette règle aborde la réversibilité du comportement défini par la règle 2 : si le pointeur revient ensuite dans la zone Z2, même en étant passé par d'autres régions entre-temps, mais à condition d'avoir automatiquement défait les remplacements causés entre-temps, l'affichage de l'élément E2. 1 est remplacé par celui de l'élément E 1.1. Ceci est illustré sur la figure 10.  Rule 3 This rule addresses the reversibility of the behavior defined by rule 2: if the pointer then returns to the Z2 zone, even if it has passed through other regions in the meantime, but provided that the replacements caused between -time, the display of element E2. 1 is replaced by that of element E 1.1. This is illustrated in Figure 10.

<Desc/Clms Page number 31><Desc / Clms Page number 31>

Les schémas des figures 11 et 12 présentent d'autres exemples de mise en #uvre de la réversibilité, tels que décrits ci-dessous : Règle 4 Le déplacement du pointeur de la souris de la région occupée par le sous-élément E2. 1 à la région occupée par le sous-élément E 1.2 déclenche le remplacement de l'affichage du sous-élément E1.2 par celui du sous-élément correspondant E2. 2 de la page interactive.  The diagrams in FIGS. 11 and 12 show other examples of reversibility implementation, as described below: Rule 4 The movement of the mouse pointer of the region occupied by the sub-element E2. 1 to the region occupied by the sub-element E 1.2 triggers the replacement of the display of the sub-element E1.2 by that of the corresponding sub-element E2. 2 of the interactive page.

Règle 5 Cette règle décrit une forme de réversibilité de la règle 4 : si le pointeur retourne de la région du sous-élément E2. 2 à à la région du sous-élément E2.1, même en étant passé par d'autres régions entre-temps mais à condition d'avoir automatiquement défait les remplacements causés entre-temps, l'affichage du sous-élément E2. 2 est remplacé par celui du sous-élément E 1.2. Ceci est illustré sur la figure 11. Rule 5 This rule describes a reversibility form for rule 4: if the pointer returns from the region of the E2 sub-element. 2 to the region of sub-element E2.1, even having passed through other regions in the meantime but provided that the replacements caused in the meantime were automatically undone, the display of sub-element E2. 2 is replaced by that of sub-element E 1.2. This is illustrated in Figure 11.

<Desc/Clms Page number 32> <Desc / Clms Page number 32>

Le schéma de la figure 12 présente une variante de mise en #uvre de la règle 5. The diagram in Figure 12 shows an alternative implementation of Rule 5.

Supposons qu'après le parcours suivant du pointeur de la souris : Z2 # El. (qui devient E2.1) #E 1.2 (qui devient E2.2) le pointeur de la souris soit amené de la région occupée par le sous-élément E2.2 jusque dans la zone Z2. Ceci, du fait qu'il ne s'agit pas un retour au sens de la Règle 3, n'engendre pas le remplacement du sous-élément E2. 2 par le sous-élément El .2. Suppose that after the next mouse pointer: Z2 # El. (Which becomes E2.1) #E 1.2 (which becomes E2.2) the mouse pointer is brought from the region occupied by the sub-element E2.2 to zone Z2. This, because it is not a return within the meaning of Rule 3, does not result in the replacement of sub-element E2. 2 by the sub-element El .2.

Règle 6 Cette règle consiste à rendre l'opération ci-dessus réversible : si le pointeur retourne de la zone Z2 à la région occupée par le sous-élément E2. 2, même en étant passé par d'autres zones entre-temps mais à condition d'avoir automatiquement défait les remplacements causés entre-temps et si le retour s'effectue avant un seuil temporel donné, l'opération est considérée comme étant défaite. Ceci est illustré sur la figure 12. Cette forme de réalisation permet avantageusement de ne plus appeler les sous-éléments constituant l'élément initial Ellorsqu'une période de temps prédéterminée s'est écoulée pendant laquelle l'utilisateur est resté sur les sous- éléments de l'élément E2, ce qui est révélateur par exemple d'un début de travail de l'utilisateur sur l'élément E2. Rule 6 This rule consists of making the above operation reversible: if the pointer returns from zone Z2 to the region occupied by sub-element E2. 2, even if it has passed through other zones in the meantime but provided that it has automatically defeated the replacements caused in the meantime and if the return is made before a given time threshold, the operation is considered to be defeated. This is advantageously illustrated in FIG. 12. This embodiment advantageously makes it possible to no longer call the sub-elements constituting the initial element Ells that a predetermined period of time has elapsed during which the user has remained on the sub-elements. element E2, which is indicative for example of a beginning of work of the user on the element E2.

Section 3 - Exemples d'applications du présent chapitre Dans le cadre d'applications Internet ou autres, le procédé selon l'invention peut être complété par exemple par des éléments présentés dans le diagramme de la figure 13. Section 3 - Examples of applications of this chapter In the context of Internet or other applications, the method according to the invention can be completed for example by elements presented in the diagram of Figure 13.

Les informations portés par les éléments qui y sont représentés sont par exemple les suivantes : The information carried by the elements represented there are for example the following:

<Desc/Clms Page number 33><Desc / Clms Page number 33>

Elément El : texte (et le cas échéant image et/ou son, etc) introductif ou d'accueil, l'essentiel étant que sont chargement soit relativement rapide comparativement aux éléments E2 et E5 (constituant par exemple la page principale du site) ; Elément E3, occupant initialement la zone Z2 : par exemple un message du type Prière de patienter ; la page interactive est en train d'être chargée ; Elément E4, remplaçant l'élément E3 dans la zone Z2 : exemple un message du type Le chargement minimal de la page interactive est terminé ; Elément E2 : la partie de la page principale occupant la zone Z1 ; Elément E5 : la partie de la page principale occupant la zone Z2.  El element: text (and where appropriate image and / or sound, etc.) introductory or host, the main thing being that loading is relatively fast compared to elements E2 and E5 (constituting for example the main page of the site); Element E3, initially occupying zone Z2: for example a message of the type Please wait; the interactive page is being loaded; Element E4, replacing the element E3 in the zone Z2: example a message of the type The minimum loading of the interactive page is finished; Element E2: the part of the main page occupying zone Z1; Element E5: the part of the main page occupying zone Z2.

L'homme du métier saura aisément mettre en #uvre l'invention dans une machine par exemple du type ordinateur personnel (au standard PC , MacOS (marque déposée), etc. ), comportant un processeur, des mémoires, et entrées/sorties, un écran d'affichage et une liaison avec un serveur délocalisé, ceci par exemple par programmation de routines appropriées en liaison avec le protocole de chargement des éléments depuis le serveur, sachant notamment que - la définition de zones sensibles pour un pointeur de souris ou analogue - la détection de la présence du pointeur dans ces zones, - la détection de fin de chargement de différentes pages HTML ou de leurs éléments individuels (textes, images, sons, etc.) constituent des outils classiques à disposition des développeurs. Those skilled in the art will easily implement the invention in a machine for example of the personal computer type (PC standard, MacOS (registered trademark), etc.), comprising a processor, memories, and inputs / outputs, a display screen and a link with a relocated server, for example by programming appropriate routines in connection with the loading protocol of the elements from the server, knowing in particular that the definition of sensitive areas for a mouse pointer or the like - The detection of the presence of the pointer in these areas, - The end of loading detection of different HTML pages or their individual elements (text, images, sounds, etc.) are classic tools available to developers.

On peut par ailleurs apporter de nombreuses variantes à la présente invention. Many variations can also be made to the present invention.

En premier lieu, on peut prévoir que la région dans laquelle va s'afficher l'élément initial Elne soit pas superposée exactement à la région dans laquelle va s'afficher l'élément E2 de la page principale. En particulier, la région occupée par l'élément El First, it can be expected that the region in which the initial element Elne will be displayed is not exactly superimposed on the region in which the element E2 of the main page will be displayed. In particular, the region occupied by the element El

<Desc/Clms Page number 34><Desc / Clms Page number 34>

peut être plus petite que la région (zone Zl) dans laquelle s'affichera, dans les conditions définies plus haut, l'élément E2. Dans ce cas, la partie de la zone Zl non recouverte par la région occupée par l'élément El peut par exemple rester vierge aussi longtemps que l'élément E2 n'est pas affiché. Dans cette hypothèse, c'est avantageusement l'entrée du pointeur de la souris dans la seule région occupée par l'élément El qui provoquera le remplacement de l'élément El par l'élément E2. La région occupée par l'élément Elpeut aussi être plus grande que la région (zone Zl) dans laquelle s'affichera l'élément E2.  may be smaller than the region (zone Zl) in which will be displayed, under the conditions defined above, the element E2. In this case, the part of the zone Z1 not covered by the region occupied by the element El may for example remain blank as long as the element E2 is not displayed. In this case, it is advantageously the input of the mouse pointer in the only region occupied by the element El that will cause the replacement of the element El by the element E2. The region occupied by the element El may also be larger than the region (zone Z1) in which element E2 will be displayed.

Selon une autre variante, on peut prévoir que le rappel de l'affichage de l'élément El en lieu et place de l'élément E2 s'effectue non pas en amenant le pointeur de la souris dans la zone Z2, mais par toute autre action et notamment : - en amenant le pointeur de la souris (avec le cas échéant la nécessité d'un clic) dans un bouton, onglet, etc. affiché au voisinage de l'élément E2 lorsque ce dernier est affiché (ou encore appartenant à l'élément E2) ; - par appui sur une touche spécifique du clavier de la machine, - etc. According to another variant, it is possible for the display of the element El to be replaced in place of the element E2 by not bringing the mouse pointer into the zone Z2, but by any other means. action and in particular: - by bringing the pointer of the mouse (with if necessary the necessity of a click) into a button, tab, etc. displayed in the vicinity of the element E2 when the latter is displayed (or belonging to the element E2); - by pressing a specific key on the keyboard of the machine, - etc.

On peut par ailleurs prévoir que les différents sous-éléments de l'élément initial El soient contigus ou non contigus. It is also possible to provide for the different sub-elements of the initial element El to be contiguous or non-contiguous.

Au surplus, on peut recourir à différentes techniques de déplacement d'éléments pour retirer El de la zone d'affichage Zl (ou de la ou des régions qu'il occupe dans cette zone, le cas échéant) avec un effet visuel donné pour l'utilisateur. En particulier, on peut prévoir une translation horizontale ou verticale progressive de la représentation de l'élément El vers l'extérieur de l'écran. In addition, different element displacement techniques can be used to remove E1 from the display area Z1 (or the region or regions it occupies in this area, if any) with a given visual effect for the area. 'user. In particular, it is possible to provide a progressive horizontal or vertical translation of the representation of the element El towards the outside of the screen.

Egalement, on peut prévoir que l'élément El, après avoir été initialement affiché, soit recouvert par certains sous-éléments (boutons, etc. ) appartenant à l'élément E2 en cours de chargement (cas par exemple d'un chargement de E2 en streaming ). l'élément El est donc en quelque sorte en sandwich entre certains sous-éléments Also, it can be expected that the element El, after having been initially displayed, is covered by certain sub-elements (buttons, etc.) belonging to the element E2 being loaded (for example, a loading of E2 in streaming ). the element El is thus somehow sandwiched between certain sub-elements

<Desc/Clms Page number 35><Desc / Clms Page number 35>

de l'élément E2 (ceux qui resteront invisibles jusqu'à ce que l'élément El soit ôté) et d'autres sous-éléments de l'élément E2 qui vont se comporter comme indiqué cidessus.  element E2 (those which will remain invisible until element El is removed) and other sub-elements of element E2 which will behave as indicated above.

Dans ce cas, la disparition de l'élément El lors de l'entrée du pointeur dans la zone associée, lorsqu'elle se fait par translation vers l'extérieur de l'écran de la représentation à l'écran dudit élément, est avantageusement effectuée en laissant immobiles le ou les sous-éléments de l'élément E2 alors visibles à l'écran. In this case, the disappearance of the element El when the pointer enters the associated zone, when it is done by translation towards the outside of the screen of the representation on the screen of said element, is advantageously performed by leaving the element or sub-elements of the element E2 still visible on the screen.

On peut enfin prévoir que l'élément El affiché initialement contienne des sous- éléments d'interactivité (liens vers l'autres pages, boutons déclenchant des actions, etc. ). Dans ce cas, on prévoit avantageusement que ces sous-éléments soient actifs (c'est-à-dire actionnables par pointeur de souris notamment) au moins pendant la période au cours de laquelle l'élément E2 est en cours de chargement, et que ces sous-éléments deviennent inactifs dès le moment où l'entrée du pointeur dans la zone de l'élément El doit provoquer la disparition de cet élément. En effet, les sous- éléments d'interactivité en question ne sont alors plus atteignables. Finally, we can predict that the element El initially displayed contains sub-elements of interactivity (links to other pages, buttons triggering actions, etc.). In this case, it is advantageously provided that these sub-elements are active (that is to say actuatable by mouse pointer in particular) at least during the period during which the element E2 is being loaded, and that these sub-elements become inactive as soon as the entry of the pointer in the zone of the element El must cause the disappearance of this element. In fact, the sub-elements of interactivity in question are no longer reachable.

On va maintenant décrire en référence aux figures 14 à 24 une généralisation de la présente invention telle que décrite ci-dessus. A generalization of the present invention as described above will now be described with reference to FIGS.

On se place tout d'abord dans le situation où l'on souhaite visualiser deux pages (par exemple des pages HTML) dans une seule fenêtre d'affichage. We first place ourselves in the situation where we want to view two pages (for example HTML pages) in a single display window.

Pour bien faire comprendre cet aspect de l'invention, on va considérer que ces deux pages sont dans deux plans différents, la page P1du plan supérieur recouvrant partiellement la page P2 du plan inférieur, en étant entièrement visible dans la fenêtre de visualisation (dont la taille est ici légèrement supérieure à celle de la page P2), comme illustré sur la figure 14. To make this aspect of the invention clear, it will be considered that these two pages are in two different planes, the page P1 of the upper plane partly covering the P2 page of the lower plane, being entirely visible in the viewing window (the size is slightly larger here than page P2), as shown in Figure 14.

<Desc/Clms Page number 36><Desc / Clms Page number 36>

La page P1 du plan supérieur peut également occuper une position décalée ; recouvre encore partiellement la page P2, mais n'est visible que partiellement, marginalement, comme l'illustre la figure 15.  The page P1 of the upper plane can also occupy an offset position; partially overlaps page P2, but is visible only partially, marginally, as shown in Figure 15.

Dans cette forme de réalisation, on prévoit en outre une pince virtuelle qui peut fixer ensemble les deux pages, comme on le détaillera plus loin, et ce dans une ou l'autre de leurs deux positions mutuelles. Cette pince est schématisée par PC sur les figures 16 et 17. In this embodiment, there is further provided a virtual clamp which can fix the two pages together, as will be detailed later, and in one or other of their two mutual positions. This clip is schematized by PC in Figures 16 and 17.

En vue en plan, l'utilisateur peut ainsi distinguer quatre zones Z11, Z12, Z13 et Z14 dans sa fenêtre d'affichage, comme le présente la figure 18. In plan view, the user can thus distinguish four zones Z11, Z12, Z13 and Z14 in his display window, as shown in FIG. 18.

La zone Z11 est une zone qui n'est jamais couverte par la page P1 du plan supérieur. La zone Zl 1 contient donc en permanence la partie correspondante de la page P2 du plan inférieur. Zone Z11 is an area that is never covered by page P1 of the upper plane. The zone Zl 1 therefore permanently contains the corresponding part of the page P2 of the lower plane.

La zone Z12 est la zone couverte par la page P1 du plan supérieur quand celle-ci n'est pas décalée, c'est-à-dire quand elle occupe la position illustrée sur la figure 14. Zone Z12 is the area covered by page P1 of the upper plane when it is not shifted, that is to say when it occupies the position illustrated in FIG. 14.

Et lorsque la page P1 du plan supérieur est décalée (situation de la figure 15), la zone Z12 présente la partie correspondante de la page P2 du plan inférieur, cette page occupant alors la somme des zones Z1 1 et Z12. And when the page P1 of the upper plane is shifted (situation of FIG. 15), the zone Z12 presents the corresponding part of the page P2 of the lower plane, this page then occupying the sum of the zones Z1 1 and Z12.

La zone Z13 est la zone occupée par la pince, qui peut être symbolisée graphiquement de toute façon appropriée. Zone Z13 is the area occupied by the clip, which can be symbolized graphically anyway.

Enfin la zone Z 14 est une zone qui est couverte par la page P1 du plan supérieur quelle que soit la position de cette dernière. Finally Z zone 14 is an area that is covered by page P1 of the upper plane regardless of the position of the latter.

Nous allons maintenant présenter les différents états possibles du système et les transitions possibles entre ces états, ces dernières étant la conséquence des actions de l'utilisateur. We will now present the different possible states of the system and the possible transitions between these states, the latter being the consequence of the actions of the user.

<Desc/Clms Page number 37> <Desc / Clms Page number 37>

Les états sont définis par : # la position de la page du plan supérieur (c'est-à-dire décalée ou non décalée) # les positions possibles d'un pointeur de souris par rapport aux différentes zones, # l'état de la pince PC (ouverte ou fermée). The states are defined by: # the position of the top plane page (ie shifted or non-shifted) # the possible positions of a mouse pointer with respect to the different zones, # the state of the PC clamp (open or closed).

La figure 19 présente les deux positions possibles de la page P1du plan supérieur. Figure 19 shows the two possible positions of page P1 of the upper plane.

La figure 20 présente un exemple d'état du système, pour lequel est spécifié un ensemble de régions sensibles réagissant à l'arrivée dans celles-ci du pointeur de la souris, la position de la page du plan supérieur et l'état de la pince. FIG. 20 shows an exemplary state of the system, for which a set of sensitive regions responsive to the arrival therein of the mouse pointer, the position of the top plane page and the state of the clamp.

Dans l'exemple de la figure 20, les régions grisées (ici les zones Z12 et Z13) désignent des endroits où la présence du pointeur n'a pas d'effet sur le système, tandis que les régions blanches (ici les zones Z11 et Z14) désignent des régions pour lesquelles l'entrée du pointeur dans l'une de celles-ci provoque une action, comme on le détaillera plus loin. In the example of FIG. 20, the shaded regions (here the zones Z12 and Z13) designate places where the presence of the pointer has no effect on the system, while the white regions (here the zones Z11 and Z14) designate regions for which the entry of the pointer into one of these causes an action, as will be detailed below.

Le comportement du système est présenté dans la figure 21 sous la forme d'un diagramme d'états-transitions, qui illustre les différentes manipulations des pages Pl et P2 dans leurs plans respectifs. The behavior of the system is presented in FIG. 21 in the form of a state-transition diagram, which illustrates the different manipulations of pages P1 and P2 in their respective planes.

Le système fait en sorte que la page P1du plan supérieur ne soit remplacée par la page P2 du plan inférieur (une fois que cette dernière a été chargée à partir d'un serveur, le cas échéant) que seulement sur action implicite de l'utilisateur, et ceci de manière très intuitive. Contrairement aux procédés de streaming , l'utilisateur ne sera ainsi pas surpris de voir remplacée la page qu'il est justement en train d'examiner. The system ensures that the page P1 of the upper plane is replaced by the page P2 of the lower plane (once the latter has been loaded from a server, if any) that only on the user's implicit action , and this in a very intuitive way. Unlike streaming processes, the user will not be surprised to see the page he is currently reviewing.

<Desc/Clms Page number 38> <Desc / Clms Page number 38>

Ainsi, quand la page du plan inférieur est le cas échéant chargée : - si le pointeur de la souris se trouve dans la zone Zl 1, le fait de l'amener dans la zone Z12 - si le pointeur se trouve dans l'une des zones Z12, Z13 et Z14, le fait de l'amener dans la zone Z11puis de nouveau dans la zone Z12 aura comme conséquence de décaler la page PIdu plan supérieur. Thus, when the page of the lower plane is optionally loaded: - if the pointer of the mouse is in the zone Zl 1, bringing it into the zone Z12 - if the pointer is in one of the zones Z12, Z13 and Z14, bringing it into zone Z11 and again in zone Z12 will have the consequence of shifting the page PI of the upper plane.

Ensuite, l'utilisateur pourra provoquer le mouvement inverse de la page PI du plan supérieur (c'est-à-dire la ramener dans la zone Z12) : - soit en ramenant le pointeur de la souris dans la zone Z11, - soit en ramenant le pointeur de la souris dans la zone Z14. Then, the user can cause the reverse movement of the page PI of the upper plane (that is to say bring it back to the zone Z12): - either by bringing the mouse pointer in the zone Z11, - or in bringing the mouse pointer back to the Z14 area.

Ce double choix offert à l'utilisateur présente un avantage important : - le premier choix permet d'utiliser les moyens d'interactivité (boutons, etc.) contenus dans la page P2 du plan inférieur dans la zone Z1 1, - le deuxième choix permet d'utiliser les moyens d'interactivité contenus dans la page P1du plan supérieur dans la zone Z12. This double choice offered to the user has an important advantage: the first choice makes it possible to use the means of interactivity (buttons, etc.) contained in the page P2 of the lower plane in the zone Z1 1, the second choice allows to use the interactivity means contained in the page P1 of the upper plane in the zone Z12.

Le fait de serrer la pince PC (par exemple par un simple clic de souris dans la zone dédiée Z13) a pour effet d'éviter de décaler la page du plan supérieur à la suite des manipulations indiquées ci-dessus. En d'autres termes, le processus de décalage et de retour de la page P1est alors neutralisé, et les positions mutuelles des pages P1 et P2 (que ce soit avec la page P1décalée ou la page P1non décalée) sont figées. Clamping the PC clamp (for example by a simple mouse click in the dedicated area Z13) has the effect of avoiding shifting the top plane page following the manipulations indicated above. In other words, the offset and return process of the page P1 is then neutralized, and the mutual positions of the pages P1 and P2 (whether with the page P1 offset or the page P1 not shifted) are frozen.

Cette neutralisation peut être supprimée avantageusement en cliquant à nouveau dans la zone Z13 pour desserrer la pince PC. This neutralization can be advantageously suppressed by clicking again in the zone Z13 to loosen the PC clamp.

On notera que les différents états et les différentes transitions illustrés sur la figure 21 peuvent être complétés le cas échéant par d'autres états et d'autres transitions, notamment lorsqu'il existe dans la fenêtre, à l'extérieur des zones Z11 à Z14, une zone de marge qui peut être utilisée, par exemple, pour passer de la zone Z11 à l'une It will be noted that the different states and the different transitions illustrated in FIG. 21 can be supplemented if necessary by other states and other transitions, especially when there exists in the window, outside zones Z11 to Z14. , a margin area that can be used, for example, to move from zone Z11 to one

<Desc/Clms Page number 39><Desc / Clms Page number 39>

des zones Z13 ou Z14, ou réciproquement, sans passer par la zone Z12 qui les sépare.  zones Z13 or Z14, or vice versa, without passing through the zone Z12 which separates them.

Le système décrit ci-dessus en référence aux figures 14 à 22 peut être étendu pour gérer plus de deux plans superposés. The system described above with reference to Figures 14 to 22 may be extended to handle more than two overlapping planes.

Ainsi l'on a illustré sur les figures 23 à 26 une page P2 de plan inférieur qui est fixe, et deux pages P1et P1' de niveaux respectivement supérieur et intermédiaire, qui peuvent individuellement adopter une position non décalée (pleinement visible) ou décalée. La pince PC est ici commune aux trois pages, et peut donc occuper une zone graphique unique. Thus, FIGS. 23 to 26 show a page P2 of lower plane which is fixed, and two pages P1 and P1 'of respectively higher and intermediate levels, which can individually adopt a non-shifted (fully visible) or offset position. The PC clamp is here common to all three pages, and can occupy a single graphic area.

En supplément de la pince, un moyen graphique de solidarisation des plans adjacents pris deux à deux peut être mis en #uvre. Quand ce moyen est activé, les deux plans qu'il relie se déplacent ensemble. In addition to the clip, a graphic means for securing the adjacent planes taken in pairs can be implemented. When this means is activated, the two planes that it connects move together.

Le système décrit en référence aux figures 14 à 26 peut ici encore avantageusement être mis en #uvre dans le cadre d'applications sur l'Internet, dans lesquelles les pages mettent un temps significatif à être chargées. La page Pl du plan supérieur pourra être chargée en premier et faire patienter l'utilisateur pendant que la page P2 du plan inférieur se charge. De même, l'affichage des pages P1 et/ou P2 peut permettre de faire patienter l'utilisateur pendant le chargement d'une autre page P3, encore plus inférieure selon la présentation adoptée ici, et ainsi de suite. The system described with reference to FIGS. 14 to 26 can here again advantageously be implemented in the context of applications on the Internet, in which the pages take a significant amount of time to load. The Pl page of the upper plane can be loaded first and wait for the user while the P2 page of the lower plane loads. Similarly, the display pages P1 and / or P2 can help to wait for the user while loading another page P3, even lower according to the presentation adopted here, and so on.

Enfin, dans les différentes formes de réalisation de l'invention, on peut prévoir une page Pl sensiblement plus petite que la page P2, auquel cas les zones d'affichage occupées par la page Pl dans ses deux positions respectives sont disjointes. Finally, in the various embodiments of the invention, it is possible to provide a page P1 that is substantially smaller than the page P2, in which case the display areas occupied by the page P1 in its two respective positions are disjoint.

On va maintenant décrire en référence aux figures 27 à 31 un procédé de gestion de l'affichage de fenêtres d'un système d'exploitation notamment lors d'opérations de glisser-déposer. A method for managing the display of windows of an operating system, in particular during drag-and-drop operations, will now be described with reference to FIGS.

<Desc/Clms Page number 40><Desc / Clms Page number 40>

La figure 27 illustre une première fenêtre FIqui recouvre partiellement une seconde fenêtre F2 (peu importe ici que la fenêtre qui se trouve sur le dessus soit active ou non).  FIG. 27 illustrates a first window FI which partially overlaps a second window F2 (it does not matter here whether the window on the top is active or not).

On a illustré sur la figure 28 un pointeur (ou curseur) PT de souris qui se trouve sur un objet 01 (tel qu'un dossier ou document) visible dans la fenêtre FI. L'appui par l'utilisateur d'un bouton de la souris permet, de façon connue en soi, de saisir cet objet en vue d'une opération, également connue en soi, de glisser-déposer . FIG. 28 shows a mouse pointer (or cursor) PT that is on an object 01 (such as a folder or document) visible in the window FI. The support by the user of a mouse button allows, in known manner, to enter this object for an operation, also known per se, drag and drop.

Sur la figure 29, le pointeur P1 accompagné de l'objet 01 parcourt un trajet (flèche fl) de la fenêtre FIvers la partie visible de la fenêtre F2, en franchissant donc le bord (gauche en l'occurrence) de la fenêtre F1, sans lâcher le bouton de la souris. In FIG. 29, the pointer P1 accompanied by the object 01 travels a path (arrow fl) from the window FI to the visible part of the window F2, thus crossing the edge (left in this case) of the window F1, without letting go of the mouse button.

Sur la figure 30, le mouvement du pointeur PT accompagné de l'objet 01 atteint à nouveau, par un mouvement inverse (flèche f2), le bord de la fenêtre F1 préalablement franchi. Ce phénomène provoque, dans le présent exemple de réalisation, la mise en arrière-plan de la fenêtre Fl par rapport à la fenêtre F2. In FIG. 30, the movement of the pointer PT accompanied by the object 01 again reaches, by an inverse movement (arrow f2), the edge of the window F1 previously crossed. This phenomenon causes, in the present embodiment, the setting in the background of the window F1 with respect to the window F2.

L'entièreté de la fenêtre F2 devient donc visible, et l'utilisateur peut donc librement choisir lequel, parmi les objets visibles dans toute la fenêtre F2, celui des objets (objet désigné par 02) sur lequel il va déposer l'objet 01. Ceci est illustré par la figure 31. The entire window F2 becomes visible, and the user can freely choose which of the objects visible in the entire window F2, the object (object designated by 02) on which it will drop the object 01. This is illustrated in Figure 31.

Selon une variante, on peut prévoir que lors du mouvement du pointeur selon la flèche f2, la fenêtre Fl se déplace, de préférence selon le même mouvement que le pointeur PT, pour ainsi progressivement dégager la fenêtre F2. According to a variant, it can be provided that during the movement of the pointer according to the arrow f2, the window F1 moves, preferably in the same movement as the pointer PT, and thus gradually clear the window F2.

D'autres variantes sont bien entendu possibles, et notamment : Other variants are of course possible, and in particular:

<Desc/Clms Page number 41><Desc / Clms Page number 41>

- le système effectue une signalisation auprès de l'utilisateur lors de l'atteinte par le pointeur du bord de la première fenêtre ; cette signalisation peut être choisie dans le groupe comprenant une signalisation visuelle, une signalisation sonore et une signalisation tactile telle qu'un retour de force au sein d'un périphérique d'entrée manuel qui commande ledit pointeur ; - la fenêtre FIpeut passer automatiquement en arrière-plan de la fenêtre F2 dès que le pointeur PT muni de l'objet 01 a séjourné dans la zone de la seconde fenêtre non recouverte par la première fenêtre pendant une durée supérieure à un seuil prédéterminé ; - la fenêtre FIpeut passer automatiquement en arrière-plan de la fenêtre F2 lorsqu'une touche d'un clavier du poste informatique est actionnée, ou encore par commande vocale ; - la mise en arrière-plan ou le déplacement de la fenêtre FIpour dégager la fenêtre F2 peut être réversible, par exemple en effectuant un déplacement inverse du pointeur après son mouvement selon la flèche f2.  the system sends a signal to the user when the pointer reaches the edge of the first window; this signaling may be chosen from the group comprising visual signaling, sound signaling and tactile signaling such as force feedback within a manual input device which controls said pointer; the window FI can automatically go into the background of the window F2 as soon as the pointer PT provided with the object 01 has remained in the zone of the second window not covered by the first window for a duration greater than a predetermined threshold; the window FI can automatically go into the background of the window F2 when a key of a keyboard of the computer station is actuated, or else by voice command; the setting in the background or the displacement of the window FI to clear the window F2 can be reversible, for example by carrying out an inverse displacement of the pointer after its movement according to the arrow f2.

Bien entendu, l'homme du métier saura effectuer les adaptations nécessaires dans le cas où il faut gérer l'affichage de plusieurs fenêtres superposées. Of course, those skilled in the art will be able to make the necessary adaptations in the case where it is necessary to manage the display of several superimposed windows.

** * Chapitre Il - Création de liens (Figures 32 à 84) Selon un autre aspect de l'invention, on va maintenant décrire un système permettant à l'utilisateur de créer des liens hypertexte (que l'on appellera dans la suite liens ajoutés ) entre des pages qu'il découvre au gré de sa navigation sur l'Internet.  ** * Chapter II - Creation of links (Figures 32 to 84) According to another aspect of the invention, we will now describe a system allowing the user to create hyperlinks (which will be called in the following links added) between pages he discovers as he browses the Internet.

Un but de ce système est que chaque utilisateur ajoute ses propres liens dans la masse d'informations disponible sur l'Internet. La figure 32 illustre ce concept, chaque point noir représentant une page et chaque trait séparant deux points noirs représentant un lien ajouté. One purpose of this system is that each user adds his own links to the mass of information available on the Internet. Figure 32 illustrates this concept, with each black dot representing a page and each line separating two black dots representing an added link.

<Desc/Clms Page number 42><Desc / Clms Page number 42>

Concrètement, l'utilisateur met en place de nouveaux liens au cours même de sa navigation, ces liens ajoutés étant destinés à l'aider dans sa navigation dans le futur.  Concretely, the user sets up new links during the course of his navigation, these links being added to help him in his navigation in the future.

Il navigue ainsi de manière pro-active . He sails in a pro-active way.

En d'autres termes, pour chaque utilisateur, l'ensemble des liens ajoutés, que l'on peut considérer comme sa toile miniature personnelle (Miniweb), s'ajoute à la toile Internet (Web) à laquelle il avait déjà accès, comme illustré sur la figure 33. In other words, for each user, the set of added links, which can be considered as his personal thumbnail (Miniweb), is added to the Internet web (Web) to which he already had access, such as illustrated in Figure 33.

A cet effet, le système est installé entre le navigateur et les sites visités, et augmente pour chaque utilisateur le réseau des liens qui sont à sa disposition pour naviguer. For this purpose, the system is installed between the browser and the sites visited, and increases for each user the network of links that are available to navigate.

Pour ce faire, le système est doté de moyens de stockage des liens ajoutés. Ces moyens permettent, à chaque accès (Link) à une page à laquelle un ou plusieurs liens ajoutés ont été associés, de présenter ces derniers à l'utilisateur en supplément de ladite page. Sur un plan pratique, et comme l'illustre la figure 34, une indirection est établie vers une table (Link#Added Links) de stockage des liens ajoutés, afin d'associer ces liens ajoutés (Added Links) à cette page avant de la présenter à l'utilisateur. To do this, the system is provided with storage means for added links. These means allow, each access (link) to a page to which one or more added links have been associated, to present them to the user in addition to said page. On a practical level, and as illustrated in Figure 34, an indirection is established to a table (Link # Added Links) for storing the added links, in order to associate these added links to this page before the present to the user.

Le stockage des liens ajoutés peut être local (sur le poste client) ou distant (sur un serveur approprié). Dans la suite de la description, on se focalisera sur un stockage distant. En effet, dans certains des perfectionnements qui seront présentés plus loin, les liens formant les toiles miniatures personnelles de différents utilisateurs seront automatiquement comparés entre eux et des liens ajoutés pourront être communiqués d'une toile personnelle à une autre, ce qu'un stockage distant permet plus facilement de mettre en oeuvre. Storage of added links can be local (on the client machine) or remote (on a suitable server). In the rest of the description, we will focus on a remote storage. Indeed, in some of the improvements that will be presented later, the links forming the personal miniature canvases of different users will automatically be compared with each other and added links can be communicated from one personal web to another, what a remote storage makes it easier to implement.

Chaque toile personnelle peut ainsi s'enrichir de liens ajoutés provenant d'autres toiles personnelles, et proposés automatiquement par le système qui par exemple possède en outre des moyens pour détecter que leurs utilisateurs respectifs partagent les mêmes centres d'intérêt. Par ailleurs, chaque utilisateur peut se constituer un Each personal web can thus be enriched with added links from other personal webs, and automatically proposed by the system which for example also has means for detecting that their respective users share the same interests. Moreover, each user can constitute a

<Desc/Clms Page number 43><Desc / Clms Page number 43>

cercle de relations (d'amis) proposées par le système suite à la détection de centres d'intérêts communs.  circle of relations (of friends) proposed by the system following the detection of common interests.

La suite de la description est structurée de la manière suivante : On présentera d'abord le système qui permet à un utilisateur de créer des liens ajoutés et de les retrouver ultérieurement (lors des accès aux pages auxquelles ils ont été associés). Ceci est décrit dans la section Créer et retrouver des liens ajoutés . The remainder of the description is structured in the following way: The system that allows a user to create added links and to find them later (when accessing the pages to which they have been associated) will be presented first. This is described in the section Creating and retrieving added links.

On présentera ensuite un perfectionnement du système consistant à combiner des liens ajoutés avec une approche de stockage de ces liens dans une structure hiérarchique de répertoires et sous-répertoires (c'est-à-dire en intégration avec l'approche classique des systèmes de mémorisation de liens favoris , signets , ou bookmarks ou encore scrapbook selon la terminologie anglo-saxonne). Then we will present a refinement of the system consisting of combining added links with an approach of storing these links in a hierarchical structure of directories and sub-directories (that is to say in integration with the traditional approach of storage systems favorite links, bookmarks, or bookmarks or scrapbook according to the English terminology).

Ceci sera décrit dans la section Création de liens ajoutés dans des Répertoires . This will be described in Creating Links Added in Directories.

On présentera ensuite un perfectionnement du système classique de marque-pages, qui consiste à rendre les marque-pages contextuels. An enhancement to the classic bookmark system will be presented, which is to make the bookmarks contextual.

On présentera ensuite un perfectionnement du système permettant aux utilisateurs de publier (ou mettre à disposition d'un groupe restreint) au moins un sous-ensemble des liens ajoutés de leur toile personnelle. Ces liens ajoutés pourront être visualisés directement au moyen d'un navigateur Internet standard. Alternativement, ces liens ajoutés pourront être consultés avec le système et enrichir la toile personnelle de l'utilisateur qui les consulte. Ceci est décrit dans la section Publication de liens ajoutés . Next, a system enhancement will be introduced allowing users to publish (or make available to a small group) at least a subset of the added links to their personal web. These added links can be viewed directly using a standard Internet browser. Alternatively, these added links can be consulted with the system and enrich the personal web of the user who consults them. This is described in the Posting Added Links section.

On présentera ensuite un perfectionnement qui permet au système de suggérer automatiquement aux utilisateurs des liens ajoutés provenant d'autres utilisateurs dont les centres d'intérêt sont proches. Ceci est décrit dans la section Détection de Répertoires Proches . An enhancement will then be presented that allows the system to automatically suggest to users added links from other users whose interests are nearby. This is described in the section Detecting Close Directories.

<Desc/Clms Page number 44><Desc / Clms Page number 44>

On présentera ensuite une architecture qui permet à l'éditeur ou l'administrateur d'un site Internet ( Webmaster en terminologie anglo-saxonne) de proposer des liens ajoutés aux utilisateurs du système de manière personnalisée. Ceci est décrit dans la section Suggestion de liens ajoutés par le Webmaster .  An architecture will then be presented that allows the publisher or administrator of an Internet site (Webmaster in English terminology) to propose links added to users of the system in a personalized way. This is described in the Suggestion section of links added by the Webmaster.

On présentera enfin un système permettant de simuler la propagation d'un nouveau lien ajouté parmi les utilisateurs du système sur l'Internet et de calculer le volume de l'audience probable. Ceci est décrit dans la section Calcul de l'Audience . Finally, a system will be introduced to simulate the propagation of a new added link among users of the system on the Internet and to calculate the volume of the likely audience. This is described in the Audience Calculation section.

On présentera ensuite un perfectionnement du système permettant à l'utilisateur de publier (ou mettre à disposition d'un groupe restreint) au moins un sous-ensemble des répertoires de sa toile personnelle. Ces répertoires peuvent être visualisés directement au moyen d'un navigateur standard. Alternativement, ces répertoires peuvent être consultés avec le système et enrichir la toile personnelle de l'utilisateur qui les consulte. Ceci est décrit dans la section Publication de Répertoires . We will then present an improvement of the system allowing the user to publish (or make available to a small group) at least a subset of the directories of his personal web. These directories can be viewed directly using a standard browser. Alternatively, these directories can be consulted with the system and enrich the personal web of the user who consults them. This is described in the section Publishing Directories.

On présentera ensuite un perfectionnement du système permettant à l'utilisateur de stocker (en local ou sur un serveur) non seulement un lien mais aussi une copie figée d'une page. Ceci est décrit dans la section Liens en mode Gelé . We will then present an improvement of the system allowing the user to store (locally or on a server) not only a link but also a frozen copy of a page. This is described in the Links section in Frozen mode.

On décrira ensuite un perfectionnement qui, dans le cadre du système présenté jusque là, permet de publier des pages qui ont été restructurées pour présenter des liens directement à l'intérieur d'elles-mêmes, l'utilisateur pouvant supprimer ces liens ou en ajouter d'autres. Pour ce faire, les pages contiennent un ou plusieurs contenants dans lesquels sont présentés des contenus qui peuvent eux-mêmes contenir d'autres contenants récursivement. Ceci est décrit dans la section Contenants et contenus . An improvement will then be described which, in the context of the system presented so far, makes it possible to publish pages which have been restructured to present links directly within themselves, the user being able to delete these links or to add links to them. others. To do this, the pages contain one or more containers in which are presented contents that may themselves contain other containers recursively. This is described in the Containers and Contents section.

En intégrant les concepts présentés jusque là (liens ajoutés associés aux pages et liens dans des contenants inclus dans des pages) et en les illustrant au moyen d'un exemple, on récapitulera ensuite les fonctionnalités du système global et on les By integrating the concepts presented so far (added links associated with pages and links in containers included in pages) and illustrating them by means of an example, we will summarize the functionalities of the global system and we will

<Desc/Clms Page number 45><Desc / Clms Page number 45>

complétera par quelques perfectionnements. Ceci est décrit dans la section Proposition de Répertoires Spécialistes et Voisins .  will complete with some improvements. This is described in the Proposal section of Specialist and Neighbors Directories.

On présentera ensuite un perfectionnement du système permettant à l'utilisateur d'associer aux liens qui l'ont intéressé des attributs, tels que le souhait d'achat ou de vente du produit représenté par l'information pointée (ou plus généralement des attributs de type Offreur et Demandeur ). Ces attributs sont exploités par le système pour affiner la sélection de répertoires spécialistes et proches, et la mise en relation d'utilisateurs intéréssés par de mêmes contenus et se trouvant dans une situation de complémentarité. Ceci est décrit dans la section Attributs relatifs à l'acceptation . We will then present an improvement of the system allowing the user to associate with the links which interested him attributes, such as the wish to buy or sell the product represented by the pointed information (or more generally the attributes of Offeror and Applicant type). These attributes are exploited by the system to refine the selection of specialist and close directories, and the linking of users interested by the same content and being in a situation of complementarity. This is described in the Attributes section for acceptance.

On présentera ensuite un perfectionnement qui permet aux pages restructurées de présenter des contenus de manière personnalisée , c'est à dire en fonction des centres d'intérêts de l'utilisateur. Ceci est décrit dans la section Pages Personnalisées . We will then present a refinement that allows the restructured pages to present content in a personalized way, that is to say according to the interests of the user. This is described in the Custom Pages section.

On décrira ensuite un ensemble de perfectionnements du système, permettant à un utilisateur de charger une page progressivement, et à des utilisateurs distants de partager le contenu de pages qu'ils manipulent simultanément dans le cadre d'applications collaboratives sur un réseau tel que l'Internet. Next will be described a set of system enhancements, allowing a user to load a page progressively, and remote users to share the content of pages they handle simultaneously as part of collaborative applications on a network such as the Internet.

Section 1 - Créer et retrouver des liens ajoutés La Figure 35 illustre le principe selon lequel, en conséquence d'un accès par l'utilisateur à une page pl via l'Internet, le système lui présente automatiquement un certain nombre de liens ajoutés, en l'occurrence sous forme de symboles graphiques, vers des pages p2, p3 et p4 qu'il avait associées à la page pl au cours de navigations précédentes. Section 1 - Creating and Retrieving Added Links Figure 35 illustrates the principle that, as a result of user access to a page through the Internet, the system automatically submits a number of links to it, in the occurrence in the form of graphic symbols, to pages p2, p3 and p4 that he had associated with the page pl during previous navigations.

Motivation Motivation

<Desc/Clms Page number 46><Desc / Clms Page number 46>

Les liens ajoutés sont créés par l'utilisateur dans le but d'établir des relations entre des pages qui l'intéressent. Les liens ajoutés représentent des relations pertinentes entre ces pages ; une page liée à une autre page est intéressante dans le contexte de ladite autre page (et optionnellement, dans le sens inverse également). Pour l'utilisateur, l'ensemble des liens ajoutés constitue donc un réseau de relations supplémentaires entre pages qui l'intéressent les unes par rapport aux autres, comme l'illustrent les figures 36a, 36b et 36c qui illustrent pour les figures 36a et 36b, deux réseaux de liens entre un certain nombre de pages, et pour la figure 36c, le réseau aggloméré desdits liens.  The added links are created by the user for the purpose of establishing relationships between pages of interest. The added links represent relevant relationships between these pages; a page linked to another page is interesting in the context of said other page (and optionally, in the opposite direction as well). For the user, the set of links added thus constitutes a network of additional relationships between pages that interest him in relation to each other, as illustrated in FIGS. 36a, 36b and 36c which illustrate for FIGS. 36a and 36b. , two networks of links between a certain number of pages, and for the figure 36c, the network agglomerated of said links.

A partir d'une page ou d'un ensemble de pages sélectionné, le système permet à l'utilisateur de naviguer vers des pages qui y sont reliées. Le réseau de liens ajoutés constitue ainsi pour l'utilisateur un réseau de navigation personnel selon son propre schéma mental et lui permet de retrouver plus facilement les éléments d'information qu'il avait déjà repérés. From a selected page or set of pages, the system allows the user to navigate to pages that are linked to it. The network of links added thus constitutes for the user a personal navigation network according to his own mental scheme and allows him to more easily find the information elements that he had already identified.

Créer des liens ajoutés L'approche des plans coulissants décrite dans la première partie de la présente description est particulièrement favorable à l'établissement de liens ajoutés par la technique, classique en soi, du glisser-déposer . L'utilisateur peut sélectionner une page ou un élément (ou zone graphique qui la représente) qui se trouve dans un plan, la glisser et la déposer dans une autre page (ou zone graphique qui la représente) qui se trouve dans un autre plan, afin d'établir un lien ajouté entre ces deux pages. Creating Added Links The sliding plan approach described in the first part of this description is particularly favorable to the establishment of links added by the technique, conventional in itself, drag and drop. The user can select a page or an element (or graphic area that represents it) that is in a plane, drag it and drop it in another page (or graphic area that represents it) that is in another plane, in order to establish an added link between these two pages.

Cette approche est à comparer avec l'approche qui consisterait à glisser-déposer des pages entre des fenêtres différentes de l'outil de navigation, qui se recouvrent partiellement et qui empêchent donc de visualiser les pages entièrement. L'avantage de l'approche par plans coulissants est de permettre, au cours même du processus de glisser-déposer (c'est-à-dire sans lâcher le doigt sur le bouton de la souris), de visualiser le contenu des plans (les pages et leurs liens ajoutés) à tour de rôle, par This approach is to be compared with the approach of dragging and dropping pages between different windows of the browser tool, which overlap partially and thus prevent viewing the pages entirely. The advantage of the sliding plane approach is to allow, during the process of drag-and-drop (that is to say without releasing the finger on the mouse button), to visualize the contents of the plans ( pages and their links added) in turn, by

<Desc/Clms Page number 47><Desc / Clms Page number 47>

simple mouvement de la souris, comme décrit précédemment en référence notamment à la figure 26.  simple movement of the mouse, as described above with reference in particular to Figure 26.

On comprend également que, selon une variante, cette technique de glisserdéposer avec révélation des zones d'affichage en second plan sur lesquelles se dirige le curseur au cours même de l'opération peut être généralisée au cas où ces zones d'affichage sont des fenêtres d'un systèmes d'exploitation classique tel que Windows ou MacOS (marques déposées). Plus précisément, on prévoit dans ce cas qu'une fenêtre située en second plan passe en premier plan quand le curseur pousse la fenêtre qui était en premier plan en arrivant contre l'un de ses bords. It is also understood that, according to one variant, this technique of dragging and depositing the second-plane display areas on which the cursor is moving during the operation can be generalized in the case where these display areas are windows. classic operating systems such as Windows or MacOS (registered trademarks). Specifically, it is expected in this case that a window in the background passes in the foreground when the cursor pushes the window that was in the foreground arriving against one of its edges.

La figure 37 présente un exemple, de création de liens ajoutés entre pages, en tirant des liens entre les objets graphiques les représentant (situées à gauche des pages), la pince décrite plus haut étant active et bloquant le mouvement des plans. Figure 37 shows an example of creating links added between pages, drawing links between the graphic objects representing them (to the left of the pages), the clip described above being active and blocking the movement of the plans.

Le bas de la figure 37 illustre le cas particulier de création de liens ajoutés (par glisser-déposer d'objets graphiques) entre différentes instances du système, ouvertes simultanément par l'utilisateur sur le poste client. Les mouvements de souris qui permettent de tirer des liens ajoutés entre les pages P6 et P7 illustrent la technique décrite précédemment qui consiste à amener le pointeur de la souris à l'extérieur de la fenêtre contenant la page P6 puis le faire revenir en direction de cette même fenêtre afin de la faire passer en arrière-plan de la fenêtre de la page P7. The bottom of Figure 37 illustrates the particular case of creating links added (drag and drop graphic objects) between different instances of the system, simultaneously opened by the user on the client machine. The mouse movements that make it possible to draw added links between the pages P6 and P7 illustrate the technique described previously which consists of bringing the mouse pointer outside the window containing the page P6 and then returning it towards this point. same window in order to make it pass in the background of the window of the page P7.

Bien évidemment, chaque plan peut être supprimé ou minimisé (de manière à ce que sa partie visible prenne le moins de place possible) au moyen de clic sur un bouton (ceci n'est pas illustré dans les figures). Of course, each plane can be deleted or minimized (so that its visible part takes up the least space possible) by means of a click on a button (this is not illustrated in the figures).

Bien que la figure 37 ne le montre pas, des objets graphiques à l'intérieur des pages peuvent aussi être glissés-déposés, soit entre eux, soit vers des zones ou objets graphiques représentant les pages. Dans certains cas, comme on le verra plus loin, les Although FIG. 37 does not show it, graphical objects inside the pages can also be dragged or dropped between each other or to areas or graphic objects representing the pages. In some cases, as will be seen later, the

<Desc/Clms Page number 48><Desc / Clms Page number 48>

objets graphiques situés à l'extérieur des pages, et représentant des contenus de pages, peuvent aussi être glissés-déposés à l'intérieur de pages.  Graphic objects located outside the pages, and representing page contents, can also be dragged and dropped inside pages.

La figure 38 représente la disposition des plans coulissants quand le plan supérieur est décalé vers la droite. La figure 39 représente la disposition des plans coulissants quand tous les plans, sauf le plan le plus inférieur, sont décalés. Comme déjà décrit, la transition (d'une des dispositions de plans coulissants à une autre) se fait de façon incrémentale, au moyen de simple mouvements de la souris, la pince décrite plus haut étant débloquée.  Figure 38 shows the arrangement of sliding planes when the upper plane is shifted to the right. Figure 39 shows the arrangement of sliding planes when all planes, except the lowest plane, are offset. As already described, the transition (from one arrangement of sliding planes to another) is incremental, by means of simple movements of the mouse, the clamp described above being unlocked.

On notera ici que, pour simplifier les manipulations, l'état de la pince peut être inversé par exemple en pressant sur la barre d'espace ou une autre touche du clavier du poste client. It should be noted here that, to simplify the operations, the state of the clamp can be reversed for example by pressing the space bar or another key on the keyboard of the client station.

Selon une variante, non représentée, la pince peut être déplacée sur un rail et il ne bloque que les plans situés à sa gauche. En d'autres termes, selon la position de la pince, les plans qui ne sont pas visibles à gauche de la pince sont bloqués et ceux qui sont à sa droite peuvent être décalés. According to a variant, not shown, the clamp can be moved on a rail and it blocks only the plans to the left. In other words, depending on the position of the clamp, the planes that are not visible to the left of the clamp are blocked and those to the right can be shifted.

Selon une autre variante, on peut prévoir des pinces sélectivement activées et désactivées entre deux pages adjacentes, de manière à ce que ces deux pages soient toujours, dans le cadre du processus de déplacement de plans, traitées de la même façon. According to another variant, it is possible to provide tongs that are selectively activated and deactivated between two adjacent pages, so that these two pages are always, in the context of the process of moving planes, treated in the same way.

On notera également ici que c'est le fait que la pince soit à l'état actif qui permet de tirer des liens ajoutés entre les pages (par glisser-déposer d'objets graphiques les représentant), sans entraîner le déplacement des plans tel que décrit. It will also be noted here that it is the fact that the clip is in the active state that makes it possible to draw links added between the pages (by dragging and dropping graphic objects representing them), without causing the plans to be moved as described.

Selon une autre forme de réalisation, les zones graphiques qui représentent des pages peuvent se trouver sur d'autres plans que ceux qui présentent les pages. La figure 40 According to another embodiment, the graphic areas that represent pages can be on other planes than those that present the pages. Figure 40

<Desc/Clms Page number 49><Desc / Clms Page number 49>

présente ainsi une configuration où les liens ajoutés de chaque page sont sur un ou plusieurs plans adjacents à ladite page.  thus presents a configuration where the added links of each page are on one or more planes adjacent to said page.

Les liens ajoutés peuvent aussi avantageusement être vues sous forme de vignettes comme des papillons collés sur les pages et déplaçables par l'utilisateur à souhait à l'aide de la souris. The added links can also advantageously be seen in the form of thumbnails as butterflies pasted on the pages and movable by the user at will using the mouse.

Selon une variante avantageuse, on peut disposer ces vignettes dans des zones vierges de la page qui auraient pu être utilisées par exemple pour afficher des bandeaux publicitaires. According to an advantageous variant, these thumbnails can be arranged in blank areas of the page that could have been used, for example, to display advertising banners.

Les liens ajoutés par l'utilisateur par glisser-déposer (ou le cas échéant manuellement à l'aide du clavier ou par des clics de souris), sont stockés dans le système par exemple sous forme d'une table TABLE, comme l'illustre la figure 41. The links added by the user by drag-and-drop (or if necessary manually using the keyboard or by mouse clicks), are stored in the system for example in the form of a TABLE table, as illustrated Figure 41.

Dans la suite, nous adoptons l'hypothèse (optionnelle) selon laquelle les liens ajoutés sur une page entraînent la création de liens inverses sur les pages pointées par ces liens ajoutés (bidirectionalité des liens). Ainsi, comme l'illustre la figure 42, en conséquence de la création des liens ajoutés de p2, p3 et p4 sur la page pl, un lien ajouté pi s'ajoute automatiquement sur les pages p2, p3 et p4.  In the following, we adopt the (optional) hypothesis according to which the links added on a page entail the creation of inverse links on the pages pointed by these added links (bidirectionality of the links). Thus, as illustrated in Figure 42, as a consequence of the creation of the added links of p2, p3 and p4 on the page p1, an added link pi is automatically added on pages p2, p3 and p4.

La création de liens ajoutés s'effectue quand l'utilisateur repère une relation entre différentes pages qu'il découvre au gré de sa navigation en suivant des liens hypertexte ou en se déplaçant à l'intérieur de grandes pages ou de mondes virtuels en trois dimensions (en réalité virtuelle immersive). Dans tous les cas, la création d'un lien ajouté peut se faire par simple glisser-déposer de la poignée ou autre miniaturisation de la page ou la scène couramment visualisée (par exemple de la scène 3D couramment visualisée) vers la poignée de la page à relier (autre scène 3D). The creation of added links is done when the user sees a relationship between different pages that he discovers as he navigates by following hypertext links or moving inside large pages or virtual worlds in three dimensions (in immersive virtual reality). In any case, the creation of an added link can be done by simply dragging and dropping the handle or other miniaturization of the page or the scene currently viewed (for example from the 3D scene currently displayed) to the handle of the page to connect (another 3D scene).

Les moyens de stockage des liens ajoutés sont avantageusement mis en #uvre de manière distante (sur un serveur), comme l'illustre la figure 43. L'utilisateur ajoute  The storage means of the added links are advantageously implemented remotely (on a server), as shown in FIG. 43. The user adds

<Desc/Clms Page number 50><Desc / Clms Page number 50>

et/ou supprime des liens ajoutés sur le poste client et ces manipulations sont répercutées sur le serveur, les communications se faisant par exemple par l'intermédiaire d'un Fournisseur d'Accès à l'Internet.  and / or deletes links added on the client station and these manipulations are reflected on the server, the communications being done for example via an Internet Service Provider.

Section 2 - Retrouver les liens ajoutés L'affichage de la page avec ses liens ajoutés peut être préparé sur le poste client, dans une architecture schématisée par le diagramme de la figure 44, ou sur le poste serveur, dans une architecture schématisée par le diagramme de la figure 45. On notera que les deux architectures sont adaptées à un fonctionnement selon le protocole HTTP par exemple. Section 2 - Finding the added links The display of the page with its added links can be prepared on the client computer, in an architecture schematized by the diagram of figure 44, or on the server, in an architecture schematized by the diagram of Figure 45. Note that the two architectures are suitable for operation according to the HTTP protocol for example.

Dans le cas de l'architecture de la figure 44, la requête ou lien Link de l'utilisateur est communiquée par le poste client, tant au serveur de la page demandée qu'au serveur où ont été stockés les liens ajoutés. En retour, avant présentation à l'utilisateur, les liens ajoutés fournis par le deuxième serveur sont graphiquement combinés, par le poste client, avec la page fournie par le premier serveur, et sont présentés conjointement à cette page. In the case of the architecture of FIG. 44, the request or Link link of the user is communicated by the client station, both to the server of the requested page and to the server where the added links have been stored. In return, before presentation to the user, the added links provided by the second server are graphically combined, by the client station, with the page provided by the first server, and are presented together with this page.

Dans le cas de l'architecture de la figure 45, la requête ou lien de l'utilisateur est communiquée par le poste client, uniquement au serveur où ont été stockés les liens ajoutés. Ce serveur se charge de retransmettre la requête au serveur de la page demandée pour recevoir cette page. En retour, les liens ajoutés sont ajoutés à la page et le tout constitue la réponse à la requête de l'utilisateur. La combinaison graphique des liens ajoutés avec la page peut être effectuée sur le serveur ou sur le poste client. In the case of the architecture of FIG. 45, the request or link of the user is communicated by the client station, only to the server where the added links have been stored. This server is responsible for retransmitting the request to the server of the requested page to receive this page. In return, the added links are added to the page and all is the answer to the user's request. The graphic combination of the links added with the page can be done on the server or on the client computer.

Section 3 - Création de liens ajoutés dans des Répertoires On connaît déjà dans l'état de la technique le concept dit de marque-page ou signet qui permet à un individu de mémoriser des liens vers ses pages favorites sur la Toile, un tel concept étant présent dans les navigateurs Internet courants. Ces Section 3 - Creating Links Added in Directories Already known in the state of the art concept called bookmark or bookmark that allows an individual to store links to its favorite pages on the Web, such a concept being present in current Internet browsers. These

<Desc/Clms Page number 51><Desc / Clms Page number 51>

derniers permettent de ranger les liens mémorisés dans des répertoires qui peuvent former une structure arborescente de répertoires et de sous-répertoires.  The latter store stored links in directories that can form a tree structure of directories and subdirectories.

L'établissement d'une toile personnelle (réseau personnel de navigation qui s'ajoute à la Toile) en créant (par glisser-déposer ou manuellement) des liens ajoutés directement sur des pages comme on l'a décrit dans la section précédente, est complémentaire à ces moyens classiques de rangement de liens dans des répertoires (constituant généralement des catégories personnelles de l'internaute). The establishment of a personal web (personal navigation network that is added to the Web) by creating (by drag-and-drop or manually) links added directly to pages as described in the previous section, is complementary to these traditional ways of storing links in directories (generally constituting personal categories of the user).

En effet : - l'utilisateur peut ranger dans un répertoire non seulement un lien (vers une page), mais aussi un lien ajouté (entre deux pages). Indeed: - the user can put in a directory not only a link (to a page), but also an added link (between two pages).

- les liens ajoutés peuvent ainsi être contextuels : un lien ajouté associé à une première page (ou plus exactement, associé à un lien vers une première page) et pointant sur une deuxième page peut exister dans le cadre d'un répertoire donné qui contient un lien vers cette première page sans exister dans un autre répertoire qui pourtant contient aussi le lien vers ladite la première page. the added links can thus be contextual: an added link associated with a first page (or more exactly, associated with a link to a first page) and pointing to a second page can exist within the framework of a given directory which contains a link to this first page without existing in another directory which also contains the link to the said first page.

Par exemple, dans le répertoire mes boissons favorites sur la page coca (marque déposée) peut se trouver un lien ajouté vers la page pepsi (marque déposée) alors que dans le répertoire mes styles de management préférés sur la même page coca peut ne pas se trouver de lien ajouté vers la page pepsi . For example, in the directory my favorite drinks on the page coca (registered trademark) can be a link added to the page pepsi (registered trademark) while in the directory my favorite management styles on the same page coca may not be find added link to the pepsi page.

(Voir l'exemple à la fin de cette section et la figure 51). (See the example at the end of this section and Figure 51).

(Toutes les marques citées dans le présent mémoire sont des Marques Déposées de leurs titulaires respectifs, notamment coca , pepsi , perrier et hp ). (All trademarks in this memo are Trademarks of their respective owners, including coca, pepsi, perrier and hp).

Dans les choix de conception adoptés dans toute la suite de la description : In the design choices adopted throughout the rest of the description:

<Desc/Clms Page number 52><Desc / Clms Page number 52>

- chaque lien ajouté appartient à un répertoire et un seul : un répertoire courant existe toujours, et c'est dans ce répertoire que les liens vers des pages et leurs liens ajoutés sont insérés par défaut ; si aucun répertoire n'est sélectionné par l'utilisateur pour être le répertoire courant, un premier répertoire courant lui est fourni par défaut quand il accède à une page et lui associe un premier lien ajouté.  - each added link belongs to a directory and only one: a current directory still exists, and it is in this directory that links to pages and their added links are inserted by default; if no directory is selected by the user to be the current directory, a first current directory is provided by default when he accesses a page and associates a first link added.

- la création d'un lien ajouté dans un répertoire donné engendre la création du lien ajouté inverse dans le même répertoire (s'il n'y existe pas déjà). Cette règle impose l'existence, dans le même répertoire, du lien vers la page pointée par le lien ajouté ; dans le cas où il n'existe pas, il y est automatiquement inséré ; ceci est illustré par l'exemple de la figure 46). - the creation of a link added in a given directory generates the creation of the added inverse link in the same directory (if it does not exist already). This rule imposes the existence, in the same directory, of the link to the page pointed by the added link; in the case where it does not exist, it is automatically inserted there; this is illustrated by the example of Figure 46).

- l'utilisateur peut sélectionner plusieurs répertoires comme étant répertoires courants ; les liens ajoutés visualisés pour une page courante sont alors constitués par l'union des liens ajoutés situés dans ces répertoires ; un nouveau lien ajouté inséré l'est dans chacun de ces répertoires ; enfin on verra dans la section Détection de Répertoires Proches que la recherche de répertoires proches se fera également sur la base de l'union des liens ajoutés situés dans ces répertoires. - the user can select several directories as current directories; the added links displayed for a current page are then constituted by the union of the added links located in these directories; a new added link inserted is in each of these directories; finally, we will see in the section "Detection of close directories" that the search for close directories will also be done on the basis of the union of the added links located in these directories.

L'utilisateur peut effectuer les actions suivantes : - insérer ou supprimer, dans un répertoire, un lien vers une page : * pour insérer une page, une des méthodes possibles est la suivante : l'utilisateur choisit un répertoire courant (ou plusieurs, voir l'explication du paragraphe précédent), ou reste dans le répertoire par défaut (qui est considéré comme répertoire courant), et accède à une page dont le lien sera automatiquement rangé dans ce (s) courant(s). The user can perform the following actions: - insert or delete, in a directory, a link to a page: * to insert a page, one of the possible methods is as follows: the user chooses a current directory (or more, see the explanation of the preceding paragraph), or remains in the default directory (which is considered as current directory), and accesses a page whose link will be automatically stored in this stream (s).

* pour supprimer une page, l'utilisateur sélectionne la page en question et actionne la commande supprimer (par exemple par la touche Suppr du clavier).  * to delete a page, the user selects the page in question and activates the delete command (for example by the Delete key on the keyboard).

<Desc/Clms Page number 53> <Desc / Clms Page number 53>

- créer un lien ajouté : * soit il crée manuellement un lien ajouté sur une page (typiquement en tapant son adresse URL au clavier), * soit il utilise la technique du glisser-déposer : à partir d'une première page, il tire dans une deuxième page un lien ajouté qui pointera vers la première page. - create an added link: * either he manually creates a link added on a page (typically by typing his URL address on the keyboard), * or he uses the technique of drag and drop: from a first page, he pulls in a second page an added link that will point to the first page.

- déplacer ou copier une ou plusieurs pages d'un répertoire à un autre : * soit, manuellement, il choisit les pages à déplacer ou copier, soit il utilise la technique de glisser-déposer ; on notera qu'en fait, l'utilisateur déplace ou copie des liens vers des pages, même s'il croit déplacer les pages elles-mêmes. - move or copy one or more pages from one directory to another: * either, manually, he chooses the pages to move or copy, or he uses the technique of drag and drop; in fact, the user moves or copies links to pages, even if he thinks he is moving the pages themselves.

Dans la suite de la description, pour simplifier la lecture et décrire ce que l'utilisateur croit faire , nous utiliserons parfois le mot page au lieu de lien vers une page . Ainsi l'on dira déplacer une page (ou copier une page ) en lieu et place de déplacer un lien vers une page ( copier un lien vers une page ). On dira aussi une page possède un lien ajouté au lieu de dire à un lien vers une page est associé un lien ajouté , ou encore lien ajouté sur une page au lieu de lien ajouté associé à un lien vers une page . De plus, lien vers une page est un raccourci pour lien vers une page ou vers un élément contenu dans une page . In the following description, to simplify the reading and describe what the user believes to do, we will sometimes use the word page instead of link to a page. Thus we say move a page (or copy a page) instead of moving a link to a page (copy a link to a page). It will also say a page has an added link instead of saying a link to a page is associated with an added link, or added link on a page instead of added link associated with a link to a page. In addition, a link to a page is a shortcut for linking to a page or to an element contained in a page.

Prenons un exemple: L'utilisateur a créé deux répertoires, libellés respectivement Drinks (pour mes boissons favorites ) et Mgt (pour styles de management ). Il a aussi à sa disposition un répertoire par défaut, libellé Buffer (pour tampon ) qui est créé automatiquement par le système. Let's take an example: The user has created two directories, labeled respectively Drinks (for my favorite drinks) and Mgt (for management styles). It also has at its disposal a default directory, labeled Buffer (which is created automatically by the system).

<Desc/Clms Page number 54><Desc / Clms Page number 54>

Selon l'approche classique de mémorisation des marque-pages, l'utilisateur insère le lien www.coca.com ( coca ) dans le répertoire Drinks. Il insère aussi le lien www. hp.com ( hp ) dans le répertoire Mgt.  According to the traditional approach of memorizing bookmarks, the user inserts the link www.coca.com (coca) in the directory Drinks. He also inserts the link www. hp.com (hp) in the Mgt directory.

Dans le cadre du répertoire courant qui en l'occurrence est Buffer (par défaut), l'utilisateur accède via la Toile à la page www.pepsi.com ( pepsi ). A partir de coca (qui se trouve dans Drinks) il tire (par glisser-déposer) un lien ajouté sur la page pepsi (voir figure 46). As part of the current directory which in this case is Buffer (default), the user accesses via the Web at www.pepsi.com (pepsi). From coca (which is in Drinks) it pulls (drag and drop) a link added to the pepsi page (see Figure 46).

Ce lien ajouté sur la page Pepsi va être www. coca.com. Comme, pour satisfaire l'hypothèse de conception mentionnée précédemment, un lien ajouté inverse doit être créé dans le même répertoire, la page coca doit y être introduite avec un lien ajouté www.pepsi.com. This link added on the Pepsi page will be www. coca.com. Since, to satisfy the design hypothesis mentioned above, an inverse added link must be created in the same directory, the COCA page must be introduced with an added link www.pepsi.com.

En résultat, les pages pepsi et coca se trouvent tous les deux dans Buffer, chacun ayant un lien ajouté sur l'autre. En effet, le lien sur la page coca a dû être dupliqué dans Buffer pour permettre la création du lien ajouté inverse (de coca vers pepsi). La figure 46 illustre cet exemple. As a result, the pepsi and coca pages are both in Buffer, each having an added link on the other. Indeed, the link on the coca page had to be duplicated in Buffer to allow the creation of the added inverse link (from coca to pepsi). Figure 46 illustrates this example.

L'interface homme-machine permettant ces opérations peut par exemple être celle schématisée dans les figures 46 à 51. The human-machine interface allowing these operations can for example be that shown schematically in FIGS. 46 to 51.

L'utilisateur peut, par glisser-déposer, copier ou déplacer une page vers un autre répertoire. L'utilisateur peut aussi copier ou déplacer un ensemble de pages d'un répertoire à un autre. Plusieurs cas de commande au système sont possibles : 1. soit ceci entraîne le déplacement ou la copie des liens vers ces pages, sans leurs liens ajoutés. (Voir figure 47) ; 2. soit ceci entraîne le déplacement ou la copie des liens vers ces pages, avec tous les liens ajoutés existant entre elles ; le déplacement n'est possible que pour les pages The user can drag and drop, copy or move a page to another directory. The user can also copy or move a set of pages from one directory to another. Several cases of control to the system are possible: 1. either this entails the displacement or the copy of the links towards these pages, without their added links. (See Figure 47); 2. either this involves moving or copying links to these pages, with all the added links existing between them; moving is only possible for pages

<Desc/Clms Page number 55><Desc / Clms Page number 55>

qui n'ont pas de liens ajoutés avec des pages externes à l'ensemble déplacé (les autres pages de l'ensemble sont copiés) ; figure 47 ; 3. soit ceci entraîne le déplacement ou la copie des liens vers ces pages, avec tous les liens ajoutés entre elles ou avec d'autres pages du même répertoire ; voir figure 48 ; En poursuivant le même exemple, l'utilisateur déplace la page coca du répertoire Buffer vers le répertoire Drinks ; si l'on se trouve dans le premier ou deuxième cas de commande au système, la page coca se trouvant déjà dans Drinks, cette opération n'a aucun effet. Ceci est illustré par la figure 47.  who do not have links added to pages outside the moved set (other pages in the set are copied); Figure 47; 3. either this involves moving or copying links to these pages, with all links added between them or with other pages in the same directory; see Figure 48; Continuing the same example, the user moves the coca page from the Buffer directory to the Drinks directory; if one is in the first or second case of control to the system, the page Coca already being in Drinks, this operation has no effect. This is illustrated in Figure 47.

Dans un autre cas de figure, l'utilisateur voudrait ranger dans le répertoire Drinks tous les liens ajoutés de la page coca. Si l'on se trouve dans le troisième cas de commande au système, en résultat du glisser-déposer de coca (qui se trouve dans Buffer) vers le répertoire Drinks, la page pepsi se retrouve également dans Drinks et le lien ajouté entre pepsi et coca est reproduit dans Drinks. L'utilisateur pourrait ensuite supprimer du répertoire Buffer les pages pepsi et coca (avec tous les liens ajoutés entre elles) ; deux opérations sont illustrées sur la figure 48. In another case, the user would like to store in the Drinks directory all the links added to the COCA page. If we are in the third system control case, as a result of the drag and drop of coke (which is in Buffer) to the Drinks directory, the pepsi page is also in Drinks and the link added between pepsi and Coca is reproduced in Drinks. The user could then delete from the Buffer directory the pages pepsi and coca (with all the links added between them); two operations are illustrated in Figure 48.

On notera que pepsi (ou coca) n'aurait pas pu être supprimé si une troisième page perrier (marque déposée) se trouvait dans le même répertoire Buffer et avait un lien ajouté sur pepsi ou sur coca), à moins que cette troisième page perrier ne fut supprimée dans la même action. Ceci est illustré par la figure 49. Note that pepsi (or coca) could not have been deleted if a third page perrier (registered trademark) was in the same directory Buffer and had a link added on pepsi or coca), unless this third page perrier was deleted in the same action. This is illustrated in Figure 49.

Si l'on se trouve dans le deuxième cas de commande au système, l'utilisateur peut directement déplacer l'ensemble des liens pepsi et coca vers le répertoire Drinks, ainsi que les liens ajoutés entre eux. Aucune page externe à l'ensemble supprimé n'ayant un lien ajouté vers coca, cette page est alors supprimé d'office. Ceci est illustré sur la figure 50.  If one is in the second case of control to the system, the user can directly move all the pepsi and coca links to the Drinks directory, as well as the links added between them. No external page to the deleted set having a link added to coca, this page is then deleted automatically. This is illustrated in Figure 50.

<Desc/Clms Page number 56> <Desc / Clms Page number 56>

Poursuivons l'exemple : l'utilisateur, qui pense que les styles de management des sociétés coca et hp (marques déposées) méritent d'être mis en relation, tire par glisser-déposer un lien ajouté sur la page hp à partir de la page coca. Ceci est illustré à la figure 51. Let's continue the example: the user, who thinks that the management styles of the companies coca and hp (trademarks) deserve to be related, pulls by drag and drop an added link on the page hp from the page Coca. This is illustrated in Figure 51.

La création du lien ajouté de hp vers coca entraîne la création du lien ajouté inverse de coca vers hp, les deux liens ajoutés se trouvant dans le répertoire Mgt (où se trouve la destination du glisser-déposer). Bien que l'opération effectuée ne consiste pas explicitement en un déplacement ou une copie de page, elle implique la copie de la page coca dans le répertoire Mgt (puisque les deux extrémités de tout lien ajouté doivent se trouver dans un même répertoire) . The creation of the added link from hp to coca results in the creation of the added reverse link from coca to hp, the two links added being in the Mgt directory (where the destination of the drag and drop is located). Although the operation performed does not explicitly consist of a page move or copy, it involves copying the COCA page into the Mgt directory (since both ends of any added links must be in the same directory).

Section 4 - Marque-pages contextuels Rappelons que le système classique de marque-pages (déjà mentionné au début de la section précédente) permet à l'utilisateur de ranger dans un répertoire un lien sur (ou une copie de) la page courante visualisée, dans le cas où il veut mémoriser ledit lien. Section 4 - Contextual Bookmarks Remember that the classic system of bookmarks (already mentioned at the beginning of the previous section) allows the user to put in a directory a link on (or a copy of) the current page viewed, in the case where he wants to memorize said link.

De plus, les navigateurs modernes offrent l'option d'afficher, dans une sous-fenêtre adjacente à celle contenant la page visualisée, la structure arborescente de répertoires de marque-pages et les marque-pages (liens ou copies mémorisés) qu'ils contiennent. In addition, modern browsers offer the option of displaying, in a sub-window adjacent to the one containing the viewed page, the tree structure of bookmark directories and the bookmarks (links or copies stored) they contain.

Cette option d'affichage des liens mémorisés, simultanément à la page accédée par l'utilisateur, peut être perfectionnée en rendant contextuel l'affichage des répertoires de liens mémorisés et des liens (ou copies) mémorisés eux-mêmes. En effet, plutôt que de présenter la structure des répertoires et les liens qu'ils contiennent, de manière indépendante de la navigation de l'utilisateur, le système peut directement : - pointer sur les répertoires contenant déjà le lien sur la page courante visualisée, - et présenter leurs contenus respectifs. This option for displaying the stored links, simultaneously with the page accessed by the user, can be improved by making the display of the stored link directories and the stored links (or copies) contextual. In fact, rather than presenting the structure of the directories and the links they contain, independently of the user's navigation, the system can directly: - point to the directories already containing the link on the current page viewed, - and present their respective contents.

<Desc/Clms Page number 57><Desc / Clms Page number 57>

Ainsi, l'utilisateur n'a pas à aller chercher, dans ses répertoires, les liens (sur les pages qui l'avaient intéressé) mémorisés qui se trouvent être dans le contexte de la page courante, puisqu'il les a automatiquement à sa disposition.  Thus, the user does not have to search, in its directories, the links (on the pages that had interested) stored that happen to be in the context of the current page, since it automatically has them at its disposition.

Dans une mise en #uvre pratique, le système présente ces répertoires (contenant la page courante) dans la zone présentant les liens ajoutés associés à la page courante en leur donnant une apparence différente (l'icône représentant un répertoire ou une page d'un répertoire qui n'est pas associé par un lien ajouté à la page courante est différente de l'icône représentant une page associée par lien ajouté). Ceci est schématisé dans la figure 52 qui illustre l'affichage des répertoires dans lesquels est rangé la page courante, automatiquement, simultanément à l'affichage de la page courante. L'utilisateur peut, par un simple clic sur un bouton (par exemple sur la barre comportant un triangle sur la figure 52), visualiser le contenu de ces répertoires et retrouver ainsi les autres pages qu'il avait rangées ensemble dans ces répertoires. In a practical implementation, the system presents these directories (containing the current page) in the area showing the added links associated with the current page by giving them a different appearance (the icon representing a directory or a page of a directory that is not associated with an added link to the current page is different from the icon representing an associated page by added link). This is shown schematically in FIG. 52 which illustrates the display of the directories in which the current page is stored, automatically, simultaneously with the display of the current page. The user can, by a simple click of a button (for example on the bar with a triangle in Figure 52), view the contents of these directories and find the other pages he had stored together in these directories.

Selon un détail de mise en #uvre, dans le cas où la page en question n'est rangée que dans un seul répertoire, les autres pages dudit répertoire (si elles ne sont pas trop nombreuses) peuvent être affichées directement, sans même nécessiter un clic, pour offrir ainsi un accès contextuel aux liens mémorisés de manière encore plus directe. According to an implementation detail, in the case where the page in question is stored in only one directory, the other pages of said directory (if they are not too many) can be displayed directly, without even requiring a click, to provide contextual access to the stored links even more directly.

L'utilisateur pourra cliquer directement sur la présentation graphique représentant un répertoire, par exemple une icône représentant un dossier (r2 sur la figure 52) pour ouvrir une nouvelle page présentant le répertoire r2 avec tout son contenu (les sousrépertoires et les pages qu'il contient). The user can click directly on the graphic presentation representing a directory, for example an icon representing a folder (r2 in Figure 52) to open a new page with the directory r2 with all its contents (the sub-directories and the pages it contains).

Bien évidemment, la présentation de la figure 52 peut être remplacée par une présentation classique d'arbre comme celle que l'on trouve dans les systèmes de marque-pages existants. Of course, the presentation of Figure 52 can be replaced by a classic tree presentation like that found in existing bookmark systems.

<Desc/Clms Page number 58><Desc / Clms Page number 58>

Une fonction analogue concerne l'affichage des liens Ajoutés associés à une page courante. Il s'agit de pouvoir naviguer au moyen de liens Ajoutés de deuxième rang .  A similar function is for displaying Added links associated with a current page. It's about being able to navigate through Second Added Links.

La figure 53 illustre un exemple de mise en #uvre de cette approche. En cliquant sur une zone graphique particulière d'un lien Ajouté p3 associé à la page pl, l'utilisateur peut voir également les liens Ajoutés (p31, p32 et p33) qui sont associés à la page p3 alors que c'est la page pl qui est couramment visualisée (et non la page p3). Figure 53 illustrates an example of how this approach is implemented. By clicking on a particular graphic area of an Added p3 link associated with the page pl, the user can also see the Added links (p31, p32 and p33) which are associated with the page p3 whereas it is the page p which is currently viewed (and not page p3).

Bien évidemment, cette approche peut être généralisée (récursivement) pour l'affichage de liens Affichés de rangs supérieurs à 2. Of course, this approach can be generalized (recursively) for the display of links displayed with ranks greater than 2.

On observera en outre que chacune des présentations graphiques représentant un lien mémorisé ou un lien ajouté (par exemple une vignette représentant la page sous forme miniaturisée) peut être accessoirement dotée d'un signe qui indique que la page pointée a été mise à jour, le cas échéant, depuis la dernière visite de l'utilisateur. Ceci constitue une invitation à aller consulter à nouveau ladite page. It will further be observed that each of the graphic presentations representing a stored link or an added link (for example a thumbnail representing the page in miniaturized form) may be incidentally provided with a sign which indicates that the pointed page has been updated, the if applicable, since the last visit of the user. This constitutes an invitation to consult the said page again.

En outre, ce même signe peut figurer sur la représentation graphique de chaque répertoire dont au moins l'une des pages a été mise à jour. In addition, this same sign may appear on the graphic representation of each directory of which at least one of the pages has been updated.

Section 5 - Publication de liens ajoutés Un perfectionnement du système consiste à permettre de publier les liens ajoutés que l'on a associés à une page. Par publier, on entend le fait de les mettre à la disposition du public ou d'un groupe déterminé d'utilisateurs (qui pourront y accéder par exemple en donnant un mot de passe). Section 5 - Publishing Added Links An enhancement to the system is to publish the added links that have been associated with a page. Publication means making them available to the public or to a specific group of users (who can access them for example by giving a password).

Le système permet deux cas d'accès aux liens ajoutés publiés : The system allows two cases of access to published added links:

<Desc/Clms Page number 59><Desc / Clms Page number 59>

- les liens ajoutés publiés peuvent être visualisés directement au moyen d'un navigateur Internet standard, - ou les liens ajoutés publiés être consultés au moyen de l'interface cliente du système et enrichir la toile personnelle de l'utilisateur qui les consulte.  - the published added links can be viewed directly by means of a standard Internet browser, - or the added links published be consulted through the system client interface and enrich the personal web of the user who consults them.

Visualisation directe au moyen d'un navigateur standard Dans le cas d'une visualisation directe au moyen d'un navigateur standard, un premier utilisateur visualise par des moyens standard une page publiée par un deuxième utilisateur sur la Toile, ladite page possédant des liens ajoutés associés à une autre page. Cette visualisation peut être le fruit d'un accès ou d'une réception : - le premier utilisateur peut accéder via la Toile à une page présentant les liens ajoutés publiée par le deuxième utilisateur, de manière classique, en utilisant son navigateur Internet standard et en communiquant l'adresse URL de la page, - le premier utilisateur peut recevoir une page présentant les liens ajoutés, publiée par le deuxième utilisateur, de manière classique par courrier électronique. Direct visualization using a standard browser In the case of direct visualization using a standard browser, a first user views by standard means a page published by a second user on the Web, said page having links added associated with another page. This visualization can be the result of an access or a reception: the first user can access via the Web to a page presenting the added links published by the second user, in a conventional manner, using his standard Internet browser and communicating the URL address of the page, - the first user can receive a page presenting the links added, published by the second user, conventionally by email.

La page à laquelle il a été accédé via la Toile ou reçue par courrier électronique comporte des champs permettant au premier utilisateur de s'identifier pour le cas où il voudrait consulter les liens ajoutés au moyen du système. Il s'agit donc d'une invitation à utiliser le système, dont les avantages principaux sont : - de permettre de mémoriser les liens ajoutés dans son espace personnel sur un serveur et de les retrouver automatiquement , et - de recevoir automatiquement des suggestions de nouveaux liens ajoutés à partir de tiers. The page to which it was accessed via the Web or received by e-mail includes fields allowing the first user to identify himself in case he would like to consult the links added using the system. It is therefore an invitation to use the system, the main advantages of which are: - to allow to memorize the links added in his personal space on a server and to find them automatically, and - to automatically receive suggestions of new links added from third parties.

Un exemple schématique de cette invitation en est illustré à la figure 54. A schematic example of this invitation is shown in Figure 54.

<Desc/Clms Page number 60> <Desc / Clms Page number 60>

Consultation au moyen du système Dans le cas d'une consultation au moyen du système, lorsqu'un premier utilisateur accède, pour une page donnée, aux liens ajoutés chez un deuxième utilisateur, ces liens ajoutés s'ajoutent à ceux qui, le cas échéant, avaient déjà été associés à cette même page chez le premier utilisateur. System Lookup In the case of a lookup through the system, when a first user accesses, for a given page, links added to a second user, these added links are added to those that, if any , had already been associated with this same page at the first user.

On va maintenant décrire la manière dont un deuxième utilisateur est sélectionné par le premier utilisateur pour y puiser des liens ajoutés. We will now describe how a second user is selected by the first user to draw added links.

Pour chaque page à laquelle accède le premier utilisateur, trois listes de répertoires appartenant à des deuxièmes utilisateurs lui sont proposées, comme l'illustre la figure 55a. L'utilisateur peut sélectionner (par exemple en cliquant une case à cocher) un ou plusieurs éléments de ces listes pour indiquer qu'il souhaite ajouter leurs liens ajoutés dans sa propre liste de liens ajoutés. Les trois listes sont décrites ci-dessous : 1. le contenu de la première liste est optionnel : ce contenu existe dans le cas où l'auteur de la page en question est lui-même un utilisateur du système et a voulu suggérer des liens ajoutés au premier utilisateur ; ceci est décrit en détail plus loin dans la section Suggestion de liens ajoutés par l'administrateur du site ; 2. la deuxième liste ( voisins d'intérêt ) a pour objet de présenter au premier utilisateur les répertoires ayant le plus de probabilité de contenir des liens ajoutés intéressants par rapport à son profil d'intérêts ; la liste de ces répertoires est déterminée automatiquement par le système en comparant les toiles personnelles des utilisateurs ; ceci est décrit plus loin dans la section Détection de Répertoires Proches ). For each page accessed by the first user, three lists of directories belonging to second users are proposed to him, as shown in Figure 55a. The user can select (for example by clicking a checkbox) one or more items from these lists to indicate that he wants to add their added links to his own list of added links. The three lists are described below: 1. the content of the first list is optional: this content exists in the case where the author of the page in question is himself a user of the system and wanted to suggest added links the first user; this is described in detail later in the Suggestion of links added by the site administrator section; 2. the second list (neighbors of interest) is intended to present to the first user the directories most likely to contain interesting links added to its interest profile; the list of these directories is determined automatically by the system by comparing the personal webs of the users; this is described later in the section on Detecting Close Directories).

<Desc/Clms Page number 61><Desc / Clms Page number 61>

3. la troisième liste ( copains ) contient des répertoires choisis par le premier utilisateur (par exemple, des répertoires appartenant aux toiles personnelles d'amis, collègues, experts, etc.).  3. the third list (buddies) contains directories chosen by the first user (for example, directories belonging to the personal webs of friends, colleagues, experts, etc.).

Selon une variante, peut s'ajouter aux trois listes ci-dessus une quatrième liste des répertoires appartenant au premier utilisateur. According to one variant, can be added to the three lists above a fourth list of directories belonging to the first user.

Dans le premier cas présenté plus haut (visualisation directe au moyen d'un navigateur standard), le pseudonyme du deuxième utilisateur qui est l'émetteur des liens ajoutés reçus par le premier utilisateur - ou du répertoire contenant ces liens ajoutés (on notera ici qu'il peut également s'agir d'un autre répertoire du premier utilisateur) - est présenté d'office en première position dans la troisième liste ( copains ) en mode actif (c'est-à-dire sélectionné) par défaut. In the first case presented above (direct visualization by means of a standard browser), the pseudonym of the second user who is the sender of the added links received by the first user - or of the directory containing these added links (note here that it can also be another directory of the first user) - is automatically displayed in first position in the third list (buddies) in active mode (that is to say selected) by default.

La troisième liste, peut avantageusement être basée sur : - une liste par défaut donnée globalement par l'utilisateur pour toutes les pages ; - et surchargée par les préférences fournies par l'utilisateur expressément pour la page en question. The third list can advantageously be based on: a default list given globally by the user for all the pages; - and overloaded by the preferences provided by the user specifically for the page in question.

Dans l'ensemble de liens ajoutés associés à la page qu'il est en train de visualiser, l'utilisateur reçoit les liens ajoutés supplémentaires puisés dans les répertoires sélectionnés dans ces trois listes. On peut ainsi considérer que l'utilisateur visite ces répertoires. In the set of added links associated with the page that it is viewing, the user receives additional added links drawn from the selected directories in these three lists. It can thus be considered that the user visits these directories.

Des moyens pour sélectionner des liens ajoutés, sur la base de critères données par l'utilisateur ou associés à la page courante, peuvent être avantageusement mis en #uvre. Par exemple, l'utilisateur peut spécifier qu'il ne veut puiser dans les répertoires cochés que des liens ajoutés sur des pages étiquettées : - Demandeur plutôt que Offreur , afin de découvrir de nouveaux clients plutôt que de nouveaux vendeurs, Means for selecting added links, based on criteria given by the user or associated with the current page, can be advantageously implemented. For example, the user can specify that he wants to draw from the checked directories only links added on labeled pages: - Requestor rather than Offerer, in order to discover new customers rather than new sellers,

<Desc/Clms Page number 62><Desc / Clms Page number 62>

- selon des critères concernant l'audience visée : Age , Zone Géographique , Sexe , Préférence (parmi un ensemble fini de préférences), - etc.  - according to criteria concerning the targeted audience: Age, Geographical Area, Sex, Preference (among a finite set of preferences), - etc.

*Les liens ajoutés qui lui sont ainsi suggérés doivent être distingués de ceux qu'il avait lui-même ajoutés, de manière à ce qu'il puisse sélectivement les accepter et les refuser. Dans ce but, les liens ajoutés peuvent se trouver dans un parmi plusieurs modes différents: Suggéré , Accepté , Refus et Gelé (ce dernier mode étant décrit plus loin dans la section Liens en mode Gelé ). * The added links suggested to him should be distinguished from those he himself had added, so that he can selectively accept and reject them. For this purpose, the added links can be in one of several different modes: Suggested, Accepted, Refused and Frozen (the latter mode is described later in the Frozen Links section).

On donnera plus loin dans le chapitre III une description plus complète de la mise en #uvre technique de ces modes. Chapter III gives a more complete description of the technical implementation of these modes.

Les liens ajoutés reçus par un premier utilisateur, à partir des liens ajoutés publiés par un deuxième utilisateur (ou à partir des liens ajoutés d'un autre répertoire du premier utilisateur), sont au départ chez le premier utilisateur en mode Suggéré . The added links received by a first user, from the added links published by a second user (or from links added from another directory of the first user), are initially at the first user in Suggested mode.

Suite à une action de l'utilisateur, chaque lien ajouté en mode Suggéré peut passer à l'un parmi les autres modes. L'interface homme-machine permettant ceci est schématisée à la figure 55b. Following a user action, each link added in Suggested mode can switch to one of the other modes. The human-machine interface for this is shown schematically in Figure 55b.

A cet effet, les moyens de stockage associent aux liens ajoutés un attribut Mode qui peut prendre comme valeur les modes déjà mentionnés à l'exception de Suggéré (c'est-à-dire, l'une parmi trois valeurs : Accepté, Refusé, Gelé). La figure 56 présente un diagramme de classe pour les liens ajoutés, selon la représentation standard UML ( Unified Modeling Language ) mettant en évidence l'attribut Mode des liens ajoutés. For this purpose, the storage means associates with the added links a Mode attribute which can take as value the modes already mentioned with the exception of Suggested (that is to say, one of three values: Accepted, Refused, Frozen). Figure 56 shows a class diagram for the added links, based on the Unified Modeling Language (UML) standard representation highlighting the Mode attribute of the added links.

Un lien ajouté en mode Suggéré chez un premier utilisateur n'existe que pendant la visite des liens ajoutés (pour la page en question) chez un deuxième utilisateur (ou dans un autre répertoire du premier utilisateur). Il n'est pas affiché en dehors de A link added in Suggested mode to a first user only exists during the visit of the links added (for the page in question) to a second user (or to another directory of the first user). It is not displayed outside of

<Desc/Clms Page number 63><Desc / Clms Page number 63>

cette visite. Rappelons que cette visite se fait dès que et tant que un ou plusieurs répertoire (s) est (sont) sélectionné(s) dans l'une des listes (Spécialistes, Voisins, Copains).  this visit. Remember that this visit is done as soon as and as long as one or more directory (s) is (are) selected (s) in one of the lists (Specialists, Neighbors, Buddies).

Un lien ajouté en mode Suggéré n'est pas stocké dans l'espace de stockage personnel du premier utilisateur car, à chaque nouvelle visite, il est recréé à partir du lien ajouté correspondant stocké chez le deuxième utilisateur, ou encore dans l'autre répertoire du premier utilisateur. A link added in Suggested mode is not stored in the personal storage of the first user because, at each new visit, it is recreated from the corresponding added link stored in the second user, or in the other directory of the first user.

Le passage d'un lien ajouté du mode Suggéré au mode Refusé a pour effet de filtrer automatiquement ledit lien ajouté lors des accès ultérieurs à l'ensemble des liens ajoutés stockés dans l'espace mémoire du deuxième utilisateur, ou dans un autre répertoire du premier utilisateur, pour la même page. The passage of an added link from the Suggested mode to the Denied mode has the effect of automatically filtering said added link for subsequent access to all the added links stored in the second user's memory space, or in another directory of the first user. user, for the same page.

Le passage au mode Accepté signifie que l'utilisateur valide le lien ajouté qui est en mode Suggéré. Cette action a pour effet : 1. de stocker ledit lien ajouté dans son espace de stockage personnel, de manière à ce qu'il lui soit présenté à nouveau avec chaque nouvelle présentation de la page à laquelle ledit lien ajouté est associé ; cette présentation a lieu même si ledit lien ajouté a été supprimé à la source (chez le deuxième utilisateur, ou dans l'autre répertoire du premier utilisateur) - ceci par opposition aux liens ajoutés en mode Suggéré qui ne sont plus présentés dès le moment où ils sont supprimés chez le deuxième utilisateur ; en outre, cette présentation a lieu même si la source (à savoir le deuxième utilisateur ou l'autre répertoire du premier utilisateur) n'est plus sélectionnée (a été décochée). Switching to Accept mode means that the user validates the added link that is in the Suggested mode. This action has the effect of: 1. storing said added link in its personal storage space, so that it is presented again with each new presentation of the page to which said added link is associated; this presentation takes place even if the added link has been deleted at the source (at the second user, or in the other directory of the first user) - this as opposed to the links added in Suggested mode that are no longer presented from the moment they are deleted at the second user; moreover, this presentation takes place even if the source (ie the second user or the other directory of the first user) is no longer selected (has been unchecked).

2. si le répertoire dans lequel ledit lien ajouté est rangé, est publié, de publier d'office (sauf instruction contraire de la part de l'utilisateur) ledit lien ajouté - ceci par opposition aux liens ajoutés en mode Suggéré qui eux ne seront pas publiés. 2. if the directory in which the said added link is stored, is published, publish automatically (unless the user otherwise instructs) said added link - this as opposed to the added links in Suggested mode which they will not not published.

<Desc/Clms Page number 64><Desc / Clms Page number 64>

L'insertion (manuelle ou par glisser-déposer) d'un lien ajouté sur une page entraîne d'office sa mise en mode Accepté (puisque l'utilisateur l'a inséré lui-même).  The insertion (manual or drag-and-drop) of a link added to a page automatically causes it to be set to Accept mode (since the user has inserted it himself).

Section 6 - Détection de Répertoires Proches Présentation générale Le système détecte pour l'utilisateur l'existence d'autres utilisateurs qui partagent ses intérêts (et ses goûts) par rapport à une page courante qu'il est en train de visualiser et qui représente donc le contexte courant de ses intérêts. Section 6 - Detection of Close Directories Overview The system detects for the user the existence of other users who share its interests (and tastes) in relation to a current page that it is viewing and which therefore represents the current context of his interests.

Ainsi, par rapport à une page courante visualisée par un premier utilisateur, le système sélectionne les deuxièmes utilisateurs les plus proches , c'est-à-dire ayant, dans leur réseau de liens ajoutés publiés, d'une part ladite page, et d'autre part, autour de ladite page, l'ensemble le plus grand de liens ajoutés en commun avec le premier utilisateur. Thus, compared to a current page viewed by a first user, the system selects the second closest users, that is to say having, in their network of added links published, on the one hand said page, and d on the other hand, around said page, the largest set of links added in common with the first user.

Pour chacun des deuxièmes utilisateurs sélectionnés par le système, les liens ajoutés associés à ladite page qui ne figurent pas chez le premier utilisateur sont suggérés à ce dernier. For each of the second users selected by the system, the added links associated with said page that are not included in the first user are suggested to the latter.

En variante, la sélection des deuxièmes utilisateurs proches peut se faire par rapport à un ensemble de pages sélectionnées par le premier utilisateur, plutôt que par rapport à une seule page. On va décrire dans la suite le procédé de sélection à partir d'une seule page, l'homme de métier saura adapter cette méthode au cas de plusieurs pages. Alternatively, the selection of second close users can be done with respect to a set of pages selected by the first user, rather than compared to a single page. We will describe in the following the selection process from a single page, the skilled person will adapt this method to the case of several pages.

Avantages La recherche des deuxièmes utilisateurs s'effectue de manière focalisée ; elle ne s'effectue pas en fonction de leur profil global d'intérêts (vis-à-vis du profil global Advantages The search for second users is done in a focused way; it is not done according to their overall interest profile (vis-à-vis the overall profile

<Desc/Clms Page number 65><Desc / Clms Page number 65>

d'intérêts du premier utilisateur). Ceci constitue un avantage tant au niveau de la pertinence du résultat que des performances d'exécution.  interest of the first user). This is an advantage both in terms of the relevance of the result and performance performance.

Au niveau de la pertinence du résultat, l'avantage de la focalisation est de pouvoir comparer les profils des utilisateurs en faisant abstraction des éléments de ces profils qui ne sont pas dans le contexte qui intéresse l'utilisateur au moment courant. In terms of the relevance of the result, the advantage of the focus is to be able to compare the profiles of the users by disregarding the elements of these profiles that are not in the context that interests the user at the current time.

Autrement-dit, le nombre des éléments pertinents (par rapport au contexte courant) qui se trouvent être en commun entre le premier utilisateur et un deuxième utilisateur avec lequel il est comparé, d'une part n'est pas dilué dans la masse des éléments qui sont en commun globalement, et d'autre part peut être relativisé par rapport à la taille du domaine du contexte courant. In other words, the number of relevant elements (relative to the current context) that are found to be in common between the first user and a second user with whom it is compared, on the one hand, is not diluted in the mass of the elements. which are globally common, and on the other hand can be relativized with respect to the size of the domain of the current context.

Pour focaliser les recherches de profils voisins, l'état de la technique connue consiste à partitionner les éléments des profils selon des catégories adoptées par l'ensemble des utilisateurs, qui permettent de les classer globalement ou par rapport à des attributs qui les caractérisent. On spécifie ainsi leur appartenance aux domaines respectifs pris en compte lors des recherches, ce qui permet d'élaguer les éléments des profils qui ne sont pas dans le domaine d'intérêt courant de l'utilisateur. In order to focus the searches of neighboring profiles, the state of the prior art consists in partitioning the elements of the profiles according to categories adopted by all the users, which make it possible to classify them globally or in relation to attributes that characterize them. Thus, their membership in the respective domains taken into account during the searches is specified, which makes it possible to prune the elements of the profiles that are not in the current interest area of the user.

Cependant, la catégorisation des éléments des profils nécessite pour les utilisateurs de s'entendre sur les vocabulaires de catégories à partager. Or cette approche n'est pas avantageusement adaptée à des systèmes largement décentralisés tels que l'Internet. L'avantage essentiel du procédé selon cet aspect de la présente invention est de focaliser la recherche sans devoir classer les éléments des profils selon des catégories partagées, et donc sans avoir à s'entendre sur des vocabulaires communs de catégories. However, the categorization of profile elements requires users to agree on the vocabularies of categories to share. However, this approach is not advantageously adapted to widely decentralized systems such as the Internet. The essential advantage of the method according to this aspect of the present invention is to focus the search without having to classify the elements of the profiles according to shared categories, and thus without having to agree on common vocabularies of categories.

Au niveau des performances, la sélection peut se faire sur la base d'une recherche en accès direct grâce à une structure de données (telle qu'un fichier inversé) qui permette de retrouver les deuxièmes utilisateurs proches directement à partir de ladite page, ou même à partir de ladite page et de ses liens ajoutés. At the performance level, the selection can be done on the basis of a search in direct access thanks to a data structure (such as an inverted file) which makes it possible to find the second close users directly from said page, or even from that page and its added links.

<Desc/Clms Page number 66> <Desc / Clms Page number 66>

Détails de la détection de Répertoires Proches Comme les utilisateurs peuvent placer des mêmes liens ajoutés dans des répertoires différents, le procédé peut servir à sélectionner des répertoires au lieu d'utilisateurs. Detection Details of Near Directories As users can place the same links added in different directories, the process can be used to select directories instead of users.

Notamment, le système peut avantageusement servir à sélectionner ; - des répertoires proches du premier utilisateur, - plusieurs répertoires d'un même deuxième utilisateur. In particular, the system can advantageously serve to select; - directories close to the first user, - several directories of the same second user.

Dans la suite, on décrira donc l'approche consistant à sélectionner des répertoires plutôt que des utilisateurs. In the following, we will describe the approach of selecting directories rather than users.

Comme déjà indiqué pour le cas de la recherche des utilisateurs les plus proches, la sélection des répertoires les plus proches peut également se faire très efficacement grâce à une structure de données (tel qu'un fichier inversé) permettant de retrouver en accès direct les répertoires contenant une page donnée (la page courante de l'utilisateur). L'accès direct peut même se baser sur la page donnée et les liens Ajoutés qui lui sont associés. As already indicated for the case of searching for the closest users, the selection of the closest directories can also be done very efficiently thanks to a data structure (such as an inverted file) allowing to find in direct access the directories containing a given page (the current page of the user). Direct access can even be based on the given page and the associated links associated with it.

On notera à cet égard que les liens Ajoutés à partir desquels est lancée la sélection sont ceux du répertoire courant (ou ceux de l'ensemble des répertoires courants sélectionnés par l'utilisateur, comme décrit dans la section Création de liens Ajoutés dans des Répertoires ). Note in this regard that the Added links from which the selection is started are those of the current directory (or those of all the current directories selected by the user, as described in Creating Links in Directories). .

La figure 57 schématise les deux types d'exécution de requête d'accès aux données (dans le cas où les données sont rangées dans des tables relationnelles) : - l'accès direct aux liens Ajoutés à partir : - d'une ou plusieurs pages, - d'un utilisateur, Figure 57 shows the two types of data access request execution (in case the data is stored in relational tables): - direct access to the links Added from: - one or more pages - a user,

<Desc/Clms Page number 67><Desc / Clms Page number 67>

- dans un (ou plusieurs) répertoires ; - l'accès direct aux utilisateurs et leurs répertoires à partir : - d'une (ou plusieurs) pages, - et de ses liens ajoutés (obtenus par une requête du premier type).  - in one (or more) directories; - direct access to users and their directories from: - one (or more) pages, - and its added links (obtained by a request of the first type).

Rappelons que le premier type de requête est celui permettant les fonctionnalités Retrouver des liens Ajoutés décrites plus haut, alors que le deuxième type de requête est celle de Détection de Répertoires Proches , objet de la présente section. Recall that the first type of request is the one that allows the Recover Added Links features described above, while the second type of request is the "Detect Close Directories", which is the subject of this section.

Les répertoires les plus proches, sélectionnés automatiquement, sont présentés à l'utilisateur dans la deuxième liste (intitulée voisins d'intérêt ) illustrée de manière schématique dans la figure 55a. Comme déjà décrit dans la section précédente ( Publication de liens ajoutés ), l'utilisateur peut cocher un ou plusieurs des répertoires qui lui sont proposés par le système. En résultat, de nouveaux liens ajoutés, puisés dans ce ou ces répertoires, lui sont suggérés en association avec la page courante (conformément à la description de la section précédente). The nearest directories, automatically selected, are presented to the user in the second list (called neighbors of interest) schematically illustrated in Figure 55a. As already described in the previous section (Publication of added links), the user can check one or more of the directories offered by the system. As a result, new links added, drawn from this or these directories, are suggested in association with the current page (as described in the previous section).

Le système peut aussi offrir à l'utilisateur des moyens de tenter de se mettre en relation - par des moyens de communication synchrone sur Internet tels que la messagerie simultanée, la visioconférence, etc. - avec les utilisateurs possédant ces répertoires qui seraient en ligne en même temps que l'utilisateur. The system can also provide the user with the means to attempt to connect - via synchronous communication means on the Internet such as simultaneous messaging, video conferencing, and so on. - with the users having these directories which would be online at the same time as the user.

En effet, dans les deux types d'architecture client-serveur représentés respectivement sur les figures 44 et 45, les requêtes que les utilisateurs forment au moyen de leur navigateur, sont communiquées au serveur dans lequel est exécuté le système. Ce dernier est donc capable de savoir si les utilisateurs en question sont en ligne et si on peut communiquer avec eux. In fact, in the two types of client-server architecture represented respectively in FIGS. 44 and 45, the requests that the users form by means of their browser are communicated to the server in which the system is executed. The latter is therefore able to know if the users in question are online and if we can communicate with them.

<Desc/Clms Page number 68> <Desc / Clms Page number 68>

L'utilisateur peut aussi se mettre en relation par communication asynchrone, notamment par courrier électronique ou dans le cadre de forums de discussion, avec ces utilisateurs proches (que lui fait découvrir le système), même s'ils ne sont pas en ligne en même temps. The user can also get in touch by asynchronous communication, in particular by email or in the context of discussion forums, with these close users (whom he makes discover the system), even if they are not online at the same time. time.

On notera à cet égard, que grâce aux moyens déjà mentionnés de sélection en accès direct d'utilisateurs à partir de pages qui les intéressent (en plus d'une structure de chemin d'accès direct aux pages à partir d'utilisateurs et répertoires) le système est apte à construire, avec de très bonnes performances, des communautés d'utilisateurs partageant des mêmes centres d'intérêts. Les sujets de discussion créés sont ceux pour lesquels un ensemble de pages de taille suffisante a intéressé un grand nombre d'utilisateurs. Ces derniers sont alors invités à participer à un forum de discussion ayant comme thème cet ensemble de pages. It should be noted in this respect, that thanks to the already mentioned means of selection in direct access of users from pages of interest to them (in addition to a structure of direct path to pages from users and directories) the system is able to build, with very good performances, communities of users sharing the same interests. The discussion topics created are those for which a set of pages of sufficient size has interested a large number of users. They are then invited to participate in a discussion forum having as theme this set of pages.

On va maintenant décrire la méthode de calcul de proximité. We will now describe the method of calculating proximity.

En partant de la page courante (c'est-à-dire la page visualisée par le premier utilisateur) avec ses liens ajoutés dans le répertoire courant - ou encore avec l'union des liens ajoutés associés à cette page dans les répertoires courants sélectionnés par l'utilisateur - le système trouve parmi les autres répertoires (du premier utilisateur et/ou parmi les répertoires publiés de seconds utilisateurs) contenant ladite page, ceux qui ont le score de proximité le plus élevé autour de ladite page. Starting from the current page (that is, the page viewed by the first user) with its links added in the current directory - or with the union of the added links associated with this page in the current directories selected by the user - the system finds among the other directories (of the first user and / or among the published directories of second users) containing said page, those which have the highest proximity score around said page.

En résultat, le système propose à l'utilisateur ces répertoires dans l'ordre de leur proximité. As a result, the system offers the user these directories in the order of their proximity.

La proximité est calculée à différents niveaux. Proximity is calculated at different levels.

Au premier niveau, la proximité est fonction du nombre de liens ajoutés communs associés à la page courante. La figure 58 illustre la détermination de la proximité au niveau 1. At the first level, proximity is a function of the number of common added links associated with the current page. Figure 58 illustrates the determination of proximity at level 1.

<Desc/Clms Page number 69><Desc / Clms Page number 69>

Au niveau 2, la proximité est également fonction du nombre de liens ajoutés communs associés aux pages reliées à la page courante par lien ajouté, comme l'illustre la figure 59.  At Level 2, proximity is also a function of the number of common added links associated with pages linked to the current page by added link, as shown in Figure 59.

Au niveau n, la proximité est fonction du nombre de liens ajoutés communs associés aux pages reliées indirectement à la page courante par lien ajouté, n étant le nombre d'étapes d'indirection. At level n, proximity is a function of the number of common added links associated with pages indirectly linked to the current page by added link, where n is the number of indirection steps.

Proximité transitive On va décrire ci-après un perfectionnement du procédé de calcul de proximité entre deux répertoires décrit plus haut. Transitive Proximity An improvement of the proximity calculation method between two directories described above will be described below.

Le système peut enrichir son évaluation de proximité en anticipant les propagations probables de liens ajoutés dans le futur. The system can enrich its proximity assessment by anticipating the likely propagations of links added in the future.

En effet, les liens ajoutés qui au moment courant ne sont pas encore propagés (suggérés) d'un répertoire proche à un autre, le seront probablement dans le futur, et, après acceptation éventuelle, seront prêts à être suggérés à un troisième répertoire (et ainsi de suite). Le système peut enrichir son estimation de proximité en anticipant ces propagations (suggestions) et acceptations, et en calculant la proximité d'un répertoire en prenant en compte cette anticipation. Indeed, the added links which at the current moment are not yet propagated (suggested) from one close repertoire to another, will probably be in the future, and, after possible acceptance, will be ready to be suggested to a third repertoire ( And so on). The system can enrich its estimate of proximity by anticipating these propagations (suggestions) and acceptances, and by calculating the proximity of a repertoire taking into account this anticipation.

Ceci peut se faire par deux approches différentes : - soit par simulation prédictive : La simulation prédictive prend en compte la probabilité d'acceptation (telle que décrite plus loin) des futures suggestions de liens ajoutés, dans les répertoires proches du répertoire courant de l'utilisateur. This can be done by two different approaches: - either by predictive simulation: The predictive simulation takes into account the probability of acceptance (as described later) of the future suggestions of links added, in the directories close to the current directory of the user.

<Desc/Clms Page number 70><Desc / Clms Page number 70>

Le procédé de simulation prédictive consiste à simuler la propagation de liens ajoutés, à partir de répertoires à priori non proches du répertoire courant, vers des répertoires proches du répertoire courant. Suite à la propagation (simulée) d'un lien ajouté à partir de chaque répertoire non proche (vers un répertoire proche), un coefficient de probabilité d'acceptation (décrit plus loin) lié à ce répertoire non proche est associé audit lien ajouté.  The predictive simulation method consists of simulating the propagation of added links, from directories a priori not close to the current directory, to directories close to the current directory. Following the propagation (simulated) of a link added from each directory not close (to a near directory), a probability of acceptance coefficient (described below) related to this non-close directory is associated with said added link.

La proximité peut alors être affinée en tenant compte des nouveaux liens ajoutés (introduits par la simulation) pondérés par leur coefficient de probabilité d'acceptation. The proximity can then be refined taking into account the new added links (introduced by the simulation) weighted by their acceptance probability coefficient.

Le calcul de proximité peut être affiné progressivement, en prenant en compte des niveaux de plus en plus indirects. En effet, la simulation prédictive peut se faire à des profondeurs d'indirection de plus en plus grandes : ainsi un lien ajouté peut être propagé (par simulation) dans un répertoire proche du répertoire proche en question, avant d'arriver dans ce dernier, et ainsi de suite. Pour chaque nouveau répertoire, le système applique au lien ajouté le coefficient de probabilité d'acceptation associé au répertoire d'où il a été puisé. A l'arrivée dans le répertoire proche en question, les liens ajoutés (suggérés par simulation) ont un coefficient de probabilité d'acceptation qui représente la composition des probabilités d'acceptation dans les différents répertoires où ils sont passés. The proximity calculation can be refined gradually, taking into account more and more indirect levels. Indeed, the predictive simulation can be done at increasingly greater depths of indirection: thus an added link can be propagated (by simulation) in a directory close to the close repertoire in question, before arriving in the latter, And so on. For each new directory, the system applies to the added link the acceptance probability coefficient associated with the directory from which it was drawn. Upon arrival in the close repertoire in question, the added links (suggested by simulation) have a probability of acceptance coefficient which represents the composition of the probabilities of acceptance in the different directories where they are passed.

Optionnellement, l'utilisateur peut paramétrer le système pour lui demander de lui suggérer directement les liens ajoutés propagés par simulation dans le répertoire proche (bien que ces liens ajoutés ne soient pas encore acceptés par le possesseur du répertoire proche). Optionally, the user can configure the system to ask him to directly suggest the added links propagated by simulation in the near directory (although these added links are not yet accepted by the owner of the near directory).

De manière progressivement plus indirecte, l'utilisateur peut demander au système de lui suggérer directement les liens ajoutés propagés par simulation dans les répertoires proches d'un répertoire proche, et ainsi de suite. Lors des propagations In a more indirect way, the user can ask the system to directly suggest added links propagated by simulation in directories close to a nearby directory, and so on. During the propagations

<Desc/Clms Page number 71><Desc / Clms Page number 71>

d'un répertoire à l'autre, les coefficients de probabilité d'acceptation sont composés et les suggestions peuvent être effectuées dans l'ordre de ces coefficients.  from one repertoire to another, the acceptance probability coefficients are composed and suggestions can be made in the order of these coefficients.

- soit selon l'approche décrite ci-dessous et appelée calcul de proximité transitive et qui offre l'avantage d'une plus grande rapidité de calcul. - or according to the approach described below and called transitive proximity calculation and which offers the advantage of a greater speed of calculation.

Considérons trois répertoires R1,R2 et R3. La proximité transitive de R3 pour RI est fonction du minimum entre la proximité de R2 pour RI et la proximité de R3 pour R2 . Consider three directories R1, R2 and R3. The transitive proximity of R3 for R1 is a function of the minimum between the proximity of R2 for RI and the proximity of R3 for R2.

Le principe sous-jacent est, en effet, que dans une chaîne de propagations potentielles de liens ajoutés, la proximité transitive est fonction de la proximité du maillon le plus faible de la chaîne. The underlying principle is, in fact, that in a chain of potential propagations of added links, the transitive proximity is a function of the proximity of the weakest link in the chain.

A la valeur obtenue (en prenant le minimum des proximités), on doit aussi appliquer la composition des coefficients de probabilité d'acceptation des répertoires respectifs (acceptation de R2 par RIet de R3 par R2). At the value obtained (taking the minimum of the proximities), one must also apply the composition of the coefficients of probability of acceptance of the respective repertoires (acceptance of R2 by RIet of R3 by R2).

Un exemple est illustré sur la figure 60 : - la proximité de R2 pour RI est de 2 ; effet les liens ajoutés pointant sur les pages p2 et p3 sont en commun ; - la proximité de R3 pour R2 est de 1 (p5 seul est en commun) ; en découle que la Proximité Transitive de R3 pour RI est de 1 (le minimum entre 2 et 1), alors que la proximité de R3 pour RI n'est que de 0 (aucun lien ajouté en commun). An example is shown in Figure 60: - the proximity of R2 for RI is 2; effect the added links pointing to pages p2 and p3 are in common; the proximity of R3 for R2 is 1 (only p5 is in common); It follows that the Transitive Proximity of R3 for RI is 1 (the minimum between 2 and 1), whereas the proximity of R3 for RI is only 0 (no link added in common).

Bien évidemment, la proximité transitive peut aussi être calculée dans une chaîne plus longue de propagations potentielles, en prenant le minimum des proximités entre les répertoires pris séquentiellement dans ladite chaîne et en lui appliquant la Of course, the transitive proximity can also be calculated in a longer chain of potential propagations, taking the minimum of the proximities between the repertoires taken sequentially in the said chain and applying to it the

<Desc/Clms Page number 72><Desc / Clms Page number 72>

composition des coefficients de probabilité d'acceptation existant pour tous les maillons de la chaîne.  the composition of the acceptance probability coefficients existing for all links in the chain.

Coefficient de probabilité d'acceptation La détermination de la probabilité d'acceptation, dans un premier répertoire, d'un lien ajouté suggéré provenant d'un deuxième répertoire peut se baser sur l'historique des acceptations de liens ajoutés suggérés à partir de ce deuxième répertoire. Acceptance probability coefficient The determination of the probability of accepting, in a first directory, a suggested added link from a second directory may be based on the history of suggested added link acceptances from that second directory. directory.

Dans ce sens, chaque premier répertoire maintient un compteur pour chaque deuxième répertoire à partir duquel il a reçu des suggestions dans le passé. Bien entendu, ce compteur peut être maintenu pendant une durée limitée dans le temps. La valeur de ce compteur représente le coefficient de probabilité d'acceptation. In this sense, each first directory maintains a counter for each second directory from which it has received suggestions in the past. Of course, this counter can be maintained for a time limited in time. The value of this counter represents the acceptance probability coefficient.

Le coefficient de probabilité d'acceptation est fonction du nombre de liens ajoutés acceptés (en mode normal ou en mode gelé) moins le nombre de liens ajoutés refusés rapporté au nombre (total) de liens ajoutés suggérés. The acceptance probability coefficient is a function of the number of accepted links accepted (in normal mode or in frozen mode) minus the number of refused links added to the number (total) of suggested added links.

Ce procédé peut comporter diverses sophistications que saura mettre en #uvre l'homme du métier, et notamment une pondération permettant de donner un poids plus fort aux acceptations/refus plus récents. This method may include various sophistications that will be implemented by the skilled person, and in particular a weighting to give a stronger weight to more recent acceptances / refusals.

Pour un nouveau répertoire, c'est-à-dire à partir duquel aucun lien ajouté n'avait été suggéré dans le passé vers le répertoire courant de l'utilisateur, le système peut se baser sur un répertoire intermédiaire (ayant un historique dans le répertoire courant et le nouveau répertoire ayant un historique chez lui) pour déterminer la probabilité d'acceptation. Ceci s'effectue selon l'approche suivante : Si un répertoire RI jouit d'un fort coefficient de probabilité d'acceptation (CO-1) auprès d'un répertoire RO, et qu'un répertoire R2 a un fort coefficient de probabilité For a new directory, ie from which no added link has been suggested in the past to the current directory of the user, the system can be based on an intermediate directory (having a history in the current directory and the new directory with a history at home) to determine the probability of acceptance. This is done according to the following approach: If an RI directory has a high coefficient of acceptance probability (CO-1) from a RO directory, and a R2 directory has a high probability coefficient

<Desc/Clms Page number 73><Desc / Clms Page number 73>

d'acceptation (CI-2) auprès du répertoire RI, alors, par transitivité, R2 aura un fort coefficient de probabilité d'acceptation (CO-2) auprès du répertoire RO.  of acceptance (CI-2) with the repertoire RI, then, by transitivity, R2 will have a high coefficient of probability of acceptance (CO-2) with the repertoire RO.

Plus précisément, la valeur CO-1 reflète le degré de confiance que le possesseur du répertoire RO accorde au contenu du répertoire RI. En effet, puisqu'en général le possesseur du répertoire RO accepte les suggestions provenant du répertoire RI, il accorde un degré de confiance relativement fort à la validité de l'acte d'acceptation dans le répertoire RI. En d'autres termes, le possesseur du répertoire RO considère que le possesseur du répertoire RI a un bon jugement en matière d'acceptation et de refus dans ledit répertoire RI. More precisely, the value CO-1 reflects the degree of confidence that the owner of the RO directory gives to the contents of the directory RI. Indeed, since in general the owner of the RO directory accepts the suggestions from the directory RI, he gives a relatively high degree of confidence in the validity of the act of acceptance in the directory RI. In other words, the owner of the RO directory considers that the owner of the directory RI has a good judgment in terms of acceptance and refusal in said directory RI.

Or il se trouve que le possesseur du répertoire RI a accepté dans ce répertoire une grande partie des suggestions provenant du répertoire R2 (c'est-à-dire que la valeur CI -2 est élevée). Puisque son jugement est bon aux yeux du possesseur du répertoire RO, le système peut conclure que le possesseur du répertoire RO va probablement aussi accepter les suggestions provenant du répertoire R2. Now it happens that the owner of the directory RI has accepted in this directory a large part of the suggestions from the directory R2 (that is to say, the value CI -2 is high). Since his judgment is good in the eyes of the owner of the RO directory, the system can conclude that the owner of the RO directory will probably also accept suggestions from the R2 directory.

Par le même raisonnement, si la valeur CO-1 est forte et si la valeur CI-2 est faible, alors, le système peut conclure que la valeur CO-2 sera faible. By the same reasoning, if the CO-1 value is high and the CI-2 value is low, then the system can conclude that the CO-2 value will be low.

Bien évidemment, la profondeur de la transitivité (le nombre des intermédiaires) peut être plus grande : le système peut se baser sur plusieurs intermédiaires qui se sont fortement validés dans le passé (de préférence le passé récent - voir plus haut à propos de la pondération) pour prédire qu'un nouveau répertoire sera probablement validé ou pas. Mais, bien évidemment, la fiabilité du coefficient obtenu baissera avec la profondeur de la transitivité. Of course, the depth of transitivity (the number of intermediaries) can be greater: the system can be based on several intermediaries that have strongly validated in the past (preferably the recent past - see above on the weighting ) to predict that a new directory will probably be validated or not. But, of course, the reliability of the obtained coefficient will decrease with the depth of the transitivity.

On a déjà mentionné que la détection de répertoires proches permet de présenter ces répertoires à l'utilisateur dans la deuxième liste (intitulée voisins d'intérêt ) illustrée de manière schématique dans la figure 55a. Le coefficient de probabilité d'acceptation est un indicateur qui est présenté avec chacun de ces répertoires (il peut It has already been mentioned that the detection of close directories makes it possible to present these directories to the user in the second list (called neighbors of interest) illustrated schematically in FIG. 55a. The probability of acceptance coefficient is an indicator that is presented with each of these directories (it can

<Desc/Clms Page number 74><Desc / Clms Page number 74>

par exemple être intitulé statistiques d'acceptation ). L'utilisateur préférera cocher des répertoires qui ont ce coefficient le plus élevé possible.  for example be entitled acceptance statistics). The user will prefer to check directories that have this highest coefficient possible.

Section 7 - Suggestion de liens ajoutés par l'administrateur d'un site Présentation L'administrateur d'un site ( Webmaster selon la terminologie anglo-saxonne) spécifie, dans le code source de la page à laquelle accède un utilisateur, ou encore dans une table contenue dans un serveur approprié et dont la clé est l'adresse de ladite page, l'ensemble des adresses des répertoires (dits Spécialistes ) qui peuvent être proposés à l'utilisateur dans la première liste de la figure 55a. Section 7 - Suggestion of links added by the administrator of a site Presentation The administrator of a site (Webmaster according to the English terminology) specifies, in the source code of the page to which a user accesses, or in a table contained in a suitable server and whose key is the address of said page, all the addresses of directories (so-called Specialists) that can be offered to the user in the first list of Figure 55a.

Les deux étapes suivantes peuvent être mises en #uvre dans l'exploitation de ces répertoires (répertoires candidats) pour un utilisateur donné : 1. En première étape, le système ne retient parmi les répertoires candidats que ceux qui sont les plus proches du répertoire courant (au sens de la section précédente Détection de Répertoires Proches ). Toutefois, cette approche n'est valide que si la page à laquelle l'utilisateur a accédé n'est pas nouvelle pour celui-ci, et que l'utilisateur lui avait déjà associé des liens ajoutés, de manière à ce que le système puisse les comparer avec ceux figurant dans chacun des répertoires candidats spécifiés par l'administrateur (pour déterminer dans quelle mesure ce répertoire est proche, et ne retenir ainsi que les répertoires candidats les plus proches). The following two steps can be implemented in the exploitation of these directories (candidate directories) for a given user: 1. In the first step, the system retains among the candidate directories only those that are closest to the current directory (in the sense of the previous section Detection of Close Directories). However, this approach is valid only if the page accessed by the user is not new to the user, and the user has already added links to it, so that the system can compare them with those in each of the candidate directories specified by the administrator (to determine how close this directory is, and thus retain only the nearest candidate directories).

Si, au contraire, la page à laquelle l'utilisateur accède est nouvelle pour lui, le système peut, optionnellement, tenter tout de même de sélectionner des répertoires candidats proches, en comparant les liens ajoutés qui se trouvent dans le répertoire courant de l'utilisateur (ces liens ajoutés n'étant pas associés avec la page courante, puisque celle-ci est nouvelle, mais à d'autres pages) avec les liens ajoutés des If, on the contrary, the page to which the user accesses is new for him, the system can, optionally, still try to select nearby candidate directories, by comparing the added links which are in the current directory of the user (these added links are not associated with the current page, since this one is new, but to other pages) with the added links of

<Desc/Clms Page number 75><Desc / Clms Page number 75>

répertoires candidats, en partant de pages situées à des niveaux progressivement plus éloignés de la page courante dans les répertoires candidats.  Candidate directories, starting from pages located at levels progressively farther from the current page in the candidate directories.

En cas d'échec, le système peut proposer les premiers répertoires spécifiés par l'administrateur du site comme devant être présentés par défaut. In case of failure, the system may propose the first directories specified by the site administrator to be presented by default.

2. Le système ne retient, dans les répertoires choisis en première étape, que les liens ajoutés les plus avantageux selon un ensemble de critères de pertinence dont le poids relatif peut être réglé par l'administrateur du site. 2. The system retains, in the directories chosen in the first step, only the most advantageous added links according to a set of relevance criteria whose relative weight can be set by the site administrator.

A partir des répertoires Spécialistes candidats (et/ou des répertoires proches voisins d'intérêt ), le système peut aussi synthétiser un premier répertoire spécialiste de manière personnalisée et le proposer à l'utilisateur par défaut. Le contenu de ce nouveau répertoire est créé en regroupant des liens ajoutés sélectionnés dans les répertoires candidats, qui à priori sont potentiellement les plus pertinents pour l'utilisateur. From the Candidate Specialist directories (and / or near-neighbor directories of interest), the system can also synthesize a first specialist directory in a personalized way and propose it to the default user. The content of this new directory is created by grouping selected links selected in the candidate directories, which are potentially the most relevant for the user.

En relation avec chaque lien ajouté, l'administrateur peut spécifier : - la manière dont ledit lien ajouté va être graphiquement présenté avec la page courante ; - et la manière dont le lien ajouté inverse sera graphiquement présenté quand la page vers laquelle pointe ledit lien ajouté pointe va être visualisée. In relation to each added link, the administrator may specify: - the manner in which said added link will be graphically presented with the current page; - and the way in which the added reverse link will be graphically presented when the page towards which points said added link tip will be viewed.

Répertoires de la liste intitulée Spécialistes Le document source d'une page à laquelle accède l'utilisateur (par exemple une page écrite en langage HTML) peut contenir, parmi les données non affichées à l'écran, l'adresse d'un premier répertoire (contenant des liens ajoutés) à proposer par défaut à l'utilisateur. Directories in the list entitled Specialists The source document of a page accessed by the user (for example a page written in HTML language) may contain, among the data not displayed on the screen, the address of a first directory (containing links added) to propose by default to the user.

<Desc/Clms Page number 76> <Desc / Clms Page number 76>

Cette adresse (composée par exemple du pseudonyme de l'utilisateur et du chemin du répertoire que l'administrateur du site a choisis) est utilisée par le système pour être présentée en première position dans la première liste ( Spécialistes ) de la figure 5 5 a. This address (composed for example of the user's pseudonym and the directory path chosen by the site administrator) is used by the system to be presented first in the first list (Specialists) in Figure 5 5a. .

Cette adresse est cochée (sélectionnée) par défaut par le système, ce qui signifie que l'utilisateur est implicitement considéré comme souhaitant se faire suggérer les liens ajoutés du répertoire en question dans sa propre liste de liens ajoutés (conformément à la description faite dans la section Publication de liens ajoutés ). This address is checked (selected) by default by the system, which means that the user is implicitly considered as wishing to be suggested the added links of the directory in question in his own list of added links (as described in the description below). section Posting Added Links).

Dans le document source, l'administrateur peut aussi spécifier des adresses supplémentaires de répertoires d'autres spécialistes. Celles-ci serviront d'éléments optionnels dans la première liste ( Spécialistes) de répertoires proposés à l'utilisateur, mais ne seront pas cochées par défaut. In the source document, the administrator can also specify additional addresses of directories of other specialists. These will be used as optional elements in the first list (Specialists) of directories proposed to the user, but will not be checked by default.

Alternativement, ces adresses de répertoires spécialistes, au lieu d'être notées dans le document source de la page à laquelle accède l'utilisateur, peuvent être stockées sur un serveur dans une table qui fournit la correspondance entre l'adresse de la page et les adresses des répertoires Spécialistes qui lui sont attribués. Dans le cas où ledit serveur est aussi le serveur de liens ajoutés pour l'utilisateur courant, cette alternative permet d'éviter un aller-retour supplémentaire sur le serveur de liens ajoutés dans le cas de l'architecture de la figure 44. Alternatively, these specialized directory addresses, instead of being noted in the source document of the page accessed by the user, can be stored on a server in a table that provides the correspondence between the address of the page and the Directory addresses Specialists assigned to it. In the case where said server is also the added link server for the current user, this alternative makes it possible to avoid an additional round trip on the added link server in the case of the architecture of FIG. 44.

Sélection parmi les répertoires candidats Le nombre d'adresses de répertoires Spécialistes (spécifiées par l'administrateur) peut être bien plus élevé que le nombre de répertoires qui seront effectivement présentés à l'utilisateur. Un nombre maximal de répertoires à présenter peut être fixé par l'administrateur et/ou par l'utilisateur. Selecting Candidate Directories The number of Specialist directory addresses (specified by the administrator) can be much greater than the number of directories that will actually be presented to the user. A maximum number of directories to be presented can be set by the administrator and / or by the user.

<Desc/Clms Page number 77> <Desc / Clms Page number 77>

Comme déjà mentionné brièvement dans la présentation faite plus haut, parmi les répertoires candidats, le système choisit les répertoires les plus proches de l'utilisateur. Ceci s'effectue : - soit directement selon la technique décrite plus haut dans la section Détection de Répertoires Proches , - soit selon une extension de cette technique, appelé Proximité Décalée , que l'on va maintenant décrire. As already mentioned briefly in the presentation above, among the candidate directories, the system selects the directories closest to the user. This is done either: - either directly according to the technique described above in the section Detection of Close Directories, - or according to an extension of this technique, called Proximity Offset, which will now be described.

Proximité Décalée Dans le cas où la page courante (visualisée par l'utilisateur) : - ne possède aucun lien ajouté (notamment parce que l'utilisateur y accède pour la première fois dans son répertoire courant) - ou n'a pas suffisamment de liens ajoutés en commun avec aucun des répertoires candidats(par rapport à un critère quantitatif fixé lors du paramétrage du système), le système, n'ayant pas la possibilité de détecter (par le procédé décrit dans la section Détection de Répertoires Proches ), parmi les répertoires candidats, les répertoires les plus proches , sélectionne les répertoires candidats par les étapes suivantes : a. le système retient les répertoires candidats offrant le plus grand nombre de pages d'éloignement de niveau 1 (c'est-à-dire des pages pointées par des liens ajoutés associés à la page courante) qui soient en commun, b. pour chacune des pages d'éloignement de niveau 1 qui sont en commun, le système calcule la Proximité (tel que décrit dans la section Détection de Répertoires Proches ) en partant de ces pages. Proximity Offset In case the current page (viewed by the user): - does not have any added links (in particular because the user accesses them for the first time in his current directory) - or does not have enough links added together with none of the candidate directories (in relation to a quantitative criterion set during the system configuration), the system, not being able to detect (by the method described in the section on the detection of close directories), among the candidate directories, the closest directories, selects the candidate directories by the following steps: a. the system retains the candidate directories with the highest number of Tier 1 removal pages (ie, pages pointed to by added links associated with the current page) that are in common, b. for each of the level 1 remoteness pages that are in common, the system calculates the Proximity (as described in the section Detecting Close Directories) from these pages.

<Desc/Clms Page number 78> <Desc / Clms Page number 78>

La Proximité Décalée pour le répertoire candidat est fonction des Proximités ainsi déterminées. The Proximity Offset for the candidate directory is a function of the Proximities thus determined.

Au final, le système choisit les répertoires candidats offrant les valeurs les plus élevées de proximité Décalée déterminées comme décrit ci-dessus. In the end, the system selects candidate directories offering the highest values of proximity Offset determined as described above.

Dans le cas où le résultat de la recherche du point a. n'est pas suffisamment satisfaisant, le système peut éventuellement rechercher, dans le répertoire courant, des pages situées à des niveaux progressifs d'éloignement dans les répertoires candidats (Proximité Décalée d'éloignement > 1). In case the result of the search of the point a. is not satisfactory enough, the system can possibly search, in the current directory, pages located at progressive levels of remoteness in the candidate directories (Proximity Shifted away> 1).

Au point b. , le niveau de profondeur de recherche de Proximité peut éventuellement être augmenté ou diminué (le cas de recherche le moins coûteux en ressources informatiques étant celui avec une profondeur de niveau 0, c'est-à-dire en court-circuitant le point b. ). In point b. , the Proximity search depth level can optionally be increased or decreased (the least expensive search case in computing resources being the one with level 0 depth, that is, by shorting the point b. ).

La figure 61 illustre la détermination de proximité décalée d'éloignement 1 pour un répertoire candidat. Dans cet exemple, le système trouve, dans le répertoire courant de l'utilisateur : - deux pages en commun (p1et p2), - pour la page pl du répertoire candidat, une valeur de proximité égale à deux liens ajoutés sur trois ; et pour la page p2, une valeur de proximité égale à un lien ajouté sur deux. Fig. 61 illustrates the offset out-of-proximity determination 1 for a candidate repertoire. In this example, the system finds, in the current directory of the user: - two pages in common (p1 and p2), - for the page p1 of the candidate directory, a proximity value equal to two links added to three; and for page p2, a proximity value equal to one link added to two.

On notera que cette technique de calcul de proximité décalée à partir d'un niveau progressif d'éloignement en partant de la page courante peut également être utilisée de manière générale pour rechercher des répertoires proches (notamment parmi un ensemble d'utilisateurs), en complément de la technique de calcul de proximité décrite dans la section Détection de Répertoires Proches . Note that this proximity calculation technique shifted from a progressive level of distance from the current page can also be used in general to search for nearby directories (in particular among a set of users), in addition of the proximity calculation technique described in the section on Detecting Close Directories.

<Desc/Clms Page number 79> <Desc / Clms Page number 79>

La figure 62 illustre ainsi la détermination de proximité décalée d'éloignement 1 d'un répertoire B par rapport à une page courante pO dans un Répertoire A. On observe que dans cet exemple, la détermination de proximité tel que décrite dans la section Détection de Répertoires Proches ) aurait échoué puisque la page pO n'existe pas dans le répertoire B. FIG. 62 thus illustrates the determination of the offset 1 away proximity of a directory B with respect to a current page p0 in a directory A. It will be observed that in this example, the proximity determination as described in the section Detection of Close Directories) would have failed since the pO page does not exist in the B directory.

Sélection parmi les liens ajoutés Les liens ajoutés contenus dans les répertoires candidats sélectionnés (c'est-à-dire les Spécialistes proposés dans la première liste de la figure 55a) peuvent comporter bien plus de liens ajoutés (en mode Accepté ou Gelé ) que ceux qui seront suggérés aux utilisateurs. En effet, le système est apte à sélectionner les liens ajoutés les plus pertinents pour chaque utilisateur qui les recevra. Ainsi la suggestion de liens ajoutés se fait de manière personnalisée . La sélection est effectuée par exemple en fonction d'un ou plusieurs des critères suivants (sélectionnés notamment en fonction des ressources qu'ils nécessitent à priori pour leur mise en #uvre): - l'intérêt potentiel du lien ajouté en question (dit lien ajouté candidat ) pour l'utilisateur : comme déjà mentionné dans la section Création de liens ajoutés dans des Répertoires , les liens ajoutés sont bidirectionnels, c'est-à-dire qu'un lien ajouté associé à une page Pl et pointant sur une page P2 implique (dès qu'il est Accepté) la création du lien ajouté associé à la page P2 et pointant sur la page PI ; il est donc dans l'intérêt de l'administrateur du site de suggérer un lien ajouté sur une page P2 potentiellement la plus intéressante possible, puisque * plus la page P2 est intéressante, plus l'utilisateur va la consulter ; * et à chaque fois qu'il va la consulter, le lien ajouté pointant sur la page P1 va y figurer et va ainsi inciter l'utilisateur à aller consulter ladite page P1. Selection from the added links The added links contained in the selected candidate directories (that is to say the Specialists proposed in the first list of figure 55a) can include many more links added (in Accepted or Frozen mode) than those which will be suggested to users. Indeed, the system is able to select the most relevant added links for each user who will receive them. So the suggestion of added links is done in a personalized way. The selection is made for example according to one or more of the following criteria (selected in particular according to the resources they require a priori for their implementation): - the potential interest of the added link in question (said link added candidate) for the user: as already mentioned in the section Creating links added in Directories, the added links are bidirectional, that is to say that an added link associated with a page Pl and pointing on a page P2 implies (as soon as it is accepted) the creation of the added link associated with page P2 and pointing to the page PI; it is therefore in the interest of the site administrator to suggest a link added on a potentially interesting P2 page, since * the more interesting the P2 page, the more the user will consult it; * and every time he goes to consult, the added link pointing to the page P1 will appear and will thus encourage the user to go to the said page P1.

Pour satisfaire à ce critère particulier, le système a notamment la possibilité d'analyser si le lien ajouté candidat avait été accepté ou gelé dans des répertoires proches du répertoire courant de l'utilisateur. Pour ce faire, et comme l'illustre la In order to satisfy this particular criterion, the system notably has the possibility of analyzing whether the added candidate link has been accepted or frozen in directories close to the user's current directory. To do this, and as illustrated by

<Desc/Clms Page number 80><Desc / Clms Page number 80>

figure 63, le système recherche des répertoires (répertoire proche candidat) possédant : * la page courante (à noter que, du fait que la page courante est nouvelle pour l'utilisateur, aucun lien ajouté n'y est encore associé) ; * le lien ajouté candidat associé à la page courante, en mode accepté ou gelé, * et le répertoire de l'utilisateur ayant une forte valeur de proximité décalée d'éloignement 1 (ou progressivement plus si nécessaire) par rapport au répertoire proche candidat en partant de la page courante.  Figure 63, the system searches for directories (candidate close directory) with: * the current page (note that because the current page is new to the user, no added link is yet associated); * the added candidate link associated with the current page, in accepted or frozen mode, * and the directory of the user having a strong proximity value shifted by distance 1 (or progressively more if necessary) compared to the nearest candidate directory in from the current page.

- le fait que l'utilisateur avait déjà reçu la page vers laquelle pointe le lien ajouté candidat (s'il ne s'agit pas d'une nouvelle page pour lui) dans le répertoire courant, et le fait qu'en outre la page pointée par le lien ajouté candidat est déjà bien ancrée dans le répertoire courant (dans le sens où l'utilisateur a une probabilité relativement forte de la consulter en navigant d'une page a l'autre du répertoire), étant donné que plus l'utilisateur accédera à la page pointée par le lien ajouté, plus il verra le lien ajouté inverse qui l'incitera à aller revisiter la page courante (voir cependant le troisième sous-critère ci-dessous qui consiste à fixer un seuil supérieur au nombre de liens ajoutés préexistants) ; propriété d'ancrage est mesurée en comptant dans le répertoire courant le nombre de liens ajoutés qui pointent sur la page en question (ou plus simplement, puisque les liens ajoutés sont bidirectionnels, en comptant les liens ajoutés associés à la page en question). - the fact that the user had already received the page pointed to by the added candidate link (if it is not a new page for him) in the current directory, and the fact that in addition the page pointed by the added candidate link is already well anchored in the current directory (in the sense that the user has a relatively high probability of consulting it by navigating from one page to the other of the directory), since the more the user will access the page pointed to by the added link, plus he will see the added reverse link that will encourage him to revisit the current page (however see the third sub-criterion below which is to set a threshold greater than the number of links pre-existing additions); Anchor property is measured by counting in the current directory the number of added links that point to the page in question (or more simply, since the added links are bidirectional, counting the added links associated with the page in question).

- dans quelle mesure l'utilisateur avait déjà accepté ou gelé cette page (ou au contraire, combien de fois il l'avait laissée en mode suggéré ou il l'avait refusée) : ainsi, si l'utilisateur avait déjà reçu cette page (pointée par le lien ajouté candidat) dans le répertoire courant, et si de plus il l'avait acceptée (ou gelée), ceci indique que cette page l'intéresse et qu'elle sera donc probablement à nouveau acceptée en tant que lien ajouté de la page courante ; il est donc plus avantageux de choisir le lien ajouté pointant sur cette page plutôt qu'un lien ajouté pointant sur une page nouvelle pour l'utilisateur ; en revanche, si l'utilisateur avait déjà reçu cette page mais depuis ce moment il l'a laissée en mode suggéré, ou, à fortiori, il l'a refusée, le système - how much the user had already accepted or frozen this page (or on the contrary, how many times he had left it in suggested mode or he had refused it): thus, if the user had already received this page ( pointed to by the added candidate link) in the current directory, and if moreover it had accepted it (or frozen), this indicates that this page interests it and that it will thus probably be accepted again as an added link of the current page; it is therefore more advantageous to choose the added link pointing to this page rather than an added link pointing to a new page for the user; however, if the user had already received this page but since then he has left it in suggested mode, or, a fortiori, he refused, the system

<Desc/Clms Page number 81><Desc / Clms Page number 81>

préférera ne pas la choisir, car le lien ajouté candidat a relativement moins de chances d'être accepté par l'utilisateur.  will prefer not to choose it because the added link candidate is relatively less likely to be accepted by the user.

- le nombre de liens ajoutés couramment associés à la page pointée par le lien ajouté candidat : si, dans le répertoire courant de l'utilisateur, une multitude de liens ajoutés sont déjà associés à la page pointée par le lien ajouté candidat, le lien ajouté inverse au lien ajouté candidat sera noyé dans cette multitude et n'aura pas l'effet d'incitation souhaité ; il n'est donc pas toujours avantageux de choisir un lien ajouté candidat dont la page vers laquelle il pointe possède déjà de trop nombreux liens ajoutés dans le répertoire de l'utilisateur (on notera que ce sous-critère est l'inverse du critère d'ancrage ; il doit être utilisé pour fixer un seuil qu'il ne faut pas dépasser) ; l'administrateur indique alors avantageusement, avec chaque répertoire spécialiste (qu'il spécifie par exemple dans la partie non affichée du document source de la page, ou encore dans une table sur le serveur, comme décrit plus haut) : * le nombre maximum de liens ajoutés à suggérer (voir plus haut), étant rappelé que l'utilisateur aussi peut contraindre ce nombre ; * le poids relatif à donner à chacun des critères (c'est-à-dire la formule d'agrégation pondérée des critères) décrits ci-dessus, ainsi qu'éventuellement des indications sur les heuristiques à mettre en #uvre dans leur prise en compte (il s'agit notamment d'éviter les critères qui consommeraient trop de ressources). - the number of links added commonly associated with the page pointed by the added candidate link: if, in the user's current directory, a multitude of added links are already associated with the page pointed by the added candidate link, the added link inverse to the added candidate link will be drowned in this multitude and will not have the desired incentive effect; It is therefore not always advantageous to choose an added candidate link whose page to which it points already has too many links added in the directory of the user (note that this sub-criterion is the inverse of the criterion d anchorage, it must be used to fix a threshold that must not be exceeded); the administrator then indicates advantageously, with each specialist directory (which it specifies for example in the not shown part of the source document of the page, or in a table on the server, as described above): * the maximum number of added links to suggest (see above), being reminded that the user too can constrain this number; * the relative weight to be given to each of the criteria (ie the weighted aggregation formula of the criteria) described above, as well as possibly indications on the heuristics to be applied in their taking into account. account (this includes avoiding criteria that consume too many resources).

Suggestion directe dans le Répertoire par défaut Le système peut synthétiser et proposer des liens ajoutés à partir : - des répertoires Spécialistes et/ou - des répertoires proches déterminés automatiquement par le système Direct suggestion in the default directory The system can synthesize and propose links added from: - Specialist directories and / or - close directories automatically determined by the system

<Desc/Clms Page number 82><Desc / Clms Page number 82>

et présenter les liens ajoutés obtenus à partir de ces répertoires (répertoires candidats) par exemple à travers le premier répertoire de la première liste de la figure 55a, qui est proposé à l'utilisateur par défaut.  and present the added links obtained from these directories (candidate directories) for example through the first directory of the first list of Figure 55a, which is proposed to the user by default.

Ce premier répertoire est ainsi synthétisé de manière différente pour chaque utilisateur. This first directory is thus synthesized differently for each user.

Pour ce faire, dans les répertoires candidats, le système choisit les liens ajoutés : - qui pointent sur une page, * alors que cette page est déjà existante et a été acceptée (ou gelée) un nombre de fois suffisant dans le répertoire courant de l'utilisateur * ou qui s'est avérée être intéressante chez un nombre suffisant d'utilisateurs voisins d'intérêt (ou plus exactement, qui fut acceptée ou gelée dans un nombre suffisant de répertoires proches), - et optionnellement, qui pointent sur une page pour laquelle la Proximité Décalée Cumulée d'éloignement 1 (à partir de la page courante), obtenue en additionnant les Proximités Décalées d'éloignement 1 dans les répertoires candidats, soit la plus grande possible. To do this, in the candidate directories, the system chooses the links added: - which point to a page, * while this page is already existing and has been accepted (or frozen) a sufficient number of times in the current directory of the 'user' or who has proved to be interesting in a sufficient number of neighboring users of interest (or more exactly, who was accepted or frozen in a sufficient number of close directories), - and optionally, who point to a page for which Cumulated Distance Distance 1 (from the current page), obtained by adding the Distance 1 Proximities in the candidate directories, is the largest possible.

Présentation graphique Avec chaque lien ajouté, l'administrateur du site peut spécifier sous quelle forme, avec quelle image et à quelle position de la page courante, le lien ajouté devra être posé, la présentation pouvant être par exemple : - sur le bord de la page (dans une liste de vignettes ), - sur la page (comme une affichette adhésive), ou sous la forme d'une petite icône située sur la page qui se transforme en une telle affichette au passage de la souris, - ou encore dans des régions de la page qui étaient prévues pour contenir de la publicité. Graphic presentation With each added link, the site administrator can specify in which form, with which image and at which position of the current page, the added link will have to be placed, the presentation being able for example: - on the edge of the page (in a list of thumbnails), - on the page (like a sticker), or in the form of a small icon located on the page that turns into such a placard when you move the mouse, - or in regions of the page that were intended to contain advertising.

<Desc/Clms Page number 83><Desc / Clms Page number 83>

L'administrateur peut aussi spécifier ces paramètres de présentation graphique pour le lien ajouté inverse (qui sera affiché sur la page vers laquelle pointe le lien ajouté en question).  The administrator can also specify these graphical presentation settings for the added reverse link (which will be displayed on the page pointed to by the added link in question).

En particulier, l'administrateur peut souhaiter expressément spécifier à quelle position ou dans quelle région, sur la page vers laquelle pointe le lien ajouté en question, sera appliquée la représentation graphique du lien ajouté inverse. C'est en effet par ce moyen qu'il pourra mieux inciter l'utilisateur à venir consulter sa propre page (la page courante). Son audience dépendra donc en partie de la position (ainsi que l'apparence graphique) du lien ajouté inverse. In particular, the administrator may expressly wish to specify to which position or in which region, on the page pointed to by the added link in question, the graphic representation of the added inverse link will be applied. It is indeed by this means that he can better encourage the user to come and consult his own page (the current page). His audience will therefore depend in part on the position (as well as the graphical appearance) of the reverse added link.

La figure 64 illustre la présentation graphique d'un lien ajouté inverse sur une page (sous forme d'affichette). Une page pl a un lien ajouté sur une page p2 qui est déjà très encombrée d'une multitude de liens ajoutés présentés graphiquement sous forme de vignettes (dans une liste verticale). Sur la page p2, le lien ajouté inverse pointant sur pl n'est pas présentée comme une vignette de plus, mais sous forme d'une affichette directement sur le contenu de la page. La représentation graphique du lien ajouté inverse peut aussi être automatiquement inséré dans une région qui normalement aurait dû contenir de la publicité. L'administrateur espère par là attirer l'attention de l'internaute. Figure 64 illustrates the graphical presentation of an inverse added link on a page (in the form of a poster). A page has a link added on a p2 page which is already very crowded with a multitude of added links presented graphically as thumbnails (in a vertical list). On page p2, the added inverse link pointing to pl is not presented as one more thumbnail, but in the form of a placard directly on the content of the page. The graphical representation of the added inverse link can also be automatically inserted into a region that normally should have contained advertising. The administrator hopes to attract the attention of the user.

Section 8 - Calcul automatique de prévision d'Audience Le service offert par le système, consistant à permettre à l'administrateur d'inciter l'utilisateur à cliquer sur un lien ajouté inverse (pointant sur la page publiée par ledit administrateur) : - peut être proposé (fonction de devis ) au moyen d'un calcul de prévision d'audience ; Section 8 - Automatic Audience Forecast Calculation The service offered by the system, which allows the administrator to prompt the user to click on an inverse added link (pointing to the page published by said administrator): - may be proposed (quote function) using a hearing forecast calculation;

<Desc/Clms Page number 84><Desc / Clms Page number 84>

- peut être facturé (fonction facturation ) pour le service effectivement rendu, sur la base : * de l'audience de la page à laquelle est associé le lien ajouté inverse (le nombre de fois que la page p2 de la figure 64 est vue par les utilisateurs du système), * des clics effectifs, c'est-à-dire en fonction du nombre de clics effectivement réalisés sur les liens ajoutés inverses.  - may be invoiced (billing function) for the service actually rendered, based on: * the audience of the page to which the inverse added link is associated (the number of times the page p2 of figure 64 is viewed by the users of the system), * effective clicks, that is to say according to the number of clicks actually made on the links added inverses.

En effet, non seulement, un lien ajouté inverse incite directement l'utilisateur à accéder à la page vers laquelle il pointe (en l'occurrence la page pl de la figure 64), mais en outre, les liens ajoutés de la page (p2) à laquelle le lien ajouté inverse est associé peuvent être publiés (voir la section Publication de liens ajoutés ) et être ainsi propagés d'un utilisateur à l'autre. Indeed, not only, an inverse added link directly encourages the user to access the page to which he points (in this case the page pl of Figure 64), but in addition, the links added to the page (p2 ) to which the reverse added link is associated can be published (see the section Linking Added Links) and thus be propagated from one user to another.

Dans ce schéma de propagation, seul les liens ajoutés inverses acceptés par un utilisateur seront suggérés aux utilisateurs qui sont en l'aval dans la chaîne de propagation. In this propagation scheme, only reverse-added links accepted by a user will be suggested to users who are downstream in the propagation chain.

La prévision d'audience peut être effectuée avantageusement en appliquant le coefficient de probabilité d'acceptation qui tient compte du comportement des utilisateurs (tel que décrit plus haut dans la section Détection de Répertoires Proches ). The audience prediction can be advantageously performed by applying the acceptance probability coefficient which takes into account the behavior of the users (as described above in the section on Detecting Close Directories).

Section 9 - Publication de Répertoires Un perfectionnement du système consiste à permettre à l'utilisateur de publier (ou mettre à la disposition d'un groupe restreint) au moins un sous-ensemble des répertoires de sa toile personnelle. Section 9 - Publishing Directories An enhancement of the system is to allow the user to publish (or make available to a small group) at least a subset of the directories of his personal web.

<Desc/Clms Page number 85><Desc / Clms Page number 85>

De la même manière que dans l'approche décrite plus haut dans la section Publication de liens Ajoutés , les liens vers des pages contenus dans un répertoire publié pourront être visualisés : - directement au moyen d'un navigateur standard (par exemple suite à la réception d'un e-mail) ; - ou au moyen du système.  In the same way as in the approach described above in the section Adding links, links to pages contained in a published directory can be viewed: - directly by means of a standard browser (for example, following reception an e-mail); - or by means of the system.

Le répertoire consulté par l'utilisateur au moyen du système devient son répertoire courant. Il peut s'agir d'un de ses propres répertoires ou d'un répertoire publié par un autre utilisateur. L'utilisateur peut manuellement insérer de nouveaux liens dans ce répertoire. The directory accessed by the user through the system becomes his current directory. It can be one of its own directories or a directory published by another user. The user can manually insert new links in this directory.

L'utilisateur qui visualise le contenu d'un répertoire au moyen du système, peut également enrichir ce contenu en se faisant suggérer des liens à partir d'autres répertoires qui lui sont proposés dans les listes Spécialistes , Voisins d'intérêt , et Copains (comme pour le cas des liens Ajoutés). Ces trois listes sont rappelées ci-dessous : 1. Les répertoires Spécialistes sont ceux proposés par l'administrateur du site, et celui-ci peut proposer à l'utilisateur un nombre de répertoires Spécialistes (candidats) plus grand que le nombre de répertoires qui seront présentés dans cette première liste. Le système sélectionne : - d'abord les répertoires spécifiés comme devant être présentés par défaut (s'il en existe), - ensuite, au fur et à mesure de l'acceptation de liens par l'utilisateur (l'acceptation est décrite plus loin dans cette section) dans le répertoire courant, le système sélectionne les répertoires dont les liens sont les plus voisins possibles des liens couramment déjà acceptés (ou gelés) par l'utilisateur. The user who views the contents of a directory through the system, can also enrich this content by being suggested links from other directories that are offered in the lists Specialists, Neighbors, and Buddies ( as for the case of the Added links). These three lists are recalled below: 1. The Specialist directories are those proposed by the site administrator, who can propose to the user a number of Specialist directories (candidates) larger than the number of directories that will be presented in this first list. The system selects: - first the directories specified to be presented by default (if any), - then, as the user accepts the links (the acceptance is described more far in this section) in the current directory, the system selects the directories whose links are as close as possible to the links that have already been accepted (or frozen) by the user.

<Desc/Clms Page number 86><Desc / Clms Page number 86>

Pour ce faire, le système choisit essentiellement les répertoires contenant le plus de liens en commun avec l'ensemble de liens acceptés (ou gelés) par l'utilisateur au moment courant.  To do this, the system essentially chooses the directories containing the most links in common with the set of links accepted (or frozen) by the user at the current time.

Un répertoire Spécialiste peut contenir un nombre de liens supérieur au nombre de liens qui seront suggérés à l'utilisateur. Le système sélectionne alors de préférence les liens associés par le plus grand nombre de liens ajoutés (dans le répertoire Spécialiste candidat) avec des liens qui (dans le répertoire courant) sont déjà acceptés. Bien évidemment, ne seront suggérés à l'utilisateur que les liens qui ne figurent pas déjà dans le répertoire courant. A Specialist directory may contain more links than the number of links that will be suggested to the user. The system then preferably selects the links associated with the largest number of links added (in the Candidate Specialist directory) with links that (in the current directory) are already accepted. Of course, only the links that are not already in the current directory will be suggested to the user.

2. Les répertoires de Voisins d'intérêt sont déterminés automatiquement par le système. Ce sont : - soit des répertoires proches et de même catégorie, qui sont déterminés en amenant le système à sélectionner, parmi les répertoires de même catégorie, ceux qui contiennent le plus de liens en commun avec les liens acceptés (ou gelés) par l'utilisateur. 2. Neighbor directories of interest are determined automatically by the system. These are: - either close directories and the same category, which are determined by causing the system to select, among the directories of the same category, those that contain the most links in common with the links accepted (or frozen) by the user.

- soit des répertoires contenant le plus de liens en commun avec des liens acceptés (ou gelés) dans le répertoire courant, quelles que soient leurs catégories ; cette approche peut se révéler performante si la sélection de ces répertoires peut se faire en accès direct à partir des liens contenus dans le répertoire courant (voir le type de requête schématisé sur la figure 65) ; outre, cette approche permet d'associer des catégories aux répertoires automatiquement, car les catégories associées à chaque répertoire déterminé automatiquement sont proposées à l'utilisateur, lorsque ce dernier sélectionne ledit répertoire. - or directories containing the most links in common with links accepted (or frozen) in the current directory, regardless of their categories; this approach can be effective if the selection of these directories can be made in direct access from the links contained in the current directory (see the type of query shown schematically in Figure 65); in addition, this approach allows categories to be automatically associated to the directories, because the categories associated with each automatically determined directory are proposed to the user, when the latter selects said directory.

Le grand avantage de ce procédé est qu'il permet aux utilisateurs d'associer aux répertoires des catégories appartenant à un vocabulaire commun (le système incite à parler un langage commun ). The great advantage of this method is that it allows users to associate categories with directories belonging to a common vocabulary (the system prompts to speak a common language).

<Desc/Clms Page number 87><Desc / Clms Page number 87>

3. Les répertoires Copains sont les répertoires choisis par l'utilisateur (Voir la section Publication de liens Ajoutés ).  3. The Buddies directories are the directories chosen by the user (See Publishing Added Links section).

Le principe de Publication et Suggestion étant le même que pour la Publication de liens Ajoutés (voir la section Publication de liens Ajoutés ), nous ne précisons pas ici tous les détails, mais quelques particularités des liens (associés aux répertoires) par opposition aux liens ajoutés (associés aux pages). The principle of Publication and Suggestion being the same as for the Publication of Added Links (see the section Publication of Added Links), we do not specify here all the details, but some particularities of the links (associated with the directories) as opposed to the links added. (associated with the pages).

Dans l'ensemble de liens (vers des pages) qui sont contenus dans le répertoire que l'utilisateur est en train de visualiser, l'utilisateur reçoit des liens supplémentaires à partir des répertoires sélectionnés dans les trois listes sus-décrites (Spécialistes, Voisins, Copains). In the set of links (to pages) that are contained in the directory that the user is viewing, the user receives additional links from the directories selected in the three lists described above (Specialists, Neighbors , Friends).

Comme pour les liens Ajoutés, le système peut avantageusement comporter des moyens pour sélectionner des liens sur la base de critères ( Offreur , Demandeur , etc), données par l'utilisateur ou associés au répertoire visualisé. As for the added links, the system can advantageously comprise means for selecting links based on criteria (provider, applicant, etc.), given by the user or associated with the displayed directory.

Les liens qui sont ainsi suggérés à l'utilisateur doivent être distingués de ceux qu'il avait lui-même ajoutés : il peut en effet en refuser certains. Dans ce but, les liens peuvent se trouver dans un parmi plusieurs modes différents: Suggéré , Accepté , Refusé (et Gelé , ce dernier mode étant décrit dans la section Liens en mode Gelé ). The links that are thus suggested to the user must be distinguished from those he had himself added: he may indeed refuse some. For this purpose, the links can be in one of several different modes: Suggested, Accepted, Denied (and Frozen, the latter mode being described in the section Links in Frozen mode).

Les liens reçus par un premier utilisateur, à partir des liens publiés par un deuxième utilisateur (ou à partir d'un des répertoires du premier utilisateur), sont chez le premier utilisateur au départ en mode Suggéré . The links received by a first user, from the links published by a second user (or from one of the directories of the first user), are at the first user initially in Suggested mode.

Suite à une action de l'utilisateur, chaque lien ajouté en mode Suggéré peut passer à l'un parmi les autres modes. L'interface utilisateur permettant la mise en #uvre de ces changements de mode est schématisée sur la figure 66. Following a user action, each link added in Suggested mode can switch to one of the other modes. The user interface for implementing these mode changes is shown schematically in Figure 66.

<Desc/Clms Page number 88><Desc / Clms Page number 88>

Cette figure illustre également le fait que, les répertoires étant visualisés comme des pages, l'utilisateur peut leurs associer des liens ajoutés. On voit ainsi qu'au répertoire r1 ont été associés (par la technique des liens ajoutés) les répertoires r2 et r3 ainsi que la page p6.  This figure also illustrates the fact that, since the directories are viewed as pages, the user can associate them with added links. We thus see that the directory r1 have been associated (by the technique of the links added) the directories r2 and r3 as well as the page p6.

Les moyens de stockage associent donc aux liens un attribut Mode qui peut prendre comme valeur : Accepté, Refusé ou Gelé. La figure 56 présentait un diagramme de classe pour les liens Ajoutés, selon la représentation standard UML ( Unified Modeling Language ), mettant en évidence l'attribut Mode des liens Ajoutés. Nous complétons cette description avec la figure 67 qui montre que les liens (vers les pages) possèdent également un attribut Mode. Cet attribut peut lui aussi prendre la valeur Accepté, Refusé ou Gelé. De plus, la classe Répertoire comporte l'attribut Catégories qui a pour fonction de permettre de comparer des répertoires de même catégorie (indépendamment des noms que les utilisateurs leur ont donné).  The storage means therefore associate with the links a Mode attribute that can take the value: Accepted, Refused or Frozen. Figure 56 shows a class diagram for the Added links, based on the Unified Modeling Language (UML) standard representation, highlighting the Mode attribute of the Added links. We complete this description with Figure 67 which shows that links (to pages) also have a Mode attribute. This attribute can also be set to Accepted, Denied, or Frozen. In addition, the Directory class has the Categories attribute, which is used to compare directories of the same category (regardless of the names the users gave them).

Un lien en mode Suggéré n'existe que pendant la visite d'un répertoire sélectionné dans l'une des trois listes déjà mentionnées. Il n'est pas affiché en dehors de cette visite. A link in Suggested mode only exists while visiting a selected directory in one of the three lists already mentioned. It is not displayed outside this tour.

Un lien en mode Suggéré n'est pas stocké dans l'espace de stockage personnel de l'utilisateur car, à chaque nouvelle visite, il est recréé à partir du lien correspondant stocké dans le répertoire source. A link in Suggested mode is not stored in the user's personal storage space because, at each new visit, it is recreated from the corresponding link stored in the source directory.

Le passage d'un lien du mode Suggéré au mode Refusé a pour effet de filtrer automatiquement ledit lien lors des visites ultérieures. The passage of a link from the Suggested mode to the Denied mode has the effect of automatically filtering said link during subsequent visits.

Le passage au mode Accepté signifie que l'utilisateur valide le lien qui est en mode Suggéré. Cette action a pour effet : Switching to Accept mode means that the user validates the link that is in Suggested mode. This action has the effect of:

<Desc/Clms Page number 89><Desc / Clms Page number 89>

1. de stocker ledit lien dans son espace de stockage personnel, de manière à ce qu'il lui soit présenté à nouveau avec chaque nouvelle présentation du contenu du répertoire dans lequel ledit lien a été rangé ; cette présentation a lieu même si ledit lien a été supprimé dans le répertoire qui en était la source) - ceci par opposition aux liens en mode Suggéré qui ne sont plus présentés dès le moment où il sont supprimés dans le répertoire source ; cette présentation a lieu même si le répertoire qui en était la source n'est plus sélectionné (a été décoché).  1. storing said link in its personal storage space, so that it is presented again with each new presentation of the contents of the directory in which said link has been stored; this presentation takes place even if the link was deleted in the source directory) - this is in contrast to the Suggested mode links that are no longer presented from the moment they are deleted in the source directory; this presentation takes place even if the directory that was the source is no longer selected (has been unchecked).

2. si le répertoire dans lequel ledit lien est rangé est publié, de publier ledit lien d'office (sauf instruction contraire de l'utilisateur) - ceci par opposition aux liens ajoutés en mode Suggéré qui eux ne seront pas publiés. 2. If the directory in which the link is stored is published, publish the link ex officio (unless otherwise instructed by the user) - this as opposed to the links added in Suggested mode that will not be published.

On notera ici que l'insertion d'un lien dans un répertoire (par exemple manuellement en tapant son adresse URL ou par glisser-déposer à partir d'un autre répertoire) entraîne d'office sa mise en mode Accepté (puisque l'utilisateur l'a inséré lui-même). Note that inserting a link into a directory (for example manually by typing its URL or by dragging and dropping from another directory) automatically causes its setting in Accepted mode (since the user inserted it himself).

Une page visualisée par l'utilisateur dans le répertoire courant entraîne l'insertion du lien vers ladite page en mode Suggéré dans ledit répertoire. Il n'est donc pas stocké. Toutefois, dès qu'un lien ajouté en mode Accepté est associé à ce lien, ce dernier passe en mode Accepté et le système le stocke donc dans l'espace personnel de l'utilisateur. A page viewed by the user in the current directory causes the insertion of the link to said page in Suggested mode in said directory. It is not stored. However, as soon as a link added in Accept mode is associated with this link, the link goes into Accept mode and the system stores it in the user's personal space.

Section 10 - Liens en mode gelé Le passage en mode gelé signifie que : - non seulement l'utilisateur a validé le lien ajouté, mais de plus - la version courante de la page (vers laquelle pointe ledit lien ajouté au moment où la transition au mode gelé est effectuée) est stockée dans le système afin de garantir à Section 10 - Links in Frozen Mode Switching to Frozen Mode means that: - not only has the user validated the added link, but also - the current version of the page (to which the added link points when the transition to frozen mode is performed) is stored in the system to ensure

<Desc/Clms Page number 90><Desc / Clms Page number 90>

l'utilisateur que ledit lien ajouté (aussi longtemps qu'il n'est pas supprimé) dirigera toujours l'utilisateur sur cette même version de la page dans le futur.  the user that said added link (as long as it is not deleted) will always direct the user to that same version of the page in the future.

Plus précisément, la version courante de la page en question est copiée dans un espace de stockage propre au répertoire courant de l'utilisateur, et le lien pointe maintenant vers cette version stockée. Specifically, the current version of the page in question is copied to a storage space specific to the current directory of the user, and the link now points to this stored version.

En réalité, pour optimiser la place consommée, il est avantageux que le système ne stocke qu'une seule copie de chaque version différente de page, qui sera partagée par tous les utilisateurs et tous les répertoires possédant ce lien en mode Gelé. Cette optimisation est nécessaire car une même version de page peut être pointée par des liens ajoutés associés à des pages différentes : - d'un même répertoire, - de répertoires différents d'un même utilisateur, ou encore - de répertoires d'utilisateurs différents, et par conséquent une multitude de liens ajoutés gelés pointant sur une même page peuvent exister. In fact, to optimize the space consumed, it is advantageous for the system to store only one copy of each different version of the page, which will be shared by all the users and directories with this link in Frozen mode. This optimization is necessary because the same version of page can be pointed by added links associated with different pages: - from the same directory, - from different directories of the same user, or - from different user directories, and therefore a multitude of frozen added links pointing to the same page may exist.

Lorsqu'un lien ajouté pointant sur une page est gelé, le système vérifie d'abord si la version courante de ladite page est déjà copiée, le cas échéant le système modifie ledit lien ajouté pour le faire pointer vers cette copie. When an added link pointing to a page is frozen, the system first checks whether the current version of said page is already copied, if necessary the system modifies said added link to point to that copy.

Pour déterminer si une copie de la version courante de la page existe déjà ou pas : - le système mémorise dans une table, en association avec chaque lien (vers une page) pour laquelle une copie est stockée, la date et l'heure de la copie ; - dans la mesure où une copie existe pour le lien en question et où la copie est récente, le système compare le contenu de la version courante avec celui de la copie, et si les contenus sont identiques, le système évite ainsi de créer une nouvelle copie ; To determine if a copy of the current version of the page already exists or not: - the system stores in a table, in association with each link (to a page) for which a copy is stored, the date and time of the copy; - Since a copy exists for the link in question and the copy is recent, the system compares the content of the current version with that of the copy, and if the contents are identical, the system avoids creating a new copy. copy;

<Desc/Clms Page number 91><Desc / Clms Page number 91>

- alternativement, le système peut exploiter les renseignements fournis dans le document source de la page en question pour connaître sa version (et déterminer si elle est différente de la version telle que copiée).  alternatively, the system can use the information provided in the source document of the page in question to know its version (and determine if it is different from the version as copied).

Section 11 - Contenants et contenus On va maintenant généraliser les concepts décrits dans les sections précédentes, en considérant des structures Contenants ( Containers en terminologie anglosaxone) contenant des éléments Contenus ( Contents en terminologie anglosaxone), à n'importe quel niveau dans la structure des informations gardées par l'utilisateur dans son espace de stockage personnel. Section 11 - Containers and contents We will now generalize the concepts described in the previous sections, considering Container structures (Containers in Anglo-Saxon terminology) containing Content elements (Contents in English terminology), at any level in the structure of information kept by the user in his personal storage space.

Les différents modes d'exploitation des liens ajoutés entre pages décrits par ailleurs dans le présent chapitre pourront, en de nombreuses instances, être étendus à l'exploitation de liens situés dans des contenants inclus directement dans la structure de pages et pointant vers des contenus susceptibles d'être incorporés à la page en question. The various modes of exploitation of the links added between pages described elsewhere in this chapter may, in many instances, be extended to the exploitation of links located in containers included directly in the page structure and pointing to contents likely to be incorporated into the page in question.

Les pages sont des documents, eux-mêmes structurées sous forme hiérarchique (par exemple : sections, paragraphes, etc. ), et auxquels est associée une spécification de présentation à l'utilisateur. Dans la suite, on va considérer des documents dont le contenu est spécifié selon la notation standard XML (abréviation de l'expression anglo-saxonne Extended Markup Language), et dont la présentation est spécifiée selon le langage XSL (abréviation de l'expression anglo-saxonne XML Stylesheet Language) ou selon un langage équivalent. Ces technologies se prêtent parfaitement à une structuration hiérarchique des informations. Pages are documents, themselves structured in hierarchical form (for example: sections, paragraphs, etc.), and associated with a user presentation specification. In the following, we will consider documents whose content is specified according to the standard notation XML (abbreviation of the English expression Extended Markup Language), and whose presentation is specified in the language XSL (abbreviation of the expression Anglo -Signs XML Stylesheet Language) or equivalent language. These technologies lend themselves perfectly to hierarchical structuring of information.

Toute la toile personnelle de l'utilisateur est vue comme une structure arborescente de contenus/contenants imbriqués, chaque contenu étant vu comme un document (ou fragment de document) au format XML auquel est optionnellement associée une The entire personal canvas of the user is seen as a tree structure of nested contents / containers, each content being seen as a document (or fragment of document) in XML format which is optionally associated with a

<Desc/Clms Page number 92><Desc / Clms Page number 92>

spécification de présentation au format XSL. A chaque niveau dans cette structure d'arbre, un contenu ne peut être affiché à l'écran de l'ordinateur de manière autonome que si un document XSL lui est associé. Dans le cas inverse, le Content ancêtre le plus proche ayant un XSL est affiché par défaut.  presentation specification in XSL format. At each level in this tree structure, content can be displayed on the computer screen autonomously only if an XSL document is associated with it. In the opposite case, the nearest ancestor Content having an XSL is displayed by default.

Ainsi par exemple, un répertoire est d'abord un contenu qui peut être présenté à l'utilisateur comme une page autonome, dans la mesure où un document XSL pour la présentation des répertoires lui est associé. Un répertoire a par ailleurs un et un seul contenant dont les contenus sont eux-mêmes des répertoires ou d'autres types de documents. Certains de ces documents peuvent contenir plusieurs contenants, qui eux-mêmes contiennent des contenus, et ainsi de suite. For example, a directory is first and foremost content that can be presented to the user as a stand-alone page, as long as an XSL document for the presentation of the directories is associated with it. A directory also has one and only one container whose contents are themselves directories or other types of documents. Some of these documents may contain several containers, which themselves contain content, and so on.

Tous les moyens décrits jusqu'ici pour les répertoires et les pages sont applicables respectivement aux contenants et contenus. All the means described so far for directories and pages are respectively applicable to containers and contents.

Dans ce cas, notamment : - les liens (vers des pages) sont alors des liens vers des contenus ; les liens Ajoutés pointeront également sur des contenus, - et les Coefficients de Probabilité d'Acceptation introduits dans la section Détection de Répertoires Proches sont alors associés à des contenants plutôt qu'à des Répertoires. In this case, in particular: - the links (to pages) are then links to contents; Added links will also point to contents, - and Acceptability Probability Coefficients introduced in the Near Directory Detection section are then associated with containers rather than Directories.

En partant du fait que l'utilisateur peut copier (ou importer ) un lien d'un répertoire à un autre, la présente section propose un système pour lui permettre d'importer n'importe quel contenu de n'importe quel contenant à un autre (à condition que le type dudit contenu ne viole pas les contraintes de type du contenant qui est censé le recevoir) à n'importe quel niveau dans la structure des informations de l'utilisateur. Starting from the fact that the user can copy (or import) a link from one directory to another, this section proposes a system to allow him to import any content from any container to another (provided that the type of said content does not violate the type constraints of the container that is supposed to receive it) at any level in the user's information structure.

De même, cette extension du système a pour objet de permettre à l'utilisateur de tirer (c'est-à-dire de créer par glisser-déposer) des liens ajoutés de n'importe quel contenu Likewise, this extension of the system is intended to allow the user to pull (ie create by drag-and-drop) added links from any content

<Desc/Clms Page number 93><Desc / Clms Page number 93>

à n'importe quel autre contenu. Ainsi, au lieu de ne pouvoir tirer des liens ajoutés qu'entres pages, entre répertoires et d'une manière mixte entre répertoires et pages, l'utilisateur pourra tirer un lien ajouté entre un élément dans une page et une autre page considérée dans sa globalité, par exemple.  to any other content. Thus, instead of being able to derive links added between pages, between directories and in a mixed manner between directories and pages, the user can draw an added link between an element in one page and another page considered in its globality, for example.

Avantageusement, un lien ajouté (et notamment un lien ajouté inverse) pourra pointer sur un contenu enfoui dans une page. Dans le cas où le contenu vers lequel pointe le lien ajouté n'a pas de spécification de présentation (au format XSL) associé, le mécanisme mis en #uvre affichera le plus proche contenu parent (qui le contient) dans la hiérarchie des contenus. Advantageously, an added link (and in particular an inverse added link) may point to content buried in a page. In the case where the content to which the added link points has no associated presentation specification (in XSL format), the implemented mechanism will display the closest parent content (which contains it) in the content hierarchy.

On introduira en outre une troisième manipulation offerte à l'utilisateur : la dérivation de contenant, selon laquelle un premier contenant dérivé d'un deuxième contenant reçoit en mode Suggéré tous les contenus du deuxième contenant (ou éventuellement une sélection de ceux-ci) qui sont en mode Accepté (ou Gelé). Cette transmission de contenus se fait en permanence, en ce sens que même les contenus qui sont acceptés dans le futur dans le deuxième contenant sont suggéré dans le premier contenant dès leur acceptation dans le deuxième contenant. In addition, a third manipulation offered to the user will be introduced: the container derivation, according to which a first container derived from a second container receives in Suggested mode all the contents of the second container (or possibly a selection thereof) which are in Accepted (or Frozen) mode. This transmission of contents is permanent, in the sense that even the contents which are accepted in the future in the second container are suggested in the first container as soon as they are accepted in the second container.

Les documents que constituent les pages publiées dans les sites Internet doivent être restructurés pour permettre d'en distinguer les contenus et contenants qui les constituent. The documents that constitute the pages published on the Internet sites must be restructured to make it possible to distinguish the contents and containers which constitute them.

Le texte ci-dessous est un exemple simple de document en langage XML : <Root> exemple d'informations <img src="urlsource"/> de toutes sortes <A id="A-l" name="Anatole"> <C name=" Hubert" id="C-l"/> <C name="Edouard"/> <C name="Antoine"/>  The following text is a simple example of an XML document: <Root> example <img src = "urlsource" /> information of all kinds <A id="Al" name="Anatole"> <C name = "Hubert" id = "Cl" /> <C name = "Edward" /> <C name = "Antoine" />

<Desc/Clms Page number 94><Desc / Clms Page number 94>

<C name="Raymond"/> </A> <B name="Henri"/> <B name="Claude" myfriend="C-1" myenemies="A- B-1"> exemple informations texte exemple informations texte <D name="Dominique" myfriend="A-1"/> </B> <B name="Robert" id="B-1"//> <B name="Andre"/> </Root> Un exemple de feuille de style XSL, permettant d'obtenir le rendu, est présenté dans les dix paragraphes suivants.  <C name = "Raymond" /> </A> <B name = "Henry" /> <B name = "Claude" myfriend = "C-1" myenemies = "A- B-1"> example information text example text information <D name = "Dominique" myfriend = "A-1" /> <B name = "Robert" id = "B-1" //> <B name = "Andre" /> </ Root> An example of an XSL style sheet that renders is presented in the following ten paragraphs.

Entête de la feuille de style : <?xml version="1.0" encoding="ISO-8859-l" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <HTML> <HEAD /> <BASEFONT FACE="ARIAL" SIZE="2"> <xsl:apply-templates /> </BASEFONT> </HTML> </xsl:template> Les noeuds du code source pour lesquels aucun traitement particulier n'est prévu sont copiés dans la page HTML : <xsl:template match="*"> <xsl:copy> <xsl:apply-templates select="@*node()" /> Style sheet header: <? Xml version = "1.0" encoding = "ISO-8859-l"?> <Xsl: stylesheet xmlns: xsl = "http://www.w3.org/TR/WD-xsl "> <xsl: template match =" / "> <HTML> <HEAD /> <BASEFONT FACE =" ARIAL "SIZE =" 2 "> <xsl: apply-templates /> </ BASEFONT> </ HTML> </ xsl: template> Source code nodes for which no particular processing is expected are copied to the HTML page: <xsl: template match = "*"> <xsl: copy> <xsl: apply-templates select = "@ * node () "/>

<Desc/Clms Page number 95><Desc / Clms Page number 95>

</xsl:copy> </xsl:template> Les attributs du code source pour lesquels aucun traitement n'est prévu prennent les valeurs spécifiés dans le code source : <xsl:template match="@*"> <xsl:attribute> <xsl:value-of /> </xsl:attribute> </xsl:template> Pour le tag Root, sont ajoutés un titre et un paragraphe : <xsl:template match="Root"> <H1>FAMILLE/AMITIE/ETC...</H1> <p>Dans la rue, il y a plein de gens :</p> <xsl:apply-templates /> </xsl:template> La valeur de l'attribut name est inscrite en caractères gras.  </ xsl: copy> </ xsl: template> Attributes of the source code for which no processing is expected take the values specified in the source code: <xsl: template match = "@ *"> <xsl: attribute> <xsl: value-of /> </ xsl: attribute> </ xsl: template> For the tag Root, a title and a paragraph are added: <xsl: template match = "Root"> <H1> FAMILY / FRIENDSHIP / ETC ... </ H1> <p> In the street, there are plenty of people: </ p> <xsl: apply-templates /> </ xsl: template> The value of the name attribute is written in bold characters.

<xsl : template match="*[@name]"> <li> <b> <xsl:value-of select="@name" /> </b> Si le n#ud possède un attribut id, la valeur de l'attribut est placée dans le rendu entre parenthèses : <xsl:if test="@id"> (id= <xsl:value-of select="@id" /> )  <xsl: template match = "* [@ name]"> <li> <b> <xsl: value-of select = "@ name" /> </ b> If the node has an id attribute, the value of the attribute is placed in the parenthetical rendering: <xsl: if test = "@ id"> (id = <xsl: value-of select = "@ id" />)

<Desc/Clms Page number 96><Desc / Clms Page number 96>

</xsl:if> Si le n#ud possède un attribut myfriend, la valeur de l'attribut est placée dans le rendu entre parenthèses : <xsl:if test="@myfriend"> (ami de <xsl:value-of select="@myfriend" /> ) </xsl:if> Si le n#ud possède un attribut myenemies, la valeur de l'attribut est placée dans le rendu entre parenthèses : <xsl:if test="@myenemies"> (ennemi de <xsl:value-of select="@myenemies" /> ) </xsl:if> <xsl:choose> Si un n#ud possédant un attribut name possède des sous-n#uds avec des attributs name, ces sous-n#uds sont présentés dans une liste précédé du label "Enfants :" : <xsl:when test="*[@name]"> <blockquote>
Enfants : <ol> <xsl:for-each select="*[@name]"> <xsl:apply-templates select="." /> </xsl:for-each> </ol> </blockquote> </xsl:when>
</ xsl: if> If the node has a myfriend attribute, the value of the attribute is placed in the parenthetical rendering: <xsl: if test = "@ myfriend"> (friend of <xsl: value-of select = "@ myfriend"/>)</ xsl: if> If the node has a myenemies attribute, the value of the attribute is placed in parenthetical rendering: <xsl: if test = "@ myenemies"> (enemy of <xsl: value-of select = "@ myenemies"/>)</ xsl: if><xsl:choose> If a node with a name attribute has subnodes with name attributes, these sub-nodes are presented in a list preceded by the "Children:" label: <xsl: when test = "* [@ name]"><blockquote>
Children: <ol><xsl: for-each select = "* [@ name]"><xsl: apply-templates select = "."/></ xsl: for-each></ol></blockquote></ xsl: when>

<Desc/Clms Page number 97><Desc / Clms Page number 97>

Si un n#ud possédant un attribut name ne possède pas des sous-n#uds avec des attributs name, le label "Aucun enfant" est affiché : <xsl:otherwise>- Aucun enfant</xsl:otherwise> </xsl:choose> </li> </xsl:template> </xsl:stylesheet> La structure de données XML est ici décomposée en un ensemble de contenants et de contenus. Ces derniers contiennent les éléments de la structure XML initiale. Dans un but de classification, les contenants peuvent optionnellement être associés à des catégories, de telle sorte que les contenus qu'ils possèdent soient classés dans cette catégorie.  If a node with a name attribute does not have subnodes with name attributes, the "No child" label is displayed: <xsl: otherwise> - No child </ xsl: otherwise> </ xsl: choose> </ li> </ xsl: template> </ xsl: stylesheet> Here, the XML data structure is broken down into a set of containers and contents. These contain the elements of the initial XML structure. For purposes of classification, the containers may optionally be associated with categories, so that the contents they possess are classified in this category.

Sur la figure 68, dans la structure arborescente d'un document, on voit apparaître des contenants (illustrés en pointillés). In FIG. 68, in the tree structure of a document, containers (shown in dashed lines) appear.

La figure 69 illustre le fait qu'une telle structure permet de prendre des éléments d'un contenant pour les placer dans d'autres par le procédé importation. Figure 69 illustrates the fact that such a structure makes it possible to take elements of a container for placing in others by the import process.

On décrira également un procédé de dérivation permettant de placer un contenant dans un autre, dans le but de profiter du contenu du contenant d'origine, comme schématisé par la figure 70. A method of derivation will also be described for placing a container in another, for the purpose of taking advantage of the contents of the original container, as shown schematically in FIG.

La figure 71 illustre le fait que ces manipulations peuvent également être effectuées d'un document à l'autre. Figure 71 illustrates that these manipulations can also be performed from one document to another.

On cherche à pouvoir, à partir de pages Internet, restructurer les informations qui s'y trouvent afin de permettre à l'utilisateur de se composer ses propres pages, et ceci à partir de contenants et de contenus qu'il trouve au cours de sa navigation. Cela We try to be able, from Internet pages, to restructure the information that is there to allow the user to compose his own pages, and this from containers and contents that he finds during his navigation. it

<Desc/Clms Page number 98><Desc / Clms Page number 98>

implique de définir une macrostructure de contenants/contenus, et de dissocier les contenus, qui pourront ainsi être déplacés ou reproduits d'une page à l'autre.  involves defining a macrostructure of containers / contents, and dissociating the contents, which can be moved or reproduced from one page to another.

Sur cette base, les données XML d'un document de la Toile seront décomposées pour adopter la structure suivante : - un arbre de structure définissant l'imbrication des différents contenants d'information, chacun portant les références de ses contenus ; - une suite de contenus, regroupant les éléments référencés dans les contenants. On this basis, the XML data of a Web document will be decomposed to adopt the following structure: - a structure tree defining the nesting of the different information containers, each bearing the references of its contents; a series of contents, grouping the elements referenced in the containers.

Etapes de la transformation L'administrateur d'une page d'un site dispose d'un code XML initial (on reprendra l'exemple déjà présenté plus haut), qu'il désire faire partager aux utilisateurs du système . Steps of the transformation The administrator of a page of a site has an initial XML code (one will take again the example already presented above), which it wishes to share with the users of the system.

A. Création de la macrostructure Pour que le code source puisse être restructuré et stocké en évitant les redondances, l'utilisateur spécifie quels éléments sont des contenus et à quel contenant chaque contenu appartient. Ceci permet de constituer ce qu'on appelle ici la macrostructure. A. Creating the Macrostructure In order for the source code to be restructured and stored without redundancy, the user specifies which elements are contents and to which container each content belongs. This makes it possible to constitute what is called here the macrostructure.

Les contenants sont spécifiés au moyen d'attributs. Utiliser des attributs plutôt que des balises ( tags en terminologie anglo-saxonne) offre l'avantage de ne pas modifier la structure et ainsi, notamment, de ne pas remettre en cause l'application de feuilles de style XSL. La restructuration est ainsi non intrusive . On va maintenant présenter l'application d'une méthode de spécification de contenus et contenants (en se servant de l'exemple déjà présenté plus haut) au moyen d'attributs : <Root CONTAINERNUMBER="1" CATEGORY="urll"> Containers are specified by means of attributes. Using attributes rather than tags (tags in English terminology) offers the advantage of not changing the structure and thus, in particular, not to question the application of XSL style sheets. The restructuring is thus non-intrusive. We will now present the application of a method of specification of contents and containers (using the example already presented above) by means of attributes: <Root CONTAINERNUMBER = "1" CATEGORY = "urll">

<Desc/Clms Page number 99><Desc / Clms Page number 99>

exemple d'informations <img src="urlsource"/> de toutes sortes <A id="A-l" name="Anatole"> <C name="Hubert" CONTAINERNUMBER=" 1 "" CATEGORY="url2" id="C-1" /> <C name="Edouard" CONTAINERNUMBER="2" CATEGORY="url3"/> <C name="Antoine" CONTAINERNUMBER="2" CATEGORY="url3"I/> <C name="Raymond" CONTAINERNUMBER="2" CATEGORY="url3"/> </A> <B name="Henri" /> <B name="Claude" CONTAINERNUMBER="1"CATEGORY="url4" myfriend="C-1" myenemies="A-l B-1"> exemple informations texte exemple informations texte <D name="Dominique" myfriend="A-1"/> </B> <B name="Robert" CONTAINERNUMBER="1"CATEGORY="url4" id="B-1"/> <B name="Andre" CONTAINERNUMBER="1" CATEGORY="url4" /> </Root> On notera que : - Hubert est dans un container (CONTAINERNUMBER= "1") différent de celui d' Antoine , Edouard et Raymond (CONTAINERNUMBER= "2").  example of <img src = "urlsource" /> information of all kinds <A id="Al" name="Anatole"> <C name = "Hubert" CONTAINERNUMBER = "1" "CATEGORY =" url2 "id =" C-1 "/> <C name =" Edward "CONTAINERNUMBER =" 2 "CATEGORY =" url3 "/> <C name =" Antony "CONTAINERNUMBER =" 2 "CATEGORY =" url3 "I /> <C name =" Raymond "CONTAINERNUMBER =" 2 "CATEGORY =" url3 "/> </A> <B name =" Henry "/> <B name =" Claude "CONTAINERNUMBER =" 1 "CATEGORY =" url4 "myfriend =" C-1 "myenemies =" Al B-1 "> example information text example information text <D name =" Dominique "myfriend =" A-1 "/> <B name =" Robert "CONTAINERNUMBER =" 1 "CATEGORY = "url4" id = "B-1" /> <B name = "Andre" CONTAINERNUMBER = "1" CATEGORY = "url4" /> </ Root> Note that: - Hubert is in a container (CONTAINERNUMBER = "1 ") different from that of Antoine, Edouard and Raymond (CONTAINERNUMBER =" 2 ").

- les attributs myfriend et myenemies sont des références aux noeuds de l'arbre, car ils ont été spécifiés comme tels (type idref ) par le schéma associé au code source en langage XML. - the myfriend and myenemies attributes are references to the nodes of the tree, because they have been specified as such (type idref) by the schema associated with the source code in XML language.

Remarques : 1- La macrostructure permet de dissocier les éléments, de la structure dans laquelle ils résident. Ainsi, les éléments sont stockés de manière unique sur le serveur quel que soit le nombre de fois où ils ont été reproduits. Notes: 1- The macrostructure allows to dissociate the elements, of the structure in which they reside. Thus, the elements are stored uniquely on the server regardless of the number of times they have been reproduced.

<Desc/Clms Page number 100> <Desc / Clms Page number 100>

2- Par défaut, sans aucune intervention manuelle, la macrostructure pourrait être automatiquement calquée sur la structure du document. La granularité du partage (granularité des éléments qui peuvent être répliqués) serait alors celle des éléments du document. Mais le système serait alors lourd à manipuler pour l'utilisateur, la macrostructure serait volumineuse et les performances s'en ressentiraient. 2- By default, without any manual intervention, the macrostructure could be automatically modeled on the structure of the document. The granularity of the partition (granularity of the elements that can be replicated) would then be that of the elements of the document. But the system would be heavy to handle for the user, the macrostructure would be bulky and the performance would suffer.

L'approche que nous présentons consiste à permettre de spécifier la macrostructure explicitement dans les documents, c'est-à-dire de choisir la granularité des contenus qui peuvent être partagés. Ainsi, lors de la spécification d'un contenu, celui-ci est, par la même occasion, localisé dans un contenant qui peut regrouper plusieurs contenus. Comme les contenus auraient pu être calqués sur la structure des éléments du document, les contenants auraient pu être calqués sur la structure des contenus (tous les contenus enfants d'un même parent auraient alors été mis dans un contenant). On a préféré ici spécifier explicitement quels contenus sont situés dans quels contenants. The approach we present is to allow to specify the macrostructure explicitly in the documents, that is to say to choose the granularity of the contents that can be shared. Thus, when specifying a content, it is, at the same time, located in a container that can group several contents. As the contents could have been modeled on the structure of the elements of the document, the containers could have been modeled on the structure of the contents (all the contents children of the same parent would have been put in a container). It has been preferred here to explicitly specify which contents are in which containers.

B. Code décomposé A partir des indications figurant dans le nouveau code source, est construite la structure décomposée, constituée d'une part par l'arbre de structure et d'autre part la suite de contenus. B. Code decomposed From the indications appearing in the new source code, is constructed the decomposed structure, constituted on the one hand by the tree of structure and on the other hand the sequence of contents.

Dans notre exemple, l'arbre de structure est la suivante : <CONTAINER SRC="...?id=12" CATEGORY="urll"> <CONTENTREF id="ContentRef-l" SRC="...?id= Content-42" NAME="Root"> <POSITION CONTAINER N="1"> (Container où se trouve Hubert) <CONTAINER SRC="...?id=13" CATEGORY="url2"> <CONTENTREF id="ContentRef-2" SRC="...?id= Content-43" NAME="C"> In our example, the structure tree is: <CONTAINER SRC = "...? Id = 12" CATEGORY = "urll"> <CONTENTREF id = "ContentRef-1" SRC = "...? Id = Content-42 "NAME =" Root "> <POSITION CONTAINER N =" 1 "> (Container where Hubert is located) <CONTAINER SRC =" ...? Id = 13 "CATEGORY =" url2 "> <CONTENTREF id =" ContentRef-2 "SRC =" ...? Id = Content-43 "NAME =" C ">

<Desc/Clms Page number 101><Desc / Clms Page number 101>

</CONTAINER> (Container où se trouvent Antoine, Edouard et Raymond) <CONTAINER SRC="...?id=14" CATEGORY="url3"> <CONTENTREF id="ContentRef-3" SRC="...?id= Content-44" NAME="C"> <CONTENTREF id="ContentRef-4" SRC="...?id= Content-45" NAME="C"> <CONTENTREF id="ContentRef-5" SRC="...?id= Content-46" NAME="C"> </CONTAINER> </POSITION~CONTAINER > <POSITION CONTAINER N="2"> <CONTAINER SRC="...?id=15" CATEGORY="url4"> <CONTENTREF id="ContentRef-6" SRC="...?id= Content-47" NAME="B"> <POSITION ELTREFS N=" 1 "> <ELTREFS SRC="... ?id=ContentRef-2"/> </POSITION ELTREFS > <POSITION ELTREFS N="2"> <ELTREFS SRC="... ?id=ContentRef-1"/> <ELTREFS SRC="... ?id=ContentRef-7"/> </POSITION ELTREFS > <POSITION ELTREFS N="3"> < ELTREFS SRC="... ?id=ContentRef- 1"/> </POSITION ELTREFS > </ CONTENTREF>  </ CONTAINER> (Container where Antoine, Edouard and Raymond are) <CONTAINER SRC = "...? Id = 14" CATEGORY = "url3"> <CONTENTREF id = "ContentRef-3" SRC = "...? id = Content-44 "NAME =" C "> <CONTENTREF id =" ContentRef-4 "SRC =" ...? id = Content-45 "NAME =" C "> <CONTENTREF id =" ContentRef-5 "SRC = "...? id = Content-46" NAME = "C"> </ CONTAINER> </ POSITION ~ CONTAINER> <POSITION CONTAINER N = "2"> <CONTAINER SRC = "...? id = 15" CATEGORY = "url4"> <CONTENTREF id = "ContentRef-6" SRC = "...? Id = Content-47" NAME = "B"> <POSITION ELTREFS N = "1"> <ELTREFS SRC = ".. .? id = ContentRef-2 "/> </ ELTREFS POSITION> <ELTREFS POSITION N =" 2 "> <ELTREFS SRC =" ...? id = ContentRef-1 "/> <ELTREFS SRC =" ...? id = ContentRef-7 "/> </ ELTREFS POSITION> <ELTREFS POSITION N =" 3 "> <ELTREFS SRC =" ...? id = ContentRef- 1 "/> </ ELTREFS POSITION> </ CONTENTREF>

<Desc/Clms Page number 102><Desc / Clms Page number 102>

<CONTENTREF id="ContentRef-7" SRC="...?id= Content-48" NAME="B"/> <CONTENTREF id="ContentRef-8" SRC="...?id= Content-49" NAME="B"/> </CONTAINER> </POSITION~CONTAINER > </CONTENTREF> </CONTAINER> La suite de contenu est la suivante : <CONTENT id=" Content-42" CATEGORY="urll"> <Root> exemple d'informations <img src="urlsource"/> de toutes sortes <A name="Anatole" id="A-l"> <POSITION CONTAINER N="1"/> </A> <B name="Henri"/> <POSITION CONTAINER N="2"/> </Root> </CONTENT> <CONTENT id="Content-43" CATEGORY="url2"> <C name=" Hubert" id=C-l/> </CONTENT> <CONTENT id=" Content-44" CATEGORY="url3"> <C name="Edouard"/> </CONTENT> <CONTENT id=" Content-45" CATEGORY="url3"> <C name="Antoine"/>  <CONTENTREF id = "ContentRef-7" SRC = "...? Id = Content-48" NAME = "B" /> <CONTENTREF id = "ContentRef-8" SRC = "...? Id = Content-49 "NAME =" B "/> </ CONTAINER> </ POSITION ~ CONTAINER> </ CONTENTREF> </ CONTAINER> The following is the content: <CONTENT id =" Content-42 "CATEGORY =" urll "> < Root> example information <img src = "urlsource" /> of all kinds <A name="Anatole" id="Al"> <POSITION CONTAINER N = "1" /> </A> <B name = " Henri "/> <POSITION CONTAINER N =" 2 "/> </ Root> </ CONTENT> <CONTENT id =" Content-43 "CATEGORY =" url2 "> <C name =" Hubert "id = Cl /> < / CONTENT> <CONTENT id = "Content-44" CATEGORY = "url3"> <C name = "Edward" /> </ CONTENT> <CONTENT id = "Content-45" CATEGORY = "url3"> <C name = "Antoine" />

<Desc/Clms Page number 103><Desc / Clms Page number 103>

</CONTENT> <CONTENT id=" Content-46" CATEGORY="url3"> <C name="Raymond"/> </CONTENT> <CONTENT id=" Content-47" CATEGORY="url4"> <B name="Claude" myfriend="C-l" myenemies="A-l B-l"> <POSITION~ELTREFS N="1" ATTRIB="myfriend"/> <POSITION~ELTREFS N="2" ATTRIB="myenemies"/> exemple informations texte exemple informations texte <D name="Dominique" myfriend="A-1"> <POSITION-ELTREFS N="3" ATTRIB="myfriend"/> </D> <B/> </CONTENT> <CONTENT id="48" CATEGORY="url4"> <B name="Robert" id="B-1"/> </CONTENT> <CONTENT id="49" CATEGORY="url4"> <B name="Andre"/> </CONTENT> Comme on peut le voir, toutes les données d'arbre de départ sont séparées dans la suite de contenus. L'arbre de structure représente l'imbrication des contenants entre eux.  </ CONTENT> <CONTENT id = "Content-46" CATEGORY = "url3"> <C name = "Raymond" /> </ CONTENT> <CONTENT id = "Content-47" CATEGORY = "url4"> <B name = "Claude" myfriend = "Cl" myenemies = "Al Bl"> <POSITION ~ ELTREFS N = "1" ATTRIB = "myfriend" /> <POSITION ~ ELTREFS N = "2" ATTRIB = "myenemies" /> example information text example information text <D name = "Dominique" myfriend = "A-1"> <POSITION-ELTREFS N = "3" ATTRIB = "myfriend" /> </ D> <B /> </ CONTENT> <CONTENT id = "48" CATEGORY = "url4"> <B name = "Robert" id = "B-1" /> </ CONTENT> <CONTENT id = "49" CATEGORY = "url4"> <B name = "Andre" /> </ CONTENT> As can be seen, all starting tree data are separated in the following content. The structure tree represents the nesting of the containers between them.

L'imbrication entre Root et Henri ne figure pas dans l'arbre de structure car Root et Henry sont dans le même contenu. Par contre, l'imbrication entre The nesting between Root and Henri does not appear in the structure tree because Root and Henry are in the same content. On the other hand, the interweaving

<Desc/Clms Page number 104><Desc / Clms Page number 104>

Anatole et Hubert , Edouard , Antoine et Raymond est reflétée dans l'arbre de structure, car Hubert , Edouard , Antoine et Raymond sont regroupés dans deux contenants différents sous Anatole .    Anatole and Hubert, Edouard, Antoine and Raymond are reflected in the structural tree, as Hubert, Edouard, Antoine and Raymond are grouped in two different containers under Anatole.

De plus, on constate que les contenants peuvent être disposés de façon bien précise dans les contenus. On parlera de positionnement. Les contenus dans lesquels se trouvent des contenants portent une balise indiquant où les contenants se trouvent (au moyen d'un numéro POSITION-CONTAINER N). Les positions dans les contenus sont utilisés dans l'arbre de structure. Chaque contenant est en effet imbriqué sous une balise POSITION CONTAINER ayant un numéro. Ce numéro correspond à l'indication N figurant dans les contenus. Ceci est illustré sur la figure 72. In addition, it is found that the containers can be arranged very precisely in the contents. We will talk about positioning. Container contents carry a tag indicating where the containers are located (using a POSITION-CONTAINER N number). The positions in the contents are used in the structure tree. Each container is nested under a POSITION CONTAINER tag with a number. This number corresponds to the indication N contained in the contents. This is illustrated in Figure 72.

Lorsque certaines balises possèdent des références à d'autres balises, cela est matérialisé dans l'arbre de structure et dans la suite de contenus au moyen de la balise POSITION-ELTREFS. La même approche que pour le positionnement des contenants est utilisé. La position de références à des éléments est matérialisée dans un contenu à l'aide d'un numéro POSITION~ELTREFS N, que l'on retrouve dans l'arbre de structure, dans le champ CONTENTREF correspondant. Cette indirection permet de retrouver, dans la structure arborescente de contenants, le contenu où se trouve l'élément référencé. Ceci est illustré à la figure 73. When certain tags have references to other tags, this is materialized in the structure tree and in the content suite by means of the POSITION-ELTREFS tag. The same approach as for the positioning of the containers is used. The position of references to elements is materialized in a content using a number POSITION ~ ELTREFS N, found in the structure tree, in the field CONTENTREF corresponding. This indirection makes it possible to find, in the tree structure of containers, the content where the referenced element is located. This is illustrated in Figure 73.

Détail de la macrostructure décomposée a. Arbre de structure 1. Balise CONTAINER Cette balise représente un contenant au sein de l'arbre de structure. Un contenant est identifié par une adresse URL dénommée SRC. Detail of the decomposed macrostructure a. Structure tree 1. CONTAINER tag This tag represents a container within the structure tree. A container is identified by a URL called SRC.

<Desc/Clms Page number 105> <Desc / Clms Page number 105>

Cette adresse URL est composée du nom de domaine où le contenant est archivé, et de l'identifiant local de ce contenant pour le domaine. Si plusieurs serveurs sont associés à un nom de domaine, alors ce nom de serveur est spécifié dans l'adresse URL entre le nom de domaine et l'identifiant local : SRC : DomainName/ServerName?ID Cette balise comporte également un attribut indiquant à quelle catégorie est associé le contenant. Cette catégorie est spécifiée au moyen d'une adresse URL. This URL is composed of the domain name where the container is archived, and the local identifier of this container for the domain. If multiple servers are associated with a domain name, then this server name is specified in the URL address between the domain name and the local identifier: SRC: DomainName / ServerName? ID This tag also has an attribute indicating to which category is associated the container. This category is specified by means of a URL.

Un contenant est composé de plusieurs balises CONTENTREF (voir définition précise ci-après) qui renvoient au contenu dans la succession de contenus. De plus, un contenant peut être dans un contenu à une position donnée, selon la balise POSITION~CONTAINER (définie ci-après) désignant la position à laquelle il se trouve. A container is composed of several CONTENTREF tags (see precise definition below) that refer to the content in the succession of contents. In addition, a container may be in a content at a given position, according POSITION ~ CONTAINER tag (defined below) designating the position at which it is located.

Par exemple : <CONTAINER SRC= ... ?id=12 CATEGORY= URL > 2. Balise CONTENTREF Cette balise constitue une référence à un élément donné CONTENT de la succession de contenus. Il est identifié par un identificateur entier ID , et porte un attribut SRC qui est l'identifiant unique du contenu CONTENT référencé. La même syntaxe d'adresse URL que pour les contenants est adoptée. Les balises CONTENTREF comportent également un nom NAME : <CONTENTREF ID= 432 SRC= ... ? 43 NAME= A /> 3. Balise POSITION CONTAINER For example: <CONTAINER SRC = ...? Id = 12 CATEGORY = URL> 2. CONTENTREF tag This tag is a reference to a given CONTENT element of the content sequence. It is identified by an integer identifier ID, and carries a SRC attribute which is the unique identifier of the CONTENT content referenced. The same URL syntax as for containers is adopted. The CONTENTREF tags also have a NAME name: <CONTENTREF ID = 432 SRC = ...? 43 NAME = A /> 3. POSITION CONTAINER tag

<Desc/Clms Page number 106><Desc / Clms Page number 106>

Cette balise permet de matérialiser les différentes positions où on peut trouver des contenants dans un contenu. Comme le montre l'exemple ci-après, une balise CONTENTREF peut contenir plusieurs balises POSITION CONTAINER, c'est-àdire que des contenants peuvent être disposés à plusieurs endroits du contenu en question. De plus, à une position donnée, il est possible de trouver plusieurs contenants, comme dans l'exemple suivant : < CONTENTREF ID=26 SRC= ... ?ID=44 NAME= B > <POSITION CONTAINER N=1> <CONTAINER SRC= ... ?ID=13 CATEGORY= URL1 > < CONTENTREF ID=27 SRC= ... ?ID=45 NAME= Bl /> </CONTAINER> <CONTAINER SRC= ... ?ID=14 CATEGORY= URL2 > < CONTENTREF ID=28 SRC= ... ?ID=46 NAME= B2 /> </CONTAINER> </POSITION CONTAINER> <POSITION CONTAINER N=2> <CONTAINER SRC= ... ?ID=13 CATEGORY= URL1 > <CONTENTREF ID=29 SRC= ... ? ID=47 NAME= B3 /> </CONTAINER> </POSITION CONTAINER> </ CONTENTREF> b. Suite de contenus 1. Balise CONTENT Cette balise représente un contenu. Un contenu peut contenir une ou plusieurs balises du code source XML d'origine. Les contenus sont identifiés par un identifiant  This tag makes it possible to materialize the different positions where one can find containers in a content. As shown in the example below, a CONTENTREF tag may contain multiple POSITION CONTAINER tags, that is, containers may be arranged at multiple locations of the content in question. Moreover, at a given position, it is possible to find several containers, as in the following example: <CONTENTREF ID = 26 SRC = ...? ID = 44 NAME = B> <POSITION CONTAINER N = 1> <CONTAINER SRC = ...? ID = 13 CATEGORY = URL1> <CONTENTREF ID = 27 SRC = ...? ID = 45 NAME = BL /> </ CONTAINER> <CONTAINER SRC = ...? ID = 14 CATEGORY = URL2 > <CONTENTREF ID = 28 SRC = ...? ID = 46 NAME = B2 /> </ CONTAINER> </ POSITION CONTAINER> <POSITION CONTAINER N = 2> <CONTAINER SRC = ...? ID = 13 CATEGORY = URL1 > <CONTENTREF ID = 29 SRC = ...? ID = 47 NAME = B3 /> </ CONTAINER> </ POSITION CONTAINER> </ CONTENTREF> b. Content Suite 1. CONTENT tag This tag represents content. Content may contain one or more tags from the original XML source code. The contents are identified by an identifier

<Desc/Clms Page number 107><Desc / Clms Page number 107>

unique, et portent l'adresse URL de la catégorie à laquelle ils appartiennent, comme dans l'exemple suivant : <CONTENT ID= 43 CATEGORY= URL > <A> <C/> </A> </CONTENT> Il se peut que certains cas conduisent à la création de contenus : (i) soit des contenus externes, à savoir un contenu qui pointe sur un autre contenu d'un hôte différent (de catégorie externe), par exemple : <CONTENT ID= 124 CATEGORY= URL2(externe) > <A> <C/> </A> </CONTENT> (ii) soit des contenus indirects, à savoir un contenu qui pointe sur un autre contenu du même hôte (mais de catégorie différente), par exemple : <CONTENT ID= 44 CATEGORY= URL3 INDIRECT= 43 > </CONTENT> 2. Balise POSITION CONTAINER Cette balise indique la position où un contenant peut être inséré dans un contenu, par exemple :  unique, and carry the URL of the category to which they belong, as in the following example: <CONTENT ID = 43 CATEGORY = URL> <A> <C /> </A> </ CONTENT> It is possible that some cases lead to the creation of content: (i) external content, ie content that points to another content of a different (external category) host, for example: <CONTENT ID = 124 CATEGORY = URL2 (external)> <A> <C /> </A> </ CONTENT> (ii) indirect content, ie content that points to another content of the same host (but of different category), for example: <CONTENT ID = 44 CATEGORY = INDIRECT URL3 = 43> </ CONTENT> 2. POSITION CONTAINER tag This tag indicates the position where a container can be inserted into a content, for example:

<Desc/Clms Page number 108><Desc / Clms Page number 108>

< POSITION CONTAINER N= l /> 3. Balise POSITION ELTREFS Cette balise permet de matérialiser, dans le contenu, les références que certaines balises portent sur d'autres. Comme les balises POSITION CONTAINER , ils portent un attribut entier N indiquant leurs positions dans le contenu. Ils possèdent également un attribut ATTRIB qui contient le nom de l'attribut utilisé par l'auteur du code source XML pour définir la référence. Par exemple : <POSITION~ELTREFS N= l ATTRIB= myfriends /> C. Recomposition des pages de la Toile La figure 74 illustre le fait que l'internaute dispose d'un accès supplémentaire à l'information. Il peut y accéder de façon classique en se connectant sur le site source de la Toile, et il peut également y accéder via le système, qui lui permet d'interagir avec les contenants et les contenus, c'est-à-dire les organiser selon sa volonté.  <POSITION CONTAINER N = l /> 3. ELTREFS POSITION tag This tag is used to indicate in the content the references that some tags have on others. Like the POSITION CONTAINER tags, they carry an integer attribute N indicating their positions in the content. They also have an ATTRIB attribute that contains the name of the attribute used by the author of the XML source code to set the reference. For example: <POSITION ~ ELTREFS N = l ATTRIB = myfriends /> C. Redialing Web Pages Figure 74 illustrates the fact that the user has additional access to the information. It can access it in a classic way by connecting to the source site of the Web, and it can also access it via the system, which allows it to interact with containers and contents, that is to say organize them according to his will.

Le système décompose ce site en contenants/contenus (ce site doit impérativement avoir été mis par son administrateur sous la forme déjà décrite auparavant, à savoir la forme dans laquelle l'administrateur a notamment indiqué où se trouvent les contenus et contenants). The system breaks down this site into containers / contents (this site must imperatively have been put by its administrator in the form already described before, namely the form in which the administrator has indicated where the contents and containers are).

Afin d'être présentées à l'internaute, les informations en sortie du système sont reconstituées et transformées à l'aide de la feuille de style XSL associée au code XML d'origine. Pour permettre la manipulation de poignées (qui permettent de désigner graphiquement des contenus, la feuille de style XSL ajoute à la volée, dans la spécification XSL d'origine, du code de présentation. Ce procédé est schématisé sur la figure 75. In order to be presented to the user, the output information of the system is reconstructed and transformed using the XSL style sheet associated with the original XML. To allow the manipulation of handles (which allow you to graphically designate contents, the XSL stylesheet adds presentation code on the fly in the original XSL specification), which is shown schematically in Figure 75.

<Desc/Clms Page number 109> <Desc / Clms Page number 109>

D. Code XML reconstitué Afin de pouvoir être présenté à l'internaute, le code XML décomposé est reconstitué. D. XML reconstituted code In order to be presented to the user, the decomposed XML is reconstituted.

On peut ainsi lui appliquer une feuille de style XSL. Lors de la reconstitution, il est fait en sorte que les contenus et les contenants soient matérialisés pour que l'utilisateur puisse les manipuler. We can then apply an XSL style sheet. During reconstitution, it is ensured that the contents and the containers are materialized so that the user can manipulate them.

A cet égard, comme on va le voir par la suite, l'internaute peut sélectionner un contenu ou un contenant au moyen de poignées pour les déplacer où les mettre dans un autre document. In this respect, as we will see later, the user can select a content or a container by means of handles to move them or put them in another document.

Pour l'exemple traité jusqu'ici le code reconstitué est le suivant : <Root CONTAINERNUMBER="1" CATEGORY="url1"> Exemple d'informations <img src="urlsource"/> de toutes sortes <A id="A-l" name="Anatole"> <C name="Hubert" CONTAINERNUMBER="1" CONTAINERID="13" CONTENTID="43" CATEGORY="url2" id="C-1" /> <C name="Edouard" CONTAINERNUMBER="2" CONTAINERID=" 14" CONTENTID="44" CATEGORY="url3"/> <C name="Antoine" CONTAINERNUMBER="2" CONTAINERID=" 14"  For the example treated so far the reconstituted code is the following: <Root CONTAINERNUMBER = "1" CATEGORY = "url1"> Example information <img src = "urlsource" /> of all kinds <A id = "Al "name =" Anatole "> <C name =" Hubert "CONTAINERNUMBER =" 1 "CONTAINERID =" 13 "CONTENT =" 43 "CATEGORY =" url2 "id =" C-1 "/> <C name =" Edward " CONTAINERNUMBER = "2" CONTAINERID = "14" CONTENTID = "44" CATEGORY = "url3" /> <C name = "Antoine" CONTAINERNUMBER = "2" CONTAINERID = "14"

<Desc/Clms Page number 110><Desc / Clms Page number 110>

CONTENTID="45" CATEGORY="url3"/> <C name="Raymond" CONTAINERNUMBER="2" CONTAINERID=" 14" CONTENTID="46" CATEGORY="url3"/> </A> <B name="Henri" /> <B name="Claude" CONTAINERNUMBER=" 1 " CONTAINERID="86" CONTENTID="47" CATEGORY="url4" myfriend="C-l" myenemies="A-1 B-1"> Exemple informations texte exemple informations texte <D name=" Dominique" myfriend="A-1"/> </B> <B name="Robert" CONTAINERNUMBER="1" " CONTAINERID="87" CONTENTID="48" CATEGORY="url4" id="B-l"/> <B name="Andre" CONTAINERNUMBER="1" CONTAINERID="88" CONTENTID="49"  CONTENTID = "45" CATEGORY = "url3" /> <C name = "Raymond" CONTAINERNUMBER = "2" CONTAINERID = "14" CONTENTID = "46" CATEGORY = "url3" /> </A> <B name = " Henri "/> <B name =" Claude "CONTAINERNUMBER =" 1 "CONTAINERID =" 86 "CONTENTID =" 47 "CATEGORY =" url4 "myfriend =" Cl "myenemies =" A-1 B-1 "> Example information text example information text <D name = "Dominique" myfriend = "A-1" /> <B name = "Robert" CONTAINERNUMBER = "1" "CONTAINERID =" 87 "CONTENT =" 48 "CATEGORY =" url4 "id =" Bl "/> <B name =" Andre "CONTAINERNUMBER =" 1 "CONTAINERID =" 88 "CONTENTID =" 49 "

<Desc/Clms Page number 111><Desc / Clms Page number 111>

CATEGORY="url4" /> </Root> Exemple de présentation A partir du code XML reconstitué, une page HTML de présentation est construite au moyen d'une feuille de style XSL. Dans le cadre de l'exemple présenté en introduction de cette section, la même feuille XSL est reprise, à ceci près qu'on lui a ajouté des éléments de dérivation (c'est-à-dire les poignées) permettant d'interagir avec le contenu de la page.  CATEGORY = "url4" /> </ Root> Presentation example From the reconstructed XML, a presentation HTML page is constructed using an XSL style sheet. In the context of the example presented in the introduction of this section, the same XSL sheet is taken over, except that it has been added to it derivation elements (that is to say the handles) allowing to interact with the content of the page.

Dans la suite, on va décrire précisément en quoi consistent ces éléments de dérivation, puis comment se passent les actions d'importation/dérivation et leur conséquence : la suggestion. In the following, we will describe precisely what these derivation elements consist, then how are the actions of importation / derivation and their consequence: the suggestion.

A. Insertion de poignées d'importation/dérivation On définit à l'aide d'un modèle ( Template en terminologie anglo-saxonne) la transformation en langage HTML des informations de la structure qui permettent la dérivation, l'importation et l'association de liens ajoutés. Les contenants ne peuvent pas être représentés en tant que tels, car ils ne correspondent pas forcément à une enveloppe (à savoir à un objet graphique unique) vue graphiquement dans la page HTML résultante. C'est pourquoi cette transformation donne un élément graphique (élément de dérivation) pour chaque n#ud de type contenu. Cet élément de dérivation permet la gestion du glisser-déposer à la fois des contenants et des contenus. En effet, un composant BEHAVIOR (voir l'Annexe) attaché à l'élément communique alors avec le système. A. Insertion of import / derivation handles One defines with the help of a model (Template in English terminology) the transformation in HTML language of the information of the structure which allows the derivation, the import and the association added links. Containers can not be represented as such, because they do not necessarily correspond to an envelope (ie to a single graphic object) viewed graphically in the resulting HTML page. That is why this transformation gives a graphical element (derivation element) for each content type n # ud. This derivation element allows drag and drop management of both containers and contents. Indeed, a component BEHAVIOR (see Appendix) attached to the element then communicates with the system.

Le modèle précité est ajouté en fin de la page XSL afin de la surcharger efficacement et pour que les éléments de dérivation soient effectivement affichés. The aforementioned model is added at the end of the XSL page in order to effectively overload it and for the derivation elements to be actually displayed.

<Desc/Clms Page number 112> <Desc / Clms Page number 112>

L'allure de ce modèle peut par exemple être la suivante : <xsl:template match="*[@CONTAINERID>0]"> <xsl:if test="/*[@HANDLEMODE='1']"> <xsl:element name="DIV"> <xsl:attribute name="STYLE"> BEHAVIOR :url(.../system.dragndrop.htc) ; </xsl:attribute> <xsl:eval>this.nodeName</xsl:eval> <xsl:attribute name="containerid"> <xsl:value-of select="@CONTAINERID"/> </xsl : attribute> <xsl:attribute name="contentid"> <xsl:value-of select="@CONTENTID"/> </xsl:attribute> </xsl:element> </xsl:if> <xsl:eval> this.setAttribute("CONTAINERID",0) </xsl:eval> <xsl:apply-templates select="."/> </xsl:template> For example, the look of this model can be: <xsl: template match = "* [@CONTAINERID> 0]"> <xsl: if test = "/ * [@ HANDLEMODE = '1']"> <xsl : element name = "DIV"> <xsl: attribute name = "STYLE"> BEHAVIOR: url (... / system.dragndrop.htc); </ xsl: attribute> <xsl: eval> this.nodeName </ xsl: eval> <xsl: attribute name = "containerid"> <xsl: value-of select = "@ CONTAINERID" /> </ xsl: attribute> <xsl: attribute name = "contentid"> <xsl: value-of select = "@ CONTENT" /> </ xsl: attribute> </ xsl: element> </ xsl: if> <xsl: eval> this.setAttribute ("CONTAINERID", 0) </ xsl: eval> <xsl: apply-templates select = "." /> </ Xsl: template>

<Desc/Clms Page number 113><Desc / Clms Page number 113>

L'élément DIV (introduit en 3eligne) est un élément de dérivation auquel est associé le composant BEHAVIOR :url(.../system.dragndrop.htc) , dont l'allure est présentée en Annexe. Ce composant permet une gestion du glisser-déposer des éléments pour la dérivation de contenants qu'il communiquera au système.  The DIV element (introduced in 3-line) is a derivation element with which the BEHAVIOR component is associated: url (... / system.dragndrop.htc), the appearance of which is presented in the Appendix. This component allows management of the drag and drop elements for the derivation of containers that it will communicate to the system.

B. Réception de l'événement ONDERIVE Lorsque le composant BEHAVIOR déclenche l'événement ONDERIVE, par l'instruction fire("ONDERIVE",oEvent) qui se trouve dans la fonction FinishDrag (la variable oEvent étant un objet événement dans lequel sont disponibles les informations (identifiants des éléments source et cible) qui permettent la dérivation et l'importation), le système est alors averti et réalise les actions suivantes : 1- il demande si l'utilisateur désire importer le contenu ou dériver le contenant ;. B. Reception of the ONDERIVE event When the BEHAVIOR component triggers the ONDERIVE event, by the fire ("ONDERIVE", oEvent) statement that is in the FinishDrag function (the oEvent variable is an event object in which the event is available. information (identifiers of source and target elements) that allow derivation and import), the system is then notified and performs the following actions: 1- it asks if the user wants to import the content or derive the container;

2- il envoie la requête d'importation/dérivation ; 3- il vérifie si la page d'affichage est capable de prendre en compte la nouvelle source ; 4- il déclenche le rafraîchissement de l'affichage, de la façon suivante : a. si la page est figée, reconstruction et traitement global de la source ; b. si la page est dynamique, simple notification d'insertion de données. 2- it sends the import / derivation request; 3- it checks if the display page is able to take into account the new source; 4- it triggers the refresh of the display, as follows: a. if the page is frozen, reconstruction and overall treatment of the source; b. if the page is dynamic, simple notification of data insertion.

Dans ce cas, la page reçoit la notification. In this case, the page receives the notification.

<Desc/Clms Page number 114><Desc / Clms Page number 114>

Cet événement fournit un pointeur sur un objet qui permet au script de la page de transformer cette nouvelle source (à l'aide, par exemple, de la feuille XSL qui l'a initialisée) et d'insérer le code HTML résultant dans la page.  This event provides a pointer to an object that allows the page script to transform that new source (for example, using the XSL sheet that initialized it) and insert the resulting HTML into the page. .

C. Manipulation de la macrostructure L'élaboration de la macrostructure de contenants/contenus permet : - de placer de nouveaux contenus dans un contenant ; on parle alors d'importation de contenus ; - de reproduire un contenant au sein d'autres contenus ; on parle alors de dérivation de contenants. C. Manipulation of the macrostructure The development of the macrostructure of containers / contents makes it possible: - to place new contents in a container; we are talking about importing content; - to reproduce a container within other contents; we are talking about derivation of containers.

Importation Supposons que l'on soit dans la situation illustrée dans la figure 76 : contenants 1 et 2 ( Container 1 et Container 2 ) sont rattachés à la catégorie 1 (symbolisé par la flèche grise). Dans le contenant 1 figure une référence au contenu 1.1 ( Content 1.1 ), et dans le contenant 2 figure une référence au contenu 1.2 ( Content 1. 2 ) (ces références sont symbolisées par des flèches noires). Import Assume that we are in the situation shown in Figure 76: Containers 1 and 2 (Container 1 and Container 2) are attached to Category 1 (symbolized by the gray arrow). In the container 1 there is a reference to the content 1.1 (Content 1.1), and in the container 2 there is a reference to the content 1.2 (Content 1. 2) (these references are symbolized by black arrows).

Importer le contenu 1.1dans le contenant 2 revient à créer, dans ce contenant, une balise CONTENTREF qui pointe vers le contenu 1.1dans la suite de contenus. Ceci se traduit par la figure 77.  Importing the content 1.1 into the container 2 amounts to creating, in this container, a CONTENTREF tag that points to the content 1.1 in the content sequence. This is reflected in Figure 77.

Quand on importe un contenu d'une catégorie dans un contenant associé à une catégorie différente, on dit que l'importation provoque une re-catégorisation. Ceci se traduit par la création d'un contenu indirect, c'est à dire d'une balise similaire à une balise CONTENTREF mais qui s'en distingue par le fait qu'elle figure dans la suite de contenus, au sein d'une catégorie. Ceci est illustré sur la figure 78. When importing content from a category into a container associated with a different category, it is said that the import causes a re-categorization. This translates into the creation of indirect content, ie a tag similar to a CONTENTREF tag but which differs in that it appears in the following content, within a category. This is illustrated in Figure 78.

<Desc/Clms Page number 115><Desc / Clms Page number 115>

Dans le cas où les contenus importés possèdent des contenants, ces derniers sont dérivés suivant le mécanisme décrit ci-après.  In the case where the imported contents have containers, the latter are derived according to the mechanism described below.

Dérivation Supposons que l'on dispose de l'imbrication contenant/contenu présentée sur la figure 79. Derivation Suppose we have the container / content nesting presented in Figure 79.

Dériver le contenant 1 revient à l'insérer dans un contenu à une certaine position . Deriving the container 1 amounts to inserting it into a content at a certain position.

Pour ce faire, un nouveau contenant est créé dans l'arbre de structure, et pointe (c'est-à-dire possède une référence, matérialisée par une flèche grise sur le schéma de la figure 80a) vers le contenant que l'on veut dériver. To do this, a new container is created in the structure tree, and points (that is to say has a reference, shown by a gray arrow in the diagram of Figure 80a) to the container that is wants to drift.

Sur le serveur, la structure de données a alors la forme suivante pour la partie dérivée : - pour l'arbre de structure : < CONTENTREF ID=26 SRC= ... ?ID=44 NAME= Contenu > <POSITION CONTAINER N=1> <CONTAINER SRC= ... ?ID=126 SOURCESRC= ... ?ID=1 > </CONTAINER> <POSITION CONTAINER> </ CONTENTREF> - pour la suite de contenus : <CONTENT ID= 44 CATEGORY= URL > <Contenu> <POSITION CONTAINER N= I /> </Contenu> On the server, the data structure then has the following form for the derived part: - for the structure tree: <CONTENTREF ID = 26 SRC = ...? ID = 44 NAME = Content> <POSITION CONTAINER N = 1 > <CONTAINER SRC = ...? ID = 126 SOURCESRC = ...? ID = 1> </ CONTAINER> <POSITION CONTAINER> </ CONTENTREF> - for the following content: <CONTENT ID = 44 CATEGORY = URL> <Content> <CONTAINER POSITION N = I /> </ Content>

<Desc/Clms Page number 116><Desc / Clms Page number 116>

</CONTENT> Comme on peut le voir sur la figure 80a, le contenant 126 ne référence aucun contenu. Il a juste une référence sur le contenant source, à savoir celui à partir duquel on a effectué la dérivation. Le chargement des données dans le contenant dérivé se fait donc via le contenant source : il s'agit ici de suggestion . Cela conduit, sur le poste client, à la disposition illustrée sur la figure 80b.  </ CONTENT> As can be seen in FIG. 80a, the container 126 does not refer to any content. It just has a reference to the source container, namely the one from which the derivation was made. The loading of the data into the derived container is done via the source container: this is a suggestion. This leads, on the client computer, to the arrangement illustrated in Figure 80b.

Les sous-contenants sont dérivés exactement de la même manière que le premier contenant : un nouveau contenant est créé et pointe vers le sous-contenant source. La profondeur à laquelle on charge les éléments dans le contenant dérivé est fixée par le mécanisme de chargement progressif (voir plus loin chapitre V). Un tel mécanisme est nécessaire ici car, sinon, il pourrait se présenter des cas de boucles infinies dans le chargement. En effet, il est possible de dériver des contenants dans eux-mêmes, comme le montre la figure 81, et de créer ainsi une structure virtuellement infinie. Sans ce mécanisme, charger un contenant provoquerait alors une boucle infinie dans le cadre d'une structure réellement infinie.  The sub-containers are derived in exactly the same way as the first container: a new container is created and points to the source sub-container. The depth at which the elements are loaded into the derived container is fixed by the progressive loading mechanism (see chapter V below). Such a mechanism is necessary here because, otherwise, there could be cases of infinite loops in the load. Indeed, it is possible to derive containers in themselves, as shown in Figure 81, and thus create a virtually infinite structure. Without this mechanism, loading a container would then cause an infinite loop within a truly infinite structure.

Cas de la superposition de contenants Comme on l'a déjà évoqué, les contenants sont insérés en des positions bien précises des contenus. Mais rien n'empêche d'insérer plusieurs contenants à une même position. On parle alors de superposition de contenants. Case of the superposition of containers As already mentioned, the containers are inserted in very precise positions of the contents. But nothing prevents to insert several containers at the same position. This is called stacking containers.

Partons de la structure présentée dans la figure 82 (en notant que les éléments situés dans un cadre en pointillés sont considérés comme étant dans un contenant). Let's start from the structure shown in Figure 82 (noting that items in a dotted box are considered to be in a container).

Cela se traduit ainsi : - pour l'arbre de structure : This translates as follows: - for the structure tree:

<Desc/Clms Page number 117><Desc / Clms Page number 117>

<CONTENTREF ID=54 SRC= ... ?ID=42 NAME= Root > <POSITION CONTAINER N=1> <CONTAINER SRC= ... ?ID=12 CATEGORY= URL > <CONTENTREF ID=55 SRC= ... ?ID=43 NAME= A > <POSITION CONTAINER N=1> <CONTAINER SRC= ... ?ID=13 CATEGORY= URL > <CONTENTREF ID=56 SRC= ... ? ID=44 NAME= C /> </CONTAINER> </POSITION CONTAINER> </CONTENTREF> <CONTENTREF ID=57 SRC= ... ?ID=45 NAME= B > <POSITION CONTAINER N=1> <CONTAINER IDCONTAINER= 14 > <CONTENTREF ID=58 SRC= ... ?ID=46 NAME= D /> </CONTAINER> </POSITION CONTAINER> </ CONTENTREF> </CONTAINER> </POSITION CONTAINER> </CONTENTREF> - pour la suite de contenus : <CONTENT ID= 42 CATEGORY= URL > <Root> <POSITION CONTAINER N= l /> </Root> </CONTENT> <CONTENT ID= 43 CATEGORY= URL > <A>  <CONTENTREF ID = 54 SRC = ...? ID = 42 NAME = Root> <CONTAINER POSITION N = 1> <CONTAINER SRC = ...? ID = 12 CATEGORY = URL> <CONTENTREF ID = 55 SRC = ... ? ID = 43 NAME = A> <CONTAINER POSITION N = 1> <CONTAINER SRC = ...? ID = 13 CATEGORY = URL> <CONTENTREF ID = 56 SRC = ...? ID = 44 NAME = C /> </ CONTAINER> </ CONTAINER POSITION> </ CONTENTREF> <CONTENTREF ID = 57 SRC = ...? ID = 45 NAME = B> <CONTAINER POSITION N = 1> <CONTAINER IDCONTAINER = 14> <CONTENTREF ID = 58 SRC = ...? ID = 46 NAME = D /> </ CONTAINER> </ CONTAINER POSITION> </ CONTENTREF> </ CONTAINER> </ POSITION CONTAINER> </ CONTENTREF> - for the following contents: <CONTENT ID = 42 CATEGORY = URL> <Root> <POSITION CONTAINER N = 1 /> </ Root> </ CONTENT> <CONTENT ID = 43 CATEGORY = URL> <A>

<Desc/Clms Page number 118><Desc / Clms Page number 118>

<POSITION CONTAINER N= 1 /> </A> </CONTENT> <CONTENT ID= 44 CATEGORY= URL > <B> <POSITION CONTAINER N= 1 /> </B> </CONTENT> <CONTENT ID= 45 CATEGORY= URL > <C/> </CONTENT> <CONTENT ID= 46 CATEGORY= URL > <D/> </CONTENT> Supposons maintenant que l'on dérive le contenant 13 (celui qui contient le contenu C) dans le contenu 44 (qui correspond au contenu B) à la même position que le contenant 14 (qui contient le contenu D). La balise correspondant au contenu 44 dans la suite de contenus ne sera pas modifiée. En effet, le contenu conserve une seule position pour les contenants, même si deux contenants sont superposés sur cette position. Cette superposition se manifeste au niveau de l'arbre de structure par le fait qu'un nouveau contenant est ajouté sous la balise POSITION N=1, comme indiqué ci-dessous : <CONTENTREF ID=32 SRC= ... ?ID=42 NAME= Root > <POSITION CONTAINER N=l> <CONTAINER SRC= ... ?ID=12 CATEGORY= URL > <CONTENTREF ID=33 SRC= ... ?ID=43 NAME= A >  <POSITION CONTAINER N = 1 /> </A> </ CONTENT> <CONTENT ID = 44 CATEGORY = URL> <B> <POSITION CONTAINER N = 1 /> </ B> </ CONTENT> <CONTENT ID = 45 CATEGORY = URL> <C /> </ CONTENT> <CONTENT ID = 46 CATEGORY = URL> <D /> </ CONTENT> Let's now assume that container 13 (the one containing content C) is derived from the content (which corresponds to the content B) at the same position as the container 14 (which contains the content D). The tag corresponding to the content 44 in the content sequence will not be modified. Indeed, the content keeps a single position for the containers, even if two containers are superimposed on this position. This superposition is manifested at the structural tree level by the fact that a new container is added under the POSITION N = 1 tag, as shown below: <CONTENTREF ID = 32 SRC = ...? ID = 42 NAME = Root> <CONTAINER POSITION N = l> <CONTAINER SRC = ...? ID = 12 CATEGORY = URL> <CONTENTREF ID = 33 SRC = ...? ID = 43 NAME = A>

<Desc/Clms Page number 119><Desc / Clms Page number 119>

<POSITION CONTAINER N=l> <CONTAINER SRC= ... ?ID=13 CATEGORY= URL > <CONTENTREF ID=34 SRC= ... ? ID=44 NAME= C /> </CONTAINER> </POSITION~CONTAINER> </CONTENTREF> <CONTENTREF ID=35 SRC= ... ?ID=45 NAME= B > <POSITION CONTAINER N=1> <CONTAINER SRC= .. ?ID=14 CATEGORY= URL > <CONTENTREF ID=36 SRC= ... ? ID=46 NAME= D /> </CONTAINER> <CONTAINER SRC= 15 CATEGORY= URL SOURCESRC= ... ?ID=13 > </CONTAINER> </POSITION CONTAINER> </CONTENTREF> </CONTAINER> </POSITION CONTAINER> </CONTENTREF> Mécanisme de Suggestion de nouveaux contenus (propagation dans la macrostructure) Le fait de dériver un contenant implique qu'il est possible d'accéder aux contenus acceptés présents dans le contenant d'origine. Ces contenus sont en fait automatiquement suggérés dans les contenants dérivés au fur et à mesure de leur insertion.  <CONTAINER POSITION N = l> <CONTAINER SRC = ...? ID = 13 CATEGORY = URL> <CONTENTREF ID = 34 SRC = ...? ID = 44 NAME = C /> </ CONTAINER> </ POSITION ~ CONTAINER> </ CONTENTREF> <CONTENTREF ID = 35 SRC = ...? ID = 45 NAME = B> <POSITION CONTAINER N = 1> <CONTAINER SRC = ..? ID = 14 CATEGORY = URL> <CONTENTREF ID = 36 SRC = ...? ID = 46 NAME = D /> </ CONTAINER> <CONTAINER SRC = 15 CATEGORY = URL SOURCESRC = ...? ID = 13> </ CONTAINER> </ POSITION CONTAINER> </ CONTENTREF> </ CONTAINER> </ POSITION CONTAINER> </ CONTENTREF> Suggestion mechanism for new content (propagation in the macrostructure) The fact of deriving a container implies that it is possible to access the accepted contents present in the original container. These contents are in fact automatically suggested in the derived containers as and when they are inserted.

C'est à l'utilisateur de préciser s'il accepte ou non les suggestions, comme décrit par ailleurs. Il est à noter que seuls les contenus acceptés pourront être dérivés à leur tour. It is up to the user to specify whether or not he accepts the suggestions, as described elsewhere. It should be noted that only accepted content can be derived in turn.

<Desc/Clms Page number 120><Desc / Clms Page number 120>

La suggestion peut ainsi se faire entre des utilisateurs différents (par exemple lorsqu'un utilisateur dérive un contenant d'un document dont il n'était pas l'auteur), mais également lorsqu'un même utilisateur dérive un contenant entre deux de ses propres documents.  The suggestion can thus be made between different users (for example when a user derives a container from a document of which he was not the author), but also when the same user derives a container between two of his own documents.

Lorsqu'un utilisateur dérive un contenant, il crée un nouveau contenant portant la référence du contenant source, et les contenus du contenant source qui étaient en mode Accepté y sont chargés. Ces contenus sont initialement en mode Suggéré , et l'utilisateur peut modifier leur mode. When a user derives a container, he creates a new container with the reference of the source container, and the contents of the source container that were in Accepted mode are loaded there. These contents are initially in Suggested mode, and the user can change their mode.

Sur le plan de la base de données contenue dans le serveur, le contenant dérivé ne contient aucune information sur les contenus suggérés. Ces informations peuvent en effet être retrouvées via la référence sur le contenant source. En revanche, sur le poste client où ce contenant a été dérivé, une balise CONTENTREF est ajoutée pour chaque contenu chargé dans ce contenant, avec un attribut MODE=SUGGESTED. In terms of the database contained in the server, the derived container does not contain any information about the suggested content. This information can indeed be found via the reference on the source container. On the other hand, on the client station where this container was derived, a CONTENTREF tag is added for each content loaded in this container, with a MODE = SUGGESTED attribute.

Ce qui est suggéré peut être accepté ou refusé (ou encore laissé en mode suggéré). Cet éventuel changement de mode est répercuté par une mise à jour de la base de données sur le serveur, de la façon suivante : - si le contenu est accepté : une balise CONTENTREF vers ce contenu est ajoutée dans la base de données dans le contenant dérivé, avec un attribut MODE=ACCEPTED. What is suggested can be accepted or rejected (or left in suggested mode). This possible change of mode is reflected by an update of the database on the server, as follows: - if the content is accepted: a CONTENTREF tag to this content is added in the database in the derived container , with a MODE = ACCEPTED attribute.

- si le contenu est refusé : une balise CONTENTREF vers ce contenu est également ajoutée dans la base de données dans le contenant dérivé, avec un attribut MODE=REFUSED ; l'objectif dans ce cas est de noter que ce contenu ne doit pas être présenté à l'utilisateur à la prochaine connexion. - if the content is refused: a CONTENTREF tag to this content is also added to the database in the derived container, with a MODE = REFUSED attribute; the goal in this case is to note that this content should not be presented to the user at the next login.

La mémorisation correspondant à ces différents cas est schématisée sur la figure 83. The memorization corresponding to these different cases is shown schematically in Figure 83.

<Desc/Clms Page number 121> <Desc / Clms Page number 121>

Section 12 - Proposition de Répertoires Spécialistes et Voisins On a vu dans la section précédente que, dans le cadre d'une page à laquelle l'utilisateur accède sur la Toile par des moyens standards, peuvent se trouver des contenants, et que dans chaque contenant peuvent se trouver des liens vers des contenus. Ces liens sont ceux choisis par l'administrateur du site d'où la page est issue comme devant être présentés par défaut. Section 12 - Proposal of Specialist and Neighbors Directories We saw in the previous section that, in the context of a page to which the user accesses the Web by standard means, can be found containers, and that in each container can be links to content. These links are those chosen by the administrator of the site from which the page comes as to be presented by default.

Ces liens sont censés être en mode Suggéré. L'utilisateur, par l'intermédiaire du système, peut modifier leur mode, pour leur donner la valeur Accepté, Gelé ou Refusé, en accédant à cette même page avec le système. These links are supposed to be in Suggested mode. The user, through the system, can modify their mode, to give them the value Accepted, Frozen or Refused, by accessing this same page with the system.

Au lieu de présenter des mêmes liens à tous les utilisateurs, la fonctionnalité de proposition de répertoires Spécialistes (déjà décrite dans les sections Publication de Liens Ajoutés et Publication de Répertoires ) permet de présenter plusieurs points de vue sur un sujet, selon une métaphore de visite des toiles personnelles de Spécialistes . Instead of presenting the same links to all users, the feature of proposing Specialist directories (already described in the sections Adding Links and Publishing Directories) makes it possible to present several points of view on a subject, according to a visit metaphor. personal paintings of Specialists.

Avec ladite page, l'utilisateur peut aussi recevoir des liens ajoutés (qui y ont été associés par l'administrateur du site ou par les Spécialistes qu'il aura sélectionnés). With this page, the user can also receive added links (which have been associated with it by the administrator of the site or by the Specialists he has selected).

Grâce à la fonctionnalité de proposition de répertoires Spécialistes, les liens ajoutés ne seront suggérés qu'en relation avec une visite de répertoire et ne surchargeront ainsi pas la page d'emblée. Thanks to the Specialist directory proposal feature, the added links will only be suggested in relation to a directory visit and will not overload the page from the outset.

Dans l'exemple que l'on prendra tout au long de cette section (voir figure 84a), pour une page sur le foie gras, des Spécialistes (ici des Chefs) différents présentent : - associés à la page, des liens ajoutés sur des vins (Sauteme) et salades (Mesclun) différents ; In the example that will be taken throughout this section (see Figure 84a), for a page on foie gras, Specialists (here different Chefs) present: - associated with the page, links added on wines (Sauteme) and salads (Mesclun) different;

<Desc/Clms Page number 122><Desc / Clms Page number 122>

- à l'intérieur d'un contenant de la page, des liens sur différents types de foie gras (Canard, Oie).  - inside a container of the page, links on different types of foie gras (Duck, Goose).

L'utilisateur peut alors accepter certains liens ajoutés et/ou des liens situés à l'intérieur de contenants de la page, qui lui sont ainsi suggérés. The user can then accept certain added links and / or links located inside containers of the page, which are thus suggested to him.

On notera que, dans ce cas, non seulement l'attribut Mode du lien ajouté mais aussi l'attribut Mode du lien dans le répertoire courant, pointant sur la page à laquelle est associé ce lien ajouté, est mis à jour à la valeur Accepté . L'acceptation remonte ainsi d'enfant à parent récursivement. Ainsi l'attribut Mode du lien pointant sur le répertoire courant, dans le répertoire qui le contient, le cas échéant, est aussi mis à jour, et ainsi de suite. Il en est de même pour les liens situés dans les contenants de la page. Note that, in this case, not only the Mode attribute of the added link but also the Mode attribute of the link in the current directory, pointing to the page with which this added link is associated, is updated to the Accepted value. . Acceptance thus goes back from child to parent recursively. Thus the Mode attribute of the link pointing to the current directory, in the directory that contains it, if any, is also updated, and so on. It is the same for the links located in the containers of the page.

Toutefois, en général, l'utilisateur n'accepte pas un lien ajouté (ou un lien dans un contenant) pointant sur une page P, sans au préalable cliquer sur lui pour visualiser la page P qu'il pointe. Ensuite, si la page P l'intéresse, il l'accepte directement, sans retourner accepter le lien ajouté d'où il est venu. En d'autres termes, au lieu d'accepter le lien ajouté (ou le lien dans un contenant) pointant sur P, il accepte la page P elle-même, c'est-à-dire le lien pointant sur ladite page P dans le répertoire courant qui l'accueille. However, in general, the user does not accept an added link (or a link in a container) pointing to a page P, without first clicking on it to view the page P it points. Then, if the page P interests him, he accepts it directly, without returning to accept the added link from where he came. In other words, instead of accepting the added link (or the link in a container) pointing to P, it accepts the page P itself, that is, the link pointing to said page P in the current repertoire that welcomes it.

Un perfectionnement du système consiste alors à suivre le parcours de l'utilisateur qui clique sur un lien ajouté pour que, quand la page cible est acceptée, le système mette également à jour l'attribut Mode du lien ajouté par l'intermédiaire duquel il a accédé à cette page. A refinement of the system is then to follow the path of the user who clicks on an added link so that when the target page is accepted, the system also updates the Mode attribute of the added link through which it has accessed this page.

En acceptant un lien ajouté (ou un lien situé dans un contenant de page) l'utilisateur déclare son intérêt pour les contenus vers lesquels pointent ces Liens. Son profil d'intérêt se construit ainsi progressivement, et lorsqu'il atteint un seuil de By accepting an added link (or a link in a page container) the user declares his / her interest in the content to which these Links point. Its interest profile is thus built up gradually, and when it reaches a threshold of

<Desc/Clms Page number 123><Desc / Clms Page number 123>

représentativité, le système peut lui proposer des répertoires proches dans la liste de répertoires Voisins d'intérêt (voir la liste Copains dans la figure 84a).  representativeness, the system can propose close directories in the Neighbors of interest list (see Buddies list in Figure 84a).

Dans le cas où, comme dans l'exemple de la figure 84a, la page courante comporte non seulement des liens ajoutés (Sauteme, Mesclun), mais aussi des liens dans au moins un contenant (Canard, Oie) se trouvant dans la page, le système sélectionne des répertoires qui sont proches: - par rapport aux liens ajoutés acceptés associés à la page courante : le système sélectionne les répertoires dans lesquels se trouve la page courante ainsi qu'un grand nombre de liens ajoutés en commun, comme décrit dans la section Détection de Répertoires Proches ; - par rapport aux liens acceptés) se trouvant dans chaque container se trouvant dans la page : le système sélectionne les répertoires contenant le plus grand nombre de liens en commun avec ledit contenant, comme décrit dans la section Publication de Répertoires . In the case where, as in the example of FIG. 84a, the current page includes not only added links (Sauteme, Mesclun), but also links in at least one container (Duck, Goose) found in the page, the system selects directories that are close to: - compared to the accepted added links associated with the current page: the system selects the directories in which the current page is located as well as a large number of links added in common, as described in the section Detecting Close Directories; - in relation to the accepted links) found in each container on the page: the system selects the directories containing the largest number of links in common with the container, as described in the section Publishing Directories.

On observera ici que le système peut exploiter non seulement les liens (liens ajoutés et liens dans les contenants) acceptés et gelés, mais aussi les liens refusés. Il est en effet intéressant de considérer ce que l'utilisateur n'a pas retenu dans les liens qui lui ont été proposé pour construire son profil. It will be observed here that the system can exploit not only the links (links and links in the containers) accepted and frozen, but also the links refused. It is indeed interesting to consider what the user did not retain in the links that were proposed to him to build his profile.

Le système exploite ces mêmes données (liens ajoutés et liens dans les contenants) pour ajuster les répertoires Spécialistes proposés à l'utilisateur. Ceci est décrit dans les sections Publication de Liens Ajoutés et Publication de Répertoires . The system uses the same data (added links and links in the containers) to adjust the Specialist directories offered to the user. This is described in the sections Adding Links and Publishing Directories.

En lui proposant un ensemble de répertoires proches, le système permet à l'utilisateur de visiter les toiles personnelles d'un ensemble d'autres utilisateurs, avec qui il peut par ailleurs se mettre en contact, comme déjà décrit dans le section Détection de Répertoires Proches . By offering a set of close directories, the system allows the user to visit the personal webs of a set of other users, with whom he can also get in touch, as already described in the section Detection of Directories Relatives .

<Desc/Clms Page number 124><Desc / Clms Page number 124>

L'utilisateur peut cliquer sur un lien (vers contenu) dans un contenant de la page, ou sur un lien ajouté pour accéder au contenu en question. Le système lui propose alors les répertoires Spécialistes , Voisins et Copains pour ce nouveau contenu, et ainsi de suite.  The user can click on a link (to content) in a container of the page, or on an added link to access the content in question. The system then proposes the directories Specialists, Neighbors and Buddies for this new content, and so on.

Enfin, l'utilisateur peut sélectionner un ensemble de liens ajoutés, ou un ensemble de liens dans un contenant, pour demander au système de lui sélectionner des répertoires proches compte-tenu de cet ensemble. L'homme du métier saura facilement étendre les procédés décrits jusqu'ici pour mettre en oeuvre cette fonctionnalité. Finally, the user can select a set of added links, or a set of links in a container, to ask the system to select directories close to him considering this set. Those skilled in the art will easily extend the methods described so far to implement this feature.

Section 13 - Attributs relatifs à l'acceptation Lors de l'acceptation (passage au mode Accepté ou Gelé) d'un contenu, l'utilisateur peut spécifier s'il y est intéressé pour l'acheter, le vendre, et/ou pour d'autres intérêts qu'il y porte le cas échéant, en fonction du type de contenu. Section 13 - Acceptance Attributes When accepting (switching to Accepted or Frozen Mode) content, the user can specify whether he or she is interested in purchasing, selling, and / or other interests, if any, depending on the type of content.

Ces spécifications se font en donnant des valeurs à des attributs que le système prend en compte lors des sélections de répertoires (Spécialistes et Voisins) qu'il propose à l'utilisateur, ainsi que pour sélectionner le contenu de ces derniers le cas échéant (voir les sections Détection de Répertoires Proches , Suggestion de Liens Ajoutés par l'administrateur d'un site , Publication de Répertoires et Proposition de Répertoires Spécialistes et Voisins ). These specifications are given by giving values to attributes that the system takes into account when selecting directories (Specialists and Neighbors) that it proposes to the user, as well as to select the content of the latter if necessary (see the sections Detection of Close Directories, Suggestion of Links Added by the administrator of a site, Publication of Directories and Proposal of Directories Specialists and Neighbors).

L'utilisateur qui accède à une page (page courante), peut spécifier des critères sur ces attributs pour restreindre l'ensemble des répertoires (Spécialistes et Voisins) qui lui sont proposés en relation avec ladite page courante. The user who accesses a page (current page), can specify criteria on these attributes to restrict all the directories (Specialists and Neighbors) that are proposed to him in relation to said current page.

Ainsi, si par exemple il est intéressé par l'achat du produit présenté dans la page courante (ou dans un ensemble de pages qu'il sélectionne), il pourra s'intéresser sélectivement aux répertoires d'utilisateurs : Thus, if, for example, he is interested in purchasing the product presented in the current page (or in a set of pages that he selects), he will be able to focus selectively on user directories:

<Desc/Clms Page number 125><Desc / Clms Page number 125>

- intéréssés à vendre ce produit (recherche de fournisseurs de ce produit), - ou intéréssés comme lui à acheter ce produit : il pourra ainsi se joindre au groupe d'utilisateurs intéressés par cet achat et augmenter l'influence de ce groupe pour faire baisser le prix du produit chez un fournisseur, éventuellement à l'aide d'une procédure automatisée (d'aide à l'achat groupé ) qui se déclenche quand ce critère est utilisé.  - Interested in selling this product (looking for suppliers of this product), - or interested like him to buy this product: he can join the group of users interested in this purchase and increase the influence of this group to lower the price of the product from a supplier, possibly using an automated procedure (help with group purchase) that is triggered when this criterion is used.

Dans le premier cas l'utilisateur recevra, à partir des répertoires de vendeurs ainsi sélectionnés, des liens en mode suggéré concernant des offres particulières pour le produit présenté dans la page courante ainsi que sur d'autres produits proposés par ces vendeurs. In the first case the user will receive, from the directories of sellers thus selected, links in suggested mode concerning particular offers for the product presented in the current page as well as on other products offered by these sellers.

Dans le deuxième cas, l'utilisateur bénéficiera des découvertes des autres utilisateurs (acheteurs potentiels) ayant des intérêts (et/ou goûts) proches. In the second case, the user will benefit from the discoveries of other users (potential buyers) with similar interests (and / or tastes).

Rapelons que les utilisateurs du système sont anonymes et peuvent y accéder en utilisant un pseudonyme. It should be noted that users of the system are anonymous and can access them using a pseudonym.

On va maintenant décrire une mise en #uvre particulière de cet aspect de l'invention. We will now describe a particular implementation of this aspect of the invention.

Seuls deux attributs sont mis en #uvre : Demandeur et Offreur . Only two attributes are implemented: Applicant and Provider.

Lors de l'acceptation d'un lien, en utilisant l'interface illustrée aux figures 55b et 66 (qui notamment lui permettent de changer le mode du lien de suggéré en accepté ou en gelé ), l'utilisateur a deux cases à cocher à sa disposition, à savoir : Demandeur et Offreur . When accepting a link, by using the interface illustrated in FIGS. 55b and 66 (which notably allow it to change the mode of the link from suggested to accepted or frozen), the user has two checkboxes at its disposition, namely: Applicant and Provider.

*Cette configuration est illustrée schématiquement à la figure 84b. * This configuration is illustrated schematically in Figure 84b.

<Desc/Clms Page number 126> <Desc / Clms Page number 126>

Il cochera Demandeur s'il se positionne comme demandeur, et sur Offreur s'il se positionne comme offreur , vis à vis de la chose présentée dans la page courante. On observera que ces deux possibilités ne sont pas exclusives : il peut se positionner à la fois comme demandeur et comme offreur. He will check Applicant if he positions himself as a plaintiff, and on Vendor if he positions himself as an offerer, with respect to the thing presented in the current page. It should be noted that these two possibilities are not exclusive: they can position themselves both as applicants and as offerers.

Le système mémorise la valeur de ces deux attributs pour chaque lien dans la toile personnelle de chaque utilisateur. Il peut ainsi en tenir compte dans le procédé de sélection des répertoires à proposer aux utilisateurs. The system stores the value of these two attributes for each link in the personal canvas of each user. He can thus take it into account in the process of selecting the directories to propose to the users.

Pour actionner la sélection de répertoires proposés dans les deux premières listes ( spécialistes et voisins ; voir la figure 55a) en fonction de ces deux attributs, l'utilisateur a deux autres cases à cocher Demandeur et Offreur à sa disposition. To operate the selection of directories proposed in the first two lists (specialists and neighbors, see Figure 55a) according to these two attributes, the user has two other checkboxes Applicant and Offerer at his disposal.

Ces deux autres cases à cocher sont cochées par défaut. These two other checkboxes are checked by default.

En décochant Demandeur , l'utilisateur spécifie qu'il ne s'intéresse pas à visiter les répertoires positionnés comme demandeur en regard de la chose présentée dans la page courante. By unchecking the Requestor, the user specifies that he is not interested in visiting the directories that are positioned as the requester next to the thing presented in the current page.

De même, en décochant Offreur , l'utilisateur précise qu'il ne souhaite pas recevoir de liens à partir de répertoires positionnés comme offreur en ce qui concerne la chose présentée dans la page courante. Similarly, by unchecking Offeror, the user specifies that he does not wish to receive links from directories positioned as an offerer with regard to the thing presented in the current page.

Ces attributs peuvent avoir une interprétation plus large que celle concernant l'achat et la vente. Par exemple, l'attribut Offreur peut être utilisé par l'utilisateur pour informer sur ses propres caractéristiques : l'utilisateur peut par exemple cocher l'attribut offreur sur une page présentant un acteur de cinéma qui lui ressemble, dans l'espoir de pouvoir se mettre en contact, au moyen du système (par exemple par vidéoconférence), avec une utilisatrice qui apprécie cet acteur tel qu'il est présenté dans ladite page. These attributes may have a broader interpretation than buying and selling. For example, the attribute Vendor can be used by the user to inform about his own characteristics: the user can for example check the offeror attribute on a page presenting a film actor who looks like him, in the hope of being able to get in touch, by means of the system (for example by videoconference), with a user who appreciates this actor as it is presented in said page.

<Desc/Clms Page number 127><Desc / Clms Page number 127>

Dans le cas de l'application d'achat groupé sus-mentionné, le système proposera à l'utilisateur des voisins qui sont Demandeurs du produit présenté dans la page courante visualisée. L'utilisateur pourra alors interagir avec ces utilisateurs par des moyens assistés par ordinateur, en communication synchrone (messagerie instantanée, etc) ou asynchrone (forum et courrier électronique augmentés de moyens semi-automatiques spéciaux pour faciliter la coordination d'achat groupé, notamment pour négocier les prix avec les Offreurs).  In the case of the bulk purchase application mentioned above, the system will offer the user neighbors who are Claimants of the product presented in the current page viewed. The user can then interact with these users by computer-assisted means, in synchronous communication (instant messaging, etc.) or asynchronously (forum and e-mail augmented with special semi-automatic means to facilitate the coordination of group purchasing, especially for negotiate prices with the Offerors).

Section 14 - Pages Personnalisées Les documents restructurés comme décrit dans la section précédente permettent de présenter, dans des contenants, des contenus sélectionnés en fonction des centres d'intérêts de l'utilisateur. On va maintenant décrire une façon dont peut être effectuée cette sélection. Section 14 - Custom Pages Restructured documents as described in the previous section are used to present, in containers, contents selected according to the interests of the user. We will now describe a way in which this selection can be made.

Rappelons tout d'abord que tout contenu accepté par l'utilisateur dans un contenant adopte la catégorie de ce contenant (comme on l'a décrit notamment plus haut dans le présent chapitre et comme on y reviendra dans le chapitre III), en plus des catégories des autres contenants dans lesquels l'utilisateur a aussi accepté ce contenu le cas échéant. First of all, remember that any content accepted by the user in a container adopts the category of this container (as described in particular earlier in this chapter and as will be discussed in Chapter III), in addition to categories of other containers in which the user has also accepted this content where appropriate.

Dans la mesure où le système connaît les catégories des contenants imbriqués dans un contenu qui fait l'objet d'une requête, il peut automatiquement enrichir la requête par des critères supplémentaires. En effet, le système est capable de déterminer que, pour un certain nombre de contenus de chacune desdites catégories, il existe d'autres catégories qui ont été attribuées par l'utilisateur à ces mêmes contenus. Le principe utilisé ici est d'exploiter ces autres catégories en les utilisant en tant que critères supplémentaires (ou plus exactement en tant que préférences ) pour enrichir automatiquement la requête formée par l'utilisateur. Because the system knows the categories of containers nested in content that is the subject of a request, it can automatically enrich the query with additional criteria. Indeed, the system is able to determine that for a certain number of contents of each of said categories, there are other categories that have been assigned by the user to these same contents. The principle used here is to exploit these other categories by using them as additional criteria (or more exactly as preferences) to automatically enrich the request formed by the user.

<Desc/Clms Page number 128><Desc / Clms Page number 128>

Par exemple, dans un contenu qui fait l'objet d'une requête, se trouve imbriqué un contenant de catégorie guitare , et chez l'utilisateur, un certain nombre de contenus de cette catégorie possèdent également la catégorie objet d'art . On exploite donc le fait qu'a priori, dans ce contenant, l'utilisateur préférera recevoir (par le processus de suggestion décrit par ailleurs) des contenus qui possèdent non seulement la catégorie guitare , mais également la catégorie objet d'art . Ainsi, pour le contenant de catégorie guitare , la requête de l'utilisateur peut être enrichie par le critère supplémentaire : catégorie = objet d'art . On observera ici que, s'il n'existe aucun contenu appartenant à ces deux catégories simultanément, le système propose alors à l'utilisateur les contenus appartenant simplement à la catégorie guitare . Le critère supplémentaire sera ainsi pris en compte comme étant une préférence .  For example, in a content that is the subject of a request, there is a nested guitar category container, and in the user, a certain number of contents of this category also have the art object category. So we exploit the fact that a priori, in this container, the user will prefer to receive (by the process of suggestion described elsewhere) content that not only have the category guitar, but also the category art object. Thus, for the guitar category container, the request of the user can be enriched by the additional criterion: category = art object. It will be observed here that, if there is no content belonging to these two categories simultaneously, the system then proposes to the user the contents belonging simply to the guitar category. The additional criterion will thus be taken into account as a preference.

On comprend donc que les contenus sont sélectionnés par le système de manière personnalisée , c'est-à-dire en tenant compte des centres d'intérêts potentiels de l'utilisateur pour les contenants en question. It is therefore understood that the contents are selected by the system in a personalized manner, that is to say taking into account the potential centers of interest of the user for the containers in question.

Par ailleurs, les catégorisations effectuées par les utilisateurs peuvent remonter vers l'administrateur d'un site en tant que suggestions de catégorisation pour les contenus en question, de manière à modifier la structure XML de la page considérée si l'administrateur le juge opportun. Le procédé d'auto-épuration décrit en détail dans le chapitre suivant permettra d'automatiser, dans une certaine mesure, le filtrage des catégorisations considérées comme qualitativement mauvaises ou non fiables. In addition, the categorizations performed by the users can go back to the administrator of a site as suggestions of categorization for the contents in question, so as to modify the XML structure of the page considered if the administrator deems it appropriate. The self-purification process described in detail in the next chapter will automate, to a certain extent, the filtering of categorisations considered as qualitatively bad or unreliable.

* * * Chapitre III - Processus de suggestion généralisé (Figures 85 à 134) Ce chapitre vise un cadre différent pour le processus de suggestion décrit plus haut dans les dernières sections du chapitre II ainsi que différentes extensions de ce processus. Ce processus va être décrit ci-dessous à des niveaux de fonctionnalités et de sophistication croissants. On présentera d'abord (Section 1) les structures et les  * * * Chapter III - General Suggestion Process (Figures 85 to 134) This chapter aims at a different framework for the suggestion process described earlier in the last sections of Chapter II as well as different extensions of this process. This process will be described below at increasing levels of functionality and sophistication. We will first present (Section 1) the structures and

<Desc/Clms Page number 129><Desc / Clms Page number 129>

procédés fondamentaux de chaque niveau. La présentation de chaque niveau s'appuie sur les niveaux précédents. Dans la Section 2, on décrira les procédés annexes de filtrage par apprentissage de fiabilité de l'information. La Section 3 présente le principe de suggestions automatiques par rapprochement d'intérêts, et la section 4 présente un perfectionnement des mécanismes de suggestion automatique qui exploite l'avantage du graphe de dérivations entre utilistaurs. Ensuite sont présentés les méthodes de renforcement de l'anonymat des Utilisateurs et les modèles économiques possibles (Section 5). Enfin la Section 6 présente l'exploitation du mécanisme de dérivation/suggestion/acceptation décrit dans la première section pour la fidélisation des utilisateurs en exploitant leur fibre de collectionneur.  fundamental processes of each level. The presentation of each level builds on the previous levels. In Section 2, we will describe the additional methods of filtering by learning the reliability of the information. Section 3 presents the principle of automatic suggestion by comparison of interests, and section 4 presents an improvement of the automatic suggestion mechanisms which exploits the advantage of the graph of derivations between utilistaurs. Then, the methods of reinforcing the anonymity of the Users and the possible economic models are presented (Section 5). Finally Section 6 presents the exploitation of the derivation / suggestion / acceptance mechanism described in the first section for user loyalty by exploiting their collector fiber.

Section 1 - Structure et procédé fondamentaux A. Bref rappel de la notation UML Considérons la structure hiérarchique schématisée ci-dessous :
Contenant-1
Contenus
Contenu-1
Contenu-2
Sous-Contenants
Contenant-11
Contenus
Sous-Contenants
Contenant-12
Contenant 2
Section 1 - Fundamental Structure and Processes A. Brief reminder of the UML notation Let us consider the hierarchical structure schematized below:
Containing-1
contents
Content-1
Content-2
Sub-Containers
Container-11
contents
Sub-Containers
Container-12
Container 2

<Desc/Clms Page number 130><Desc / Clms Page number 130>

Cette structure hiérarchique est spécifiée sur la figure 85 des dessins qui est un diagramme de classe selon un standard connu de Modélisation Orienté-Objet, noté UML (voir en particulier UML Reference Manual - Rumbaugh, Booch, Jacobson, 1999).  This hierarchical structure is specified in Figure 85 of the drawings which is a class diagram according to a known Object Oriented Modeling standard, noted UML (see in particular UML Reference Manual - Rumbaugh, Booch, Jacobson, 1999).

Il s'agit d'une structure hiérarchique arborescente d'Eléments ( Elt ), chaque Elément étant un Contenant ou un Contenu , les Contenants pouvant contenir des Eléments (ce sont leurs Sous-éléments SousElt ), tandis que les Contenus ne peuvent pas contenir d'éléments. It is a tree hierarchical structure of Elements (Elt), each Element being a Container or a Content, the Containers may contain Elements (these are their SousElt Sub-elements), while the Contents may not contain elements.

Les Utilisateurs du système selon l'invention utilisent une telle structure arborescente d'Eléments. The users of the system according to the invention use such a tree structure of Elements.

B. forme de réalisation de base (niveau 1) Tous les Utilisateurs du système utilisent la même structure de Contenants. Mais, dans de mêmes Contenants, chaque Utilisateur regroupe des Contenus qui peuvent être différents d'un Utilisateur à l'autre. B. Basic Implementation (Level 1) All System Users use the same Container structure. But, in the same Containers, each User groups Contents that may be different from one User to another.

Tous les Contenus de tous les Utilisateurs - sauf les Contenus confidentiels (voir plus loin) - sont regroupés, dans leurs Contenants respectifs, dans une Base de Données Commune, notée BD , accessible par tous les Utilisateurs . All the Contents of all Users - except the Confidential Contents (see below) - are grouped in their respective Containers in a Common Database, denoted BD, accessible by all Users.

On appelle ici Profil l'ensemble des Contenus d'un Utilisateur donné pour un Contenant donné. Here is called Profile all the Contents of a given User for a given Container.

Le diagramme de classe correspondant est illustré sur la figure 86. The corresponding class diagram is shown in Figure 86.

Le système décrit ici offre pour les Utilisateurs une garantie d'anonymat : ainsi un Utilisateur ne peut pas accéder aux Profils d'un autre Utilisateur (les Profils sont The system described here offers for the Users a guarantee of anonymity: thus a User can not access the Profiles of another User (the Profiles are

<Desc/Clms Page number 131><Desc / Clms Page number 131>

confidentiels), bien qu'il puisse accéder à tous les Contenus (non confidentiels), puisqu'il peut consulter l'ensemble de la Base de Données Commune.  confidential), although he can access all the Contents (non-confidential), since he can consult the whole of the Common Database.

En d'autres termes, la Base de Données Commune mémorise, dans chaque Contenant, l'union des Profils des Utilisateurs pour ce Contenant, sans permettre de distinguer les Profils eux-mêmes. In other words, the Common Database stores, in each Container, the union of User Profiles for that Container, without distinguishing the Profiles themselves.

De là, un Utilisateur est incapable de déterminer dans quels Profils est référencé un Contenu donné auquel il accède dans la Base de Données Commune. From there, a User is unable to determine in which Profiles is referenced a given Content that he accesses in the Common Database.

Cette organisation est schématisée sur la figure 87. This organization is shown schematically in Figure 87.

Lorsqu'un Contenu est modifié par un Utilisateur (bien entendu, à condition qu'il en ait le droit, par exemple s'il est le créateur de ce Contenu), les autres Utilisateurs, ayant ce Contenu dans leurs Profils respectifs, le voient mis à jour automatiquement dès qu'ils accèdent à la BD Commune pour la première fois postérieurement à ladite modification. When a Content is modified by a User (of course, provided that he has the right to do so, for example if he is the creator of that Content), the other Users, having that Content in their respective Profiles, see it. automatically updated as soon as they access the Commune Comic for the first time after the modification.

L'Utilisateur peut consulter la BD Commune. Il peut s'y abonner pour être automatiquement informé des ajouts de Contenus dans certains des Contenants, de façon sélective (par exemple au moyen de la puissance d'expression d'un langage classique de requêtes à une Base de Données). Le fait d'être informé automatiquement est ce qu'on appelle un procédé de suggestion , dont on donnera davantage de détails dans la suite. The User can consult the Common Compendium. It can subscribe to it to be automatically informed about the addition of Content in some of the Containers, selectively (for example by using the power of expression of a traditional query language to a Database). The fact of being informed automatically is what is called a suggestion process, which will be given more details in the following.

On va maintenant décrire un certain nombre de fonctionnalités possibles offertes aux Utilisateurs. a) Ajout et Suppression de Contenu Direct L'Utilisateur peut choisir d'ajouter dans un de ses Profils : We will now describe a number of possible features offered to Users. a) Adding and Deleting Direct Content The User can choose to add in one of his Profiles:

<Desc/Clms Page number 132><Desc / Clms Page number 132>

* des Contenus qu'il aura puisé dans le Contenant lié à ce Profil * des Contenus qu'il aura puisé dans d'autres Contenants * ou encore de nouveaux Contenus qui n'existaient dans aucun Contenant (qu'il aurait par exemple collecté par navigation sur le réseau Internet).  * Contents that he has drawn from the Container related to this Profile * Content that he has drawn from other Containers * or new Content that did not exist in any Container (that he would have collected for example by browsing the Internet).

Quelle que soit sa provenance, si un Contenu ajouté dans un Profil n'existait pas déjà dans le Contenant lié à ce Profil, il y est ajouté. Les autres Utilisateurs peuvent alors en prendre connaissance. Regardless of where it comes from, if Content added to a Profile did not already exist in the Container linked to that Profile, it is added. Other users can then read it.

On notera ici que, dans la pratique les Profils peuvent ne pas être directement composés de Contenus, mais de Références à ces derniers, ou encore d'un mélange de Contenus et de Références à des Contenus. La figure 88 illustre le diagramme de classe associé, qui comporte en particulier un lien entre Contenu et Référence à Contenu). It should be noted here that, in practice, Profiles may not be directly composed of Contents, but References to them, or a mixture of Contents and References to Content. Figure 88 illustrates the associated class diagram, which includes in particular a link between Content and Reference to Content).

Dans un Profil, un Contenu peut posséder l'un parmi trois attributs, à savoir Suggéré , Accepté ou Refusé . Un Contenu Suggéré signifie que ce Contenu est reçu dans le Profil, sans pour l'instant avoir été accepté ou refusé par l'Utilisateur qui possède ce Profil. Les Contenus étant dans cet état ne sont pas stockés de manière permanente (c'est-à-dire qu'une Référence n'est pas encore créée dans la BD de Profils). In a Profile, a Content may have one of three attributes, namely Suggested, Accepted, or Rejected. Suggested Content means that Content is received in the Profile, but has not been accepted or rejected by the User who has this Profile. Content in this state is not stored permanently (ie a Reference is not yet created in the Profiles DB).

Accepter un Contenu signifie que le système crée de manière permanente une Référence à ce Contenu. Les Contenus Acceptés sont stockés dans le Profil de manière permanente. Il est ainsi à observer ici que l'acceptation au sens du présent chapitre correspond au mode Gelé décrit dans le chapitre II.   Accepting Content means that the system permanently creates a Reference to that Content. Accepted Content is stored in the Profile permanently. It should be observed here that acceptance within the meaning of this chapter corresponds to the frozen mode described in Chapter II.

Un Contenu dont la présence dans un Profil est Refusée ne peut être supprimé directement dans le Contenant (c'est-à-dire dans la Base de Données Commune, où le Contenu est réellement stocké), car ce Contenu peut auparavant avoir aussi été Suggéré ou Accepté dans un autre Profil. Il ne pourra être réellement effectivement supprimé que lorsque plus aucun un autre Profil ne contiendra une Référence à ce Content whose presence in a Profile is Denied can not be deleted directly in the Container (ie in the Common Database, where the Content is actually stored), as this Content may have previously been Suggested as well. or Accepted in another Profile. It can only really be deleted when no other Profile contains a Reference to it.

<Desc/Clms Page number 133><Desc / Clms Page number 133>

Contenu. En attendant, c'est l'attribut Refusé qui matérialise la suppression virtuelle voulue par un Utilisateur. La Référence ayant cet attribut est toutefois stockée de manière permanente et sert à éviter de suggérer à nouveau un Contenu qui a précédemment été Refusé . b) Références à des Contenus d'autres Contenants ou à des Contenus externes (Contenus Indirects) Dans une forme de réalisation particulière, le système peut permettre aux Utilisateurs d'insérer dans un Contenant (via leurs Profils respectifs), une Référence à un Contenu appartenant déjà à un autre Contenant. Ceci est préférable à l'insertion d'une copie de ce Contenu. Bien entendu, cette Référence ne pourra exister que tant que le Contenu référencé existe. Nous appelons cette référence Contenu Indirect , et le Contenu Référencé est appelé Contenu Direct .  Content. In the meantime, it is the Denied attribute that materializes the virtual deletion desired by a User. However, the Reference with this attribute is permanently stored and is used to avoid resubmitting Content that has previously been Denied. b) References to Contents of other Containers or External Content (Indirect Content) In a particular embodiment, the system may allow Users to insert into a Container (via their respective Profiles), a Reference to a Content already belonging to another Container. This is preferable to inserting a copy of this Content. Of course, this Reference can only exist as long as the Referenced Content exists. We call this reference Indirect Content, and the Referenced Content is called Direct Content.

Avantageusement, à chaque nouvel accès à la Base de Données Commune, dans le cas où le Contenu Direct a été entre-temps modifié, l'Utilisateur voit, à travers le Contenu Indirect, ce Contenu dans sa nouvelle version. Le diagramme de classe UML associé est illustré sur la figure 89. Advantageously, with each new access to the Common Database, in the case where the Direct Content has meanwhile been modified, the User sees, through the Indirect Content, this Content in its new version. The associated UML class diagram is illustrated in Figure 89.

Supprimer un Contenu Direct implique au préalable de gérer les Contenus Indirects qui lui sont liés. Ils n'auront en effet plus lieu d'exister, mais comme expliqué précédemment, ils ne pourront être effectivement supprimés que quand plus aucun Profil ne les référencera. La suppression d'un Contenu Direct consistera donc en 3 types d'actions qui ne se sont pas nécessairement exécutées immédiatement : (1) suppression, dans les Profils, des Références au Contenu Direct et aux Contenus Indirects qui lui son liés, (2) suppression de ces Contenus Indirects, (3) suppression du Contenu Direct lui-même. Deleting Direct Content implies first to manage the Indirect Content linked to it. They will not have any more to exist, but as explained previously, they will be able to be effectively removed only when no more profile will refer them. The deletion of a Direct Content will therefore consist of 3 types of actions that did not necessarily occur immediately: (1) deletion, in Profiles, of References to Direct Content and Indirect Content related to it, (2) deletion of these Indirect Content, (3) deletion of the Direct Content itself.

<Desc/Clms Page number 134><Desc / Clms Page number 134>

Un Utilisateur, qui a référencé dans son Profil un Contenu Indirect pour lequel il est averti d'une suppression prochaine, pourrait vouloir créer une copie du Contenu Direct référencé à la place du Contenu Indirect, afin de ne pas perdre l'information.  A User, who has referenced Indirect Content in his Profile for which he is notified of an upcoming deletion, may wish to create a copy of the Referenced Direct Content in place of the Indirect Content, so as not to lose the information.

Le système peut être conçu pour lui en laisser la possibilité. The system can be designed to give him the possibility.

Les Contenus Indirects peuvent aussi constituer des références à des contenus externes au système, et notamment des liens vers des éléments trouvés sur l'Internet. Indirect Content may also be references to external content, including links to items found on the Internet.

Le système comporte alors des moyens de mise à jour (ou gestion des erreurs d'accès) en cas de suppression des contenus externes. c) Popularité d'une catégorisation Le fait d'insérer un Contenu dans un certain Contenant (via un Profil) revient à le catégoriser . Un Contenant est en effet censé regrouper des Contenus de même catégorie. The system then comprises updating means (or management of access errors) in case of deletion of the external contents. c) Popularity of a categorization Inserting Content into a certain Container (via a Profile) amounts to categorizing it. A Container is indeed supposed to group together Contents of the same category.

Différents Utilisateurs peuvent classer un même Contenu dans des Contenants différents, de manière directe (en en faisant une copie) ou au moyen d'une indirection (Contenu Indirect). Different Users may classify the same Content in different Containers, directly (by making a copy) or by means of indirection (Indirect Content).

On appelle ici Popularité le nombre de fois qu'un Contenu se retrouve dans des Profils associés à un même Contenant, ou plus généralement une variable représentative de ce nombre. Dans le cas où l'Utilisateur hésite entre deux catégorisations possibles, il préférera en général le Contenant le plus populaire, afin de parler le même langage que le plus grand nombre d'Utilisateurs et de bénéficier ainsi de services de rapprochement de profils et d'autres avantages tels qu'on les décrira dans la suite. Popularity is the number of times that a Content is found in Profiles associated with the same Container, or more generally a variable representative of this number. In the case where the User hesitates between two possible categorizations, he will generally prefer the most popular Container, in order to speak the same language as the largest number of Users and thus benefit from profile matching services and other advantages as will be described later.

L'avantage essentiel de cette forme de réalisation de base de l'invention peut être résumé par ce qui suit, en référence à la figure 90 : The essential advantage of this basic embodiment of the invention can be summarized by the following, with reference to FIG.

<Desc/Clms Page number 135><Desc / Clms Page number 135>

- tout d'abord, un Utilisateur A, pour ses besoins propres de catégorisation et mémorisation d'informations (ceci est une incitation suffisante), va au fil du temps ajouter à son propre Profil A de nouveaux Contenus, dans des Contenants représentant des catégories partagées ; - par le fait qu'il utilise ces Contenants, l'Utilisateur parle le même langage que les autres Utilisateurs et bénéficie ainsi d'avantages supplémentaires (tel que la suggestion automatique d'informations par rapprochements de profils, etc, décrits dans les sections suivantes) en échange du fait qu'il contribue à la BD Commune - la BD Commune est ainsi alimentée de manière automatique et transparente, et un autre Utilisateur B peut la consulter ou être automatiquement et spontanément renseigné sur son enrichissement ; - chaque Utilisateur peut être dans la situation A ou B ; - le fait qu'un Utilisateur contribue à la Base de Données Commune ne le prive pas de sa privauté car il peut rester anonyme ; - enfin le modèle économique décrit dans la dernière section permet de rétribuer ceux qui contribuent plus à la BD Commune qu'ils ne consultent, et de sanctionner l'inverse.  - firstly, a User A, for his own needs of categorization and memorization of information (this is a sufficient incentive), goes over time add to his own Profile A new Contents, in Containers representing categories shared; - By using these Containers, the User speaks the same language as other Users and thus benefits from additional advantages (such as the automatic suggestion of information by profile matching, etc., described in the following sections ) in exchange for the fact that it contributes to the Comune BD - the BD Comune is thus fed automatically and transparently, and another User B can consult it or be automatically and spontaneously informed about its enrichment; - each User can be in situation A or B; - the fact that a User contributes to the Common Database does not deprive him of his privacy because he can remain anonymous; - Finally, the economic model described in the last section makes it possible to reward those who contribute more to the comic strip that they do not consult, and to sanction the opposite.

De façon encore plus résumée, l'avantage individuel de pouvoir organiser l'information (découverte par chacun), selon des catégories partagées est une incitation qui pousse chaque Utilisateur à contribuer à une BD qui est commune à tous les Utilisateurs. Even more summarized, the individual advantage of being able to organize information (discovery by everyone), according to shared categories is an incentive that pushes each User to contribute to a comic that is common to all Users.

C. Premier perfectionnement (niveau 2) Selon ce premier perfectionnement, tous les Profils ne sont pas nécessairement confidentiels. Nous distinguons les Utilisateurs qui veulent publier certains de leurs Profils (ou un ou plusieurs sous-ensembles de leurs Profils) à l'intention des autres (ou de certains autres), par opposition aux Utilisateurs qui n'utilisent le système que pour leur organisation personnelle d'informations. C. First Development (Level 2) According to this first development, not all Profiles are necessarily confidential. We distinguish Users who want to publish some of their Profiles (or one or more subsets of their Profiles) to others (or some others), as opposed to Users who use the system only for their organization personal information.

<Desc/Clms Page number 136><Desc / Clms Page number 136>

Plus exactement, nous distinguons les Profils (ou sous-ensembles de Profil) qui sont publiés à l'ensemble (ou à un sous-ensemble) des autres Utilisateurs et les nommons Profil Non Confidentiel .  Specifically, we distinguish the Profiles (or Profile subsets) that are published to the set (or a subset) of other Users and name them Non-Confidential Profile.

On va maintenant décrire un certain nombre de fonctionnalités autorisées par ce perfectionnement. a) Le concept de Dérivation Les Utilisateurs peuvent Dériver un Profil Non Confidentiel, c'est-à-dire l'importer et l'utiliser comme étant leur propre Profil (Confidentiel ou pas) et en enlever ou y ajouter des Contenus. We will now describe a certain number of functionalities authorized by this improvement. a) The Derivative Concept Users can Derive a Non-Confidential Profile, that is, import and use it as their own Profile (Confidential or not) and remove or add Content.

On entend par là que les Contenus Ajoutés (ou Acceptés) dans le Profil source sont automatiquement Suggérés dans le Profil dérivé et que l'Utilisateur de ce dernier peut ainsi en Accepter tout ou partie. By this we mean that the Added (or Accepted) Content in the Source Profile is automatically Suggested in the Derived Profile and that the User of the latter can thus Accept all or part of it.

Par en enlever on entend que l'Utilisateur peut Refuser certains Contenus Suggérés. By removing it we mean that the User may refuse certain Suggested Content.

Finalement, l'Utilisateur peut aussi Ajouter : * des Références à des Contenus, ou * des Références à des Références se trouvant dans d'autres Profils. Finally, the User can also Add: * References to Contents, or * References to References in other Profiles.

Les nouveaux Contenus (Directs ou Indirects) sont alors ajoutés dans la BD Commune dans le Contenant lié au Profil dérivé, s'il n'y figuraient pas déjà. The new Contents (Direct or Indirect) are then added in the Common Comic in the Container linked to the Derived Profile, if they were not already there.

Un diagramme de classe relatif à la structure d'un tel système de dérivation de Profils est illustré sur la figure 91 des dessins. A class diagram relating to the structure of such a Profile bypass system is illustrated in Figure 91 of the drawings.

<Desc/Clms Page number 137><Desc / Clms Page number 137>

On observe qu'un Profil Dérivé et Non Confidentiel peut être dérivé à son tour par un autre Utilisateur. Les Références entre Profils peuvent donc se faire en cascade pour aboutir finalement aux Contenus dans la Base de Données Commune.  It is observed that a Derivative and Non-Confidential Profile can be derived in turn by another User. The References between Profiles can thus be done in cascade to finally reach the Contents in the Common Database.

Optionnellement, un Profil Dérivé peut être fusionné avec un Profil déjà existant (que ce dernier soit lui-même Dérivé ou non) et adopter le Contenant de ce dernier. Optionally, a Derivative Profile can be merged with an existing Profile (whether the Profile itself is Derivative or not) and adopt the Container of the latter.

En résultat, un Profil peut ainsi être dérivé de plusieurs Profils. b) Lien Profil-Contenu Une même Référence peut en même temps être dans l'état Ajouté dans un Profil et dans l'état Refusé dans un autre Profil. On doit alors introduire un objet intermédiaire Lien Profil-Contenu (ou lien) pour spécifier cet état. Ainsi, une même Référence peut avoir un lien ajouté avec un Profil et un lien Suggéré avec un autre Profil. As a result, a Profile can be derived from several Profiles. b) Link Profile-Content The same Reference can at the same time be in the Added state in a Profile and in the Refused state in another Profile. We must then introduce an intermediate object Link Profile-Content (or link) to specify this state. Thus, the same Reference may have a link added with a Profile and Suggested link with another Profile.

L'état d'un lien Profil-Contenu peut être Suggéré , Refusé , Ajouté ou Retiré . Ceci sera précisé plus loin. c) Archive On peut également introduire une fonction d' Archive de Profil , qui sert d'étape intermédiaire avant la suppression effective d'une Référence dans un Profil. The status of a Profile-Content link can be Suggested, Rejected, Added, or Removed. This will be specified later. c) Archive You can also introduce a Profile Archive function, which serves as an intermediate step before actually deleting a Reference in a Profile.

Une Référence R peut être Retirée dans un Profil P1alors que dans un Profil P2 on y fait référence en mode Ajouté ou Suggéré. Dans ce cas, au moment où R est Retirée dans Pl, elle est placée dans 1' Archive de Profil liée à Pl et ne pourra être effectivement supprimée que lorsque plus aucun Profil n'y fera référence en mode Ajouté ou Suggéré. A Reference R can be Retired in a Profile P1 whereas in a Profile P2 it is referenced in Added or Suggested mode. In this case, when R is Retired in Pl, it is placed in the Profile Archive linked to Pl and can only be effectively deleted when no more Profiles refer to it in Added or Suggested mode.

<Desc/Clms Page number 138><Desc / Clms Page number 138>

Autrement dit, quand un lien Profil-Contenu passe à l'état Retiré , si d'autres références existent sur la Référence en question, cette dernière se délie du Profil et se lie avec l'Archive de ce Profil, et si aucune référence n'existe sur elle, elle peut être supprimée effectivement (sous réserve de possibilité d'annulation de l'action par des méthodes traditionnelles).  In other words, when a Profile-Content link is in the Retired state, if there are other references on the Reference in question, the Reference is released from the Profile and links with the Archive of that Profile, and if no reference 'exists on it, it can be suppressed effectively (subject to the possibility of cancellation of the action by traditional methods).

Ainsi un attribut Compteur de dérivation peut être prévu pour mémoriser le nombre de Références Suggéré ou Ajouté sur la Référence en question. La Référence peut ainsi être supprimée de l'Archive quand la valeur du Compteur de Dérivation passe à zéro. d) Procédé de Suggestion La suggestion est le procédé de communication entre Profils. Par ce procédé, les Contenus se propagent : * soit automatiquement -d'un Profil à ses Profils dérivés, - et inversément, des Profils dérivés aux Profils sources * soit manuellement , par le fait de soumettre un Contenu d'un Profil à un autre Profil. Thus a Bypass Counter attribute can be provided to store the number of References Suggested or Added on the Reference in question. The Reference can be deleted from the Archive when the Bypass Counter value goes to zero. d) Suggestion Method Suggestion is the method of communication between Profiles. By this process, the Content propagates: * either automatically - from a Profile to its Derived Profiles, - and conversely, Derived Profiles to Source Profiles * either manually, by submitting Content from one Profile to another Profile.

On va détailler ci-dessous ces différents modes de propagation : i) Propagation d'un Profil à ses Profils Dérivés Les Références ajoutées dans un Profil d'un Utilisateur UB , lequel Profil est dérivé par un Utilisateur UA , sont par défaut automatiquement suggérés à UA, comme l'illustre la figure 92. We will detail below these different modes of propagation: i) Propagation of a Profile to its Derivative Profiles The References added in a Profile of a User UB, which Profile is derived by a User UA, are by default automatically suggested to AU, as shown in Figure 92.

<Desc/Clms Page number 139> <Desc / Clms Page number 139>

Le résultat de la suggestion se matérialise par un lien Suggéré Dérivé comme illustré sur la figure 93. Ce lien n'est pas rendu permanent, en ce sens qu'il n'a d'existence que sur le poste client. The result of the suggestion is materialized by a Suggested Derived link as shown in Figure 93. This link is not made permanent, in the sense that it only exists on the client computer.

Dans le cas où le possesseur du Profil A accepte la suggestion du Contenu pointé par R, il n'est plus besoin de suggérer à nouveau R à chaque connexion, car une autre Référence R' pointant sur R est créée, comme le montre la figure 94. In the case where the owner of Profile A accepts the suggestion of the Content pointed by R, it is no longer necessary to suggest R again at each connection, because another Reference R 'pointing to R is created, as shown in FIG. 94.

Le système utilisera alors le fait que l'état du lien Suggéré Dérivé est Consulté (le lien est stocké de manière permanente sur le serveur) pour ne pas suggérer à nouveau ce Contenu à la prochaine connexion de l'Utilisateur sur ce Profil. ii) Propagation d'un Profil Dérivé à son (ou ses) Profil(s) source (s) Les Références ajoutées dans un Profil Dérivé sont automatiquement suggérées au(x) propriétaire (s) du (des) Profil(s) d'origine. Bien entendu, ce (ou ces) derniers peu (ven)t les accepter ou les refuser. The system will then use the fact that the status of the Suggested Derived link is Consulted (the link is permanently stored on the server) so as not to suggest this Content again the next time the User logs onto this Profile. ii) Propagation of a Profile Derived from its (or its) Profile (s) source (s) The References added in a Derivative Profile are automatically suggested to the owner (s) of the Profile (s) of origin. Of course, this (or these) last can accept them or refuse them.

Le schéma de la figure 95 illustre la communication de UB à Uc via le Profil de UA, Les Profils de UB et Uc ayant été dérivés du Profil de UA. The diagram in Figure 95 illustrates the communication from UB to Uc via the UA Profile, the UB and Uc Profiles having been derived from the UA Profile.

Le résultat de la suggestion automatique du Profil B au Profil A se matérialise par un lien Suggéré, comme illustré sur la figure 96, qui n'est pas stocké de manière permanente : Dans le cas où le possesseur du Profil A accepte la Référence R, il n'est plus besoin de la suggérer à nouveau à chaque connexion, car une autre Référence R' sur R est créée. Pour le permettre, le lien Suggéré est rendu permanent. Ceci est illustré sur la figure 97. iii) Référencement (Suggestion manuelle) The result of the automatic suggestion from Profile B to Profile A is materialized by a Suggested link, as shown in Figure 96, which is not permanently stored: In the case where the owner of Profile A accepts Reference R, it is no longer necessary to suggest it again with each connection, because another Reference R 'on R is created. To enable this, the Suggested link is made permanent. This is illustrated in Figure 97. iii) Referencing (Manual Suggestion)

<Desc/Clms Page number 140><Desc / Clms Page number 140>

Par opposition aux suggestions automatiques évoquées ci-dessus, le Référencement est demandé explicitement par l'Utilisateur. Il consiste à re-catégoriser un Contenu dans un autre Contenant et entraîne la création d'un Contenu Indirect.  As opposed to the automatic suggestions mentioned above, referencing is explicitly requested by the user. It consists of re-categorizing Content into another Container and resulting in the creation of Indirect Content.

Un lien Profil-Contenu de Suggestion de Référencement a le même comportement que les liens Profil-Contenant de Suggestion automatique (déjà évoqués ci-dessus voir aussi plus loin les spécifications des transitions d'état). A Profile-Content link of Referencing Suggestion has the same behavior as the Profile-Container links of Automatic Suggestion (already mentioned above, see also the specifications of the state transitions).

Le résultat de la suggestion de Référencement du Profil B au Profil A se matérialise par un lien Suggéré tel qu'illustré sur la figure 98, qui est rendu permanent (contrairement aux exemples précédents) : On notera ici qu'en remontant le lien de Suggestion de Référencement, on peut retrouver le Profil dans lequel le Contenu en question a été référencé. The result of the suggestion of Referencing Profile B to Profile A is materialized by a Suggested link as shown in Figure 98, which is made permanent (unlike the previous examples): It should be noted that by going back the link Suggestion of Referencing, we can find the Profile in which the Content in question has been referenced.

Dans le cas où le possesseur du Profil A accepte la Référence R, il n'est plus besoin de la suggérer à nouveau à chaque connexion, car une autre Référence R' pointant sur R est créée, comme illustré sur la figure 99. In the case where the owner of the Profile A accepts the Reference R, there is no need to suggest it again at each connection, because another Reference R 'pointing to R is created, as illustrated in Figure 99.

Note sur les types de liens Profil-Contenu Les Contenus (plus exactement des Références à des Contenus) situés dans un Profil Propre ou dans un Profil Dérivé ont des liens avec ces Profils qui peuvent être différents. Note on the types of links Profile-Content The Contents (more precisely References to Contents) located in a Clean Profile or in a Derived Profile have links with these Profiles which can be different.

Ainsi les Profils Propres peuvent avoir : * des liens Créés (liens avec de nouveaux Contenus Directs ou Indirects), * des liens Dérivés (liens avec des Contenus dérivés d'autres Profils) ou * des liens Suggérés (liens avec des Contenus qui lui ont été suggérés). Thus the Clean Profiles can have: * Created links (links with new Direct or Indirect Contents), * Derived links (links with Contents derived from other Profiles) or * Suggested links (links with Contents that have it been suggested).

<Desc/Clms Page number 141> <Desc / Clms Page number 141>

Les Profils Dérivés peuvent avoir quant à eux : * des liens Créés (liens avec de nouveaux Contenus Directs ou Indirects), * des liens Dérivés (liens avec des Contenus dérivés d'autres Profils) * des liens Suggérés Dérivés (liens avec des Contenus appartenant au Profil source) ou * des liens Suggérés (liens avec des Contenus qui lui ont été suggérés). Derived Profiles may have: * Created links (links with new Direct or Indirect Content), * Derived links (links with Content derived from other Profiles) * Suggested links Derived (links with Contents belonging to Source Profile) or * Suggested links (links to suggested Content).

Le diagramme de classe illustrant ces différents types de liens est illustré sur la figure 100 des dessins.  The class diagram illustrating these different types of links is illustrated in Figure 100 of the drawings.

Note sur les Transitions des liens On va décrire ci-dessous les différentes transitions apparaissant pour des liens Créés, des liens Dérivés, des liens Suggérés et des liens Archive. a. Transitions des liens Créés (figure 101) 1. Création d'une Référence (nouveau Contenu, Contenu pris du Contenant associé ou d'un autre Contenant) 2. L'Utilisateur veut la supprimer, celle-ci est d'abord mise en Archive (effet : lien Archive transition 1) 3. Remettre dans le Profil une Référence Retirée ( restore ) (effet : lien Archive transition 2) 4. Au cas où le Compteur de Dérivation tombe à zéro, la Référence peut être Supprimée effectivement (Supprimée aussi dans l'Archive - Transition 2) ainsi que son lien. b. Transitions des liens Dérivés (figure 102) Link Transitions Note We will describe below the different transitions that appear for Created links, Derived links, Suggested links and Archive links. at. Transitions of Created Links (Figure 101) 1. Creation of a Reference (new Content, Content taken from the associated Container or another Container) 2. The User wants to delete it, it is first put in Archive (effect: link Archive transition 1) 3. Put in the Profile a Retired Reference (effect: link Archive Transition 2) 4. In case the Derivative Counter falls to zero, the Reference can be deleted effectively (Deleted also in the Archive - Transition 2) as well as its link. b. Transitions of Derived Links (Figure 102)

<Desc/Clms Page number 142><Desc / Clms Page number 142>

1. Soit une Référence est ( manuellement ) dérivée d'un autre Profil, soit une Référence suggérée est entérinée. En même temps, le lien Suggéré correspondant (le cas échéant) passe à Consulté (Transition 5).  1. Either a Reference is (manually) derived from another Profile or a Suggested Reference is endorsed. At the same time, the corresponding Suggested link (if any) moves to Consulted (Transition 5).

2. L'Utilisateur peut ensuite la Retirer. Auquel cas elle est d'abord mise en Archive (lien Archive Transition 1). Le lien Suggéré correspondant (le cas échéant) reste à Consulté. 2. The user can then remove it. In which case it is first put in Archive (Link Archive Transition 1). The corresponding Suggested link (if any) remains in Consulted.

3. Restauration (retour de l'Archive). Transition 2 pour le lien Archive. 3. Restore (return of the Archive). Transition 2 for the Archive link.

4. Au cas où le Compteur de Dérivation tombe à zéro, la Référence est supprimée effectivement et son lien l'est donc aussi (supprimée aussi dans l'Archive : Transition 2). En même temps, le lien Suggéré correspondant (le cas échéant) est supprimé (Transition 4). c. Transitions des liens Suggérés (figure 103) On notera tout d'abord que le lien Suggéré Dérivé en est un cas particulier. 4. In the event that the Derivative Counter falls to zero, the Reference is effectively deleted and so is its link (also deleted in the Archive: Transition 2). At the same time, the corresponding Suggested link (if any) is removed (Transition 4). c. Suggested Links Transitions (Figure 103) Note that the Suggested Derived link is a special case.

1. Un Profil reçoit une Référence (un Contenu est suggéré). Le lien Suggéré dans l'état Suggéré n'est pas stocké de manière permanente, sauf dans le cas du Référencement (puisque dans ce cas la suggestion ne découle pas de la dérivation du Profil et n'est donc pas une information redondante). 1. A Profile receives a Reference (a Content is suggested). The Suggested link in the Suggested state is not stored permanently, except in the case of Referencing (since in this case the suggestion does not stem from the derivation of the Profile and is therefore not redundant information).

2. L'Utilisateur le refuse ou l'ajoute (s'il l'ajoute : transition 1 du lien Dérivé). Le lien Suggéré est alors stocké de manière permanente (dans l'état Consulté). Le système pourra ainsi éviter de suggérer à nouveau cette Référence à la prochaine connexion 3. Restauration . Le lien stocké de manière permanente est simplement supprimé dans la BD des Profils sauf dans le cas du Référencement. L'élément pourra ainsi être suggéré à nouveau. 2. The user refuses it or adds it (if it adds it: transition 1 of the Derived link). The Suggested link is then stored permanently (in the Consulted state). The system will be able to avoid suggesting this Reference again at the next connection 3. Restore. The permanently stored link is simply deleted in the Profiles DB except in the case of Referencing. The element can thus be suggested again.

4. La source étant effectivement supprimée (lien Archive - 2), son lien est supprimé. 4. The source being effectively deleted (link Archive - 2), its link is removed.

S'il existe, le lien Dérivé correspondant effectue la Transition 4. d. Transitions des liens Archive (figure 104) If it exists, the corresponding Derived link performs Transition 4. d. Archive Link Transitions (Figure 104)

<Desc/Clms Page number 143><Desc / Clms Page number 143>

1. Référence mise en Archive (cause : transition 2 des liens Créés et Dérivés).  1. Reference placed in Archive (cause: transition 2 of Created and Derived links).

2. Lien Archive supprimé, soit parce que la Référence est restaurée (transition 3 des liens Créés et Dérivés), soit parce que le Compteur de Dérivation tombe à zéro (plus aucune autre Référence ne pointe sur la Référence attachée à ce lien), dans ce cas : Transition 4 pour les lien Suggéré et Dérivé ou pour le lien Créé. iv) Archivage et Restauration Partons de la situation illustrée sur la figure 105, dans laquelle un Profil A possède une Référence R' sur une Référence R d'un Profil B. 2. Archive link deleted, either because the Reference is restored (transition 3 of the Created and Derived links), or because the Derivative Counter falls to zero (no other Reference points to the Reference attached to this link), in this case: Transition 4 for the Suggested and Derived link or for the Created link. iv) Archiving and Restoring Let us start from the situation illustrated in FIG. 105, in which a Profile A has a Reference R 'on a Reference R of a Profile B.

Quand la référence R' est Retirée elle va en Archive, comme illustré sur la figure 106. When the reference R 'is removed it goes into archive, as illustrated in Figure 106.

Mais dès que plus aucune Référence ne pointe sur elle (dès que le Compteur de Dérivation de R' passe à zéro), R' peut être supprimée effectivement. Ceci est illustré sur la figure 107. But as soon as no more Reference points to it (as soon as the Derivative Counter of R 'goes to zero), R' can be suppressed effectively. This is illustrated in Figure 107.

Ce premier perfectionnement de la présente invention présente, outre les avantages de la forme de réalisation de base, toute une série d'avantages supplémentaires, et principalement le fait de pouvoir dériver des Profils, et donc de bénéficier de canaux de communication automatiques entre Utilisateurs. Plus précisément : - alors que dans la forme de réalisation de base, l'Utilisateur pouvait consulter les Contenants de la BD Commune et s'abonner à (être automatiquement informé de) leurs nouveaux Contenus, le premier perfectionnement permet à l'Utilisateur de consulter et de s'abonner aux Profils qu'il a dérivé. Il exploite ainsi l'expertise (de regroupement sélectif et de catégorisation d'informations) matérialisée dans ces Profils ; le schéma de la figure 92 illustre qu'un Contenu, ajouté par un Utilisateur UB, est communiqué à un Utilisateur UA automatiquement via leurs Profils This first improvement of the present invention has, besides the advantages of the basic embodiment, a whole series of additional advantages, and mainly the fact of being able to derive Profiles, and thus to benefit from automatic communication channels between Users. More specifically: - while in the basic embodiment, the User could consult the Compositers of the Common Comics and subscribe to (be automatically informed of) their new Contents, the first improvement allows the User to consult and subscribe to the Profiles he has derived. It thus exploits the expertise (of selective grouping and categorization of information) embodied in these Profiles; the diagram in Figure 92 illustrates that a Content, added by a User UB, is communicated to a User UA automatically via their Profiles

<Desc/Clms Page number 144><Desc / Clms Page number 144>

respectifs, grâce au fait que le Profil de UA (Profil A) est dérivé de celui de UB (Profil B) ; dit, les Références ajoutées dans un Profil d'un Utilisateur UB, lequel Profil est dérivé par un Utilisateur UA, sont par défaut automatiquement communiquées à UA.  respective, because the Profile of UA (Profile A) is derived from that of UB (Profile B); said, References added in a User Profile UB, which Profile is derived by a UA User, are automatically automatically communicated to UA.

- les Références ajoutées dans un Profil Dérivé sont automatiquement suggérées au (x) propriétaire (s) du (des) Profil(s) d'origine. Au cas où ce(s) dernier(s) les valide (nt), son (leurs) propre(s) Profil(s) se trouve(nt) enrichi(s) de ces Contenus, et, en vertu de ce qui précède, ces derniers sont alors automatiquement propagés aux autres Utilisateurs ayant dérivé le (s) même(s)Profil(s) et qui s'y sont abonnés. ; schéma de la figure 95 illustre la communication de UB à UC via le Profil de UA, Les Profils de UB et UC ayant été dérivés du Profil de UA. - The References added in a Derived Profile are automatically suggested to the owner (s) of the Profile (s) of origin. In the event that the latter (s) validate them, his (their) own Profile (s) is (are) enriched by these Contents, and, by virtue of the foregoing These are then automatically propagated to other Users who have derived the same Profile (s) and subscribed to it. ; Figure 95 illustrates the communication from UB to UC via the UA Profile, with the UB and UC Profiles derived from the UA Profile.

- enfin, grâce à la fonctionnalité d'Archive, un Contenu dérivé dans un Profil reste vivant même quand le Contenu d'origine est supprimé. - finally, thanks to the functionality of Archive, a Content derived in a Profile remains alive even when the original Content is deleted.

D. Deuxième perfectionnement (Niveau 3) Selon ce deuxième perfectionnement, les Utilisateurs ne partagent plus une structure commune de Contenants. Autrement dit, chaque Utilisateur peut avoir une structure de Contenants différente de celles des autres Utilisateurs. D. Second Improvement (Level 3) According to this second improvement, the Users no longer share a common structure of Containers. In other words, each User can have a different Container structure than the other Users.

Ces structures de Contenants sont mémorisées dans des Bases de Données (BD) Personnelles des Utilisateurs et non dans la BD Commune, qui d'ailleurs n'existe plus en tant que telle mais en tant qu'ensemble de fichiers ( Contenants ). These Container structures are stored in Personal Databases (DB) of Users and not in the Common Comic, which moreover does not exist anymore as such but as a set of files (Containers).

Dans le même esprit que ce qui précède, une BD Personnelle est composée de Références plutôt que des Contenants et Contenus eux-mêmes. En effet, pour chaque Contenant, tous les Contenus (sauf ceux qui sont confidentiels) sont mémorisés en dehors de la BD Personnelle, dans un fichier commun ( Contenant ) . Dans la BD Personnelle, les références à ces Contenus forment un Profil . Certains de ces In the same spirit as the above, a Personal DB is composed of References rather than Containers and Contents themselves. Indeed, for each Container, all the Contents (except those which are confidential) are memorized outside the Personal DB, in a common file (Container). In the Personal DB, references to these Contents form a Profile. Some of these

<Desc/Clms Page number 145><Desc / Clms Page number 145>

Profils peuvent être publiés à l'ensemble ou à un sous-ensemble des autres Utilisateurs (Profils Non Confidentiels - voir plus haut).  Profiles can be published to all or a subset of other Users (Non-Confidential Profiles - see above).

Les Profils contiennent des Sous-Profils et forment ainsi une structure arborescente illustrée sur la figure 108 (ou encore une structure de graphe), qui peut être différente d'une BD Personnelle à une autre. The Profiles contain Sub-Profiles and thus form a tree structure shown in Figure 108 (or a graph structure), which can be different from one Personal DB to another.

De manière primitive, cette structure peut être représentée par un diagramme de classe UML , comme illustré sur la figure 109. Primarily, this structure can be represented by a UML class diagram, as shown in Figure 109.

Ici encore, le système offre une garantie d'anonymat : Les Utilisateurs, pour un Contenant donné (accessible à travers un Profil de leur BD Personnelle), peuvent consulter (ou être abonné à) tous les Contenus ajoutés par les autres Utilisateurs dans ce Contenant, sans pouvoir déterminer quel Contenu figure dans quelle BD Personnelle. Here again, the system offers a guarantee of anonymity: The Users, for a given Container (accessible through a Profile of their Personal DB), can consult (or subscribe to) all the Content added by the other Users in this Container. , without being able to determine which Content is in which Personal Comics.

Ici, deux Profils associés à un même Contenant peuvent avoir une dénomination différente. On appelle Catégorie le nom d'un Profil. Comme la Catégorie d'un Contenant dépend du choix de l'Utilisateur, la classe Catégorie est associée à la classe Profil (ou en constitue un attribut) et non pas à la classe Contenant . Here, two Profiles associated with the same Container may have a different name. The name of a Profile is called Category. Since the Category of a Container depends on the choice of the User, the Category class is associated with the Profile class (or an attribute of it) and not the Container class.

On va maintenant décrire la façon dont l'arborescence est construite par chaque Utilisateur , c'est-à-dire la façon dont les différents Sous-Contenants sont créés dans les Profils, ainsi que l'incitation qui existe pour un Utilisateur à dériver un Profil. a) Nouveau Contenant L'Utilisateur peut librement créer un nouveau Contenant, en tant que sous-profil dans un Profil de sa BD Perso. S'il est Non Confidentiel, celui-ci donnera lieu à un nouveau fichier (Contenant-1) dans la Partie Commune, comme illustré sur la figure 110. We will now describe how the tree is built by each User, ie how the different Sub-Containers are created in the Profiles, as well as the incentive that exists for a User to derive a Profile. a) New Container The User can freely create a new Container, as a sub-profile in a Profile of his Personal DB. If it is Non-Confidential, it will result in a new file (Container-1) in the Common Part, as shown in Figure 110.

<Desc/Clms Page number 146><Desc / Clms Page number 146>

b) Contenant déjà existant Alternativement, l'Utilisateur peut dériver un Profil Non Confidentiel d'un autre Utilisateur ou un Profil de sa propre BD Personnelle. Ce Profil est ajouté en tant que Sous-Profil dans un Profil de sa BD Personnelle qu'il a choisi (il a par exemple inséré le Profil dérivé dans ce Profil par la technique du glisser-déposer ). Les éléments (Contenus et Sous-Profils) que le Profil source contient sont automatiquement suggérés dans ce nouveau Sous-Profil.  b) Already existing container Alternatively, the User can derive a Non-Confidential Profile from another User or a Profile from his own Personal DB. This Profile is added as a Sub-Profile in a Profile of his Personal DB that he has chosen (for example, he has inserted the Derived Profile in this Profile by the drag-and-drop technique). The elements (Contents and Sub-Profiles) that the Source Profile contains are automatically suggested in this new Sub-Profile.

On notera ici que le fait de dériver un Profil n'engendre pas automatiquement la dérivation de toute la structure sous-jacente. Autrement dit, les Sous-Profils ne sont pas dérivés d'office, mais seulement si l'Utilisateur les ajoute explicitement. En effet, dans le cas contraire, le processus de dérivation pourrait rentrer dans une boucle infinie. c) Incitation l'Utilisateur à dériver un Profil i) Lien Profil-Profil Créé L'Utilisateur peut décider de dériver un Profil suite à sa consultation, par sa propre initiative, des Profils (non confidentiels) mis à sa disposition par les autres Utilisateurs. ii) Lien Profil-Profil Suggéré ou Dérivé Grâce au processus de suggestion descendante indiqué plus haut à propos du premier perfectionnement, les nouveaux Sous-Profils ajoutés dans un Profil Pl, duquel un Profil P2 a été dérivé, se retrouvent automatiquement dans P2, en mode suggéré. It should be noted here that deriving a Profile does not automatically generate the derivation of the entire underlying structure. In other words, sub-profiles are not automatically derived, but only if the user explicitly adds them. Indeed, in the opposite case, the derivation process could enter an infinite loop. c) Inciting the User to derive a Profile i) Link Profile-Profile Created The User can decide to derive a Profile following his consultation, on his own initiative, Profiles (non-confidential) made available by other Users . ii) Suggested or Derived Profile Profile Link Using the top-down suggestion process mentioned above for the first refinement, the new Sub-Profiles added in a Pl Profile, from which a P2 Profile has been derived, are automatically reflected in P2, in suggested mode.

Inversement, grâce au processus de suggestion remontante, un nouveau Sous-Profil Conversely, thanks to the up-dating suggestion process, a new Sub-Profile

<Desc/Clms Page number 147><Desc / Clms Page number 147>

ajouté dans P2 est suggéré dans P1. Quand un nouveau Sous-Profil apparaît ainsi, l'Utilisateur peut l'ignorer (c'est le cas par défaut), le garder (l'ajouter) ou le refuser. iii) Lien Profil-Profil Référence ( Suggestion Manuelle ) Ce processus est appelé Référencement . Un Utilisateur UA peut, de sa propre initiative, suggérer une Référence RI ou un Profil Pl à un Utilisateur UB , pour qu'il soit dérivé en tant que Référence RI' ou profil PI' sous un Profil P2 (Non Confidentiel) de la BD Personnelle de UB.  added in P2 is suggested in P1. When a new Sub-Profile appears in this way, the User can ignore it (this is the case by default), keep it (add it) or refuse it. iii) Profile-Profile Link Reference (Manual Suggestion) This process is called Referencing. An AU User may, on his / her own initiative, suggest an IR Reference or Pl Profile to a UB User, to be derived as an RI Reference 'or PI Profile' under a P2 Profile (Non-Confidential) of the DB. Personal UB.

Ces différents liens apparaissent sur le diagramme de classe de la figure 111. These different links appear on the class diagram of Figure 111.

Outre les avantages mentionnés plus haut à propos de la forme de réalisation de base et du premier perfectionnement (niveaux 1 et 2), ce second perfectionnement de l'invention ajoute d'autres avantages : - tout d'abord, différents Utilisateurs peuvent avoir une structure différente de Contenants ; l'Utilisateur est ainsi maître de la catégorisation de ses données et n'est pas contraint par une structure commune figée ; dans ce nouveau cadre, le système : * exploite toujours le fait que les Contenants sont partagés (avantage du niveau 1), et * permet des dérivations non seulement de Contenus mais aussi de structures arborescentes de Contenants. In addition to the advantages mentioned above with regard to the basic embodiment and the first improvement (levels 1 and 2), this second improvement of the invention adds other advantages: - firstly, different users can have a different structure of Containers; the User is thus master of the categorization of his data and is not constrained by a fixed common structure; in this new framework, the system: * always exploits the fact that Containers are shared (advantage of level 1), and * allows derivations not only of Contents but also tree structures of Containers.

- ensuite, la dérivation de Profil ou de Contenu peut se faire, non seulement par l'initiative de l'Utilisateur qui dérive, mais aussi par l'initiative d'un autre Utilisateur qui souhaite que ses Profils ou Contenus soient dérivés dans un Profil externe (mécanisme de Référencement) et qui pour cela les suggèrent manuellement (par opposition aux suggestions automatiques décrites plus haut. - Then, the derivation of Profile or Content can be done, not only by the initiative of the User who derives, but also by the initiative of another User who wishes that his Profiles or Contents are derived in a Profile external (referencing mechanism) and for that suggest them manually (as opposed to the automatic suggestions described above.

<Desc/Clms Page number 148><Desc / Clms Page number 148>

Ce dernier avantage est considérable ; grâce au Référencement, le système peut s'étendre et voir sa Communauté d'Utilisateurs augmenter toujours plus, sans véritable risque de pollution à cause de l'introduction d'informations de mauvaise qualité. En effet, bien que de telles informations puissent effectivement être introduites dans le système, le nombre d'Utilisateurs qui y accéderont ne sera pas significatif. Car pour que l'on y accède à grande échelle, il faudrait qu'elles soient Référencées dans les Profils publics à grande audience , c'est-à-dire connus par un grand nombre d'Utilisateurs et largement consultés et/ou dérivés. Or, les propriétaires de ces Profils publics ne sont pas obligés d'accepter un Référencement suggéré par n'importe qui et peuvent le filtrer. Ils filtreront ainsi les mauvaises informations sous peine de dévaloriser leurs propres image et la confiance de leur audience . Les Utilisateurs du système jouent donc eux-mêmes le rôle de modérateurs décentralisés. Le système est ainsi auto-régulé.  This last advantage is considerable; thanks to SEO, the system can expand and see its User Community grow even more, with no real risk of pollution due to the introduction of poor quality information. Indeed, although such information can actually be introduced into the system, the number of users who access it will not be significant. Because in order for it to be accessed on a large scale, it would have to be Referenced in public profiles with a large audience, that is to say known by a large number of users and widely consulted and / or derived. However, the owners of these Public Profiles are not obliged to accept a Referencing suggested by anyone and can filter it. They will thus filter the bad information under penalty of devaluing their own image and the confidence of their audience. System Users therefore play the role of decentralized moderators themselves. The system is thus self-regulated.

E. Troisième perfectionnement (niveau 4) Ce troisième perfectionnement consiste en une évolution du deuxième pour prendre en compte l'assemblage, dans un Profil d'un Utilisateur, de plusieurs ensembles de Contenus pour un même Contenant. E. Third Enhancement (Level 4) This third improvement consists of an evolution of the second one to take into account the assembly, in a Profile of a User, of several sets of Contents for the same Container.

Selon ce perfectionnement, les Profils du Niveau 3 sont remplacés par des Classeurs . Un Classeur est associé à un Contenant et contient (zéro, une ou) plusieurs Pages . Chaque Page rassemble un ensemble de Contenus. According to this refinement, Level 3 Profiles are replaced by Workbooks. A Workbook is associated with a Container and contains (zero, one or more pages). Each Page brings together a set of Contents.

Un Classeur contient donc des Pages et des sous-classeurs. A workbook contains pages and subclasses.

La structure arborescente est ainsi représentée sous la forme d'une hiérarchie de Classeurs , comme illustré sur la figure 112. The tree structure is thus represented in the form of a hierarchy of binders, as illustrated in FIG.

Les classeurs, les pages et les Références peuvent être dérivés. Les liens ProfilContenu sont remplacés par des liens Classeur-Page et Page-Contenu. L'Archive de Workbooks, Pages, and References can be derived. ContentContent links are replaced by Link-Page and Page-Content links. The Archive of

<Desc/Clms Page number 149><Desc / Clms Page number 149>

Profil est remplacée par une Archive globale pour chaque Base de Données Personnelle.  Profile is replaced by a Global Archive for each Personal Database.

Cette structure est spécifiée par le diagramme de classe illustré sur la figure 113. This structure is specified by the class diagram shown in Figure 113.

Les Classeurs et les Pages (Non Confidentiels) d'une BD Personnelle peuvent être dérivés d'une autre BD Personnelle, voire d'un autre endroit de la même BD Personnelle. The Binders and Pages (Non-Confidential) of a Personal DB may be derived from another Personal DB, or even from another location in the same Personal DB.

Les avantages des niveaux 1 à 3 subsistent ici. The benefits of levels 1 to 3 remain here.

On va maintenant décrire une application pratique de ce troisième perfectionnement. We will now describe a practical application of this third improvement.

Un Utilisateur possède un classeur de base qui lui est propre , dans lequel il peut réaliser différentes actions, et en particulier : a) Création de sous-éléments propres à l'Utilisateur L'Utilisateur constitue son Classeur de ses propres Sous-Classeurs, Pages et Calques (on décrira ces deux derniers objets dans la suite) grâce à un éditeur de documents intégré au système. b) Création de sous-éléments dérivés L'Utilisateur insère dans son Classeur des éléments récupérés dans d'autres Classeurs. c) Suppression de sous-éléments propres à l'Utilisateur L'Utilisateur supprime ses propres éléments. A User has a basic workbook of his own, in which he can perform various actions, and in particular: a) Creation of sub-elements specific to the User The User constitutes his Workbook of his own Sub-Files, Pages and Layers (we will describe these last two objects in the following) thanks to a document editor integrated into the system. b) Creation of derived sub-elements The User inserts in his workbook elements recovered in other workbooks. c) Deletion of sub-elements specific to the User The User deletes his own elements.

<Desc/Clms Page number 150><Desc / Clms Page number 150>

d) Acceptation ou Refus de sous-éléments dérivés L'Utilisateur rend visible ou non les sous-éléments implicites des éléments dérivés , c'est à dire les sous-éléments des éléments récupérés dans d'autres Classeurs.  d) Acceptance or Refusal of derived sub-elements The User makes visible or not the implicit sub-elements of the derived elements, ie the sub-elements of the elements recovered in other Binders.

Ces informations sont stockées dans une base de données par exemple de type SQL, telle qu'illustrée sur la figure 114. This information is stored in a database, for example of the SQL type, as illustrated in FIG.

On notera que les champs de référencement REFelement, REFstyle, REFcontenu sont ici des adresses de type url . Les pages vers lesquelles on pointe renvoient ainsi le code désiré, et en particulier les données de Contenu en format HTML, les données de Classeur en format XML, etc. It should be noted that REFLement, REFstyle, REFcontenu referencing fields are here url type addresses. The pages to which one points thus return the desired code, and in particular the data of Content in HTML format, the data of Workbook in XML format, etc.

Comme on le voit sur la figure 114, les Classeurs, Pages et Calques sont des éléments reliés hiérarchiquement par des tables Lien . leurs définitions ne se distinguent que par un attribut en moyenne (IDcontenant par un classeur, REFstyle pour une page, IDcontenu pour un calque). As can be seen in Figure 114, the Binder, Pages and Layers are hierarchically linked elements by Link tables. their definitions are distinguished only by an average attribute (IDcontaining by a workbook, REFstyle for a page, IDcontent for a layer).

On va décrire ci-dessous, dans ce contexte, des exemples d'actions. a) Prologue : création d'Utilisateur Avant toute action de l'Utilisateur, il faut bien que celui-ci soit défini. Son existence est inscrite dans une table Utilisateurs , telle qu'illustrée sur la figure 115. In this context, examples of actions will be described below. a) Prologue: creation of User Before any action of the User, it is necessary that this one is defined. Its existence is written in a Users table, as shown in Figure 115.

(Remarque : à la création d'un nouvel Utilisateur, on crée également un Classeur de Base et un élément pour Archive (élément de type particulier pour stocker tous les éléments en voie de suppression, comme décrit plus haut). b) Action 1 : création d'élément/sous- élément propre à l'Utilisateur (Note: when creating a new User, we also create a Base Workbook and an item for Archive (special type element to store all the elements being deleted, as described above) b) Action 1: element / sub-element creation specific to the User

<Desc/Clms Page number 151><Desc / Clms Page number 151>

La figure 116 illustre une structure hiérarchique de Classeurs et une Table associée, pour un Utilisateur donné (ici l'Utilisateur No. 1 appelé Demo ).  Figure 116 illustrates a hierarchical structure of Workbooks and an associated Table, for a given User (here User No. 1 called Demo).

Les différents éléments de la Table de la figure 116 sont propres à cet Utilisateur, en ce sens qu'ils ne font pas référence à un autre élément (le champ REFelement est toujours égal à la valeur Null , c'est-à-dire vide). The different elements of the Table in Figure 116 are specific to this User, in that they do not refer to another element (the REFelement field is always equal to the null value, that is to say empty ).

On distingue les 3 types d'éléments suivants, reconnus par la valeur de la variable Type de la Table de la figure 116. i) Les Classeurs (type 1 ) Dans le présent exemple, les éléments Nos. 1 et 2 (c'est-à-dire dont les valeurs de IDelement sont respectivement égales à 1 et 2) sont des Classeurs appelés Demo 0 et Demo 0 1 , le Classeur No. 1 étant d'ailleurs le Classeur de Base de l'Utilisateur en question. ii) Les Pages (type 2) Dans le présent exemple, les éléments Nos. 3 et 7 sont des Pages de l'Utilisateur. iii) Les Calques (type 3) Dans ce même exemple, les éléments Nos. 4 et 5 sont des Calques de l'Utilisateur. The following 3 types of elements are distinguished by the value of the Type variable of the Table in Figure 116. i) Classifiers (type 1) In this example, the elements Nos. 1 and 2 (that is, whose IDelement values are 1 and 2 respectively) are Binders called Demo 0 and Demo 0 1, Binder No. 1 being the Basic Binder of the 'User in question. ii) Pages (type 2) In this example, the elements Nos. 3 and 7 are User Pages. iii) Layers (type 3) In this same example, the elements Nos. 4 and 5 are User's Layers.

Les liens de parentés sont inscrits dans une Table Liens , telle qu'illustrée sur la figure 117. Cette Table montre que l'élément No. 1 ( Demo 0 ) est le Parent des éléments Nos. 2 et 6 ( Demo 0 1 et Demo 0 2 ) c) Action 2 : d'élément/sous-élément Dérivé The kinship relationships are listed in a Table Links, as shown in Figure 117. This Table shows that Item No. 1 (Demo 0) is the Parent of Elements Nos. 2 and 6 (Demo 0 1 and Demo 0 2) c) Action 2: Element / sub-element Derived

<Desc/Clms Page number 152><Desc / Clms Page number 152>

La figure 118 montre un exemple d'une structure arborescente de classeurs incluant un Classeur Dérivé (nommé ici Aline favoris ), et de la Table associée.  Figure 118 shows an example of a tree structure of workbooks including a Derived Workbook (named here Aline Favorites), and the associated Table.

Un élément dérivé résulte de la récupération d'un élément par un autre Utilisateur que son concepteur original. C'est un élément propre au récupérateur auquel est ajouté une référence à l'élément original. A derived element results from the retrieval of an element by a User other than its original designer. It is an element specific to the recuperator, to which is added a reference to the original element.

L'exemple de la figure 118 montre que l'élément No. 9 ( Aline favoris ) est dérivé de l'élément No. 2 ( Demo 0 1 ), car la valeur de REFelement est ici égale à 2. The example of FIG. 118 shows that element No. 9 (preferred Aline) is derived from element No. 2 (Demo 0 1), since the value of REFelement is here equal to 2.

Le Classeur No. 9 possède alors implicitement les sous-éléments du classeur No. 2 . Ces sous-éléments devront être Acceptés ou Refusés (voir plus loin action 4) pour que les Utilisateurs qui dériveront le classeur No. 9 les voient ou ne les voient pas, selon le cas. The Binder No. 9 then implicitly has the sub-elements of the binder No. 2. These sub-elements must be Accepted or Refused (see Action 4 below) so that Users who derive Workbook No. 9 do not see or see them, as the case may be.

Comme dans un élément propre à l'Utilisateur , l'Utilisateur de l'élément dérivé peut ajouter ou retrancher d'autres éléments selon son choix ; ses ajouts et suppressions seront d'ailleurs suggérés par la suite à l'auteur de l'élément original. As in a User-specific element, the User of the derived element can add or subtract other elements according to his choice; its additions and deletions will be suggested later to the author of the original element.

(Remarque : Lorsqu'un Utilisateur crée un élément dérivé (comme ici le Classeur Aline favoris ), le compteur de dérivation de l'élément original (variable Compteur est automatiquement incrémenté (comme ici pour le classeur demo 0 1 ). Ceci permet de savoir si la suppression de l'original est possible ou si cet original doit être mis en archive lorsque son auteur le masque. d) Action 3 : d'éléments propres à l'Utilisateur i) Suppression d'un sous-élément propre non dérivé (Note: When a user creates a derived element (as here the Favorite Aline Workbook), the derivation counter of the original element (counter variable is automatically incremented (as here for the demo workbook 0 1). if the deletion of the original is possible or if this original must be archived when the author masks it d) Action 3: elements specific to the User i) Deletion of a non-derived clean sub-element

<Desc/Clms Page number 153><Desc / Clms Page number 153>

Considérons l'exemple où l'Utilisateur demo désire supprimer le sous-élément Demo 0 2 . D'après le Compteur de Dérivation, celui-ci n'est utilisé comme référence par personne. On peut donc supprimer le lien entre Demo 0 et Demo 0 2 , mais aussi supprimer Demo 0 et tous ses sous-éléments dont la valeur du Compteur de Dérivation est nul.  Consider the example where the user demo wishes to delete the sub-element Demo 0 2. According to the Derivative Counter, it is used as a reference by no one. We can therefore remove the link between Demo 0 and Demo 0 2, but also delete Demo 0 and all its sub-elements whose value of the Derivative Counter is zero.

Le résultat de cette suppression est illustré sur la figure 119. ii) Suppression d'un sous-élément propre dérivé au moins une fois Considérons ici l'exemple où l'Utilisateur demo désire supprimer le sous-élément Demo 0 2 . The result of this deletion is illustrated in figure 119. ii) Deleting a derived sub-element at least once Consider here the example where the user demo wishes to delete the sub-element Demo 0 2.

Or, d'après la valeur du Compteur de Dérivation, celui-ci est utilisé comme référence par un autre classeur (en l'occurrence le classeur Aline favoris ). On peut donc supprimer le lien entre Demo 0 et Demo 0 1 , mais on ne peut pas supprimer l'élément Demo 0 1 lui-même. However, according to the value of the Derivative Counter, it is used as a reference by another workbook (in this case the Aline bookmark). We can therefore remove the link between Demo 0 and Demo 0 1, but we can not delete the element Demo 0 1 itself.

C'est pourquoi, celui-ci est alors apparenté au classeur Archive de l'Utilisateur (pour ne pas engendrer un orphelin). Il y restera jusqu'à ce que la valeur du Compteur de Dérivation tombe à zéro. Therefore, it is then related to the User Archive folder (not to generate an orphan). It will stay there until the Derivative Counter value drops to zero.

La situation est illustrée sur les figures 120a à 120c. Ainsi la figure 120c montre que l'élément n 2 (Idenfant = 2) n'appartient plus vraiment à l'élément No. 1 (Idparent = 1), car son attribut Opération a la valeur zéro. The situation is illustrated in FIGS. 120a to 120c. Thus Figure 120c shows that element n 2 (Idenfant = 2) no longer really belongs to element No. 1 (Idparent = 1), because its Operation attribute has the value zero.

Ce même élément est en revanche ajouté à l'élément archive n 12 (Idparent = 12) de l'Utilisateur, dont il devient un sous-élément. This same element is however added to the archive element n 12 (Idparent = 12) of the User, of which it becomes a sub-element.

<Desc/Clms Page number 154><Desc / Clms Page number 154>

Le fait que ce sous-élément soit rattaché à un élément archive permettra de pouvoir encore le visualiser le cas échéant le restaurer à l'initiative de l'Utilisateur, comme on va le voir ci-dessous. iii) Restauration d'un sous-élément archive Pour restaurer un sous-élément archive , l'Utilisateur consulte l'élément archive et désigne le sous-élément à restaurer. Il suffit alors de remplacer le 0 par un + dans le lien correspondant au sous-élément. Puis on supprime le lien entre cet élément et l'élément archive . Ceci est illustré sur la figure 121.  The fact that this sub-element is attached to an archive element will still be able to view it if necessary restore it at the initiative of the user, as we will see below. iii) Restoring an archive sub-element To restore an archive sub-element, the user consults the archive element and designates the sub-element to be restored. Then simply replace the 0 with a + in the link corresponding to the sub-element. Then we delete the link between this element and the archive element. This is illustrated in Figure 121.

On observera que l'on pourrait mettre également en archive les éléments supprimés dont le compteur de dérivation est nul pour permettre leur restauration... Dans ce cas, la vidange se ferait de la même manière qu'avec la corbeille d'un explorateur de fichiers. Les éléments ne pourront cependant être vidangés tant que leur compteur de dérivation est non nul. e) Action 4 : de sous-éléments implicites Les éléments dérivés possèdent implicitement les sous-éléments de l'élément original. It will be observed that one could also archive the deleted elements whose derivation counter is zero to allow their restoration ... In this case, the emptying would be done in the same way as with the basket of an explorer of files. However, the elements can not be drained until their bypass counter is nonzero. e) Action 4: Implicit sub-elements The derived elements implicitly have the sub-elements of the original element.

Ainsi, à chaque ouverture de son élément dérivé, l'Utilisateur verra apparaître et disparaître des sous-éléments au gré de l'Utilisateur de l'élément original. Ainsi la figure 122 illustre le cas où un classeur n 9 Aline favoris (Idelement = 9) est dérivé d'un classeur n 2 (REFelement = 2), et possède donc implicitement les sous- éléments de ce dernier, tels que les éléments illustrés sur la figure 123, dont la variable Idparent est égale à 2. Thus, at each opening of its derived element, the user will see appear and disappear sub-elements at the discretion of the user of the original element. Thus, FIG. 122 illustrates the case where a preferred Aline classifier 9 (Idelement = 9) is derived from a classifier n 2 (REFelement = 2), and therefore has implicitly the sub-elements of the latter, such as the illustrated elements. in Figure 123, whose Idparent variable is equal to 2.

On va décrire ci-dessous comment ces sous-éléments peuvent être Acceptés ou Refusés. We will describe below how these sub-elements can be Accepted or Refused.

<Desc/Clms Page number 155><Desc / Clms Page number 155>

i) Acceptation d'un sous-élément implicite L'Utilisateur doit accepter un sous-élément implicite (sous-élément de l'original) pour ne pas risquer de le voir disparaître et pour le proposer aux Utilisateurs qui dériveront ou qui ont dérivé à leur tour l'élément dérivé (par exemple, si dans l'exemple ci-dessus un troisième Utilisateur crée un classeur dérivé du classeur n 9).  i) Acceptance of an implicit sub-element The User must accept an implicit sub-element (sub-element of the original) in order not to risk seeing it disappear and to propose it to Users who derive or who have drifted to in turn the derived element (for example, if in the above example a third User creates a workbook derived from workbook # 9).

L'acceptation d'un sous-élément implicite est en fait une dérivation de ce sous- élément dans le classeur dérivé. En base de données, cela revient donc à créer un classeur dérivé et à en faire un enfant de l'élément dérivé. The acceptance of an implicit sub-element is actually a derivation of this sub-element in the derived workbook. In the database, this amounts to creating a derived workbook and making it a child of the derived element.

Exemple d'acceptation du sous-classeur implicite Demo 0 1 1 La figure 124 illustre la création de l'élément n 15 dérivé du n 13, à savoir Demo 0 1 1 , et la figure 125 illustre la création du lien de parenté entre les éléments. Example of acceptance of the implicit subfolder Demo 0 1 1 Figure 124 illustrates the creation of the element n derived from n 13, namely Demo 0 1 1, and Figure 125 illustrates the creation of the relationship between elements.

L'Utilisateur exprime ainsi son intérêt à l'auteur original pour cet élément. De plus, l'auteur original pourra ainsi lui suggérer par la suite des ajouts et retranchement de sous-éléments. ii) Refus d'un sous-élément implicite L'Utilisateur doit refuser un sous-élément implicite (sous-élément de l'original) lorsqu'il ne souhaite pas le voir réapparaître à chaque ouverture de son classeur. The User expresses his interest to the original author for this element. In addition, the original author will be able to suggest further additions and retrenchment of sub-elements. ii) Refusal of an implicit sub-element The User must refuse an implicit sub-element (sub-element of the original) when he does not wish to see it reappear each time his workbook is opened.

Le refus d'un sous-élément implicite est en fait un lien de parenté spécial entre ce sous-élément et le classeur dérivé qui permet de signifier le refus. En base de données, cela revient donc à créer un lien entre l'élément dérivé et le sous-élément avec la valeur - dans le champ Operation. The rejection of an implicit sub-element is actually a special relationship between this sub-element and the derived workbook that serves to signify the refusal. In the database, this amounts to creating a link between the derived element and the sub-element with the value - in the Operation field.

<Desc/Clms Page number 156> <Desc / Clms Page number 156>

Exemple de refus du sous-classeur implicite Demo 0 1 2 Cet exemple particulier est illustré sur les figures 126 et 127, la figure 127 montrant la valeur - du champ Operation. Example of refusal of the implicit subfolder Demo 0 1 2 This particular example is illustrated in Figures 126 and 127, Figure 127 showing the value - of the Operation field.

L'Utilisateur exprime ainsi son désintérêt à l'auteur original pour cet élément. En outre, lorsque l'élément original est réellement supprimé, ce lien n'aura plus d'utilité et pourra donc être également supprimé. The User thus expresses his disinterest in the original author for this element. In addition, when the original element is actually deleted, this link will no longer be useful and can therefore also be deleted.

On notera ici que la gestion des classeurs et des éléments qu'ils contiennent peut se faire avantageusement selon une interface utilisateur telle qu'illustrée sur la figure 127a. Cette interface utilisateur comprend à gauche deux fenêtres ou cadres superposés Cadre1 et Cadre2, le cadre supérieur Cadre1 affichant une structure arborescente (par exemple du type Explorateur Windows - marque déposée de Microsoft Corp. ) du classeur de l'utilisateur, tandis que le cadre inférieur Cadre2 contient, avec le même type de représentation, le classeur d'un tiers en train d'être consulté à distance par ce même utilisateur. On peut ainsi facilement naviguer d'un Contenant à l'autre, les Contenus du cadre actif étant affichés dans un cadre plus grand Cadre3 prévu dans la partie droite de l'écran. Ces contenus (pages) sont affichés avec le style imposé par le cadre couramment choisi. Des onglets permettent également de naviguer dans la structure. It will be noted here that the management of the workbooks and the elements they contain can advantageously be done according to a user interface as illustrated in FIG. 127a. This user interface on the left has two frames or frames superimposed Frame1 and Frame2, the upper frame Frame1 displaying a tree structure (for example of the type Windows Explorer - registered trademark of Microsoft Corp.) of the user's workbook, while the lower frame Cadre2 contains, with the same type of representation, the workbook of a third party being accessed remotely by this same user. It is thus easy to navigate from one Container to another, the contents of the active frame being displayed in a larger frame Cadre3 provided in the right part of the screen. These contents (pages) are displayed with the style imposed by the currently selected frame. Tabs are also used to navigate the structure.

Cette interface permet notamment : - d'importer à partir du classeur tiers, par la technique du glisser-déposer du cadre Cadre2 vers le cadre Cadre 1, tout ou partie des Contenants (inclus les Contenus associés) ou des contenus individuels, sachant que l'importation d'un ou de plusieurs Contenants peut impliquer une procédure d'acceptation sélective, de façon collective ou individuelle, des Contenus associés ; This interface allows: - to import from the third workbook, by the drag-and-drop technique from the Cadre2 frame to the Frame 1 frame, all or some of the Containers (including Associated Contents) or individual contents, knowing that the import of one or more Containers may involve a procedure of selective acceptance, collectively or individually, of the Associated Contents;

<Desc/Clms Page number 157><Desc / Clms Page number 157>

- de proposer au tiers, toujours par la technique du glisser-déposer, mais cette fois-ci de Cadre1 vers Cadre2, tout ou partie de son propre classeur, pour mettre en oeuvre la fonction décrite plus haut de suggestion manuelle ou Référencement ; - pour ce qui concerne le cadre d'affichage Cadre3, une série de boutons et/ou d'onglets est avantageusement prévue pour faire défiler les pages, changer de calque, etc..  - to propose to the third, always by the technique of drag and drop, but this time from Cadre1 to Cadre2, all or part of his own workbook, to implement the function described above of manual suggestion or Referencing; - As regards the Cadre3 display frame, a series of buttons and / or tabs is advantageously provided for scrolling pages, changing layers, etc. ..

Enfin on notera ici que les opérations d'acceptations/refus de suggestions peuvent s'effectuer dans des boîtes de dialogue spécifiques, soit lorsque l'utilisateur accède à un classeur contenant des éléments nouvellement suggérés depuis sa dernière connexion, soit lorsque l'utilisateur accède au Contenants destinés à accueillir les éléments suggérés. Finally, it should be noted here that the accept / reject suggestions operations can be carried out in specific dialog boxes, either when the user accesses a workbook containing newly suggested items since his last connection, or when the user accesses Containers intended to accommodate the suggested elements.

Par ailleurs, ces aspects de l'invention permettent d'exploiter une nouvelle technologie de "multi-portail" sur l'Internet, qui permet : - à des fournisseurs d'informations, tels que des magazines grand public par exemple, de créer et mettre à jour leurs informations directement sur l'Internet, - l'accès aux informations par de multiples portes d'entrées, à partir desquelles les informations peuvent être présentées de manière différente ; par exemple, chaque magazine peut offrir un accès au multi-portail via son propre nom de domaine de type www. telmagazine.fr , - aux fournisseurs d'information de fidéliser l'internaute en jouant sur sa fibre de collectionneur ; l'internaute peut en effet constituer des collections d'information dans un classeur personnel en ligne, - aux fournisseurs de produits, d'offrir des éléments de contenu décrivant leurs produits (biens ou services) : quelques clics de souris, ils les référencent dans les Moreover, these aspects of the invention make it possible to exploit a new "multi-portal" technology on the Internet, which enables: - information providers, such as consumer magazines for example, to create and update their information directly on the Internet, - access to information through multiple entry doors, from which information can be presented in a different way; for example, each magazine can offer access to the multi-portal via its own domain name type www. telmagazine.fr, - the information providers to retain the user by playing on his fiber collector; the user can indeed build collections of information in a personal online binder, - to the suppliers of products, to offer elements of content describing their products (goods or services): a few clicks of the mouse, they refer them in the

<Desc/Clms Page number 158><Desc / Clms Page number 158>

magazines en ligne, communiquent ainsi leurs nouveautés et promotions et en récoltent des transactions commerciales, - aux magazines de se transformer en mini-annuaires (comme les portails ou annuaires connus aujourd'hui sur l'Internet) et de percevoir une commission sur les visites et ventes engendrées, - enfin, aux internautes de consulter les magazines et les offres de produits : ils peuvent glisser dans leur classeur personnel des éléments de contenu qu'ils retrouvent à chaque connexion, ces éléments de contenu étant mis à jour et complétés ; le fait de glisser une information dans le classeur personnel représente implicitement une " déclaration d'intérêt " qui leur permet de se faire suggérer automatiquement des informations apparentées.  online magazines, communicate their novelties and promotions and collect commercial transactions, - magazines to turn into mini-directories (such as portals or directories known today on the Internet) and collect a commission on visits and sales generated, - finally, Internet users to consult magazines and product offers: they can drag into their personal workbook content elements that they find at each connection, these content elements being updated and completed; dragging information into the personal workbook is implicitly a "declaration of interest" that allows them to automatically be prompted for related information.

Ainsi un nouveau magazine en ligne rejoignant un multi-portail existant pourra exploiter le trafic qui y est déjà présent. Thus a new online magazine joining an existing multi-portal will be able to exploit the traffic that is already there.

Section 2 - Auto-épuration du Système On va maintenant décrire en détail une fonction de la présente invention permettant de prendre en compte la qualité des suggestions pour aboutir, par une notion de degré de confiance , à limiter les effets de suggestions indésirables. Cette section est à rapprocher de la section Coefficients de Probabilité d'Acceptation du chapitre II, sachant que l'acceptation au niveau des répertoires décrite dans cette section du chapitre II est plus large que l'acceptation au niveau des utilisateurs telle que décrite dans la présente section. Section 2 - Self-purification of the System We will now describe in detail a function of the present invention to take into account the quality of the suggestions to achieve, by a notion of degree of confidence, to limit the effects of undesirable suggestions. This section is to be compared with the Acceptability Coefficients section of Chapter II, since the directory-level acceptance described in this section of Chapter II is broader than the user-level acceptance as described in Chapter II. this section.

Introduction Le système met en #uvre un double principe d'épuration. Introduction The system implements a double purification principle.

<Desc/Clms Page number 159><Desc / Clms Page number 159>

Premièrement, comme mentionné à propos de la suggestion manuelle dans la section 1 de ce même chapitre, la diffusion des informations entre Utilisateurs peut s'effectuer par Référencement d'un Profil d'un Utilisateur donné dans les Profils (Classeurs ou Pages) d'autres Utilisateurs dont il espère capter l'audience (notamment pour qu'à partir de Profils Non Confidentiels d'autres utilisateurs, le public puisse trouver les informations propres audit Utilisateur donné). Le système permet ceci de manière décentralisée. Le Référencement est une suggestion et peut donc être filtré par le destinataire, qui joue ainsi le rôle d'épurateur. Ainsi, ceux qui fournissent des informations de mauvaise qualité perdent leur crédibilité, et ont tendance à ne plus faire l'objet de dérivations vers d'autres utilisateurs. Leur audience baisse donc.  First, as mentioned with the manual suggestion in section 1 of this same chapter, the dissemination of information between Users can be done by Referencing a Profile of a given User in the Profiles (Binder or Pages) of other Users it hopes to capture the audience (including that from other users' Non-Confidential Profiles, the public can find the information specific to the given User). The system allows this in a decentralized way. SEO is a suggestion and can be filtered by the recipient, who plays the role of purifier. Thus, those who provide poor quality information lose their credibility, and tend to no longer be shunted to other users. Their audience is falling.

Deuxièmement, le maintien du crédit qu'accorde chaque Utilisateur peut-être assisté par le système de manière automatique. Par apprentissage automatique et transparent, basé sur l'expérience, le système construit et maintient une notation de contribution révélatrice d'un "degré de confiance" que peut accorder un Utilisateur aux informations fournies par un autre Utilisateur. Secondly, the maintenance of the credit granted by each User can be automatically assisted by the system. By automatic and transparent learning, based on experience, the system builds and maintains a contribution notation indicative of a "degree of confidence" that a User may grant to information provided by another User.

Ce degré de confiance peut être déterminé de manière indirecte en suivant une "chaîne" d'Utilisateurs dans laquelle chaque Utilisateur a pu déterminer le degré de confiance pour le suivant (c'est à dire par transitivité). This degree of confidence can be determined indirectly by following a "chain" of Users in which each User has been able to determine the degree of trust for the next (ie by transitivity).

Le degré de confiance ainsi obtenu permet de filtrer automatiquement les suggestions de contenu ayant une forte probabilité de ne pas être pertinentes. The degree of confidence thus obtained makes it possible to automatically filter the content suggestions that have a high probability of being irrelevant.

Il est important de noter ici que l'identité (ou plutôt le pseudonyme) de l'Utilisateur qui est à l'origine de la suggestion est connu du système mais pas des autres Utilisateurs.  It is important to note here that the identity (or rather the pseudonym) of the User who is at the origin of the suggestion is known to the system but not to the other Users.

<Desc/Clms Page number 160> <Desc / Clms Page number 160>

Détails du procédé d'auto-épuration Pour chaque type d'action (accepter, refuser, déplacer, etc. ), on prévoit selon ce perfectionnement de l'invention le recours à une notation de contribution, c'est-àdire à un système d'attribution de points positifs ou négatifs, sur la base du fait que l'Utilisateur B qui reçoit des points positifs par l'Utilisateur A augmente d'autant la confiance que lui accorde ce dernier. De même, il diminue sa confiance quand il reçoit des points négatifs. Details of the self-purification process For each type of action (accept, refuse, move, etc.), according to this improvement of the invention the use of a contribution notation, that is to say a system the attribution of positive or negative points, on the basis that the user B who receives positive points by the user A increases all the confidence that the latter grants him. Likewise, he diminishes his confidence when he receives negative points.

L'Utilisateur A peut ainsi automatiquement filtrer (dans ses requêtes) les suggestions faites par des Utilisateurs dont le degré de confiance est inférieur à un certain seuil. L'intérêt de cette fonction réside surtout dans le fait que l'évaluation (ou notation) se fait dans le cadre l'utilisation courante de l'outil, de manière transparente. User A can thus automatically filter (in his requests) the suggestions made by Users whose degree of confidence is below a certain threshold. The interest of this function resides mainly in the fact that the evaluation (or notation) is done within the framework the current use of the tool, in a transparent way.

Par exemple, suite à une requête, un Utilisateur A reçoit un Contenu suggéré par un Utilisateur C qu'il n'a pas encore eu l'occasion d'évaluer. Dans le cas où l'Utilisateur C a un degré de confiance négatif chez l'Utilisateur B, et que ce dernier a un degré de confiance positif chez l'Utilisateur A, alors, par transitivité, l'Utilisateur C obtient des points négatifs chez l'Utilisateur A. Ce dernier peut alors automatiquement filtrer les Contenus suggérés par C. For example, following a request, a User A receives Content suggested by a User C that he has not yet had the opportunity to evaluate. In the case where User C has a negative degree of confidence in User B, and User B has a positive degree of confidence in User A, then, by transitivity, User C obtains negative points from User A. The latter can then automatically filter the Content suggested by C.

En effet, l'Utilisateur A a confiance dans les suggestions faites par l'utilisateur B. Indeed, User A has confidence in the suggestions made by User B.

Donc si l'Utilisateur B estime que les suggestions de l'Utilisateur C ne correspondent pas à ses attentes, alors l'Utilisateur A peut être confiant qu'il aurait la même opinion négative. So if User B believes that User C's suggestions do not match his expectations, then User A may be confident that he would have the same negative opinion.

Concrètement, cette approche peut s'appuyer sur une structure de données incluant une représentation d'un graphe de transitivité entre les différents Utilisateurs (tout en conservant leur anonymat les uns par rapport aux autres). Concretely, this approach can be based on a data structure including a representation of a graph of transitivity between the different Users (while maintaining their anonymity with respect to each other).

<Desc/Clms Page number 161><Desc / Clms Page number 161>

Avantageusement, cette approche peut s'accompagner de coefficients de pondération en fonction de la longueur de la chaîne de transitivité pour une évaluation donnée, ainsi que d'autres critères et seuils divers.  Advantageously, this approach may be accompanied by weighting coefficients as a function of the length of the transitivity chain for a given evaluation, as well as other criteria and various thresholds.

Par exemple, pour que l'Utilisateur A puisse se fier au jugement de l'Utilisateur B au sujet de l'Utilisateur C, le degré de confiance qu'accorde l'Utilisateur A à l'Utilisateur B doit être supérieur à un certain seuil depuis un certain temps (critère de stabilité). For example, for User A to be able to rely on User B's judgment regarding User C, the degree of trust that User A has in User B must be above a certain threshold for some time (stability criterion).

Ainsi le système construit automatiquement ce qu'on peut qualifier de réseau de confiance , auto-alimenté et auto-régulé, qui permet d'épurer sélectivement les suggestions inadéquates. Thus, the system automatically builds what can be described as a trusted network, self-powered and self-regulated, which allows to purify selectively inadequate suggestions.

On notera ici qu'il subsiste toutefois un risque : ainsi un Utilisateur malveillant peut s'inscrire dans le système fréquemment, avec des pseudonymes chaque fois différents, dans le but de suggérer des Contenus de mauvaise qualité. It should be noted here that there is still a risk: a malicious user can register in the system frequently, with pseudonyms each time different, in order to suggest poor quality content.

Cet Utilisateur malveillant n'étant évalué par personne au début, ses suggestions ne pourront être filtrés pendant un certain temps. This malicious user is not evaluated by anyone at the beginning, his suggestions can not be filtered for a while.

Pour supprimer ce risque, on pourra filtrer les Utilisateurs récents dont le volume d'éléments suggérés n'a pas atteint un certain seuil, que l'on appelle seuil de contribution . Ce filtrage pourra aussi servir à inciter les Utilisateurs à contribuer suffisamment pour que les Contenus qu'ils suggèrent ne soient pas filtrés. Ceci incite à faire vivre le système. Le volume de contribution de chacun pourra être déterminé selon une méthode qui permette d'éviter les contributions reproduites artificiellement pour atteindre le seuil de contribution. To eliminate this risk, recent users whose suggested volume of items has not reached a certain threshold, called the contribution threshold, can be filtered out. This filtering can also be used to encourage users to contribute enough so that the content they suggest is not filtered. This encourages the system to live. The contribution volume of each can be determined using a method that avoids artificially propagated contributions to reach the contribution threshold.

Alternativement, le fait de s'inscrire dans le système d'échange par suggestions peut être payant, ou nominatif via un tiers de confiance qui découragerait de suggérer des Contenus sous des pseudonymes différents. Alternatively, subscribing to the Suggestion Exchange System may be paid for, or nominative via a trusted third party that would discourage the suggestion of Content under different aliases.

<Desc/Clms Page number 162> <Desc / Clms Page number 162>

Section 3 - Techniques de suggestions automatiques Introduction Les Profils, tels que décrits dans la section 1, caractérisent les Utilisateurs et peuvent ainsi être exploités en tant que profils d'intérêts (ou de goûts) que l'on confronte les uns aux autres pour en extraire des informations pertinentes et les suggérer automatiquement aux Utilisateurs. Section 3 - Automatic Suggestion Techniques Introduction Profiles, as described in Section 1, characterize Users and can thus be used as profiles of interests (or tastes) that are confronted with each other to extract relevant information and automatically suggest it to Users.

La confrontation d'un profil aux autres peut se faire individuellement (par exemple par les techniques connues de Filtrage collaboratif , de Recommandation sur la base de Contenus ), ou sur l'ensemble synthétisé des autres profils de manière compacte (par exemple par les techniques de Réseaux Bayesiens, etc.). The confrontation of a profile with the others can be done individually (for example by the known techniques of Collaborative filtering, of Recommendation on the basis of Contents), or on the synthesized whole of the other profiles in a compact way (for example by the techniques Bayesian Networks, etc.).

Un apport important de cet aspect de l'invention est de tirer parti de l'ordre des Contenus dans les Profils pour améliorer les suggestions. Si l'on se place au Niveau 4 de la section 1 du présent chapitre, l'utilisateur peut ordonner les Contenus (qui sont affichés dans un certain ordre dans les pages), et les pages entre elles (l'ordre des pages est affiché sous la forme d'un classeur), en fonction de différents critères d'ordre choisis par lui-même (par exemple, critère de préférence globale, critère temporel, critère économique, critère esthétique, etc. ) ou une conjonction ordonnée de tels critères. An important contribution of this aspect of the invention is to take advantage of the order of the Contents in the Profiles to improve the suggestions. If you go to Level 4 of Section 1 of this chapter, the user can order the Contents (which are displayed in a certain order in the pages), and the pages between them (the order of the pages is displayed in the form of a workbook), according to different order criteria chosen by itself (for example, global preference criterion, temporal criterion, economic criterion, aesthetic criterion, etc.) or an ordered conjunction of such criteria .

Dans la mesure où ces critères sont partagés avec d'autres Utilisateurs, le système en déduit des profils ordonnés, améliore ainsi la pertinence des éléments recommandés, insère les éléments recommandés à leur bonne position, et peut même ordonner automatiquement des informations posées en vrac en se basant sur l'ordre adopté par les profils proches. Ces procédés sont décrits dans la section suivante. Since these criteria are shared with other users, the system derives ordered profiles, improves the relevance of the recommended elements, inserts the recommended elements in their correct position, and can even automatically order information asked in bulk. based on the order adopted by the close profiles. These methods are described in the following section.

<Desc/Clms Page number 163> <Desc / Clms Page number 163>

Détails des techniques de Suggestion Automatique a. Détection de profils voisins Les Contenus sont composés d'éléments (par exemple au format XML) qui ont des attributs et des éléments imbriqués. Afin de détecter, entre deux profils donnés, les Contenus qui peuvent être considérés comme pratiquement identiques , ils peuvent être analysés selon des règles qui se déclenchent à partir d'un mécanisme de reconnaissance de motifs ( pattern matching ). Details of Automatic Suggestion Techniques a. Detecting Neighboring Profiles Content is composed of elements (for example in XML format) that have attributes and nested elements. In order to detect, between two given profiles, the Contents that can be considered as virtually identical, they can be analyzed according to rules that are triggered from a pattern matching mechanism.

Un Contenant peut ainsi donner des poids différents aux attributs des éléments de ses Contenus. Un Contenu sera alors considéré comme pratiquement identique à un autre si un ensemble d'attributs suffisamment représentatif (la représentativité sera calculée en fonction de leurs poids respectifs) ont les mêmes valeurs. A Container can thus give different weight to the attributes of the elements of its Contents. One Content will then be considered virtually identical to another if a sufficiently representative set of attributes (representativeness will be calculated based on their respective weights) have the same values.

Ainsi, il n'est pas nécessaire que deux Utilisateurs aient dans leurs profils des Contenus exactement les mêmes pour qu'ils soient jugés proches. Thus, it is not necessary for two Users to have exactly the same content in their profiles so that they are considered to be close.

La proximité entre deux profils Px et Py - ordonnés selon un critère donné - est mesuré en évaluant la quantité de calques que les Utilisateurs A et B ont en commun, avec une pondération par la position de ces calques dans les profils des Utilisateurs A et B respectivement, comme illustré sur la figure 128. The proximity between two profiles Px and Py - ordered according to a given criterion - is measured by evaluating the amount of layers that Users A and B have in common, with a weighting by the position of these layers in the profiles of Users A and B respectively, as shown in Figure 128.

Pratiquement la mesure de proximité va se faire Contenu par Contenu tant que le poids marginal reste supérieur à un certain seuil. Ainsi il suffira comparer un nombre fixé d'éléments dans l'ordre correspondant au critère donné. Virtually the proximity measure will be Content by Content as long as the marginal weight remains above a certain threshold. Thus it will suffice to compare a fixed number of elements in the order corresponding to the given criterion.

L'Utilisateur peut aussi s'appuyer sur un certain nombre d'autres indicateurs tels que par exemple : - le pourcentage d'informations en commun, comme illustré sur la figure 129 ; - le nombre de fois qu'un même Contenu est suggéré (à partir de Profils différents). The user can also rely on a number of other indicators such as for example: the percentage of information in common, as illustrated in Figure 129; - the number of times the same Content is suggested (from different Profiles).

<Desc/Clms Page number 164><Desc / Clms Page number 164>

b. Insertion des Contenus suggérés qui sont acceptés Lorsqu'un Utilisateur accepte une suggestion de Contenu de la part du système de Recommandation Collaborative, le Contenu est classé au bon endroit selon chaque critère de la configuration du classeur.  b. Inserting suggested Content that is accepted When a User accepts a Content suggestion from the Collaborative Recommendation system, the Content is ranked in the correct place according to each criterion of the workbook configuration.

On va considérer, en référence à la figure 130, l'exemple suivant : supposons que pour un Contenant donné, des Utilisateurs ul et u36 ont en correspondance respectivement les pages ( xSheet ) xsA et xsB, dont les Contenus sont ordonnés chacun selon deux critères #1 et #2. We will consider, with reference to FIG. 130, the following example: let us suppose that for a given Container, Users ul and u36 respectively have the pages (xSheet) xsA and xsB, whose Contents are each ordered according to two criteria #1 and 2.

Pour cette catégorie, ul et u36 sont proches au sens où ils possèdent tous les deux les Contenus c4 et c12. Le système de Recommandation Collaborative fait donc les propositions telles qu'illustrées sur la figure 131, c8 étant suggéré de u36 à ul et cl étant suggéré de ulà u3 6. For this category, ul and u36 are close in the sense that they both have the contents c4 and c12. The Collaborative Recommendation system therefore makes the proposals as illustrated in Figure 131, where c8 is suggested from u36 to ul and C1 is suggested from u3.

Si ces suggestions sont acceptés par chaque Utilisateurs, les Contenus sont alors insérés en accord avec les positions qu'ils occupent dans leur page d'origine. If these suggestions are accepted by each User, then the Content is inserted according to the positions they occupy in their original page.

Pour le critère #1 de ul, c8 est classé par rapport aux Contenus communs à ulet u36, il est donc placé avant c4 et cl2. Bien sûr, ul est libre de replacer c8 s'il le juge mal classé en regard du critère utilisé. Un raisonnement symétrique est appliqué pour u36. For the criterion # 1 of ul, c8 is classified with respect to the Contents common to ulet u36, so it is placed before c4 and cl2. Of course, ul is free to relocate c8 if he deems it misclassified against the criterion used. Symmetrical reasoning is applied for u36.

Pour le critère #2, les éléments communs à xsA et xsB ne sont pas classés dans le même ordre. Plusieurs conventions sont alors possibles : celle qui semble la plus appropriée est de ne violer aucune relation établie dans le profil de départ. Ainsi, c8 doit être inséré après cl2 et c4 dans xsA, et cl doit être inséré après c12 dans xsB (bien qu'il soit avant c4 dans le profil de départ). Le résultat est illustré sur la figure 132. For criterion # 2, the elements common to xsA and xsB are not classified in the same order. Several conventions are then possible: the one that seems the most appropriate is not to violate any relationship established in the initial profile. Thus, c8 must be inserted after cl2 and c4 into xsA, and cl must be inserted after c12 into xsB (although it is before c4 in the starting profile). The result is shown in Figure 132.

<Desc/Clms Page number 165> <Desc / Clms Page number 165>

Une autre convention pourrait par exemple être d'insérer cl dans xsA et c8 dans xsB relativement à l'élément commun le plus proche, comme illustré sur la figure 133. Another convention could for example be to insert cl into xsA and c8 into xsB relative to the nearest common element, as shown in Fig. 133.

L'insertion d'un Contenu, telle qu'on l'a décrite ci-dessus avec cl et c8, provoque la mise à jour des profils de ul et u36 pour les noeuds supérieurs de la taxonomie (profils agrégés). La place où le nouveau Contenu est inséré dans les profils agrégés est fonction de l'endroit où il a été classé lors de son insertion, et du critère utilisé. The insertion of a Content, as described above with cl and c8, causes the update of the profiles of ul and u36 for the upper nodes of the taxonomy (aggregated profiles). The place where the new Content is inserted in the aggregated profiles depends on where it was ranked when it was inserted, and the criterion used.

Ordonner les Profils automatiquement (Tri de profil par recommandation collaborative) Comme mentionné précédemment, dans un profil certains des Contenus n'ont pas été explicitement ordonnés. Dans les feuilles, à ceux-ci correspondent des onglets grisés. Ordering Profiles Automatically (Profile Sorting by Collaborative Recommendation) As mentioned earlier, in a profile some of the Contents have not been explicitly ordered. In the leaves, these correspond to gray tabs.

Pour chaque profil, les Contenus grisés qui font partie des Contenus en commun avec un profil voisin, mais dans la partition non grisée chez le voisin, sont ordonnés selon l'ordre suggéré par ce voisin. For each profile, the gray contents that are part of the contents in common with a neighboring profile, but in the unmerged partition at the neighbor's, are ordered according to the order suggested by this neighbor.

Section 4 - Graphes de dérivation Introduction Rappelons ici que le système décrit dans la section 1 du présent chapitre offre à l'Utilisateur la possibilité de (et une stimulation pour) dériver et réorganiser (ajouter, retirer, modifier, ré-ordonner, déplacer d'un Contenant à un autre, etc.) des éléments d'information non déclarés comme confidentiels. La stimulation vient du fait que l'Utilisateur profite ainsi de l'expertise de toute la chaîne d'Utilisateurs à l'amont c'est-à-dire à l'origine de chaque information. Section 4 - Bypass Charts Introduction It should be recalled here that the system described in section 1 of this chapter offers the user the possibility of (and stimulation for) deriving and rearranging (add, remove, modify, reorder, move d 'Container to container, etc.) information not declared as confidential. The stimulation comes from the fact that the user thus benefits from the expertise of the entire chain of users upstream that is to say the origin of each information.

Le système incite donc ses Utilisateurs à l'étendre (à le faire grossir ) par dérivation, et les Utilisateurs en viennent à partager les mêmes Contenants et Contenus. Le grand avantage offert est ainsi le fait de parler le même langage , The system therefore encourages its Users to extend it (to make it grow) by derivation, and the Users come to share the same Containers and Contents. The great advantage offered is thus speaking the same language,

<Desc/Clms Page number 166><Desc / Clms Page number 166>

tant pour les informations elles-mêmes (Contenus) que pour leurs catégories respectives (Contenants). Or, parler un langage commun (celui-ci étant constitué par l'ensemble des Contenants et Contenus qui se trouvent dans la partie commune du système) facilite grandement la comparaison de Profils. En effet : - à partir des Contenus, on peut retrouver directement (en accès direct) les Références sur ceux-ci et les Profils qui les contiennent ; - à partir d'un Contenant associé à un Profil donné, on peut retrouver directement tous les Contenus auxquels ont accédé les Utilisateurs (et par là on peut ainsi retrouver directement les Profils qui les contiennent).  both for the information itself (Content) and for their respective categories (Containers). However, to speak a common language (this one consisting of all the Containers and Contents that are in the common part of the system) greatly facilitates the comparison of Profiles. Indeed: - from the Contents, one can find directly (in direct access) the References on these and the Profiles which contain them; - from a Container associated with a given Profile, we can directly find all the Contents accessed by the Users (and thus we can directly find the Profiles that contain them).

De l'utilisation du système résulte donc un graphe de dérivation dynamique, dont le n#uds sont les Profils et les arcs (orientés) sont les dérivations entre Profils effectuées par les Utilisateurs. Il peut s'agir de dérivations de Profils (dérivation d'un Classeur ou d'une Page, si l'on se place au Niveau 4) ou dérivation de Contenus. The use of the system therefore results in a dynamic derivation graph, whose nodes are the Profiles and arcs (oriented) are the derivations between Profiles made by the Users. These can be derivations of Profiles (derivation of a Workbook or Page, if one is at Level 4) or derivation of Contents.

L'idée essentielle de cet aspect de la présente invention est de se servir du graphe de dérivation entre Profils pour bénéficier de la localité des comparaisons à effectuer entre Profils. The essential idea of this aspect of the present invention is to use the derivation graph between Profiles to benefit from the locality of the comparisons to be made between Profiles.

A ce sujet, l'interface utilisateur du système comprend avantageusement un moyen (bouton, etc. ) permettant à un utilisateur consultant un Contenant donné d'un Classeur tiers de consulter directement les contenus désignés dans l'ensemble du contenant de la partie commune qui définit cette catégorie, sans avoir ni à naviguer dans l'arborescence, ni à passer vers un portail Internet ou analogue. In this respect, the user interface of the system advantageously comprises a means (button, etc.) enabling a user consulting a given Container of a third-party binder to directly consult the contents designated in the whole of the container of the common part which defines this category, without having to navigate in the tree, or to move to an Internet portal or the like.

Comment tirer parti du graphe de dérivation entre Profils En s'appuyant sur le graphe de dérivation (qui évolue dynamiquement en cours d'exécution), chaque Profil (c'est-à-dire chaque n#ud du graphe de dérivation) maintient en mémoire une liste des voisins se trouvant dans un certain périmètre (à une distance inférieure à un seuil donné, distance mesurée en nombre d'arcs de dérivation), avec pour chaque voisin, un ensemble d'indicateurs de proximité. How to take advantage of the derivation graph between Profiles By relying on the derivation graph (which dynamically evolves during execution), each Profile (that is, each node of the derivation graph) maintains memory a list of neighbors within a certain perimeter (at a distance less than a given threshold, distance measured in number of bypass arcs), with for each neighbor, a set of proximity indicators.

<Desc/Clms Page number 167><Desc / Clms Page number 167>

Les indicateurs peuvent être par exemple ceux mentionnés dans la section précédente ou tout simplement des compteurs de Contenus en commun.  Indicators can be for example those mentioned in the previous section or simply Counters of Contents in common.

On peut en outre réaliser un maintien incrémental des indicateurs de proximité entre Profils : à chaque ajout et retrait de Contenu dans chaque Profil, ces indicateurs sont mis à jour chez tous les voisins dans le graphe. Par exemple, à chaque ajout de Contenu, pour chaque Profil voisin qui le posséderait aussi, le système incrémente l'indicateur compteur de Contenus en commun dans les deux Profils en question. In addition, it is possible to incrementally maintain the Proximity Indicators between Profiles: for each addition and removal of Content in each Profile, these indicators are updated for all the neighbors in the graph. For example, with each addition of Content, for each Neighbor Profile that would also have it, the system increments the Counts counter metric in both Profiles in question.

A chaque retrait de Contenu, le système décrémente ce même compteur. With each withdrawal of Content, the system decrements the same counter.

Chaque Profil maintient ainsi de façon incrémentale les connaissances qu'il a de la proximité de ses voisins (anonymes bien entendu) et le système peut ainsi effectuer des suggestions automatiquement par Filtrage Collaboratif. Each Profile incrementally maintains the knowledge it has of the proximity of its neighbors (anonymous of course) and the system can make suggestions automatically by Collaborative Filtering.

Le seuil de distance peut par ailleurs être ajusté en cours d'exécution par une technique d'apprentissage basée sur un critère de rendement (évaluation des succès des suggestions à différentes distances). The distance threshold can also be adjusted during execution by a learning technique based on a performance criterion (evaluation of the success of the suggestions at different distances).

On observera ici que la présente invention permet d'éviter de recourir à des calculs extrêmement lourds de comparaison de profils par leurs contenus eux-mêmes, qui typiquement nécessitent, lorsque le nombre d'utilisateurs est important, des traitements batch de durées considérables. It will be observed here that the present invention makes it possible to avoid resorting to extremely heavy calculations of comparison of profiles by their contents themselves, which typically require, when the number of users is large, batch processes of considerable duration.

Section 5 - Anonymat et commerce électronique Architecture On considère ici une architecture composée de 4 classes d'ordinateurs connectés sur un réseau : Section 5 - Anonymity and E-Commerce Architecture Here we consider an architecture composed of 4 classes of computers connected on a network:

<Desc/Clms Page number 168><Desc / Clms Page number 168>

- au moins un poste-client (par exemple de type ordinateur personnel ou terminal de réseau),manipulé par un Utilisateur ; - au moins un serveur tiers (ST), à savoir serveur de transfert de données (ou dispositif équivalent) ou serveur de confiance ; - au moins un Serveur de Stockage (SdS) ; - éventuellement un ou plusieurs Serveurs de Fournisseurs de Produits (SFP).  at least one client station (for example of the personal computer or network terminal type), handled by a user; at least one third-party server (ST), namely a data transfer server (or equivalent device) or a trusted server; - at least one Storage Server (SdS); - optionally one or more Product Provider Servers (SFPs).

Les besoins de base sont les suivants : - Anonymat minimal : l'anonymat des Utilisateurs peut être directement assuré par le ou les SdS qui centralisent les éléments d'information recueillis. The basic needs are as follows: - Minimal anonymity: the anonymity of Users can be directly ensured by the SDS (s) that centralize the information elements collected.

- Anonymat par tiers de confiance : alternativement, l'anonymat peut être réalisé par une architecture incluant un ou plusieurs serveurs supplémentaires qui sont gérés par un ou plusieurs tiers de confiance (ST) et qui sont des "passages obligés" lors des communications en consultation ou ajout d'éléments ; les adresses IP des Utilisateurs, qui consultent les éléments d'informations, sont ainsi cachées. - Anonymity by trusted third party: alternatively, the anonymity can be achieved by an architecture including one or more additional servers that are managed by one or more trusted third parties (ST) and which are "obligatory passages" during communications in consultation or adding elements; the IP addresses of the Users, who consult the information elements, are thus hidden.

L'identité (ou le pseudonyme) de l'Utilisateur qui ajoute un élément d'information est transformée (codée, chiffrée) par le serveur tiers, de manière différente à chaque ajout (en plus du fait que son adresse IP est cachée). The identity (or pseudonym) of the User who adds an item of information is transformed (coded, encrypted) by the third party server, differently for each addition (in addition to the fact that his IP address is hidden).

La correspondance entre différentes transformations d'une même identité est connue par un ou plusieurs des serveurs tiers, ou par un ou plusieurs serveurs tiers indépendants des premiers (ce sont eux qui notamment peuvent dériver les degrés de confiance). The correspondence between different transformations of the same identity is known by one or more of the third-party servers, or by one or more third-party servers independent of the first ones (it is they who in particular can derive the degrees of confidence).

Les serveurs tiers peuvent servir à fournir un certificat pour témoigner de la fourniture d'un élément d'information par un serveur. Ceci peut être utilisé dans le cadre de divers modèles économiques, comme on le verra plus loin. Third-party servers can be used to provide a certificate to testify to the provision of an information element by a server. This can be used in a variety of business models, as discussed below.

<Desc/Clms Page number 169> <Desc / Clms Page number 169>

Les classeurs pourront aussi être stockés sur un serveur de stockage SdS. Dans ce cas, leurs liens sur les Contenus non-confidentiels (qui forment les profils) seront stockés sur le serveur de stockage SdS après chiffrement sur l'ordinateur personnel (ou un serveur de transfert ST). Ces liens ne pourront pas être déchiffrés par le serveur de stockage, mais seulement sur l'ordinateur personnel ou sur le serveur de transfert. Workbooks can also be stored on an SdS storage server. In this case, their links to the non-confidential contents (which form the profiles) will be stored on the SdS storage server after encryption on the personal computer (or an ST transfer server). These links can not be decrypted by the storage server, but only on the personal computer or on the transfer server.

Les besoins supplémentaires impliqués par le procédé de Recommandation Collaborative sont les suivants : - Anonymat minimal : L'anonymat des profils peut être assuré directement par des serveurs de stockage qui jouent aussi le rôle de serveurs de recommandation, c'est à dire qui produisent les profils, les maintiennent et les confrontent. The additional requirements involved in the Collaborative Recommendation process are as follows: - Minimal anonymity: The anonymity of the profiles can be provided directly by storage servers which also act as recommendation servers, that is to say who produce the profiles, maintain them and confront them.

- Anonymat par tiers de confiance : Alternativement, des serveurs de transfert peuvent avoir le rôle de produire et maintenir les profils et ensuite de les communiquer à un serveur de stockage après les avoir rendus anonymes, c'est à dire, après leur avoir associé une identité transformée (codée, chiffrée). - Anonymity by trusted third party: Alternatively, transfer servers can have the role of producing and maintaining the profiles and then communicating them to a storage server after rendering them anonymous, that is, after associating them with a transformed identity (coded, encrypted).

Les serveurs de recommandation ne manipulent alors que des profils anonymes et sont incapables de déceler que deux profils appartiennent à un même Utilisateur. The recommendation servers then only handle anonymous profiles and are unable to detect that two profiles belong to the same User.

Pour éviter d'associer ensemble différents profils d'un Utilisateur, en reconnaissant une même adresse IP lors de leur transmission (par exemple quand manifestement il n'y a qu'un seul Utilisateur en ligne), on préférera utiliser un serveur de transfert différent par profil (autant que possible, c'est à dire dans la mesure où l'on dispose d'un nombre suffisant de serveurs de transfert. To avoid associating different profiles of a user together, by recognizing the same IP address during their transmission (for example when there is obviously only one user online), we prefer to use a different transfer server by profile (as much as possible, ie to the extent that there is a sufficient number of transfer servers.

<Desc/Clms Page number 170><Desc / Clms Page number 170>

Par ailleurs, l'architecture décrite ci-dessus peut être mise à profit dans le cadre du commerce électronique par Internet, comme on va maintenant le décrire en référence à la figure 134.  In addition, the architecture described above can be used in the context of e-commerce over the Internet, as will now be described with reference to FIG. 134.

Ainsi cette figure montre qu'un serveur de stockage SdS contenant des Profils est capable de faire à un poste utilisateur PC des suggestions d'achat auprès du serveur d'un fournisseur SFP, ceci par l'intermédiaire d'un serveur tiers ST permettant d'assurer l'anonymat des utilisateurs au niveau des Profils. L'achat effectif d'un bien ou d'un service par l'Utilisateur auprès du serveur SFP, qui correspond à une acceptation de la suggestion, peut être prouvé par le serveur tiers ST auprès du serveur SFP par l'intermédiaire du serveur de stockage SdS, tandis que le service rendu par le serveur de stockage SdS et par le serveur tiers ST est dûment rémunéré (commission sur vente) par le serveur du fournisseur SFP (la rémunération $ du serveur tiers ST étant constituée par une fraction de la rémunération $$$ du serveur de stockage. Thus, this figure shows that an SdS storage server containing Profiles is able to make purchase suggestions to a PC user station from the server of an SFP provider via a third-party server ST that allows the user ensure anonymity of users at the Profile level. The actual purchase of a good or service by the User from the SFP server, which corresponds to an acceptance of the suggestion, can be proved by the third party server ST to the SFP server via the server of storage SdS, while the service rendered by the storage server SdS and by the third party server ST is duly remunerated (commission on sale) by the server of the provider SFP (the remuneration $ of the third server ST being constituted by a fraction of the remuneration $$$ of the storage server.

Section 6 - Abonnements et fidélisation Selon cet autre aspect de la présente invention, il est intéressant qu'un serveur (par exemple un magazine électronique) propose de nouveaux contenus, sur une base périodique, par exemple bi-hebdomadaire. A l'issue de cette période, les contenus sont archivés comme décrit plus haut, et ne sont donc plus suggérés. De nouveaux contenus sont alors mis en place. On comprend que ceci incite fondamentalement l'utilisateur ou abonné à visiter le serveur au moins une fois dans la période de validité des contenus ajoutés (en l'espèce deux fois par semaine), ceci de façon à bénéficier de toutes les suggestions d'ajouts. Section 6 - Subscriptions and Retention According to this other aspect of the present invention, it is interesting that a server (for example an electronic magazine) proposes new content, on a periodic basis, for example bi-weekly. At the end of this period, the contents are archived as described above, and are therefore no longer suggested. New content is then put in place. It is understood that this basically encourages the user or subscriber to visit the server at least once in the period of validity of the added content (in this case twice a week), so as to benefit from all suggestions for additions .

Ainsi, les mécanismes de dérivation/suggestion/acceptation présentés dans ce chapitre et dans le chapitres précédents (voir le mode gelé dans le chapitre précédent) permettent d'exploiter la fibre de collectionneur de l'utilisateur. En effet, l'utilisateur qui collectionne des contenus dans un contenant est fortement incité à ne pas Thus, the derivation / suggestion / acceptance mechanisms presented in this chapter and in the previous chapters (see the frozen mode in the previous chapter) make it possible to exploit the collector fiber of the user. Indeed, the user who collects contents in a container is strongly urged not to

<Desc/Clms Page number 171><Desc / Clms Page number 171>

manquer une opportunité d'enrichir sa collection pendant qu'un contenu est encore disponible en ligne. Il veut ainsi retourner visiter le site Internet à la même fréquence que la mise à jour des contenus. L'utilisateur se trouve ainsi fidélisé.  miss an opportunity to enrich his collection while content is still available online. He wants to return to visit the website at the same frequency as updating the content. The user is thus loyal.

* * * Chapitre IV - Modèle d'exécution déterministe (Figures 135 à 169) On va dans ce chapitre introduire un modèle d'exécution qui sera utilisé notamment dans le cadre du partage d'aplications sur l'Internet que nous présenterons dans le chapitre VI.  * * * Chapter IV - Deterministic Execution Model (Figures 135 to 169) In this chapter, we will introduce an implementation model that will be used in particular in the context of the sharing of applications on the Internet that we will present in the chapter. VI.

On dit d'un système qu'il est déterministe si, pour une même séquence d'impulsions passée en entrée, ses objets effectuent toujours les mêmes transitions (au sens de leur diagramme d'état-transition). It is said of a system that it is deterministic if, for the same sequence of pulses passed in, its objects always carry out the same transitions (in the sense of their state-transition diagram).

Rehercher le déterminisme est le fruit d'une double motivation, permettant d'assurer les propriétés suivantes : # Pouvoir reproduire de façon identique une même exécution : un utilisateur s'attend à ce que l'application qu'il utilise soit reproductible, c'est-à-dire ait toujours le même comportement. Searching for determinism is the result of a double motivation, to ensure the following properties: # Being able to reproduce exactly the same execution: a user expects the application he uses to be reproducible; that is to say, always has the same behavior.

# Pouvoir reproduire de façon identique une exécution entre plusieurs machines à l'aide d'un mécanisme de réplication par calcul. Ce point sera détaillé dans le chapitre 3 : Interactions multi-utilisateurs .  # Can duplicate an execution between multiple machines using a compute replication mechanism. This point will be detailed in Chapter 3: Multi-User Interactions.

Assurer le déterminisme n'est cependant pas évident pour une application constituée de plusieurs objets actifs en même temps. On a alors des objets qui évoluent en parallèle, dans ce qu'on appelle un modèle multi-threading selon la terminologie anglo-saxonne. Cette approche, bien que présentant certains avantages, crée du nondéterminisme. En effet, d'une exécution à l'autre, l'occupation du système peut varier, et les tâches effectuées par les objets peuvent prendre plus ou moins de temps. Ensuring determinism, however, is not obvious for an application consisting of several active objects at the same time. We then have objects that evolve in parallel, in what is called a multi-threading model according to the English terminology. This approach, while having some advantages, creates nondeterminism. In fact, from one execution to the next, the occupation of the system can vary, and the tasks performed by the objects can take more or less time.

<Desc/Clms Page number 172><Desc / Clms Page number 172>

Une telle approche, où chaque objet évolue selon un déroulement ( thread selon la terminologie anglosaxonne) indépendant, ne peut donc pas répondre à la contrainte de déterminisme visée. La solution selon la présente invention s'appuie sur l'arbitrage des actions effectuées par les objets. Pour ce faire, les applications se voient dotées d'un objet particulier, constituant un Séquenceur.  Such an approach, where each object evolves according to an independent flow (thread according to English terminology), can not therefore respond to the deterministic constraint aimed at. The solution according to the present invention is based on the arbitration of the actions performed by the objects. To do this, the applications are provided with a particular object, constituting a Sequencer.

La fonctionnalité première du Séquenceur est de réussir à garantir le déterminisme tout en donnant un effet de parallélisme, nous parlerons de quasi-parallélisme. En effet, le Séquenceur permet de donner à chacun des objets à tour de rôle une partie des ressources correspondant à l'envoi d'un message (donc la réalisation d'une action). The primary function of the Sequencer is to guarantee determinism while giving a parallelism effect, we will talk about quasi-parallelism. Indeed, the sequencer makes it possible to give to each of the objects in turn a part of the resources corresponding to the sending of a message (thus the realization of an action).

Cet objectif est schématisé sur la figure 135 des dessins, où l'on observe que des actions indépendantes de quatre objets A, B, C et D sont organisées dans un ordre déterminé, selon un processus de déroulement unique, allouant tour à tour des ressources à chacun de ces objets. This objective is shown diagrammatically in FIG. 135 of the drawings, in which it is observed that independent actions of four objects A, B, C and D are organized in a determined order, according to a single flow process, allocating in turn resources to each of these objects.

Section 1 - Cadre Nous nous référerons à la notion d'objet du jargon courant de l'informatique orientée-objet - conformément, par exemple, à l'ouvrage The Unified Modeling Language (UML) Reference Manual , Rumbaugh, Booch et Jacobson, Addisson Wesley 1999. Section 1 - Framework We will refer to the object-oriented concept of object-oriented computing - in accordance with, for example, The Unified Modeling Language (UML) Reference Manual, Rumbaugh, Booch and Jacobson, Addison Wesley 1999

Les applications que nous manipulons ici sont composées d'objets qui interagissent. The applications we manipulate here are composed of interacting objects.

Ces objets, et leurs relations, peuvent être définis à l'aide d'un diagramme de classe UML, dont un exemple est donné à la figure 136. These objects, and their relationships, can be defined using a UML class diagram, an example of which is given in Figure 136.

On rappellera ici que la notion de Multiplicité (par exemple le chiffre 3 associé à l'objet D indique le nombre d'objets de la classe qui peuvent être créés en cours It will be recalled here that the notion of Multiplicity (for example the number 3 associated with the object D indicates the number of objects of the class that can be created in progress.

<Desc/Clms Page number 173><Desc / Clms Page number 173>

d'exécution, et que la notion de Rôle (par exemple theC dans le lien entre B et D) indique le nom sous lequel un objet connaît un autre objet ; ici l'objet de la classe B connaît l'objet de la classe C sous le nom theC. C'est grâce au nom theC, que l'objet de B peut communiquer avec l'objet de C.  of execution, and that the notion of Role (for example theC in the link between B and D) indicates the name under which an object knows another object; here the object of class B knows the object of class C under the name theC. It is thanks to the name theC, that the object of B can communicate with the object of C.

A chaque objet défini (via sa classe) dans un diagramme de classe, on peut associer un comportement au moyen d'un diagramme d'état-transition. Un tel diagramme décrit le comportement des objets d'une classe donnée sous la forme d'une machine à état. For each object defined (via its class) in a class diagram, one can associate a behavior by means of a state-transition diagram. Such a diagram describes the behavior of objects of a given class in the form of a state machine.

Ainsi, à un instant donné, un objet est dans un état précis. Les objets changent d'état selon des transitions qui peuvent (ou non) être provoquées par des événements. Thus, at a given moment, an object is in a precise state. Objects change state according to transitions that may (or may not) be caused by events.

Pour prendre un exemple très simplifié, on peut modéliser un interrupteur ( Switch ) et une lampe ( Lamp ), comme illustré sur la figure 137 des dessins. To take a very simplified example, we can model a switch and a lamp, as shown in figure 137 of the drawings.

Selon le modèle illustré sur la figure 138, un objet Switch, qui se trouve dans son état initial Idle , peut recevoir un événement TurnSwitch qui déclenche une transition de l'état Idle vers le même état, lors de laquelle un message TurnLamp est envoyée à l'objet myLamp (de classe Lamp ). Ce message TurnLamp devient, pour la lampe qui la reçoit, un événement déclenchant une transition de Off à On , ou vice-versa, selon l'état dans lequel elle se trouve. According to the model shown in Fig. 138, a switch object, which is in its initial state Idle, can receive a TurnSwitch event that triggers a transition from the Idle state to the same state, in which a TurnLamp message is sent to the myLamp object (of class Lamp). This TurnLamp message becomes, for the lamp that receives it, an event that triggers a transition from Off to On, or vice versa, depending on the state in which it is located.

Le fait de pouvoir envoyer un message TurnLamp à un objet de la classe Lamp implique que cette classe expose la méthode correspondante. L'envoi du message revient en effet à appeler la méthode correspondante. (Noter que les messages peuvent avoir des arguments comme les méthodes). La représentation de la classe Lamp pourvue de la méthode TurnLamp est illustrée sur la figure 139. Being able to send a TurnLamp message to an object of the Lamp class implies that this class exposes the corresponding method. The sending of the message amounts to calling the corresponding method. (Note that messages may have arguments like methods). The representation of the Lamp class with the TurnLamp method is shown in Figure 139.

Notons aussi que, dans la suite de la présente description, nous ne traitons pas les attributs, car nous les assimilons à des objets liés par des relations de compositions Note also that, in the remainder of this description, we do not treat attributes because we equate them with objects linked by relations of compositions.

<Desc/Clms Page number 174><Desc / Clms Page number 174>

(c'est-à-dire des sous-objets), ce qui permet de les inclure dans le cas général du traitement des objets. (Les attributs se distinguent des objets en général, par le fait qu'ils n'ont pas de liens avec d'autres objets ; ceci ne contredit pas la généralisation ici faite). Pour mémoire, la figure 140 illustre l'équivalence entre une classe Classe1 dotée d'un attribut Attributel (de classe Classe2) , et le lien entre les deux classes Classe1 et Classe2 .  (ie sub-objects), which allows them to be included in the general case of object processing. (Attributes are distinguished from objects in general, by the fact that they have no links with other objects, this does not contradict the generalization here made). For the record, Figure 140 illustrates the equivalence between a Class1 class with an attribute Attributel (Class2 class), and the link between the two classes Class1 and Class2.

Enfin, dans la suite de la présente description, nous ne traitons pas les cas d'actions spécifiées sur une transition, car celles-ci peuvent être transformées en une forme équivalente, dans laquelle les actions sont spécifiées dans un état intermédiaire qui a pour seule transition sortante une transition automatique. Pour la classe Switch de l'exemple précédent, une telle équivalence est illustrée sur la figure 141. Finally, in the remainder of the present description, we do not deal with the cases of specified actions on a transition, because these can be transformed into an equivalent form, in which the actions are specified in an intermediate state which has for its sole outgoing transition an automatic transition. For the switch class of the preceding example, such an equivalence is illustrated in FIG.

Dans la suite de la description, nous considérons les diagrammes d'état-transition de la forme illustrée sur la figure 142. Le point noir désigne un Pseudo Etat , qui symbolise l'état initial, c'est à dire l'état où se trouve l'objet juste après sa création. In the remainder of the description, we consider the state-transition diagrams of the form illustrated in FIG. 142. The black dot designates a pseudo-state, which symbolizes the initial state, that is, the state where find the object right after its creation.

Un Evénement (ici événement 1 pour la transition entre EtatO et Etatl) déclenche la transition à laquelle il est associé dès que l'objet le reçoit. Si aucun événement n'est associé à une transition, celle-ci a lieu dès que l'objet a terminé d'exécuter ses actions (elle est alors appelée tansition automatique ). Enfin les Actions (ici par exemple Entry/theC.evt sont les tâches que l'objet peut effectuer dans un état donné. An event (here event 1 for the transition between stateO and statel) triggers the transition to which it is associated as soon as the object receives it. If no event is associated with a transition, this transition takes place as soon as the object has finished performing its actions (it is then called an automatic transition). Finally the Actions (here for example Entry / theC.evt are the tasks that the object can perform in a given state.

Les transitions sont vues comme instantanées alors que les états ont généralement une durée. A chaque état E d'un objet correspond ainsi une partie de son comportement. Cette partie est décrite par un ensemble d'actions effectuées par l'objet dans l'état E. Ces actions permettent de déclencher des transitions d'autres objets, par l'émission de l'événement associé. Dans l'exemple ci-dessus, B déclenche la transition associé à l'événement evt chez C (identifié par le rôle theC ). Transitions are seen as snapshots while states usually have a duration. Each state E of an object thus corresponds to a part of its behavior. This part is described by a set of actions carried out by the object in the state E. These actions make it possible to trigger transitions of other objects, by the emission of the associated event. In the above example, B triggers the transition associated with the event evt at C (identified by the role theC).

Au sein d'un état, les actions peuvent être de deux types : Within a state, actions can be of two types:

<Desc/Clms Page number 175><Desc / Clms Page number 175>

# On Entry :
Ce sont les actions que l'objet effectue en entrant dans un état. Cette séquence d'actions ne peut en aucun cas être interrompue, elle a un caractère atomique.
# On Entry:
These are the actions that the object performs when entering a state. This sequence of actions can not be interrupted in any case, it has an atomic character.

# Activity :
Ce sont les actions effectuées par l'objet une fois qu'il est entré dans son nouvel état (donc une fois la séquence atomique des actions On Entry terminée). Cela constitue un ensemble d'actions, chaque action étant atomique. La réception d'un événement associé à une transition peut par contre interrompre cette partie (entre deux actions atomiques).
# Activity:
These are the actions performed by the object once it has entered its new state (so once the atomic sequence of the On Entry actions is complete). This is a set of actions, each action being atomic. The reception of an event associated with a transition can however interrupt this part (between two atomic actions).

Un état peut n'avoir aucune action On Entry comme il peut en avoir plusieurs, il en est de même pour les actions Activity. A state may have no On Entry action as there may be several, and so are Activity actions.

Un état sera donc représenté de la façon illustrée à titre d'exemple sur la figure 143. A state will therefore be represented as illustrated by way of example in FIG.

Notons que Do spécifie ici les actions de type Activity). Note that Do here specifies actions of type Activity).

On va illustrer les actions Activity d'un état par prolongement de l'exemple de l'interrupteur et de la lampe présenté précédemment, illustré à nouveau sur la figure 144. The action actions of a state will be illustrated by extending the example of the switch and the lamp presented previously, illustrated again in FIG.

*Dans cet exemple, et comme illustré sur la figure 145, la lampe n'a aucune action de type On Entry dans son état On. Dans le cadre de la partie Activity (messages Do/ ) de cet état, la lampe envoie par exemple quatre messages d'incrémentation à un compteur ( Counter ), mais cette activité (composée de ces 4 messages) peut être interrompue en cas de réception de message TumLamp . * In this example, and as shown in Figure 145, the lamp has no On Entry type action in its On state. As part of the Activity part (Do / messages) of this state, the lamp sends for example four increment messages to a counter, but this activity (composed of these 4 messages) can be interrupted in case of reception. TumLamp message.

Plus généralement, lorsqu'il entre dans un nouvel état, un objet effectue ses actions On Entry, puis une fois celles-ci terminées, enchaînent sur les actions Activity (notées Do / ... ). Cependant, du point de vue de l'utilisateur, les objets effectuent les actions en parallèle les uns avec les autres (puisque la série d'actions Activity peut More generally, when it enters a new state, an object performs its On Entry actions, and once they are finished, follow the Activity actions (denoted by Do / ...). However, from the point of view of the user, the objects perform the actions in parallel with each other (since the action series Activity can

<Desc/Clms Page number 176><Desc / Clms Page number 176>

être interrompue). Le but du mécanisme de séquencement est de simuler ce parallélisme en donnant la main aux objets qui effectuent ainsi leurs actions Activity chacun à leur tour.  to be interrupted). The goal of the sequencing mechanism is to simulate this parallelism by giving the hand to the objects which thus perform their Activity actions in turn.

Pour satisfaire à ces exigences, les modèles doivent être aménagés de façons particulières comme nous allons le voir dans la section suivante, ceci de manière transparente pour le modélisateur. To meet these requirements, the models must be arranged in particular ways as we will see in the following section, this in a manner transparent to the modeler.

Section 2 - Aménagement des modèles Mise sous forme canonique des objets Pour simuler le parallélisme, le mécanisme de l'invention consiste à ordonnancer les actions Activity des objets à l'aide d'une entité particulière, à savoir un Séquenceur. Pour parvenir à cet ordonnancement, les états sont transformés en une forme que l'on appelle la forme canonique , comme illustré en détail sur la figure 146, forme canonique dans laquelle ces états sont décomposés de telle sorte qu'à chaque action Activity corresponde un état. Le Séquenceur est alors chargé de piloter les transitions entre les états correspondant à des actions Activity. Section 2 - Arrangement of models Canonicalization of objects To simulate parallelism, the mechanism of the invention consists of scheduling the Activity actions of objects using a particular entity, namely a Sequencer. To achieve this order, the states are transformed into a form called the canonical form, as illustrated in detail in Figure 146, a canonical form in which these states are decomposed so that at each action Activity corresponds to a state. The Sequencer is then responsible for controlling the transitions between the states corresponding to Activity actions.

Cependant, la transformation en forme canonique doit respecter la caractère atomique des actions On Entry. However, transformation into a canonical form must respect the atomic character of On Entry actions.

Au global, la transformation en forme canonique doit donc respecter deux contraintes : # préserver le caractère atomique des actions On Entry : Pour ce faire, les actions
On Entry sont regroupées dans un état Sentry , comme illustré sur la figure
145. Pour que ces actions ne soient pas interrompues, la seule transition sortante de cet état est une transition automatique. Une transition automatique est une transition à laquelle n'est associée aucun événement. Une telle transition n'a donc lieu qu'une fois toutes les actions de l'état Sentry effectuées.
Overall, the transformation into a canonical form must therefore respect two constraints: # preserve the atomic character of On Entry actions: To do this, the actions
On Entry are grouped in a Sentry state, as shown in the figure
145. For these actions to not be interrupted, the only outgoing transition from this state is an automatic transition. An automatic transition is a transition to which no event is associated. Such a transition therefore takes place only once all the actions of the state Sentry have been carried out.

<Desc/Clms Page number 177> <Desc / Clms Page number 177>

Ainsi, lorsque la transition entrante est déclenchée (par un autre objet par exemple), l'objet entre dans l'état Sentry. Dans cet état, l'objet effectue toutes les actions On Entry de l'état S. Quand toutes les actions sont effectuées, et seulement quand elles le sont, l'objet entre dans l'état Sactivity. Comme dans l'exemple, l'objet n'effectuait pas d'actions Activity dans l'état S, il se place dans le sous-état Swait où il attend de recevoir un événement lui permettant de rentrer dans l'état T ou dans l'état U.  Thus, when the incoming transition is triggered (by another object for example), the object enters the state Sentry. In this state, the object performs all On Entry actions of state S. When all actions are performed, and only when they are, the object enters the state Sactivity. As in the example, the object did not perform any Activity actions in the S state, it moves to the Swait subreport where it waits to receive an event allowing it to enter the T state or the U state.

On notera ici que, dans la suite, afin d'apporter plus de clarté à la lecture, nous séparerons les actions Entry dans des sous-états différents.  It will be noted here that, in the following, in order to bring more clarity to the reading, we will separate the Entry actions in different sub-states.

# permettre d'établir un quasi parallélisme dans l'exécution des activités des objets.  # allow to establish a quasi parallelism in the execution of the activities of the objects.

Plutôt que d'avoir un thread par objet, les activités de tous les objets peuvent être traitées dans un seul thread : celui du Séquenceur. Le rôle de ce Séquenceur sera donc de régir le passage d'un sous état d'activité à un autre par l'émission de l'événement next, pour tous les objets.  Rather than having one thread per object, the activities of all objects can be processed in a single thread: that of the Sequencer. The role of this Sequencer will be to govern the transition from one sub state of activity to another by the emission of the event next, for all objects.

La mise sous forme canonique correspondante est illustrée sur la figure 146. The corresponding canonicalization is illustrated in Figure 146.

Comme précédemment, l'objet entre dans l'état Sentry et y effectue toute les actions On Entry prévues dans l'état S. Puis, l'objet entre automatiquement dans l'état Swait. As before, the object goes into the Sentry state and performs all the On Entry actions in the S state. Then, the object automatically enters the Swait state.

Nous sommes ici dans le cas où des actions Activity étaient prévues dans l'état S. We are here in the case where Activity actions were planned in state S.

Chacune de ces actions est traitée dans un état différent. Nous les appellerons des sous états d'activité. La transition d'un sous état d'activité à un autre se fait à la réception de l'événement next. C'est le Séquenceur qui émet cet événement pour simuler le parallélisme entre les objets. Each of these actions is treated in a different state. We will call them sub states of activity. The transition from one sub state of activity to another is done upon receipt of the next event. It is the Sequencer that emits this event to simulate the parallelism between the objects.

A tout moment, l'objet peut recevoir un événement associé à une des transitions sortantes. A ce moment là, l'objet sort de l'état Sactivity (et donc du sous-état d'activité dans lequel il se trouve) pour entrer soit dans T soit dans U. At any time, the object can receive an event associated with one of the outgoing transitions. At this point, the object leaves the state Sactivity (and therefore the sub-state of activity in which it is) to enter either T or U.

Rôle de Swait Role of Swait

<Desc/Clms Page number 178> <Desc / Clms Page number 178>

Les transitions sortantes de l'état S partent, dans la forme canonique, de l'état
Sactivity. En effet, si elles partaient également de Sentry, les actions On
Entry pourraient être interrompue, contre-disant leur caractère atomique.
The outgoing transitions of state S depart, in the canonical form, from the state
Sactivity. Indeed, if they also left Sentry, the shares On
Entry could be interrupted, supposedly their atomic character.

C'est pourquoi une fois les actions On Entry terminées, l'objet passe automatiquement dans le sous-état Swait de Sactivity. Dans cet état, l'objet attend de recevoir le premier next du Séquenceur, mais peut également passer à un autre état si un objet déclenche une des transitions sortantes.  This is why once the On Entry actions are completed, the object automatically enters the Swait sub-state of Sactivity. In this state, the object waits to receive the first next of the Sequencer, but can also move to another state if an object triggers one of the outgoing transitions.

On observera ici que la forme canonique décrite ci-dessus en référence à la figure 146 permet de représenter les diagrammes d'états transitions de Harel (états hiérarchiques et états orthogonaux) ; transformations de ces cas étant évidentes pour l'homme du métier, elles ne seront pas décrites plus avant. It will be observed here that the canonical form described above with reference to FIG. 146 makes it possible to represent the state diagrams of Harel transitions (hierarchical states and orthogonal states); As the transformations of these cases are obvious to those skilled in the art, they will not be described further.

Notion d'historique (trace) Afin de pouvoir suivre ce qui se passe dans le système informatique, on peut disposer d'un historique qui relève toutes les actions effectuées par les objets et leur associe un temps logique. Notion of history (trace) In order to be able to follow what happens in the computer system, one can have a history which records all the actions carried out by the objects and associates to them a logical time.

Avant d'effectuer une action, un objet en informe le séquenceur par un message approprié, et le séquenceur écrit dans la trace les informations suivantes : # Quel objet effectue la transition # Quel était l'état de l'objet avant la transition (on l'appellera état précédent), au moyen d'un identifiant. Before performing an action, an object informs the sequencer by an appropriate message, and the sequencer writes in the trace the following information: # Which object performs the transition # What was the state of the object before the transition ( will call it previous state), by means of an identifier.

# Quelle est la cause de cette transition (soit l'utilisateur user le cas échéant, soit l'objet qui a causé la transition) On notera que les conditions spécifiées sur les transitions (voir UML - Unified Modeling Language, déjà mentionné) ou dans les états, peuvent également être notées dans la trace.  # What is the cause of this transition (either the user user if any, or the object that caused the transition) Note that the conditions specified on the transitions (see UML - Unified Modeling Language, already mentioned) or in states, can also be noted in the trace.

<Desc/Clms Page number 179><Desc / Clms Page number 179>

Cet historique va jouer un rôle dans le procédé de virtualisation décrit dans le chapitre suivant, ainsi que dans le mécanisme de Rollback explicité dans le chapitre VI.  This history will play a role in the virtualization process described in the following chapter, as well as in the Rollback mechanism explained in Chapter VI.

Considérons l'exemple d'un objet 01 illustré sur la figure 147. La mise sous forme canonique va donner le résultat illustré sur la figure 148 ; l'appel à put du Séquenceur, illustrée sur la figure 148, correspond à une écriture dans l'historique avec les éléments que nous avons mentionnés plus haut. Consider the example of an object 01 illustrated in Figure 147. The canonicalization will give the result illustrated in Figure 148; the call to put the Sequencer, illustrated in Figure 148, corresponds to a writing in the history with the elements that we mentioned above.

Supposons maintenant que l'utilisateur crée cet objet 01. Celui-ci va donc entrer dans l'état Sentry, et effectuer son action Entryl. Au passage, la trace va être renseignée de la façon illustrée sur la figure 149. Suppose now that the user creates this object 01. This one will thus enter the state Sentry, and carry out its action Entryl. In passing, the trace will be filled as shown in Figure 149.

Dans l'appel à méthode Put(01, initial, user) , O! désigne l'objet qui effectue la transition, initial désigne l'état précédent de l'objet, tandis que user désigne ici l'objet (en l'espèce une action de l'utilisateur) qui est à l'origine de la transition (que l'on appellera la cause ). 54 désigne ici le temps logique auquel le message est reçu par le séquenceur. In the Put method call (01, initial, user), O! designates the object that makes the transition, initial designates the previous state of the object, while user here designates the object (in this case an action of the user) which is at the origin of the transition ( which will be called the cause). 54 here designates the logical time at which the message is received by the sequencer.

Le curseur d'écriture indique où doit se faire la prochaine entrée dans la trace. The write cursor indicates where the next entry will be in the trace.

Le Séquenceur doit donc être capable de réagir à l'événement put, en écrivant les différentes informations reçues dans l'historique. Le comportement du séquenceur, en ce qui concerne la gestion de l'historique, peut alors être représenté de la façon illustrée sur la figure 150, où H représente Historique. The Sequencer must be able to react to the put event by writing the different information received in the history. The behavior of the sequencer, with respect to the management of the history, can then be represented as illustrated in FIG. 150, where H represents History.

Exclusion mutuelle des premiers cycles - Notion de cycle Lorsqu'un objet déclenche un événement chez un autre (en lui envoyant un message ou par une notification de changement d'état si l'objet y est abonné, etc), il provoque Mutual exclusion of the first cycles - Notion of cycle When an object triggers an event in another (by sending a message to it or by a notification of change of state if the object is subscribed to it, etc), it causes

<Desc/Clms Page number 180><Desc / Clms Page number 180>

un changement d'état de ce dernier. Dans son nouvel état, celui-ci peut lui-même faire changer d'état à un troisième objet, etc... Ceci jusqu'à ce que tous les objets touchés aient terminés leurs actions On Entry (les actions Activity étant du ressort du séquenceur comme nous le verrons par la suite). La main est alors rendue, par retour d'appel de méthode, à l'objet qui a déclenché la première transition : on parle alors de cycle. Par définition, un cycle est donc atomique au sens où il ne peut pas être interrompu.  a change of state of the latter. In its new state, this one can itself make change of state to a third object, etc ... This until all the affected objects have completed their On Entry actions (the Activity actions being the responsibility of the sequencer as we will see later). The hand is then returned, by return of call of method, to the object which triggered the first transition: one speaks then of cycle. By definition, a cycle is therefore atomic in the sense that it can not be interrupted.

Un cycle débute donc quand un objet 0 en amène un autre à effectuer une transition, et se termine quand 0 reprend la main. A cycle begins when an object 0 causes another to make a transition, and ends when 0 takes the hand.

Ainsi la figure 151 illustre un exemple où deux cycles Cycle1 et Cycle2 se succèdent, le retour à partir de l'objet ObjetC se produisant dès la réception de EntryBl car, si ObjetB change bien d'état, il n'a pas d'action à effectuer. Le cycle Cycle2 est similaire, avec parcours des objets ObjetA, ObjetC et ObjetD et retour à partir d'ObjetD qui n'a pas d'action à effectuer. For example, Figure 151 illustrates an example where two cycles Cycle1 and Cycle2 follow each other, the return from the ObjectC occurring as soon as EntryBl is received because, if ObjectB changes state, it has no action to perform. The Cycle2 cycle is similar, with traversing objects ObjectA, ObjectC and ObjectD and return from ObjectD which has no action to perform.

- Notion de premier cycle Lorsqu'on considère l'ensemble des cycles d'une application, on se rend compte qu'il existe des cycles tout particuliers : ceux qui sont initiés par l'utilisateur. On parlera dans ce cas là de premiers cycles. - Concept of the first cycle When one considers all the cycles of an application, one realizes that there exist particular cycles: those which are initiated by the user. In this case, we will speak of first cycles.

Ces premiers cycles sont importants car leur déclenchement dépend de l'utilisateur. These first cycles are important because their trigger depends on the user.

Leur déroulement est de ce fait parallèle et ils peuvent entrer en conflit les uns avec les autres si jamais ils passent par les mêmes objets. Their progress is therefore parallel and they can conflict with each other if they pass through the same objects.

Pour gérer ce genre de problème, c'est-à-dire éviter d'avoir à effectuer des retours arrière (ou Rollback selon la terminologie anglosaxonne), un mécanisme d'exclusion mutuelle de ces premiers cycles est nécessaire. Comme nous allons le voir dans la section suivante, une solution possible est de les mettre en séquence : ils To manage this kind of problem, that is to say to avoid having to perform backtracking (or Rollback in Anglo-Saxon terminology), a mutual exclusion mechanism of these first cycles is necessary. As we will see in the next section, one possible solution is to put them in sequence: they

<Desc/Clms Page number 181><Desc / Clms Page number 181>

sont alors traités les uns à la suite des autres en fonction de l'ordre selon lequel ils ont été déclenchés par l'utilisateur.  are then treated one after the other according to the order in which they were triggered by the user.

- Mécanisme mis en #uvre Dans cette approche, chaque objet qui effectue une transition due à l'utilisateur prévient le Séquenceur à l'aide de l'événement BOFC (BeginOfFirstCycle : début de premier cycle). Une fois le premier cycle terminé (on est revenu au premier objet par retour d'appel de méthode), l'objet prévient le Séquenceur que le premier cycle est terminé à l'aide de l'événement EOFC (EndOfFirstCycle : fin de premier cycle). - Mechanism Implemented In this approach, each object that performs a user-initiated transition prevents the Sequencer using the BOFC event (BeginOfFirstCycle: Beginning of Cycle One). Once the first cycle is complete (we have returned to the first object by method callback), the object prevents the Sequencer that the first cycle is completed using the EOFC event (EndOfFirstCycle: end of first cycle ).

A la réception d'un message BOFC, un compteur de premier cycle FCC (First Cycle Counter), intégré dans le Séquenceur, est incrémenté. Si, après incrémentation, ce compteur vaut 1, alors le Séquenceur dit à l'objet que le premier cycle peut commencer en envoyant le message proceed. Quand le Séquenceur reçoit EOFC, il décrémente son compteur de premier cycle. Upon receipt of a BOFC message, a first cycle counter (FCC), integrated in the Sequencer, is incremented. If, after incrementing, this counter is 1, then the Sequencer tells the object that the first cycle can begin by sending the message proceed. When the Sequencer receives EOFC, it decrements its first cycle counter.

Lorsque le Séquenceur reçoit un BOFC alors qu'un premier cycle est déjà en cours, il attend que le cycle en cours (ainsi que tout ceux qui sont en attente) soit terminé, avant de déclencher le nouveau premier cycle. When the Sequencer receives a BOFC while a first cycle is already in progress, it waits for the current cycle (as well as all those that are waiting) to be completed, before triggering the new first cycle.

Un exemple de mise en #uvre est illustré sur le diagramme de la figure 152. An exemplary implementation is illustrated in the diagram of Figure 152.

Le comportement du Séquenceur relativement aux BOFC et EOFC peut être représenté à l'aide du diagramme d'état-transition illustré quant à lui sur la figure 153. The Sequencer's behavior with respect to the BOFC and EOFC can be represented using the state-transition diagram shown in Figure 153.

Obtention du quasi parallélisme Après avoir effectué leurs actions On Entry, les objets peuvent effectuer leurs actions Activity. Par définition ces actions ont lieu en parallèle. Le but de cette partie est de Obtaining Near Parallelism After performing their On Entry actions, objects can perform their Activity actions. By definition, these actions take place in parallel. The purpose of this part is to

<Desc/Clms Page number 182><Desc / Clms Page number 182>

décrire le mécanisme de quasi parallélisme permettant de simuler le parallélisme des activités dans une approche purement séquentielle.  describe the quasi-parallelism mechanism for simulating the parallelism of activities in a purely sequential approach.

- Extension de l'historique Comme nous l'avons vu, la décomposition en forme canonique dégage des sous-états d'activités. Le passage d'un de ces sous états à un autre se fait par l'événement next. - Extension of the history As we have seen, the decomposition in canonical form releases sub-states of activities. The transition from one of these sub-states to another is done by the event next.

Ceci permet de piloter les différentes actions Activity de tous les objets qui effectuent leur activité. Ce pilotage est assuré par le Séquenceur, chargé d'émettre l'événement next aux objets en ayant fait la demande. This allows you to control the different Activity actions of all the objects that perform their activity. This control is provided by the Sequencer, responsible for issuing the event next to the objects having made the request.

Pour ce faire, un objet va dire au séquenceur qu'il a une activité à effectuer juste avant la dernière action de sa partie On Entry de l'état courant, en l'écrivant dans l'historique. (Au cas où il n'a qu'une seule action On Entry dans l'état courant, l'objet va informer le séquenceur avant d'effectuer l'action). Ceci est effectué via l'écriture dans l'historique à l'aide de put. L'ensemble d'informations stockées dans l'historique à chaque put doit donc être étendu de la façon suivante : en plus des informations déjà présentées, un put doit également contenir un type et un index d'obsolescence. To do this, an object will tell the sequencer that it has an activity to perform just before the last action of its On Entry part of the current state, by writing it in the history. (In case it has only one On Entry action in the current state, the object will inform the sequencer before performing the action). This is done by writing to the history using put. The set of information stored in the history at each put must therefore be extended as follows: in addition to the information already presented, a put must also contain a type and an index of obsolescence.

Le type indique s'il s'agit juste d'une simple écriture dans l'historique (type = trace), ou s'il s'agit d'une demande pour effectuer des activités (type = next). The type indicates whether it is just a simple write in the history (type = trace), or if it is a request to perform activities (type = next).

L'index d'obsolescence (renseigné uniquement dans le cas type = next) permet de détecter si un next reçu est caduque suite à un changement d'état pendant des activités. The obsolescence index (indicated only in the case type = next) makes it possible to detect if a next receipt is invalid following a change of state during activities.

Si nous reprenons notre exemple de mise sous forme canonique de la figure 148, nous obtenons maintenant ce qui est illustré sur la figure 154, et dans le cas où l'objet doit effectuer des actions Activity, ce qui est illustré sur la figure 155. If we return to our example of canonicalization of Figure 148, we now obtain what is illustrated in Figure 154, and in the case where the object must perform Activity actions, which is illustrated in Figure 155.

<Desc/Clms Page number 183><Desc / Clms Page number 183>

Supposons qu'un utilisateur crée cet objet (dans le cas des actions Activity). Les informations figurant dans la trace pour cet objet vont donc être par exemple celles illustrées sur la figure 156.  Suppose a user creates this object (in the case of Activity actions). The information in the trace for this object will therefore be for example those illustrated in Figure 156.

Le diagramme d'état-transition présentant le comportement du Séquenceur pour la gestion de l'historique doit alors être étendu comme illustré sur la figure 157. The state-transition diagram showing the behavior of the Sequencer for the history management must then be extended as illustrated in Figure 157.

- Rôle du Séquenceur Le rôle du Séquenceur est de régir les différentes activités des objets en simulant une exécution en parallèle. - Role of the Sequencer The role of the Sequencer is to govern the different activities of the objects by simulating a parallel execution.

Pour ce faire, le Séquenceur exploite les informations de l'historique en suivant les différentes entrées, et en traitant les put dont type = next. Ceci est matérialisé par un autre curseur, le curseur de traitement, comme illustré sur la figure 158. Ce curseur indique donc, à chaque instant, où en est l'exécution de l'application. To do this, the Sequencer uses the information of the history by following the different entries, and by processing the put of type = next. This is materialized by another cursor, the processing cursor, as shown in Figure 158. This cursor indicates, at each moment, where is the execution of the application.

A chaque fois que le curseur de traitement passe sur un put de type next, le Séquenceur envoie next à l'objet spécifié dans le put. Whenever the processing cursor moves to a next type put, the Sequencer sends next to the specified object in the put.

Le traitement des activités par le Séquenceur peut donc être modélisé par le diagramme d'état-transition illustré sur la figure 159. The processing of the activities by the Sequencer can therefore be modeled by the state-transition diagram illustrated in FIG. 159.

Ainsi le diagramme d'état-transition complet du Séquenceur sera donc tel qu'illustré sur la figure 160. Thus the complete state-transition diagram of the Sequencer will thus be as illustrated in FIG.

<Desc/Clms Page number 184> <Desc / Clms Page number 184>

Exemple Considérons 6 objets A, B, C, D, E, et F. Ces objets ont les diagrammes d'étattransition qui sont illustrés sur la figure 161. Example Consider 6 objects A, B, C, D, E, and F. These objects have the transition state diagrams that are shown in Figure 161.

A, B, et C sont mis sous forme canonique de la façon illustrée sur la figure 162. A, B, and C are in canonical form as illustrated in Figure 162.

Supposons qu'un utilisateur déclenche le msgO de l'objet A. A entre donc dans l'état SI, il en découle un premier cycle, puis le Séquenceur arbitre les différentes activités. Ceci va être présenté dans le diagramme de séquence illustré sur la figure 163. Suppose that a user triggers the msgO of the object A. A enters the state S1, it follows a first cycle, then the Sequencer arbitrates the different activities. This will be presented in the sequence diagram shown in Figure 163.

Au moment où le premier cycle se termine, l'historique porte les informations illustrées sur la figure 164. As the first cycle ends, the history carries the information shown in Figure 164.

Le séquenceur va commencer à traiter les activités à partir de la position du curseur du Séquenceur. Pour chaque put de type next, il va envoyer à l'objet concerné le message next pour que celui-ci puisse continuer son activité. Si on poursuit l'exemple précédent jusqu'à son terme, on obtient le diagramme illustré sur la figure 165. The sequencer will start processing the activities from the Sequencer cursor position. For each put of type next, it will send to the object concerned the message next so that it can continue its activity. If we continue the previous example to its end, we obtain the diagram shown in Figure 165.

Lorsque le traitement du premier put de type next est terminé, le curseur de traitement passe au put dont type = next suivant, comme illustré sur la figure 166, et le traitement correspondant est illustré sur la figure 167. When the processing of the first put of type next is completed, the processing cursor passes to the put whose next type = next, as illustrated in FIG. 166, and the corresponding processing is illustrated in FIG.

Au final, la trace regroupe les informations illustrées sur la figure 168. Finally, the trace groups the information shown in Figure 168.

- Obsolescence des next Les activités d'un objet peuvent être interrompues par un changement d'état. On dira que le Séquenceur envoie un événement next obsolète si l'objet a fait au moins une - Obsolescence of next The activities of an object can be interrupted by a change of state. We'll say that the Sequencer sends an event next obsolete if the object did at least one

<Desc/Clms Page number 185><Desc / Clms Page number 185>

transition depuis qu'il a émis le put de type next correspondant. Ceci peut arriver lorsque les activités propres à un état sont interrompues au sens où nous l'avons vu précédemment.  transition since it issued the corresponding next type put. This can happen when state-specific activities are interrupted as we have seen previously.

Pour éviter ce problème, chaque objet dispose d'un compteur des émissions de put de type next (initialisé à zéro en début d'exécution). A chaque fois qu'un objet émet un put (de type trace ou next), il incrémente auparavant ce compteur et, dans le cas d'un put de type next, passe la valeur du compteur dans l'historique. Accessoirement, chaque objet possède également un drapeau PendingNext permettant de savoir s'il est en attente ou non d'un next. A l'envoi d'un put de type next, ce drapeau passe à 1 (il est remis à 0 à la réception du next). To avoid this problem, each object has a put emission counter of type next (initialized to zero at the beginning of execution). Whenever an object emits a put (of type trace or next), it increments this counter beforehand and, in the case of a put of type next, passes the value of the counter in the history. Incidentally, each object also has a PendingNext flag to know if it is waiting for a next. When sending a put of type next, this flag goes to 1 (it is reset to 0 upon receipt of the next).

Par la suite, quand l'objet reçoit un next et il reçoit également la valeur qu'il avait passé au moment de l'envoi du put de type next. L'objet compare alors cette valeur qu'il reçoit avec la valeur courante de son compteur. Si les deux valeurs sont égales, c'est que le next reçu doit être traité, sinon c'est qu'il est obsolète et est donc ignoré. Subsequently, when the object receives a next and it also receives the value it had spent at the time of sending the next type put. The object then compares this value that it receives with the current value of its counter. If the two values are equal, then the next receipt must be processed, otherwise it is obsolete and is ignored.

Un exemple correspondant est illustré sur la figure 169. A corresponding example is illustrated in Figure 169.

** * Chapitre V - Mécanisme de chargement et déchargement progressifs (Figures 170 à 196) Comme le chapitre IV, ce chapitre contribue au chapitre VI présenté plus loin, et vient compléter les techniques dudit chapitre IV.  ** * Chapter V - Progressive loading and unloading mechanism (Figures 170 to 196) Like Chapter IV, this chapter contributes to Chapter VI presented below, and supplements the techniques of Chapter IV.

On se place ici dans le cadre d'une architecture informatique client/serveur, où un utilisateur exécute une application depuis un poste client léger , dans le sens où les objets de l'application sont instanciés depuis un serveur. En fait, nous distinguons deux types d'objets : les objets transitoires, et les objets permanents. Les objets We are here in the context of a client / server computer architecture, where a user runs an application from a thin client, in the sense that the application objects are instantiated from a server. In fact, we distinguish two types of objects: transient objects, and permanent objects. Objects

<Desc/Clms Page number 186><Desc / Clms Page number 186>

transitoires sont propres à chaque exécution d'un document ; ils ont une durée de vie qui ne peut en aucun cas excéder celle de l'exécution de l'application. L'état et les valeurs caractéristiques des objets permanents sont, au contraire, sauvegardés (sachant que l'on est ici dans un cas où cette sauvegarde est effectuée sur un serveur distant) et survivent d'une exécution à l'autre.  transients are specific to each execution of a document; they have a lifetime that can in no case exceed that of the execution of the application. The state and the characteristic values of the permanent objects are, on the contrary, saved (knowing that we are here in a case where this backup is performed on a remote server) and survive from one execution to another.

De par la structure induite par le diagramme de classe, un certain nombre d'objets existent d'emblée au lancement de l'application : le modèle (au moyen duquel le document a été créé) indique que, dès le début de l'exécution, ces objets existent déjà et sont à disposition les uns des autres (en fonction des associations définies dans le modèle). Le principe de base de ce chapitre est cependant de ne pas créer ces objets dès le début, mais de manière paresseuse (au fur et à mesure de leur besoin), et ceci de manière transparente pour l'utilisateur. Le concepteur n'a en effet pas besoin de prévoir ces aspects lors de la modélisation de l'application à développer ; ils sont automatiquement gérés par le système. L'utilisateur, quant à lui, n'a pas à se soucier des objets qui transitent entre son poste client et le serveur, tout se passe pour lui comme s'il possédait l'ensemble des objets de l'application. Due to the structure induced by the class diagram, a certain number of objects exist immediately at the launch of the application: the model (by which the document was created) indicates that, from the beginning of the execution these objects already exist and are available from each other (according to the associations defined in the model). The basic principle of this chapter, however, is not to create these objects from the beginning, but in a lazy way (as and when they are needed), and this in a way that is transparent to the user. The designer does not need to predict these aspects when modeling the application to be developed; they are automatically managed by the system. The user, meanwhile, does not have to worry about the objects that pass between his client and the server, everything happens for him as if he had all the objects of the application.

Ainsi, certains objets sont en fait absents quand, selon le modèle, ils devraient exister ; on dit qu'ils existent virtuellement. Le comportement de l'application n'en est pas gêné car ces objets sont créés (réalisés) just in time en cas de besoin. Ils sont même réalisés par anticipation ( ahead of time ) afin d'assurer la fluidité de l'exécution. Même en cours d'exécution, selon le modèle de nouveaux objets apparaissent virtuellement et, toujours, ils ne sont réalisés qu'au fur et à mesure de leurs besoins réels. Thus, some objects are in fact absent when, according to the model, they should exist; they say they exist virtually. The behavior of the application is not bothered because these objects are created just in time when needed. They are even done in anticipation (ahead of time) to ensure smooth execution. Even while running, depending on the pattern of new objects appear virtually and still, they are only realized as and when their real needs.

De ce fait, le téléchargement des objets se fait progressivement. Cela permet de conserver des temps de chargement raisonnables dans des conditions de bande passante faible et irrégulière. As a result, downloading objects is done gradually. This makes it possible to maintain reasonable loading times in low and irregular bandwidth conditions.

<Desc/Clms Page number 187> <Desc / Clms Page number 187>

Afin de réduire la consommation de ressources d'ordinateur, les objets qui ne sont pas (ou plus) utilisés peuvent cesser d'être réellement existants (ils peuvent être virtualisés). Ils sont supprimés, de manière transparente, après un certain délai de latence (pour éviter des suppressions/créations intempestives), sachant qu'ils pourront se réaliser à nouveau quand nécessaire. In order to reduce the consumption of computer resources, objects that are not (or no longer) used can cease to be truly existent (they can be virtualized). They are deleted, transparently, after a certain latency period (to avoid deletions / untimely creations), knowing that they can be realized again when necessary.

Section 1 - Structure d'une application Liens La structure d'une application est basée sur le diagramme des classes et exploite les associations entre les classes. En cours d'exécution, la structure repose donc sur les liens entre les objets. Un lien est une instance d'association orientée. Parmi les différentes associations on distingue la composition (relation contenant-contenu) qui implique qu'un objet ne peut être contenu que par un seul objet (l'objet contenant) à un instant donné. Les associations de composition sont notées graphiquement sous la forme de losanges pleins. Par exemple, dans la figure 170, l'objet A contient les objets B, C et D. Section 1 - Structure of an Application Links The structure of an application is based on the class diagram and exploits associations between classes. Running, the structure is based on the links between the objects. A link is an association-oriented instance. Among the different associations we distinguish the composition (container-content relation) which implies that an object can be contained only by a single object (the containing object) at a given instant. The composition associations are graphically noted as solid rhombs. For example, in Figure 170, object A contains objects B, C, and D.

Une application contient donc un ensemble d'objets, dotés de comportement. Ces comportements (ou behaviors) sont définis à l'aide de machines à états telles que nous les avons vues à la section 1 du chapitre IV. An application therefore contains a set of objects with behavior. These behaviors (or behaviors) are defined using state machines as we saw them in section 1 of chapter IV.

Les objets forment une structure arborescente de liens de composition, au sein de laquelle tout objet est nécessairement composant d'un autre objet. Tout objet a donc un chemin qui l'identifie depuis la racine de l'application, l'objet Root, comme illustré sur la figure 171. Objects form a tree structure of composition links, within which any object is necessarily a component of another object. Any object therefore has a path that identifies it from the root of the application, the Root object, as shown in Figure 171.

Les techniques décrites ici peuvent s'appliquer à des structures dynamiques, c'est-àdire dans lesquelles certains objets peuvent être créés et supprimés en cours d'exécution. Nous considérons que ces derniers sont regroupés au sein de ce que The techniques described here can be applied to dynamic structures, that is, in which certain objects can be created and deleted during execution. We consider that these are grouped within what

<Desc/Clms Page number 188><Desc / Clms Page number 188>

nous appelons une collection (les procédés décrits ici pouvant tout aussi bien s'appliquer à n'importe quelle autre structure dynamique). La collection est représentée par un objet Collection qui est statique, et qui figure dans l'arborescence basée sur les liens de composition. Les sous objets de l'objet Collection représentent les éléments de la collection comme le montre la figure 172, et sont repérés par des indices.  we call a collection (the methods described here can equally apply to any other dynamic structure). The collection is represented by a Collection object that is static, and that is in the tree structure based on the composition links. The subobjects of the Collection object represent the elements of the collection as shown in Figure 172, and are indexed.

Bien entendu, les objets peuvent aussi avoir entre eux d'autres liens que les liens de composition qui forment la structure de l'application. Ces liens sont les instanciations des différentes associations existant entre les classes des objets. C'est via ces liens que les objets peuvent communiquer, c'est-à-dire s'envoyer des messages. Of course, the objects can also have links between them other than the composition links that form the structure of the application. These links are the instantiations of the different associations existing between the classes of the objects. It is through these links that the objects can communicate, that is, send messages to each other.

Ces liens peuvent évoluer en cours d'exécution. En effet, une association relie deux classes. Ceci sous-entend que l'instance d'une classe peut communiquer avec n'importe quelle instance de l'autre classe. These links may change while running. Indeed, an association connects two classes. This implies that the instance of one class can communicate with any instance of the other class.

La communication entre un objet quelconque et un élément d'une collection (par exemple entre A et B [2] la figure précédente) se fera par l'intermédiaire de l'objet Collection correspondant, en précisant l'indice de l'élément voulu (ici 2). Communication between any object and an element of a collection (for example between A and B [2] the previous figure) will be done through the corresponding Collection object, specifying the index of the desired element (here 2).

Un lien entre deux objets est défini par un chemin menant de l'un à l'autre, au sein de la structure. A link between two objects is defined by a path leading from one to another, within the structure.

Un lien peut être construit en exploitant uniquement les liens de composition, nous les appellerons liens de base . La figure 173 en montre un exemple. Sur cette figure, le chemin menant de D à C est formé à partir des liens de composition D~B, B~A et A~C. Un tel chemin (définissant un lien de base) est porté par l'objet au sein d'une variable structurée que nous appellerons port . A link can be built using only the composition links, we will call them basic links. Figure 173 shows an example. In this figure, the path leading from D to C is formed from the composition links D ~ B, B ~ A and A ~ C. Such a path (defining a basic link) is carried by the object within a structured variable that we will call port.

<Desc/Clms Page number 189><Desc / Clms Page number 189>

Mais un lien peut également exploiter des liens qui ont eux-mêmes été formés à partir de liens de composition, c'est ce que nous appellerons un lien dérivé . Nous en illustrons un exemple dans la figure 174.  But a link can also exploit links that have themselves been formed from composition links, this is what we will call a derived link. We illustrate an example in Figure 174.

Le chemin menant de D à E peut réutiliser le chemin établi entre D et C dans l'exemple précédent : 0 ~Cet C~E. Il n'est pas nécessaire de passer par B et par A, mais il est possible de déterminer le chemin correspondant qui n'exploite que les liens de composition. Ceci jouera un rôle majeur, comme nous le verrons dans la première partie de la section 2 du chapitre V, en ce qui concerne la réalisation des objets. The path leading from D to E can reuse the path established between D and C in the previous example: 0 ~ This C ~ E. It is not necessary to go through B and A, but it is possible to determine the corresponding path that exploits only the composition links. This will play a major role, as we will see in the first part of section 2 of chapter V, with regard to the realization of objects.

On peut donc définir un lien de façon récursive, comme étant soit : # Un lien de base, c'est-à-dire n'exploitant que des liens de composition # Un lien dérivé, c'est-à-dire exploitant un nombre fini de liens (pouvant être de base et/ou dérivés). We can therefore define a link recursively, as being either: # A basic link, that is to say only exploiting links of composition # A derivative link, that is to say exploiting a number finished links (can be basic and / or derived).

Objets d'affichage Certains des objets d'une application sont des éléments d'affichage, tels qu'un bouton ou une zone de saisie par exemple. Les éléments d'affichage sont regroupés pour former différents écrans de l'interface homme machine d'une application, différentes pages d'un site Internet, ou différents champs de vision dans un environnement de réalité virtuelle en 3D par exemple. Display Objects Some of the objects in an application are display elements, such as a button or an input box, for example. The display elements are grouped to form different screens of the human-machine interface of an application, different pages of an Internet site, or different fields of vision in a virtual reality environment in 3D for example.

Ce regroupement des éléments d'affichage est réalisé à l'aide d'objets, créés spécialement, que nous appelons visuZone. Chaque groupe d'éléments d'affichage est lié à un objet visuZone. Ces groupes ne sont pas forcément disjoints. Ainsi la figure 175 illustre un groupe d'objets d'affichages D, F et H regroupés. This grouping of display elements is done using specially created objects, which we call visuZone. Each group of display elements is linked to a visual object. These groups are not necessarily disjoint. Thus, FIG. 175 illustrates a group of display objects D, F and H grouped together.

Regrouper de cette manière les objets d'affichage a le but suivant : en cours d'exécution, le chargement chez un client d'un objet d'affichage appartenant à une Grouping the display objects in this manner has the following purpose: when running, the loading at a client of a display object belonging to a

<Desc/Clms Page number 190><Desc / Clms Page number 190>

zone de visualisation, provoque le chargement de tous les autres objets d'affichage de la même zone. Selon la profondeur d'anticipation désirée, les objets (d'affichage ou non) reliés aux objets de la zone de visualisation peuvent également être chargés.  viewing area, causes all other display objects in the same area to load. Depending on the depth of anticipation desired, the objects (display or not) connected to the objects of the viewing area can also be loaded.

Un exemple intéressant d'utilisation desobjets visuZone peut être le déplacement d'un cadre sur une carte. Les objets visuZone permettent de gérer des concepts comme le voisinage géographique et le zoom. An interesting example of using visuZone objects can be moving a frame on a map. VisuZone objects can be used to manage concepts such as geographic proximity and zoom.

# Voisinage géographique On se place ici dans un contexte où l'application contient un nombre important de données, réparties de façon géographique sur un plan (par exemple la carte d'une ville). La navigation sur cette carte se fait au moyen d'un cadre de visualisation constitué par la surface de l'écran de l'utilisateur.  # Geographical neighborhood We place ourselves here in a context where the application contains a large number of data, distributed geographically on a map (for example a map of a city). The navigation on this map is done by means of a viewing frame constituted by the surface of the screen of the user.

Le but de l'utilisation des objets visuZone est ici de faire en sorte que seuls les objets du cadre et ceux qui en sont géographiquement proches soient présents. The purpose of using visuZone objects is to make sure that only objects in the frame and those that are geographically close are present.

Pour réaliser cet objectif, il faut dans un premier temps morceler la zone en 2D à couvrir, et associer à chaque morceau un objet visuZone (c'est-à-dire relier tous les objets de ce morceau de plan à l'objet visuZone). Ceci est illustré sur la figure 176, où à chaque morceau du rectangle est associé un objet visuZone regroupant les objets, désignés par des points, qui y sont contenus. To achieve this objective, it is first necessary to divide the 2D area to be covered, and to associate each piece with a visual object (that is to say connect all the objects of this piece of plane to the visuZone object) . This is illustrated in Figure 176, where each piece of the rectangle is associated with a visual object grouping the objects, designated by points, contained therein.

Dans un second temps, il faut inclure la notion de proximité entre les zones de visualisation : il s'agit donc de relier les objets visuZone proches les unes des autres. In a second step, it is necessary to include the notion of proximity between the visualization zones: it is thus a question of connecting the visuZone objects close to each other.

On obtient ainsi un réseau maillé d'objets visuZone, comme illustré sur la figure 177, où les objets visuZone sont désignés par des cercles au droit de chaque morceau , et où les liens entre de tels objets sont indiqués par des lignes droites. Thus, a mesh network of visuZone objects is obtained, as illustrated in FIG. 177, where the visuZone objects are designated by circles to the right of each piece, and where the links between such objects are indicated by straight lines.

<Desc/Clms Page number 191><Desc / Clms Page number 191>

Ainsi, le chargement d'un objet visuZone provoque (automatiquement), par anticipation, le chargement des objets d'affichage situés dans les zones voisines.  Thus, loading a visuZone object causes (automatically), in anticipation, the loading of the display objects located in the neighboring zones.

De cette manière, la profondeur d'anticipation et la taille des zones de visualisation sont les paramètres qui permettent de jouer sur la granularité du maillage . In this way, the depth of anticipation and the size of the viewing areas are the parameters that make it possible to play on the granularity of the mesh.

# Zoom avant et arrière Dans le type d'application que nous décrivons dans cet exemple, une fonctionnalité intéressante est également la possibilité d'effectuer des zooms avant et arrière en un point donné de la carte.  # Zoom in and out In the type of application that we describe in this example, an interesting feature is the ability to zoom in and out at a given point on the map.

Cette fonction induit le concept de niveau de détail, donc de hiérarchie au sein des objets visuZone, un exemple d'une telle hiérarchie étant illustré sur la figure 178. This function induces the concept of level of detail, and therefore of hierarchy within visuZone objects, an example of such a hierarchy being illustrated in FIG.

L'objet visuZone supérieur correspond au niveau de détail moins élevé, alors que les objets visuZone situés au-dessous représentent un niveau de détail médian, et que les objets visuZone les plus bas représentent un niveau de détail plus élevé. The top visuZone object is the lower level of detail, while the visuZone objects below represent a median level of detail, and the lower visuZone objects represent a higher level of detail.

Chaque objet visuZone du niveau de détail le plus élevé est relié à tous les objets d'affichage de la zone de visualisation de granularité la plus fine. Each visual object of the highest level of detail is connected to all display objects in the finest granularity viewing area.

L'objet visuZone du niveau de détail le moins élevé (objet supérieur) est relié à certains objets de toutes les parties du plan morcelé. Ceci constitue une vue globale de la carte où seuls les éléments les plus marquant apparaissent. The visuZone object of the lowest level of detail (top object) is connected to certain objects in all parts of the split plane. This is an overall view of the map where only the most striking elements appear.

Les objets visuZone du niveau de détail médian (objets intermédiaires) sont reliés à des objets supplémentaires de leur quart de plan respectif. Ces objets apportent plus de précision sur chaque quart de plan. VisuZone objects in the median detail level (intermediate objects) are linked to additional objects in their respective quarter-plane. These objects bring more precision to each quarter of a shot.

<Desc/Clms Page number 192><Desc / Clms Page number 192>

Enfin les objets visuZone du niveau de détail le plus élevé (objets inférieurs) sont reliés à tous les objets restant dans leur fraction de plan. A ce niveau, tous les objets sont chargés.  Finally, visuZone objects of the highest level of detail (lower objects) are connected to all the objects remaining in their fraction of plane. At this level, all objects are loaded.

De même que pour la question de proximité, les objets visuZone correspondant aux différents niveaux de détail sont reliés entre eux dans un souci d'anticipation. As with the question of proximity, visuZone objects corresponding to the different levels of detail are linked together for the sake of anticipation.

Une approche de zoom sans niveau de détail peut également être envisagée. Dans celle-ci, les objets visuZone inférieurs sont reliés à tous les objets de leur fraction de plan. Les objets visuZone intermédiaires ne sont reliés qu'aux objets inférieurs, etc... A zoom approach without level of detail can also be considered. In this one, the lower visuZone objects are connected to all the objects of their fraction of plane. Intermediate visuZone objects are only connected to lower objects, etc.

Section 2 - Modalités de Réalisation et de Virtualisation des objets Lors du lancement de l'application, seule la racine du document (objet Root) est réalisée. Elle constitue la racine de toute l'arborescence des objets présents dans le document. A partir de là, les autres objets sont réalisés au fur et à mesure, sur demande de la part d'un autre objet, ou par anticipation. Section 2 - Methods of Realization and Virtualization of Objects When launching the application, only the root of the document (Root object) is performed. It is the root of the entire tree of objects in the document. From there, the other objects are made as and when requested by another object, or by anticipation.

Ainsi, lorsqu'un objet doit envoyer un message à un autre objet non présent, la réalisation de ce dernier est effectuée au cours du processus d'envoi de message. Thus, when an object must send a message to another object not present, the realization of the latter is performed during the process of sending message.

Ce processus est intercepté par une couche spéciale du système qui fait que les différents mécanismes mis en jeu dans ce chapitre (réalisation, virtualisation, anticipation) soient gérés de façon transparente pour le concepteur et l'utilisateur. This process is intercepted by a special layer of the system that makes the various mechanisms involved in this chapter (realization, virtualization, anticipation) are managed transparently for the designer and the user.

Dans toute application orientée objet, pour qu'un objet puisse envoyer un message à un autre objet, il faut qu'il existe entre eux un lien, au sens où nous l'avons défini précédemment. Ce lien est créé à partir du moment où l'objet émetteur connaît le chemin qui mène à l'objet destinataire au sein de la structure. Un tel lien n'a pas de caractère figé, il peut être modifé en cours d'exécution, en en modifiant le chemin. In any object-oriented application, for an object to be able to send a message to another object, there must be a link between them, as defined previously. This link is created from the moment the sending object knows the path to the recipient object within the structure. Such a link has no fixed character, it can be modified during execution, by modifying the path.

<Desc/Clms Page number 193><Desc / Clms Page number 193>

Le rôle du chemin est de permettre, en parcourant la structure, de récupérer la référence de l'objet destinataire pour le contacter. L'obtention de cette référence est le but d'un mécanisme que nous appellerons procédé de connexion (défini ci-après) qui fait partie intégrante du processus d'envoi de message. Cette référence, une fois obtenue, est stockée par l'objet au sein de la variable structurée port qui contient déjà le chemin.  The role of the path is to allow, by traversing the structure, to retrieve the reference of the recipient object to contact it. Obtaining this reference is the purpose of a mechanism that we will call a connection method (defined below) that is an integral part of the message sending process. This reference, once obtained, is stored by the object within the structured variable port that already contains the path.

Ce procédé ne peut fonctionner que pour des chemins formés de liens de composition uniquement. En effet, ce n'est qu'en suivant les liens de composition que l'on peut créer les instances des objets (un objet ne peut être réalisé que par son parent). This method can only work for paths consisting of composition links only. Indeed, it is only by following the links of composition that one can create the instances of the objects (an object can be realized only by its parent).

Atteindre un objet en suivant un chemin implique de pouvoir réaliser les objets de ce chemin qui ne sont que virtuellement présents, d'où la nécessité qu'un tel chemin repose sur les liens de composition. To reach an object following a path implies to be able to realize the objects of this path that are only virtually present, hence the need that such a path rests on the links of composition.

Pour cela, il est possible de ramener un lien quelconque au lien de base correspondant, c'est-à-dire à l'ensemble minimal de liens de composition qui le constituent. For this, it is possible to return any link to the corresponding base link, that is to say to the minimum set of constituent links that constitute it.

Les deux cas possibles de transformation sont présentés sur la figure 179: dans les deux cas illustrés, la composition des liens de Oo à On, et de On à Om, peut se ramener au lien de base formé des liens de composition O0~O1, O1~Oj, et OJ~Om. The two possible cases of transformation are presented in FIG. 179: in the two illustrated cases, the composition of the links from Oo to On, and from On to Om, can be reduced to the basic link formed by the composition links O0 ~ O1, O1 ~ Oj, and OJ ~ Om.

Procédé de connexion (réalisation) Supposons qu'un objet Oo veuille se connecter à un objet ON. Afin d'accéder à ON, Oo dispose d'un chemin path qui exploite la structure arborescente. Une valeur de ce chemin peut être stockée dans le port, mais cette valeur peut également être modifiée de façon programmatique en cours d'exécution, sachant qu'un port (lien de base) ne peut contenir que des liens de composition. Connection method (realization) Suppose an object Oo wants to connect to an ON object. In order to access ON, Oo has a path path that exploits the tree structure. A value of this path can be stored in the port, but this value can also be changed programmatically during execution, knowing that a port (base link) can only contain composition links.

<Desc/Clms Page number 194><Desc / Clms Page number 194>

Pour représenter un lien de base, un port comprend une valeur entière index positive et une suite d'objets (On)n#[1..N]. index indique à quel niveau de la hiérarchie, à partir de l'objet qui se connecte, se situe l'ancêtre commun O1. La suite (On)n#[1,N] regroupe les objets qui mènent de O1 à ON, elle constitue le chemin descendant (vers ON), que nous noterons descendingPath.  To represent a basic link, a port includes a positive integer index value and an (On) n # [1..N] object sequence. index indicates at which level of the hierarchy, from the object that connects, is the common ancestor O1. The sequence (On) n # [1, N] groups the objects which lead from O1 to ON, it constitutes the descending path (towards ON), which we will note descendingPath.

Chaque On peut désigner soit un objet soit un élément de collection. Dans ce dernier cas, on notera On[p] où On est l'objet collection qui regroupe tous les éléments de collection, et où p représente l'indice de l'élément au sein de la collection. Each one can designate either an object or a collection element. In the latter case, we note On [p] where On is the collection object that groups all the collection elements, and where p represents the index of the element within the collection.

La structure UML correspondante est illustrée sur la figure 180. The corresponding UML structure is illustrated in Figure 180.

La réalisation se faisant de parent à enfant (un objet ne peut être réalisé que par son unique parent au sens de la relation de composition), l'existence de Oo implique que tous les objets, jusqu'à l'ancêtre commun O1, ont été réalisés au moins une fois (même s'ils ont pu être virtualisés depuis). The realization being from parent to child (an object can only be realized by its only parent in the sense of the composition relation), the existence of Oo implies that all objects, up to the common ancestor O1, have have been done at least once (although they may have been virtualized since).

Le procédé de connexion réside en l'appel récursif d'une méthode connect portée par chaque objet. Cette méthode retourne la référence de l'objet auquel on désire se connecter. Elle prend comme argument le chemin (index,descendingPath) menant à l'objet auquel on veut se connecter et l'argument depth qui indique à quelle profondeur vont être effectuées les connexions, comme nous allons le voir dans la section 3 du chapitre V. Ce procédé est lancé en appelant la méthode symbolisée par :
O0.connect(index,descendingPath,depth) Une fois la référence de ON récupérée, Oo envoie sa propre référence que ON stocke dans un attribut inverseRef. En effet, si ON est virtualisé, la référence que possède Oo n'a plus de sens. ON doit donc prévenir Oo qu'il est virtualisé en mettant à Null sa
The connection method resides in the recursive call of a connect method carried by each object. This method returns the reference of the object to which you want to connect. It takes as argument the path (index, descendingPath) leading to the object to which we want to connect and the depth argument which indicates how deep the connections will be made, as we will see in section 3 of chapter V. This process is started by calling the method symbolized by:
O0.connect (index, descendingPath, depth) Once the ON reference is retrieved, Oo sends its own reference that ON stores in a reverseRef attribute. Indeed, if ON is virtualized, the reference that Oo has no longer makes sense. So we have to warn Oo that it is virtualized by putting Null

<Desc/Clms Page number 195><Desc / Clms Page number 195>

référence portée par Oo. Il peut le faire grâce à inverseRef. Oo sait alors qu'il devra se reconnecter à ON pour lui envoyer un message.  reference carried by Oo. He can do it thanks to inverseRef. Oo knows then that he will have to reconnect to ON to send him a message.

Si le parent d'un objet (qui désire se connecter) a été virtualisé, il est réalisé de nouveau au cours du procédé de connexion. Pour ce faire, chaque objet possède la référence de l'objet Root. Lorsqu'un objet détecte que son parent a été virtualisé (la référence de son parent est à Null), il passe à l'objet Root le chemin qui conduit de la racine à son parent. L'objet Root peut alors instancier le parent en s'y connectant avec le chemin qu'il a reçu. Une illustration de ce phénomène est donnée dans l'exemple montré à la figure 181. If the parent of an object (which wants to connect) has been virtualized, it is realized again during the connection process. To do this, each object has the reference of the Root object. When an object detects that its parent has been virtualized (the reference of its parent is null), it passes to the Root object the path that leads from the root to its parent. The Root object can then instantiate the parent by connecting to it with the path it has received. An illustration of this phenomenon is given in the example shown in Figure 181.

Sur cette figure, supposons que A veuille envoyer un message à E en utilisant le lien défini par le chemin (3,myC~myE). A ne peut accéder à son parent D car ce dernier a été virtualisé (en gris sur la figure), A n'a donc plus la référence de D. Pour l'obtenir de nouveau, il lui faut passer par l'objet Root. In this figure, suppose that A wants to send a message to E using the link defined by the path (3, myC ~ myE). A can not access his parent D because it has been virtualized (in gray on the figure), so A no longer has the reference of D. To get it again, he must go through the Root object.

Maintenant en référence à la figure 182, A connaît son propre chemin depuis la racine (myB~myD~myA). Il peut donc inférer celui de son parent D : myB~myD. Ce chemin est passé à l'objet Root qui va alors procéder à l'instanciation des objets manquant jusqu'à D (ici B à l'étape 1 et D à l'étape 2). ). Une fois D instancié, sa référence est passée à A par retour de méthode. Now with reference to Figure 182, A knows its own path from the root (myB ~ myD ~ myA). It can infer that of its parent D: myB ~ myD. This path is passed to the Root object which will then proceed to instantiate objects missing up to D (here B in step 1 and D in step 2). ). Once instantiated D, its reference is passed to A by return of method.

Le procédé de connexion peut alors se résumer comme suit : # Parcours de l'arbre du modèle jusqu'à l'objet visé en passant par un ancêtre commun. The connection process can be summarized as follows: # Route the model tree to the target object through a common ancestor.

# Réalisation au passage des objets ayant été virtualisés, ou n'ayant pas encore été réalisés.  # Achieving the passage of objects that have been virtualized, or have not yet been realized.

# Récupération de la référence de l'objet visé, qui est stockée dans la variable port.  # Retrieving the reference of the target object, which is stored in the port variable.

# Envoi de la référence de l'objet qui se connecte à l'objet visé (inverseRef).  # Send the reference of the object that connects to the target object (inverseRef).

<Desc/Clms Page number 196><Desc / Clms Page number 196>

Prenons pour exemple le cas où, au lancement de l'application, l'objet Root envoie un message à l'objet visuZone qui regroupe les éléments d'affichage qui constituent la page d'accueil de l'application. On a le chemin illustré sur la figure 183, où l'objet Root est blanc, l'objet visuZone est noir et les objets d'affichage sont gris.  For example, when launching the application, the Root object sends a message to the visuZone object that groups the display elements that make up the application's home page. We have the path shown in Figure 183, where the Root object is white, the visuZone object is black, and the display objects are gray.

A la réception de ce message, l'objet visuZone se connecte à ses éléments d'affichage, exactement selon le même procédé décrit ci-dessus. Ceci est détaillé dans la figure 184, et peut se traduire par le diagramme d'état-transition de la figure 185. On receipt of this message, the visuZone object connects to its display elements exactly in the same way as described above. This is detailed in Fig. 184, and may result in the state-transition diagram of Fig. 185.

Cas de liens de composition non immuables Optionnellement, en cours d'exécution, il se peut que des liens de composition soient modifiés. Le fait qu'un objet n'ait qu'un seul parent à un instant donné n'empêche pas d'avoir plusieurs parents à des instants différents. Case of non-immutable composition links Optionally, while running, composition links may be modified. The fact that an object has only one parent at a given time does not prevent several parents from having different moments.

Considérons l'arborescence illustrée sur la figure 186. Consider the tree shown in Figure 186.

Sur cette figure, les traits pleins représentent les liens de composition et les traits pointillés représentent les liens d'associations simples. Afin d'obtenir la référence de J, F dispose d'un chemin (1, G~I~J). La valeur 1 indique qu'il faut remonter d'un cran dans la hiérarchie des ancêtres de F pour trouver l'ancêtre commun à F et 1 (en l'occurrence D). Le chemin G~I~J montre qu'il faut passer par G et 1 pour atteindre J. Si 1 est virtualisé, c'est à G de le réaliser de nouveau, de même entre J et I. In this figure, the solid lines represent the composition links and the dotted lines represent the links of simple associations. In order to obtain the reference of J, F has a path (1, G ~ I ~ J). The value 1 indicates that it is necessary to go back one step in the hierarchy of the ancestors of F to find the ancestor common to F and 1 (in this case D). The path G ~ I ~ J shows that it is necessary to go through G and 1 to reach J. If 1 is virtualized, it is up to G to realize it again, likewise between J and I.

Supposons maintenant que le lien de composition entre G et 1 soit rompu, et remplacé par un lien entre H et I, comme le montre la figure 187. Suppose now that the composition link between G and 1 is broken, and replaced by a link between H and I, as shown in Figure 187.

Si J est virtualisé, F perd la référence qu'il avait préalablement acquise. Et dans le cas où F doit envoyer un autre message à J, il doit déterminer à nouveau cette If J is virtualized, F loses the reference it had previously acquired. And in the case where F has to send another message to J, he has to determine again this

<Desc/Clms Page number 197><Desc / Clms Page number 197>

référence grâce au chemin qu'il porte. Or, le parent de I ayant changé, le chemin en question n'a plus aucun sens.  reference thanks to the path he carries. However, the parent of I having changed, the path in question no longer makes sense.

Pour pallier à ce problème, nous introduisons une indirection. La variable structurée port doit contenir, pour les liens de composition de parent à enfant, non seulement la référence de l'enfant, mais également celle de l'objet lui-même ou du nouveau parent qui le remplace. To overcome this problem, we introduce an indirection. The structured variable port must contain, for parent-child composition links, not only the reference of the child, but also that of the object itself or the new parent that replaces it.

Si on reprend l'exemple de la figure 186, on obtient dans une première étape, comme illustré sur la figure 188, une référence vers le parent (flèche gris clair) et une référence vers le fils (flèche gris foncé). G est le parent de I, et la référence vers parent qu'il porte est une référence vers lui-même. If we take the example of Figure 186, we obtain in a first step, as shown in Figure 188, a reference to the parent (light gray arrow) and a reference to the son (dark gray arrow). G is the parent of I, and the parent reference he carries is a reference to himself.

Et dans la seconde étape où H devient le parent de I, comme illustré sur la figure 189, la référence du parent de I portée par G est maintenant celle de H, tandis que la référence de G sur son ex-enfant I est mise à Null du fait que G n'en est plus le parent. And in the second stage where H becomes the parent of I, as illustrated in Figure 189, the reference of the parent of I carried by G is now that of H, while the reference of G on his ex-child I is set to Null because G is no longer the parent.

La variable port de H prend alors la forme qu'avait celle de G dans l'étape précédente. La référence parent pointe sur H et lui même, et la référence enfant pointe sur I. The port variable of H then takes the form that of G in the previous step. The parent reference points to H and itself, and the child reference points to I.

G porte maintenant la référence de H, mais également le chemin qui mène à H (3,myC~myE~myH). Si H est virtualisé, G peut ainsi le réaliser à nouveau grâce à ce chemin. G now bears the reference of H, but also the path to H (3, myC ~ myE ~ myH). If H is virtualized, G can do it again with this path.

Ainsi, lorsque F veut de nouveau obtenir la référence de I, il peut utiliser le même chemin (1,G-I). Une indirection se fait alors automatiquement en suivant la référence parent de G vers H. So, when F wants to get the reference of I again, he can use the same path (1, G-I). An indirection is then done automatically by following the parent reference from G to H.

<Desc/Clms Page number 198> <Desc / Clms Page number 198>

Virtualisation Le fait qu'un objet peut être virtualisé pour économiser des ressources d'ordinateur, a été introduit en début du présent chapitre.  Virtualization The fact that an object can be virtualized to save computer resources was introduced at the beginning of this chapter.

Comme nous l'avons aussi vu en introduction de ce chapitre, nous disposons d'objets transitoires (propre au poste client et qui ne survivent pas à l'exécution de l'application) et des objets permanents (sauvegardés sur un serveur). Un objet permanent peut être librement virtualisé sur le client (quand il n'est pas utilisé), puisque son état courant peut toujours être récupéré à partir du serveur. Par contre, un objet transitoire ne peut être virtualisé que quand il est dans son état initial. En effet, de par sa nature, son état n'est présent qu'en mémoire sur le poste client de l'utilisateur, et n'est sauvegardé nulle part. Il ne peut donc être réalisé qu'à son état initial. De fait, si un objet transitoire était virtualisé dans un autre état que son état initial, nous perdrions de l'information. As we have also seen in the introduction of this chapter, we have transitory objects (specific to the client workstation and which do not survive the execution of the application) and permanent objects (saved on a server). A permanent object can be freely virtualized on the client (when it is not in use), since its current state can still be retrieved from the server. On the other hand, a transient object can only be virtualized when it is in its initial state. Indeed, by its nature, its state is present only in memory on the client's computer, and is not saved anywhere. It can only be realized in its initial state. In fact, if a transient object was virtualized in a state other than its initial state, we would lose information.

La virtualisation est déclenchée par les objets visuZone : lorsque des objets d'affichage disparaissent de l'écran (par exemple parce que l'utilisateur a changé de page), un temporisateur unique est déclenché. Si aucun élément d'affichage relié à l'objet visuZone n'est réaffiché avant l'expiration de la temporisation, tous les éléments sont virtualisés. Virtualization is triggered by visuZone objects: when display objects disappear from the screen (for example, because the user has changed pages), a single timer is triggered. If no display element attached to the visuZone object is redisplayed before the timer expires, all elements are virtualized.

La virtualisation de ces éléments peut provoquer celles des objets qui y sont connectés (liés), ainsi que des objets qui sont connectés à ces derniers, et ainsi de suite. En effet, à l'aide de Séquenceur et de l'historique, il est possible de retrouver quels sont les objets qui manipulent les objets d'affichage en suivant les relations de cause à effet (dans le sens des effets aux causes). Virtualizing these elements can cause those objects connected to it (linked), objects connected to them, and so on. Indeed, using Sequencer and history, it is possible to find which objects manipulate the display objects by following the cause-and-effect relationships (in the sense of effects to causes).

Supposons maintenant, dans l'exemple illustré sur la figure 190, que F soit un objet d'affichage pouvant être virtualisé. L'historique nous indique qu'à l'instant logique t+7, E était à l'origine d'une transition de F, puis à l'instant t+5, D était à l'origine Suppose now, in the example shown in Figure 190, that F is a display object that can be virtualized. The history tells us that at the logical moment t + 7, E was at the origin of a transition of F, then at time t + 5, D was at the origin

<Desc/Clms Page number 199><Desc / Clms Page number 199>

d'une transition de E, ...et ainsi de suite jusqu'à A dont la transition était initiée par l'utilisateur. A, B, D, et E sont donc candidats à la virtualisation (virtualisables) quand F se virtualise.  a transition from E, ... and so on to A whose transition was initiated by the user. A, B, D, and E are candidates for virtualization (virtualisables) when F becomes virtualized.

Cependant, un objet candidat à virtualisation peut être en train d'interagir avec d'autres objets, et il ne faut alors pas le virtualiser (on notera ici qu'une interaction, proche dans le temps, prévue avec des objets non liés à l'objet visuZone actif courant ou à ses vosins, n'est pas un frein à la virtualisation si ces objets sont répliqués et vivent sur le serveur - voir plus loin chapitre VI). Pour pouvoir détecter ces cas de figure, on dispose de plusieurs techniques : # Comme nous l'avons vu, chaque objet dispose d'un drapeau
PendingNext qui indique si il est en attente d'un next pour poursuivre ses activités. Un objet dans ce cas ne doit bien sûr pas être virtualisé, puisqu'il serait réalisé à nouveau peu de temps après, dès qu'il recevrait le next.
However, a candidate virtualization object may be interacting with other objects, and it should not be virtualized (note here that an interaction, close in time, expected with non-virtual objects). The current active visuZone object or its mesins is not a hindrance to virtualization if these objects are replicated and live on the server - see chapter VI below). To be able to detect these cases, we have several techniques: # As we have seen, each object has a flag
PendingNext that indicates if he is waiting for a next to continue his activities. An object in this case should of course not be virtualized, since it would be realized again soon after, as soon as it receives the next.

# Un objet virtualisable (dans la chaîne de cause à effet qui a aboutit à la transition d'un objet d'affichage) peut être en train d'effectuer d'autres actions. Celles-ci sont alors reportées dans l'historique. Pour chaque objet virtualisable, il suffit de regarder dans l'historique s'il n'existe pas d'autres entrées le concernant (postérieures à celle figurant dans la chaîne de cause à effet).  # A virtualizable object (in the cause-and-effect chain that has resulted in the transition of a display object) may be performing other actions. These are then reported in the history. For each virtualisable object, it is sufficient to look in the history if there are no other entries concerning it (after that in the chain of cause and effect).

# A chaque envoi de message, l'objet relève le temps CPU (temps de l'unité centrale de traitement qui l'exécute) dans un attribut lastActionTime. Lorsqu'un objet est déclaré potentiellement virtualisable (au sens où nous venons de le définir), on regarde de nouveau le temps CPU currentTime.  # At each message send, the object records the CPU time (CPU time that executes it) in a lastActionTime attribute. When an object is declared potentially virtualisable (in the sense we have just defined it), we look again at the CPU time currentTime.

./ Si currentTime - lastActionTime > #, # étant un intervalle de temps prédéterminé, alors l'objet n'a pas interagi depuis longtemps et peut donc être virtualisé.  ./ If currentTime - lastActionTime> #, # being a predetermined time interval, then the object has not interacted for a long time and can therefore be virtualized.

<Desc/Clms Page number 200> <Desc / Clms Page number 200>

Si currentTime - lastActionTime < 8, l'objet n'est pas virtualisé et la propagation s'arrête dans cette direction : le système ne cherche pas à virtualiser les objets qui lui sont connectés.  If currentTime - lastActionTime <8, the object is not virtualized and the propagation stops in that direction: the system does not try to virtualize the objects connected to it.

Des dispositifs complémentaires peuvent également être envisagés : # Un système d'apprentissage qui va inférer les délais entre les différentes actions, ceci permettant d'éviter de virtualiser des objets juste avant qu'ils effectuent une action. Complementary devices can also be considered: # A learning system that will infer the delays between the different actions, this avoiding to virtualize objects just before they perform an action.

# Un mécanisme probabiliste permettant d'associer (de façon manuelle, ou par inférence de la part du système) à chaque objet une probabilité d'être virtualisé.  # A probabilistic mechanism for associating (manually, or by inference on the part of the system) to each object a probability of being virtualized.

Section 3 - Mécanisme de réalisation anticipative Deux grandes approches d'anticipation, non exclusives, peuvent être mises en #uvre : l'approche structurelle et l'approche comportementale. Section 3 - Anticipatory Realization Mechanism Two major, non-exclusive, anticipatory approaches can be implemented: the structural approach and the behavioral approach.

L'approche structurelle, offre l'avantage d'être transparente (ne nécessite pas de spécification supplémentaire). Elle utilise les liens qui ont préalablement été établis entre les objets, en fonction de la structure des associations dans le modèle. Cette approche ne donne donc pas forcément beaucoup de résultats au lancement de l'application, mais est de plus en plus efficace au long de l'exécution. The structural approach offers the advantage of being transparent (does not require any additional specification). It uses the links that were previously established between the objects, depending on the structure of the associations in the model. This approach does not necessarily give much results to the launch of the application, but is more and more effective throughout the execution.

Anticipation comportementale L'approche comportementale consiste à exécuter le modèle de l'application avec un certain nombre de pas d'avance, grâce à des spécifications supplémentaires (des annotations) fournies explicitement dans le modèle. Il s'agit notamment d'ajouter dans le modèle des transitions anticipatives qui représentent les effets des impulsions probables que le système pourrait recevoir de son environnement extérieur.  Behavioral Anticipation The behavioral approach consists in executing the model of the application with a certain number of steps in advance, thanks to additional specifications (annotations) explicitly provided in the model. This includes adding anticipatory transitions to the model that represent the effects of likely impulses that the system could receive from its external environment.

<Desc/Clms Page number 201><Desc / Clms Page number 201>

Lors de l'exécution, les transitions anticipatives ne sont pas prises en compte comme de vraies transitions (autrement dit, une transition anticipative ne change pas l'état courant de l'objet mais change plutôt une -ou plusieurs- variable de travail dans laquelle est simulée l'état futur), elles servent néanmoins, notamment, à réaliser les objets qui seraient à l'état virtuel . (On observera ici que l'anticipation comportementale peut aussi servir au raisonnement temporel, pour l'aide à la décision tactique par exemple).  During execution, anticipatory transitions are not taken into account as true transitions (in other words, an anticipatory transition does not change the current state of the object but rather changes one or more-variable of work in which is simulated the future state), they nonetheless serve, in particular, to achieve the objects that would be in the virtual state. (It will be observed here that behavioral anticipation can also be used for temporal reasoning, for tactical decision support, for example).

Ainsi, dans l'exemple illustré sur la figure 191, un objet Switch peut effectuer une transition de Off à On par le message turnOn. Pour que le système puisse automatiquement anticiper une transition de Off à On, ayant lieu trois secondes après l'entrée dans l'état Off, le modélisateur annote la transition anticipative (en pointillés) avec l'événement déclenchant time-out(3s) (bien entendu, il peut y ajouter des conditions, des actions, etc). Thus, in the example shown in Fig. 191, a Switch object can transition from Off to On by the turnOn message. In order for the system to automatically anticipate a transition from Off to On, taking place three seconds after entering the Off state, the modeller annotates the anticipatory transition (in dotted lines) with the event triggering time-out (3s) ( of course, he can add conditions, actions, etc.).

Le modélisateur déclare que les transitions anticipatives sont anticipées avec un temps d'avance 8 (il peut déclarer ceci globalement pour toute l'application ou sélectivement). La transition prédictive de l'objet Switch se fait ainsi au bout de 3-8 secondes si 8<3, et immédiatement sinon, après l'entrée dans l'état Off. The modeler states that anticipatory transitions are anticipated with a lead time 8 (he can declare this globally for the whole application or selectively). The predictive transition of the Switch object is thus done after 3-8 seconds if 8 <3, and immediately otherwise, after entering the Off state.

Les transitions qui en découlent (les actions dans les états anticipés produisent des événements qui causent d'autres transitions) sont aussi anticipatives. Comme les premières, elles ne se font pas sur le même plan que l'exécution de l'application et servent à amplifier le processus de réalisation. Bien entendu, les états anticipés par le système n'ont aucun effet de bord (notamment sur l'interface homme machine). Ainsi, dans l'exemple précédent, si on suppose que l'objet Switch, dans son état On, déclenche une transition d'un objet Lamp qui serait à l'état virtuel , l'approche comportementale, par anticipation de la transition turnOn, permet de réaliser l'objet Lamp avant que l'utilisateur déclenche (directement ou indirectement) la transition turnOn réelle. The transitions that result (the actions in the anticipated states produce events that cause other transitions) are also anticipatory. Like the former, they are not on the same level as the execution of the application and serve to amplify the process of realization. Of course, the states anticipated by the system have no edge effects (especially on the man-machine interface). Thus, in the preceding example, if we assume that the object Switch, in its On state, triggers a transition of a Lamp object that would be in the virtual state, the behavioral approach, in anticipation of the turnOn transition, allows the Lamp object to be realized before the user triggers (directly or indirectly) the actual turnOn transition.

<Desc/Clms Page number 202><Desc / Clms Page number 202>

Dans la suite, nous décrivons l'approche structurelle, même si nous retiendrons que l'anticipation comportementale en constitue un complément important, puisqu'elle permet d'amplifier les avantages de l'anticipation structurelle (les deux approches ont une relation synergétique).  In the following, we describe the structural approach, although we will retain that behavioral anticipation is an important complement, since it amplifies the benefits of structural anticipation (both approaches have a synergetic relationship).

Anticipation structurelle Comme nous l'avons vu dans la première partie de la section 2 du chapitre V, un argument depth (profondeur) est passé lors des appels à la méthode connect. Cet argument permet d'établir le degré d'anticipation que l'on désire atteindre. En effet, une fois la connexion de Oo à ON terminée, si depth>O, ON établira ses propres connexions (à la profondeur souhaitée), comme le montre le schéma de la figure 192, qui illustre une connexion à la profondeur 3 (depth = 3). Structural Anticipation As we saw in the first part of Section 2 of Chapter V, a depth argument is passed on calls to the connect method. This argument makes it possible to establish the degree of anticipation that one wishes to achieve. Indeed, once the connection from Oo to ON is complete, if depth> O, ON will establish its own connections (at the desired depth), as shown in the diagram in Figure 192, which illustrates a connection to depth 3 (depth = 3).

Considérons maintenant le diagramme de classe illustré sur la figure 193, et supposons que les réalisations se font à la profondeur 1. Alors la connexion de l'objet visuZonel à l'objet B va provoquer non seulement la création de B, mais aussi celle de l'objet D via la connexion de B à D. Consider now the class diagram shown in Figure 193, and assume that the realizations are at depth 1. Then the connection of the visuZonel object to the object B will cause not only the creation of B, but also that of the object D via the connection from B to D.

Ceci est explicité dans le diagramme de séquence de la figure 194. This is explained in the sequence diagram of FIG.

Cas des objets visuZones Dans le cas où l'objet visé serait un élément d'affichage, l'anticipation se fait par l'intermédiaire de l'objet visuZone. Il assure le lien entre l'objet visé (le premier élément d'affichage) et les autres éléments du même groupe. Mais cet intermédiaire doit être transparent et ne doit donc pas intervenir dans le calcul de la profondeur d'anticipation. VisuZone objects case In the case where the target object is a display element, the anticipation is done via the visuZone object. It provides the link between the intended object (the first display element) and the other elements of the same group. But this intermediary must be transparent and must not intervene in the calculation of the depth of anticipation.

<Desc/Clms Page number 203><Desc / Clms Page number 203>

Ainsi, dans la représentation de la figure 195 qui illustre une connexion à la profondeur 2, on observe que la connexion à un objet visuZone ne compte pas dans le calcul de la profondeur d'anticipation.  Thus, in the representation of FIG. 195 which illustrates a connection to the depth 2, it is observed that the connection to a visual object does not count in the calculation of the depth of anticipation.

De plus, comme nous l'avons vu dans l'exemple du voisinage géographique, les objets visuZone peuvent être reliés les uns avec les autres. Ceci ne change en rien le mécanisme d'anticipation, si ce n'est que dans ce cas la connexion entre objets visuZone compte dans le calcul de la profondeur. Moreover, as we saw in the example of the geographical neighborhood, the visuZone objects can be connected to each other. This does not change the anticipation mechanism, except that in this case the connection between visuZone objects counts in the calculation of the depth.

Ainsi la figure 196 montre, toujours dans le cas d'un connexion à la profondeur 2, que la connexion entre deux objets visuZone compte dans le calcul de la profondeur d'anticipation. Thus, FIG. 196 shows, again in the case of a connection at depth 2, that the connection between two visuZone objects counts in the calculation of the depth of anticipation.

* * * Chapitre VI - Partage inter clients (Figures 197 à 238) Introduction On va traiter ici du partage d'une ou plusieurs applications par plusieurs utilisateurs distants. On se place donc dans une architecture informatique client/serveur, où chaque client exécute une application dont certains objets peuvent être partagés par d'autres clients. Le partage pourra notamment être mis en #uvre en conséquence des suggestions/acceptations de contenus décrites dans les chapitres II et III.  * * * Chapter VI - Inter-Client Sharing (Figures 197 to 238) Introduction We will deal here with the sharing of one or more applications by several remote users. So we place ourselves in a client / server computer architecture, where each client runs an application that some objects can be shared by other clients. In particular, the sharing may be implemented as a result of the suggestions / acceptances of content described in Chapters II and III.

Section 1 - Types d'objets Nous avons vu précédemment, dans le cadre du mécanisme de chargement progressif décrit dans le chapitre V, qu'il existe deux types d'objets : les objets transitoires et les objets permanents. Dans le chapitre V, cette dernière catégorie est subdivisée en deux : les objets permanents privés et les objets permanents partagés. Section 1 - Object Types We have seen previously, as part of the progressive loading mechanism described in Chapter V, that there are two types of objects: transient objects and permanent objects. In Chapter V, this last category is subdivided into two: private permanent objects and shared permanent objects.

<Desc/Clms Page number 204> <Desc / Clms Page number 204>

Un objet permanent partagé peut être utilisé conjointement par tous les clients. Chaque utilisateur partage avec les autres les valeurs caractéristiques de l'objet (état, rôles, etc...). Lorsqu'un utilisateur modifie l'état d'un tel objet, cela est ressenti chez tous les clients qui ont réalisé (au sens du mécanisme de chargement progressif) cet objet. A shared permanent object can be used jointly by all clients. Each user shares with others the characteristic values of the object (state, roles, etc.). When a user modifies the state of such an object, this is felt by all the customers who have realized (in the sense of the progressive loading mechanism) this object.

Les objets permanents privés sont, comme leur nom l'indique, propres à chaque client. Les clients utilisent certes les mêmes objets au sens où ils utilisent la même application, mais les objets permanents privés sont décorrélés entre eux d'un client à l'autre. Private permanent objects are, as their name indicates, specific to each client. Customers use the same objects in the sense that they use the same application, but the private permanent objects are decorrelated between them from one client to another.

La gestion du partage d'une ou plusieurs applications entre plusieurs clients revient donc à gérer les objets permanents partagés, de telle façon que la modification d'un tel objet par un utilisateur soit reportée chez tous les clients concernés, c'est à dire ceux chez qui cet objet existe réellement. The management of the sharing of one or more applications between several clients therefore amounts to managing the shared permanent objects, in such a way that the modification of such an object by a user is carried forward to all the customers concerned, ie those where this object really exists.

Section 2 - Architecture Plusieurs approches peuvent être suivies pour gérer le partage inter-clients. La première repose sur une réplication par valeurs des données partagées. En référence à la figure 197, la réplication entre les différents clients PC peut alors être gérée au moyen d'un Système de Gestion de Bases de Données sur un ou plusieurs serveurs communs PS. Un tel système assure la permanence des informations partagées et s'occupe des accès concurrents aux données. Section 2 - Architecture Several approaches can be followed to manage the inter-client sharing. The first is based on shared replication of shared data. With reference to Fig. 197, replication between the different PC clients can then be managed by means of a Database Management System on one or more PS common servers. Such a system ensures the permanence of shared information and deals with concurrent access to data.

Dans un tel contexte, la gestion du déterminisme n'est pas nécessaire. En effet, le comportement des objets (les actions qu'ils effectuent) a lieu chez les différents clients et en aucun cas sur serveur. Ce dernier ne conservant que les différentes valeurs (état...) des objets partagés, il n'a pas besoin de reproduire le comportement des objets. A chaque modification d'un objet partagé 0 chez un client, les valeurs de In such a context, the management of determinism is not necessary. Indeed, the behavior of the objects (the actions they perform) takes place at the different clients and in no case on the server. The latter retains only the different values (state ...) of the shared objects, it does not need to reproduce the behavior of the objects. With each modification of a shared object 0 at a customer, the values of

<Desc/Clms Page number 205><Desc / Clms Page number 205>

O sont mises à jour dans la structure de données, et reproduites chez les clients qui utilisent également O.  O are updated in the data structure, and replicated to customers who also use O.

Si cette approche présente l'indéniable avantage de la simplicité, elle ne permet cependant pas la persistance des traitements. A partir du moment où aucun client ne travaille, les objets de l'application sont inertes puisqu'ils n'ont aucune vie sur le serveur. La persistance des traitements est surtout utile dans le cas d'applications de simulation où l'on ne voufrait pas nécessairement laisser le poste client allumé pour permettre la poursuite de la simulation. While this approach has the undeniable advantage of simplicity, it does not allow the persistence of treatments. From the moment when no client works, the objects of the application are inert since they have no life on the server. The persistence of the treatments is especially useful in the case of simulation applications where we do not necessarily want to leave the client station on to allow the continuation of the simulation.

Permettre cette persistance de traitement fait l'objet de la deuxième approche que nous allons détailler dans ce chapitre. Elle implique que les applications utilisées conjointement par les clients s'exécutent également sur le serveur. Ceci permet, comme nous allons le voir dans le chapitre suivant, un mécanisme de réplication par calcul. Ce mécanisme requiert par contre d'assurer un haut degré de déterminisme du comportement des objets partagés et d'avoir à disposition un mécanisme de rollback pour rattraper le non-déterminisme entre client et serveur (exécution optimiste sur le serveur, voir section 5 du chapitre VI). Les applications sur le serveur disposent également d'un Séquenceur régulant les objets partagés. To allow this persistence of treatment is the subject of the second approach which we will detail in this chapter. It implies that the applications used jointly by the clients also run on the server. This allows, as we will see in the next chapter, a replication mechanism by calculation. On the other hand, this mechanism requires a high degree of determinism of the behavior of the shared objects and to have a rollback mechanism at its disposal to make up for the non-determinism between client and server (optimistic execution on the server, see section 5 of the chapter). VI). Applications on the server also have a Sequencer that regulates shared objects.

Section 3 - Mécanisme de réplication Comme nous l'avons vu, des utilisateurs d'une application peuvent partager certaines instances d'objets permanents partagés. Les utilisateurs peuvent interagir avec ces objets, mais chacun à leur tour grâce à un mécanisme d'exclusion mutuelle explicité plus loin. Quand un utilisateur modifie un objet, étant donné que la même instance peut être partagée avec certains autres utilisateurs, ces derniers doivent être notifiés de cette modification. Ainsi la figure 198 illustre le cas où deux utilisateurs Userl et User2 manipulent différents objets (objets noirs pour Userl, objets blancs pour User2). Section 3 - Replication Mechanism As we have seen, users of an application can share some instances of shared permanent objects. Users can interact with these objects, but each in turn through a mutual exclusion mechanism explained later. When a user modifies an object, since the same instance can be shared with certain other users, they must be notified of this change. Thus figure 198 illustrates the case where two users User1 and User2 handle different objects (black objects for Userl, white objects for User2).

<Desc/Clms Page number 206> <Desc / Clms Page number 206>

Cependant, du fait du mécanisme de chargement progressif, des utilisateurs qui partagent des mêmes instances n'ont pas forcément tous réellement ces instances sur leur poste. Ainsi, quand un objet partagé est modifié, il n'est pas nécessaire de répliquer cette modification chez tous les clients qui partagent cette instance, mais uniquement chez ceux pour qui l'objet en question est réél (a été réalisé, et depuis n'a pas été virtualisé). However, because of the progressive loading mechanism, users who share the same instances do not necessarily all actually have these instances on their workstation. Thus, when a shared object is changed, it is not necessary to replicate this change to all clients that share this instance, but only to those for whom the object in question is real (has been realized, and since then has not been virtualized).

Toute modification d'un objet permanent partagé due à un message provenant d'un objet transitoire ou d'un objet permanent privé est aussi effectuée sur un serveur, par la réplication de la transition qui en est à l'origine (les actions effectuées par l'objet permanent partagé sont donc exécutées à la fois chez le client qui a verrouillé cet objet, et sur le serveur). Ces modifications sont ensuite reportées du serveur chez chacun des clients qui possède réellement cet objet. Ceci constitue le premier aspect de ce mécanisme de réplication : la réplication par valeur . Any modification of a shared permanent object due to a message from a transient object or a private permanent object is also performed on a server, by the replication of the transition which is at the origin (actions performed by the shared permanent object are thus executed both at the client who has locked this object, and on the server). These changes are then reported from the server at each of the customers who actually owns this object. This is the first aspect of this replication mechanism: value replication.

Si une des actions de l'objet permanent partagé provoque une transition d'un autre objet permanent partagé, celle-ci n'est pas répliquée du client (qui a le verrou) sur le serveur. Elle est directement calculée par le serveur. Bien sûr, la modification de ce second objet permanent partagé est aussi reportée chez chacun des clients qui le possède réellement. Ceci constitue le deuxième aspect de ce mécanisme de réplication : la réplication par calcul . If one of the actions of the shared permanent object causes a transition of another shared permanent object, that shared object is not replicated from the client (which has the lock) on the server. It is directly calculated by the server. Of course, the modification of this second shared permanent object is also postponed for each of the customers who actually owns it. This is the second aspect of this replication mechanism: computational replication.

Un tel type de réplication n'est possible que si l'application partagée s'exécute également sur le serveur, en accord avec le modèle d'exécution spécifié dans le chapitre IV (donc régulé par un Séquenceur). Such a type of replication is possible only if the shared application also runs on the server, in accordance with the execution model specified in chapter IV (thus regulated by a Sequencer).

Ainsi, on dispose au global d'un mécanisme de réplication mixte : # Par valeur : au sens où les transitions d'objets permanents partagés sont reproduites quand elles ont été causées par des objets purement locaux dont le serveur n'a pas la visibilité (transitoires et permanents privés) Thus, we have a global mechanism of mixed replication: # By value: in the sense that the transitions of shared permanent objects are reproduced when they were caused by purely local objects whose server does not have visibility ( transient and permanent private)

<Desc/Clms Page number 207><Desc / Clms Page number 207>

# Par calcul : au sens où les transitions d'objets permanents partagés sont déduites par le serveur quand elles ont été causées par un autre objet permanent partagé (dont le serveur a alors la visibilité).  # By calculation: in the sense that the transitions of shared permanent objects are deduced by the server when they were caused by another shared permanent object (whose server then has visibility).

Ainsi la figure 199 illustre les deux types de réplication entre un client et un serveur de partage, lorsque sont mis en #uvre des objets transitoires, des objets permanents privés et des objets permanents partagés. Thus, FIG. 199 illustrates the two types of replication between a client and a share server, when transient objects, private permanent objects and shared permanent objects are implemented.

Bien sûr, une telle approche n'est pas limitée à l'utilisation d'un seul serveur, comme le montre la figure 200 où il existe deux serveurs de partage Serveur de Partage 1 et Serveur de Partage 2 coopérant l'un avec l'autre. Of course, such an approach is not limited to the use of a single server, as shown in Figure 200 where there are two sharing servers Sharing Server 1 and Sharing Server 2 cooperating with each other. other.

Ce mécanisme de réplication peut être scindé en deux phases distinctes : la réplication sur un serveur d'une transition effectuée par un objet chez un client (qui en a le droit au sens de l'exclusion mutuelle), et la propagation de cette même transition du serveur chez tous les clients qui possèdent réellement (au sens du mécanisme de chargement progressif) l'objet. This replication mechanism can be split into two distinct phases: the replication on a server of a transition made by an object to a client (who has the right to do so in the sense of mutual exclusion), and the propagation of this same transition of the server in all the customers who really own (in the sense of the progressive loading mechanism) the object.

Réplication sur un serveur depuis un poste client Supposons qu'un objet permanent partagé SPO (pour Shared Persistent Object en terminologie anglosaxonne), chez un client C, effectue une transition due à la réception d'un message d'un objet transitoire ou d'un objet permanent privé. Les informations suivantes sont alors envoyées sur le serveur : 1. L'objet partagé qui effectue la transition 2. L'état précédent la transition (que nous appellerons état précédent) 3. L'état courant après la transition (que nous appellerons état courant) 4. Le temps logique correspondant à cette transition chez le client qui en est à l'origine Replication on a server from a client computer Let's suppose that a shared persistent object SPO (for Shared Persistent Object in English terminology), in a client C, makes a transition due to the receipt of a message from a transient object or a private permanent object. The following information is then sent to the server: 1. The shared object making the transition 2. The state preceding the transition (which we will call previous state) 3. The current state after the transition (which we will call current state) ) 4. The logical time corresponding to this transition at the customer who is at the origin

<Desc/Clms Page number 208><Desc / Clms Page number 208>

5. Le temps logique correspondant à la transition précédente chez le client qui en est à l'origine Grâce aux informations 1. et 3., l'application sur le serveur retrouve de quel objet il s'agit et lui fait effectuer sa transition dans l'état spécifié. Les informations 2., 4. et 5. servent quant à elles à divers traitements de récupération d'erreurs explicités plus loin dans la section 5 du chapitre VI.  5. The logical time corresponding to the previous transition at the client who is at the origin With the information 1. and 3., the application on the server finds what object it is and makes it make its transition in the specified state. Information 2., 4. and 5. are used for various error recovery procedures explained later in Section 5 of Chapter VI.

Lorsque l'objet permanent partagé effectue sa transition sur le serveur, il le fait pour un temps logique du Séquenceur de l'application serveur. When the shared permanent object transitions to the server, it does so for a logical Sequencer time of the server application.

Considérons l'exemple où l'on dispose de quatre objets A, B, C et D. A est un objet transitoire, B et C sont des objets permanents partagés et D est un objet permanent privé. Consider the example where we have four objects A, B, C, and D. A is a transient object, B and C are shared permanent objects, and D is a private permanent object.

Un extrait des diagrammes d'état-transition de ces objets est illustré sur la figure 201. An extract of the state-transition diagrams of these objects is shown in Figure 201.

Supposons qu'un client K provoque la transition de l'état SO à SI de l'objet A. On alors le déroulement illustré sur la figure 202 (les objets ont été mis sous forme canonique conformément à la description faite dans le chapitre IV). Suppose that a client K causes the transition from the SO to SI state of object A. Then, the flow illustrated in FIG. 202 (the objects were put in canonical form as described in chapter IV) .

Ceci se traduit au niveau du client K et du serveur de la façon suivante, illustrée sur la figure 203 : - l'objet B (partagé) effectue une transition due à un objet transitoire. This translates at the client K and the server as follows, illustrated in FIG. 203: the object B (shared) makes a transition due to a transient object.

Cette transition est répliquée sur le serveur.  This transition is replicated to the server.

- l'objet C (partagé) effectue une transition due à un objet permanent privé. Cette transition est répliquée sur le serveur.  - the object C (shared) makes a transition due to a private permanent object. This transition is replicated to the server.

- l'objet D est un objet permanent privé, l'application du serveur n'en a pas la visibilité. Le message envoyé par B dans l'état S5B est ignoré.  - the object D is a private permanent object, the application of the server does not have visibility. The message sent by B in state S5B is ignored.

<Desc/Clms Page number 209> <Desc / Clms Page number 209>

- puisqu'une application tourne sur le serveur, les transitions des objets partagés se font directement sur le serveur, indépendamment de celles qui ont lieu chez le client K.  - Since an application runs on the server, the transitions of the shared objects are done directly on the server, independently of those that take place at the client K.

Propagation d'une transition répliquée vers les clients concernés Chaque fois qu'une transition d'un objet permanent partagé a lieu sur le serveur, elle est propagée sur chacun des postes clients qui possède réellement l'objet. Les clients qui ne possèdent un tel objet que virtuellement le récupéreront de toute façon à son état courant (sur le serveur) quand il sera réalisé à nouveau. Propagating a replicated transition to affected clients Whenever a transition from a shared persistent object occurs on the server, it is propagated to each of the client nodes that actually owns the object. Customers who have such an object only virtually will get it back to its current state (on the server) anyway when it is done again.

Ceci peut être matérialisé par le schéma de la figure 205, à considérer en relation avec le schéma de la figure 204qui donne la représentation d'un objet transitoire T et de trois objets permanents partagés P1, P2 et P3. This can be materialized by the diagram of FIG. 205, to be considered in relation to the diagram of FIG. 204 which gives the representation of a transient object T and of three shared permanent objects P1, P2 and P3.

Tout d'abord, l'objet T fait transiter l'objet P1, et ceci est repliqué sur le serveur. First, the object T passes the object P1, and this is replicated to the server.

Le client L possède réellement les objets P1, P2 et P3. Les transitions de chacun de ces objets sont répliquées depuis le serveur. The client L actually has the objects P1, P2 and P3. The transitions of each of these objects are replicated from the server.

Le client M ne possède réellement quant à lui que les objets P2 et P3. Leurs transitions sont répliquées. L'objet P1n'est là que virtuellement, et sa transition n'est pas répliquée. The client M actually only has the P2 and P3 objects. Their transitions are replicated. The object P1 is only there virtually, and its transition is not replicated.

Seul l'objet P3 est présent chez le client N, et sa transition est répliquée. Only the object P3 is present at the client N, and its transition is replicated.

Les transitions qui se situent en aval de l'objet P3 ont lieu indépendamment chez le client K et le serveur. Transitions that are downstream of the P3 object occur independently at the client K and the server.

Réplication dans un cadre multi-serveurs Replication in a multi-server framework

<Desc/Clms Page number 210><Desc / Clms Page number 210>

Il se peut que les objets partagés par des clients soient répartis sur plusieurs serveurs. Le mécanisme de réplication et de propagation présenté dans les chapitres IV et V reste le même pour chaque serveur pris séparément. Chaque serveur exécute l'application et régule les objets qu'il possède au moyen d'un séquenceur.  Objects shared by clients may be distributed across multiple servers. The replication and propagation mechanism presented in Chapters IV and V remains the same for each server separately. Each server executes the application and regulates the objects it owns by means of a sequencer.

De la même manière qu'une transition d'un objet partagé provoquée par un objet privé ou transitoire est répliquée par valeur, la transition d'un objet partagé d'un serveur provoquée par un objet partagé d'un autre serveur est également répliquée par valeur. Si d'autres objets partagés de ce serveur sont concernés par le cycle qui en découle, ils sont bien sûr répliqués par calcul. Le schéma de la figure 206 illustre ce mécanisme, dans lequel - T fait transiter P 1, et ceci est repliqué sur le serveur S 1, et - P2 fait transiter P3, et ceci est traité comme si P2 était transitoire ou privé : la réplication se fait par valeur. In the same way that a transition of a shared object caused by a private or transient object is replicated by value, the transition of a shared object of a server caused by a shared object from another server is also replicated by value. If other shared objects on this server are involved in the resulting cycle, they are of course replicated by calculation. The diagram in Figure 206 illustrates this mechanism, in which - T passes P 1, and this is replicated on the server S 1, and - P2 passes P3, and this is treated as if P2 was transient or private: the replication is by value.

Section 4 - Protocole de communication Dans le cadre de l'exécution d'applications utilisant des objets permanents partagés, un système de communication est requis pour véhiculer des informations du serveur vers plusieurs clients, ainsi que d'un client vers des serveurs. Section 4 - Communication Protocol When running applications that use shared permanent objects, a communication system is required to convey information from the server to multiple clients, as well as from a client to servers.

Pour ce faire, chaque poste client possède un composant qui lui permet de dialoguer avec les différents serveurs. Ces derniers doivent toujours être à l'écoute des éventuelles demandes de connexion pouvant venir des clients. To do this, each client station has a component that allows it to interact with the different servers. They must always be attentive to any connection requests that may come from customers.

A chaque connexion, un composant doit être généré sur le serveur. Il est spécifique au client qui vient de se connecter, se charge d'interpréter les informations en provenance du client, et d'envoyer à celui-ci les informations du serveur. At each connection, a component must be generated on the server. It is specific to the client who has just logged in, interprets the information coming from the client, and sends the server information to it.

# Composant sur les postes clients  # Component on the client computers

<Desc/Clms Page number 211> <Desc / Clms Page number 211>

Le composant réseau du poste client (clientCommunicationManager) offre les fonctionnalités suivantes : Etablir une connexion avec le serveur, c'est à dire initier la création du composant sur le serveur qui lui correspond, et instancier un nouvel objet
GbxClient, propre au client qui se connecte.
The network component of the client station (clientCommunicationManager) offers the following functionalities: Establish a connection with the server, ie initiate the creation of the component on the server that corresponds to it, and instantiate a new object
GbxClient, customer-specific that connects.

Ecouter les informations qui viennent du serveur. Ces informations ne pouvant être que des appels de méthodes. Listen to the information that comes from the server. This information can only be method calls.

Envoyer des informations au serveur, à l'aide d'une méthode du type clientCommunicationManager.send(methodName,argList)
Où methodName est le nom de la méthode à appeler. argList est la liste des arguments de cette méthode.
Send information to the server, using a method of the type clientCommunicationManager.send (methodName, argList)
Where methodName is the name of the method to call. argList is the argument list for this method.

# Composant sur les serveurs
De manière symétrique, le composant réseau du serveur pour un poste client doit permettre : # D'écouter les informations qui viennent du poste client auquel il est relié , ces informations étant du type (methodName,argList) comme nous l'avons vu. methodName doit correspondre à une méthode de l'objet GbxClient du serveur.
# Component on the servers
Symmetrically, the network component of the server for a client station must allow: # To listen to the information coming from the client station to which it is connected, this information being of the type (methodName, argList) as we have seen. methodName must be a method of the server's GbxClient object.

# D'envoyer des informations au client, à l'aide du même type de méthode serverCommunicationManager.send(methodName,argList) Etablissement d'une connexion En référence maintenant à la figure 207, on observe que chaque serveur possède un composant Listener qui écoute les éventuelles demandes de connexion des postes clients. Lorsqu'une de ces demandes arrive, il provoque la création sur le serveur d'un composant réseau (ServerCommunicationManager) qui va dialoguer avec son correspondant sur le poste client (ici Clientl ou Client2). Il est constitué d'un routine qui écoute les différents messages pouvant provenir du poste client distant  # To send information to the client, using the same type of method serverCommunicationManager.send (methodName, argList) Establishing a connection Referring now to Figure 207, we observe that each server has a listening Listener component any connection requests from the client computers. When one of these requests arrives, it causes the creation on the server of a network component (ServerCommunicationManager) which will dialogue with its correspondent on the client station (here Clientl or Client2). It consists of a routine that listens to the different messages that can come from the remote client station

<Desc/Clms Page number 212><Desc / Clms Page number 212>

correspondant, et d'un dispositif (appel de méthode) lui permettant d'envoyer des données à celui-ci.  corresponding, and a device (method call) allowing it to send data to it.

A la connexion d'un client, le composant ServerCommunicationManager appelle la méthode newClient (connexionRef) l'objet Document du serveur. Cette méthode crée une instance de l'objet GbxClient, qui va être le représentant du poste client au sein du serveur. Au moment cette instance est créée, l'objet Document passe une référence sur lui-même à GbxClient. La référence de ce GbxClient va être retournée au composant réseau du serveur qui a commandé son instanciation. When a client is connected, the ServerCommunicationManager component calls the server's Document object the newClient (connectionRef) method. This method creates an instance of the GbxClient object, which will be the representative of the client node within the server. At the time this instance is created, the Document object passes a reference to itself to GbxClient. The reference of this GbxClient will be returned to the network component of the server that ordered its instantiation.

Suite à cela, le composant réseau du serveur renvoie au composant réseau du client qui s'était connecté un accusé de réception lui indiquant que la connexion s'est bien effectuée. Cet accusé de réception sera utilisé pour éviter la commutation automatique vers un système de communication de secours utilisant le protocole http. Following this, the network component of the server returns to the network component of the client that had connected an acknowledgment that the connection was successful. This acknowledgment will be used to avoid automatic switching to a backup communication system using the http protocol.

Le processus de connexion est présenté dans le diagramme de la figure 208. The connection process is shown in the diagram in Figure 208.

Communication entre clients et serveurs En référence maintenant à la figure 209, les seules informations qui peuvent être échangées entre clients et serveurs sont des noms de méthodes, et des arguments pour ces méthodes. Comme nous l'avons vu précédemment, ces informations sont passées à l'aide de la méthode send des composants réseaux. serverCommunicationManager.send(methodName,argList) clientCommunicationManager.send(methodName,argList) Si le destinataire est le serveur, la méthode methodName est appelée chez l'objet GbxClient, et si le destinataire est le poste client, la méthode methodName est appelée chez l'objet Application du poste client. Un procédé de contrôle de cohérence peut être mis en place après la transmission pour vérifier que les arguments figurant dans argList aient un sens. Communication between clients and servers Referring now to Figure 209, the only information that can be exchanged between clients and servers are method names, and arguments for these methods. As we saw earlier, this information is passed using the send method of network components. serverCommunicationManager.send (methodName, argList) clientCommunicationManager.send (methodName, argList) If the recipient is the server, the methodName method is called at the GbxClient object, and if the recipient is the client node, the methodName method is called at l Application object of the client computer. A consistency check method can be put in place after the transmission to verify that arguments in argList have meaning.

<Desc/Clms Page number 213><Desc / Clms Page number 213>

Les diagrammes de séquence des figures 210 et 211 illustrent les deux types de communication, respectivement d'un client vers le serveur, et du serveur vers un client.  The sequence diagrams of FIGS. 210 and 211 illustrate the two types of communication, respectively from a client to the server, and from the server to a client.

Fin d'une connexion Lorsqu'un utilisateur quitte toutes les applications utilisant des objets permanents partagés, la connexion peut être coupée. Pour ce faire, l'objet Document sur le poste client appelle la méthode endOfConnexion (argument) son composant réseau. Ending a connection When a user exits all applications that use shared permanent objects, the connection may be terminated. To do this, the Document object on the client computer calls the endOfConnection (argument) method of its network component.

Ce composant doit alors signaler au composant réseau qui lui correspond sur le serveur qu'il doit supprimer l'instance de GbxClient, et disparaître. Le composant réseau sur le serveur appelle pour cela la méthode killClient(clientRef) de l'objet Application sur le serveur. This component must then signal to the network component that corresponds to it on the server that it must delete the instance of GbxClient, and disappear. The network component on the server calls the killClient (clientRef) method of the Application object on the server.

Ceci peut être représenté par le diagramme de séquence illustré sur la figure 212. This can be represented by the sequence diagram shown in Figure 212.

Gestion des problèmes d'accès sécurisés Dans le cas de restrictions d'accès ( firewalls , terminologie anglo-saxonne pour murs anti-feu) pour des utilisateurs n'ayant pas les pleins pouvoirs sur la gestion de leur domaine, une migration automatique vers un système de secours est envisagée. Management of secure access problems In the case of access restrictions (firewalls, for firewalls) for users who do not have full authority over the management of their domain, an automatic migration to a backup system is envisaged.

Un tel système présente les caractéristiques suivantes : # Commutation automatique
Par défaut, le protocole de transmission utilisé est celui décrit précédemment. Il faut cependant y inclure un système de gestion d'erreurs qui passe automatiquement au système décrit ci-dessous en cas de problème d'émission ou de réception.
Such a system has the following characteristics: # Automatic switching
By default, the transmission protocol used is that described previously. However, it must include an error management system that automatically switches to the system described below in case of problem of transmission or reception.

<Desc/Clms Page number 214> <Desc / Clms Page number 214>

Lors de la demande de connexion, le composant réseau du client qui se connecte démarre le décompte d'une temporisation. Si cette temporisation arrive à expiration avant que le composant réseau client ait reçu l'accusé de réception, le protocole commute.  During the connection request, the client network component that connects starts counting a timer. If this timer expires before the client network component has received the acknowledgment, the protocol switches.

# Communication d'un client vers le serveur
Pour contourner les restrictions d'accès, l'idée est d'utiliser le protocole http pour véhiculer les informations. Pour ce faire, les éléments methodName et argList qui doivent être transmis d'un client vers un serveur sont passés en paramètres lors de l'appel d'un fichier de type librairie de liens dynamiques DLL (pour le terme anglo-saxon Dynamic Link Library ) du serveur, via une adresse de type URL. Le module CommunicationManager du poste client sera chargé d'un tel appel.
# Communication from a client to the server
To bypass access restrictions, the idea is to use the http protocol to convey the information. To do this, the methodName and argList elements that must be passed from a client to a server are passed as parameters when calling a dynamic link library DLL file (for the English term Dynamic Link Library ) of the server, via a URL type address. The CommunicationManager module of the client station will be responsible for such a call.

A la réception, le module CommunicationManager du module GbxClient associé sur le serveur au client concerné devra récupérer ces paramètres et procéder à l'appel de la méthode methodName (argsList) module GbxClient du serveur.  Upon receipt, the CommunicationManager module of the associated GbxClient module on the server to the client concerned will have to retrieve these parameters and proceed to call the methodName (argsList) module GbxClient server.

<Desc/Clms Page number 215> <Desc / Clms Page number 215>

# Communication d'un serveur vers un client
L'idée est la même que pour le cas précédent, sauf que dans le cadre du protocole http, il est impossible au serveur d'envoyer par lui-même des données au client.
Pour contourner cette difficulté, on utilise un procédé de pseudo-poussée ( push d'informations par exemple du type suivant : le module
CommunicationManager du poste client, à intervalles de temps réguliers (par exemple toutes les 10 secondes...), effectue une requête http sur le serveur pour récupérer un fichier au format html. Ce fichier, géré par le module
CommunicationManager correspondant sur le serveur, comporte les données que le module GbxClient attend. Le module CommunicationManager du poste client doit donc être à même d'extraire les éléments methodName et argsList de ce fichier html, et d'appeler la méthode correspondante methodName (argsList) l'objet Application du poste client.
# Communication from a server to a client
The idea is the same as in the previous case, except that as part of the http protocol, it is impossible for the server to send data to the client by itself.
To circumvent this difficulty, a pseudo-push method is used (information push, for example of the following type: the module
CommunicationManager of the client station, at regular intervals of time (for example every 10 seconds ...), makes an http request on the server to recover a file in html format. This file, managed by the module
Corresponding CommunicationManager on the server, contains the data that the GbxClient module is waiting for. The CommunicationManager module of the client workstation must be able to extract the methodName and argsList elements from this html file, and call the methodName (argsList) corresponding method of the client node's Application object.

Section 5 - Exclusion mutuelle Du fait que les mêmes instances sont partagées par plusieurs utilisateurs, un mécanisme d'exclusion mutuelle est requis pour éviter les accès concurrents à un même objet. Ce mécanisme est basé sur un système à double verrous : un verrou en lecture/écriture (W/R) et un verrou en lecture (R). Section 5 - Mutual Exclusion Because the same instances are shared by multiple users, a mutual exclusion mechanism is required to prevent concurrent access to the same object. This mechanism is based on a double-lock system: a read / write lock (W / R) and a read lock (R).

Toute modification de l'état d'un objet permanent partagé ne peut être faite que si l'objet est déverrouillé en lecture/écriture. Par contre, l'accès en lecture aux valeurs caractéristiques de l'objet (à son état par exemple) ne nécessite que le déverrouillage R. Any change in the state of a shared permanent object can only be done if the object is unlocked in read / write mode. On the other hand, the read access to the characteristic values of the object (in its state for example) requires only the unlocking R.

La récupération du verrou est à la charge de l'objet qui en fait sentir le besoin, c'est à dire qui modifie l'état de l'objet permanent partagé (il demande alors le verrou W/R) ou qui lit l'état courant de l'objet (il demande alors un verrou R). The recovery of the lock is the responsibility of the object which makes it feel the need, that is to say which modifies the state of the shared permanent object (it then asks the lock W / R) or which reads the current state of the object (it then asks for a lock R).

<Desc/Clms Page number 216><Desc / Clms Page number 216>

L'attribution du verrou W/R a un caractère exclusif. Seul un client peut accéder à un objet en lecture/écriture à un instant donné. Mais ce n'est pas le cas pour l'accès en lecture : ainsi plusieurs utilisateurs peuvent accéder en lecture au même objet. Bien entendu, le fait qu'un client possède le verrou W/R exclut pendant le même temps toute obtention d'un verrou R par un quelconque autre client.  The allocation of the W / R lock has an exclusive character. Only a client can access a read / write object at a given time. But this is not the case for read access: thus several users can read access to the same object. Of course, the fact that a customer has the lock W / R excludes during the same time any obtaining of a lock R by any other client.

Utilisation des objets verrouillés Un client peut utiliser un objet permanent partagé à partir du moment où il obtient un verrou (que ce soit R ou W/R) sur cet objet. Tant que le cycle (au sens où il a été défini plus haut dans le chapitre IV), initié par la transition de l'obiet qui a provoqué la demande de verrou, n'est pas terminé, l'objet verrouillé est considéré comme étant en cours d'utilisation. Using Locked Objects A client can use a shared permanent object from the moment it gets a lock (whether R or W / R) on that object. As long as the cycle (as defined earlier in Chapter IV), initiated by the transition of the object that caused the lock request, is not completed, the locked object is considered to be in use.

On considérera donc qu'un client a fini d'utiliser un objet verrouillé en lecture si le cycle au cours duquel il lit une des valeurs de cet objet est terminé. We will consider that a client has finished using a locked object in read if the cycle during which it reads one of the values of this object is completed.

Par exemple, et en référence à la figure 213,supposons qu'un objet A veuille envoyer un message à un objet B en lui passant l'état courant d'un objet 0 permanent partagé. For example, and with reference to Fig. 213, suppose an object A wants to send a message to an object B by passing it the current state of a shared permanent object 0.

On considère que l'objet A a fini d'utiliser l'objet 0 lorsque l'objet A reprend la main par retour d'appel de méthode. Object A is considered to have finished using object 0 when object A takes over the hand by method callback.

On considère également qu'un client a fini d'utiliser un objet déverrouillé en lecture/écriture si le cycle provoqué par la transition de l'objet qui a demandé le verrou est terminé. It is also considered that a client has finished using an unlocked read / write object if the cycle caused by the transition of the object that requested the lock is complete.

Par exemple, et en référence à la figure 214, supposons qu'un objet A obtient le verrou WR sur un objet 0 permanent partagé pour le faire changer d'état. On considère que l'objet A a fini d'utiliser l'objet 0 lorsque l'objet A reprend la main par retour d'appel de méthode. For example, and with reference to Figure 214, suppose that an object A obtains the lock WR on a shared permanent object 0 to make it change state. Object A is considered to have finished using object 0 when object A takes over the hand by method callback.

<Desc/Clms Page number 217> <Desc / Clms Page number 217>

Comportement du verrou d'un objet Un verrou R ou W/R d'un objet va être défini ci-dessous à l'aide de diagrammes d'état-transition. Object Lock Behavior An R or W / R lock of an object will be defined below using state-transition diagrams.

Pour un objet partagé 0 donné, un client peut être dans un des états suivants vis à vis du verrou R ou du verrou W/R : # Le client peut ne pas posséder le verrou sur l'objet 0 # Le client peut posséder le verrou sur l'objet 0 mais ne pas l'utiliser # Le client peut posséder le verrou sur l'objet 0 et l'utiliser # Le client peut être en passe de rendre le verrou sur l'objet 0 si un autre client en a fait la demande. For a given shared object 0, a client may be in one of the following states with respect to the R lock or the W / R lock: # The client may not have the lock on the object 0 # The client may have the lock on object 0 but do not use it # The client can have the lock on object 0 and use it # The client may be about to make the lock on object 0 if another client has done so the demand.

Un objet permanent partagé peut être réalisé de deux façons distinctes chez un client (juste au moment où le client a besoin de l'objet ou par anticipation, voir l'introduction du chapitre V), ce qui influe sur l'attribution du verrou. A shared permanent object can be realized in two distinct ways in a client (just when the client needs the object or in advance, see the introduction to chapter V), which affects the allocation of the lock.

En effet, si un objet permanent partagé est réalisé selon un mode juste à temps , cela signifie que le client veut lire ou manipuler cet objet. Le verrou R ou W/R lui est alors donné directement. On a alors le diagramme d'état-transition de la figure 215 : En revanche, si un objet permanent partagé est réalisé par anticipation, le client n'a pas encore émis la volonté de manipuler l'objet. Il n'obtiendra le verrou que s'il accède véritablement à l'objet. Ceci se manifeste dans le diagramme d'état-transition de la figure 216. Indeed, if a shared permanent object is realized in a just-in-time mode, it means that the customer wants to read or manipulate this object. The lock R or W / R is then given directly. We then have the state-transition diagram of Figure 215: On the other hand, if a shared permanent object is realized in anticipation, the client has not yet expressed the will to manipulate the object. It will only get the lock if it actually accesses the object. This is shown in the state-transition diagram of Figure 216.

Demande de verrou WR Un objet A chez un client C demande le verrou sur l'objet auquel il désire envoyer un message (s'il ne l'a pas déjà). WR lock request An object A from a client C requests the lock on the object to which it wishes to send a message (if it does not already have one).

<Desc/Clms Page number 218> <Desc / Clms Page number 218>

Si l'objet n'est pas déjà utilisé par un autre client (que ce soit en lecture ou en écriture), il le devient comme le montre le diagramme de séquence illustré sur la figure 217. If the object is not already in use by another client (either read or write), it becomes so as shown in the sequence diagram shown in Figure 217.

Si l'objet était déverrouillé en lecture, le verrou est ôté à chaque client qui le possède au terme d'un certain temps de latence. Ce temps de latence est propre à chaque objet et peut en constituer par exemple un attribut. If the object was unlocked for reading, the lock is removed from each client that has it after a certain latency. This latency time is specific to each object and may be an attribute for example.

Ceci est illustré sur la figure 218. This is illustrated in Figure 218.

Si l'objet était déjà verrouillé en lecture/écriture, le verrou est rendu également après un certain temps de latence. Ce cas peut être représenté par le schéma de la figure 219. If the object was already locked in read / write, the lock is also rendered after a certain latency. This case can be represented by the diagram of Figure 219.

Comme on se trouve ici dans le cadre d'un protocole de communication basé sur le protocole TCP, et que ce protocole assure une communication selon le mode premier entré- premier sorti (FIFO), toutes les transitions de l'objet B répliquées depuis le Client 1 ont eu lieu chez le Client 2 avant que le verrou sur B n'ait été obtenu. As we are here in the context of a communication protocol based on the TCP protocol, and this protocol provides communication in the first-in-first-out (FIFO) mode, all the transitions of the object B replicated since the Client 1 occurred at Client 2 before the lock on B was obtained.

Demande de verrou R L'hypothèse est qu'un objet 0 chez un client C demande le verrou R sur l'objet dont il veut connaître l'état (s'il ne le connaît pas déjà). Request for Lock R The assumption is that a 0 object in a client C requests the lock R on the object whose status it wants to know (if it does not already know it).

Si l'objet n'est verrouillé ni en lecture/écriture ni en lecture, il devient verrouillé en lecture, comme illustré sur la figure 220. If the object is not locked in either read / write or read, it becomes read locked, as shown in Figure 220.

Si l'objet est déjà utilisé en lecture par d'autres clients, l'objet C est ajouté à la liste des clients qui possèdent le verrou R sur l'objet O. Plusieurs clients accèdent ainsi au même objet en lecture. Si l'objet est déjà utilisé en lecture/écriture par un autre If the object is already being read by other clients, the C object is added to the list of clients that have the R lock on the O object. This means that multiple clients access the same object for reading. If the object is already used for read / write by another

<Desc/Clms Page number 219><Desc / Clms Page number 219>

client, la requête de l'objet 0 est placée en attente jusqu'à ce que l'objet soit disponible. ceci est illustré sur la figure 221.  client, the request for object 0 is placed on hold until the object is available. this is illustrated in Figure 221.

Gestion des blocages mutuels Il demeure cependant des cas dits de blocage mutuel où des clients peuvent s'attendre les uns les autres à cause de demande de verrous. Managing mutual blocks There are, however, cases of mutual blocking where customers can expect each other because of lock requests.

Considérons par exemple, en référence aux figures 222 et 223, deux clients CI et C2. Consider for example, with reference to FIGS. 222 and 223, two clients CI and C2.

Le client CI possède les objets permanents partagés 01 et 02, tandis que le client C2 possède les objets permanents partagés 01, 02 et 03. Les clients possèdent des verrous comme suit : le client CIpossède le verrou W/R sur 01. le client C2 possède le verrou W/R sur 02 et 03. The CI client has the shared permanent objects 01 and 02, while the C2 client has the shared permanent objects 01, 02, and 03. The clients have locks as follows: the CI client has the W / R lock on 01. the C2 client has the W / R lock on 02 and 03.

L'on se trouve alors dans la situation de la figure 224. We then find ourselves in the situation of Figure 224.

*Supposons maintenant que, au cours du cycle initié par l'objet 01, le client CI demande au client C2 le verrou W/R sur l'objet 02. Le client C2 ne peut pas rendre le verrou sur l'objet 02 car un cycle initié par l'objet 02 est en cours chez le client C2. L'on se trouve alors dans la situation de la figure 225. Now suppose that, during the cycle initiated by object 01, the CI client asks the C2 client for the W / R lock on the 02 object. The C2 client can not return the lock on the 02 object because a cycle initiated by the object 02 is in progress at the client C2. We then find ourselves in the situation of figure 225.

Le client Cl attend que le client C2 ait fini d'utiliser l'objet 02 pour prendre le verrou et continuer son exécution. Supposons maintenant que dans le cycle initié par l'objet 02 chez le client C2, ce même client en vient à demander le verrou sur l'objet 01. Comme nous l'avons vu, un cycle initié par l'objet 01 est en cours chez le client CI, et le verrou W/R sur l'objet 01 ne peut donc pas être rendu. Ceci est illustré sur la figure 197 : client CI attend après le client C2 pour obtenir le verrou sur l'objet 02, tandis que le client C2 attend après le client Cl pour obtenir le verrou sur l'objet 01 ; l'on se trouve dans une situation de blocage mutuel. The client Cl waits for the client C2 to finish using the object 02 to take the lock and continue executing it. Suppose now that in the cycle initiated by the object 02 at the client C2, this same client comes to request the lock on the object 01. As we have seen, a cycle initiated by the object 01 is in progress at the CI client, and the W / R lock on object 01 can not be rendered. This is illustrated in Figure 197: CI client waits after the C2 client to get the lock on the object 02, while the C2 client waits after the client Cl to get the lock on the object 01; we are in a situation of mutual blocking.

<Desc/Clms Page number 220> <Desc / Clms Page number 220>

Pour lever cette situation, il faut défaire les actions effectuées par l'un des deux clients de façon à ce que tous les verrous qui interviennent dans la boucle de blocage mutuel soient restitués. To overcome this situation, you must undo the actions performed by one of the two clients so that all the locks that intervene in the mutual blocking loop are restored.

Supposons que dans le même exemple, les obtentions de verrou ont eu lieu dans l'ordre illustré sur la figure 225. Il semble ici plus pertinent de défaire les actions qui se sont déroulées chez le client C2. En effet, la première obtention d'un verrou sur un objet figurant dans la boucle de blocage mutuel est plus récente chez le client C2. Suppose that in the same example, the lock acquisitions took place in the order shown in Figure 225. It seems more relevant here to undo the actions that took place at the client C2. Indeed, the first obtaining of a lock on an object appearing in the mutual blocking loop is more recent at the client C2.

Défaire les actions effectuées chez le client C2 revient à utiliser une fonctionnalité dite de Retour arrière ( Rollback en terminologie anglo-saxonne) décrite ciaprès à partir du temps logique où le client C2 a obtenu le verrou sur l'objet 02. L'objet 01 peut ainsi obtenir le verrou sur l'objet 02 et continuer son cycle. Le client C2 est alors mis en attente jusqu'à ce que le client CI libère l'objet 02. Undoing the actions performed at the client C2 amounts to using a so-called backtracking function described below from the logical time when the client C2 has obtained the lock on the object 02. The object 01 can thus obtain the lock on object 02 and continue its cycle. The client C2 is then put on hold until the CI client releases the object 02.

Cependant, le fait de résoudre le blocage mutuel implique de détecter la présence d'une boucle dans les demandes de verrou, comme on va maintenant le décrire. However, resolving mutual blocking involves detecting the presence of a loop in lock requests, as will now be described.

Détection des boucles Il ne peut y avoir une boucle dans les demandes de verrou si un objet reçoit une demande de verrou alors que lui-même est en attente d'un verrou. Cependant, ce n'est pas parce qu'on est dans ce cas qu'il y a forcément une boucle. Detecting Loops There can be no loop in lock requests if an object receives a lock request while it is waiting for a lock. However, it is not because we are in this case that there is necessarily a loop.

C'est en tout cas à partir de ce cas litigieux que la détection de boucle commence. It is in any case from this contentious case that the loop detection begins.

La figure 226 illustre ainsi dans sa partie gauche un cas de blocage mutuel, tandis que sa partie droite illustre un cas où il n'y a pas de blocage mutuel. Figure 226 illustrates on its left side a case of mutual blocking, while its right side illustrates a case where there is no mutual blocking.

Pour éviter de mélanger les données liées à chaque instance de l'algorithme de gestion des blocages mutuels, ces données sont estampillées avec des marqueurs à To avoid mixing data related to each instance of the mutual blocking algorithm, these data are stamped with markers to

<Desc/Clms Page number 221><Desc / Clms Page number 221>

l'aide d'un compteur croissant, représentatif par exemple de l'instant de lancement de l'instance de l'alogrithme.  using a growing counter, representative for example of the moment of launch of the instance of the alogrithm.

Ainsi, et maintenant en référence à la figure 227, lorsque l'objet A reçoit une demande de verrou alors qu'il en déjà en attente, il relève le temps CPU de la séquence en cours afin de s'en servir comme marqueur. Thus, and now with reference to FIG. 227, when the object A receives a lock request while it is already waiting, it raises the CPU time of the current sequence in order to use it as a marker.

Il remonte ensuite les demandes de verrou de cette séquence en marquant chaque objet en attente par le temps CPU qu'il a relevé. S'il retombe sur lui-même pour la même marque, un cycle est détecté, et le processus de retour en arrière peut être mis en #uvre. It then goes back the lock requests of this sequence by marking each pending object by the CPU time it has raised. If it falls back on itself for the same mark, a cycle is detected, and the rollback process can be implemented.

Section 6 - Mécanisme de retour en arrière (RollBack) Deux approches d'exécution répliquées de ce mécanisme sont possibles : pessimiste et optimiste. Dans l'approche optimiste que nous décrivons dans le présent chapitre, le mécanisme de retour en arrière sert de procédé de rattrapage de prédictions erronées. Le même mécanisme de Rollback est aussi utilisé dans la gestion des blocages mutuels dans le cadre de l'exclusion mutuelle. Ci-après, nous traitons le cas du rattrapage, sur un exemple. Section 6 - Rollback Mechanism Two replicated execution approaches of this mechanism are possible: pessimistic and optimistic. In the optimistic approach we describe in this chapter, the backtracking mechanism serves as a method of catching up on erroneous predictions. The same Rollback mechanism is also used in the management of mutual blockages in the context of mutual exclusion. Hereinafter, we treat the case of catch-up, on an example.

Dans cet exemple, illustré sur la figure 228, les objets 01, 02, 03 et 04 sont des objets partagés, tandis que l'objet 05 est un objet privé, et l'on suppose que le client Clientlpossède le verrou W/R sur les objets partagés. In this example, shown in Figure 228, the objects 01, 02, 03, and 04 are shared objects, while the object 05 is a private object, and it is assumed that the client Client has the W / R lock on it. shared objects.

Suite à une action d'un utilisateur sur l'objet 01, les messages Msgl, Msg2 et Msg3 s'enchaînent. Comme elle concerne des objets partagés, la transition de l'objet 01 est répliquée par valeur sur un serveur. Par contre, les conséquences de la transition de l'objet 01, à savoir les transitions de 02 et de 03 ne sont pas transmises puisque le serveur les génère lui-même. Following a user action on the object 01, the messages Msg1, Msg2 and Msg3 are linked together. Because it concerns shared objects, the transition of object 01 is replicated by value on a server. On the other hand, the consequences of the transition of the object 01, namely the transitions of 02 and 03 are not transmitted since the server generates them itself.

<Desc/Clms Page number 222><Desc / Clms Page number 222>

Une fois la transition de l'objet 03 effectuée (suite au message Msg3), le premier cycle issu de l'action de l'utilisateur est terminé. Les traces dont disposent les séquenceurs du poste client de l'utilisateur et du serveur contiennent alors respectivement les informations illustrées sur la figure 229.  Once the transition of the object 03 performed (following the Msg3 message), the first cycle from the action of the user is completed. The traces available to the sequencers of the user station and the server then contain the information illustrated in FIG. 229.

Sur le serveur, une fois le premier cycle terminé, le séquenceur entre en activité et traite les actions PutNext figurant dans la trace. Ceci se traduit par l'envoi du message Next aux objets qui en avaient fait la demande (ici l'objet 02) et du message Msg5 qui s'ensuit, comme illustré sur la figure 230. On the server, once the first cycle is complete, the sequencer goes into action and processes the PutNext actions in the trace. This results in the sending of the message Next to the objects that had requested it (here the object 02) and the message Msg5 which follows, as illustrated in FIG.

La trace sur le serveur contient alors les informations illustrées sur la figure 231. The trace on the server then contains the information shown in Figure 231.

Supposons maintenant que sur son poste, l'utilisateur du client clientl manipule l'objet 05 pendant le premier cycle (qui était initié par le message Msgl). Il se déroule alors chez le client le scénario illustré sur la figure 232. Suppose now that on his computer, the client clientl user manipulates the object 05 during the first cycle (which was initiated by the Msgl message). It then takes place at the customer's scenario shown in Figure 232.

Le séquenceur du clientl contient alors les informations illustrées sur la figure 233. The sequencer of the client then contains the information illustrated in FIG. 233.

On observe ici que le serveur a pris trop d'avance dans le traitement de son séquenceur, si bien que des scénarios différents sont joués chez le client clientl et sur le serveur. Le serveur doit donc revenir en arrière sur l'avance qu'il a prise : c'est le mécanisme de retour en arrière, dont on va maintenant décrire le fonctionnement. It is observed here that the server has taken too much advance in the processing of its sequencer, so that different scenarios are played at the client clientl and on the server. The server must therefore go back on the advance it has taken: it is the mechanism of return back, which will now describe the operation.

Détection Un tel cas litigieux est détecté lors de la réplication de la transition de l'objet 02 de l'état SIà l'état S4, dont la cause est due à un objet non partagé. En effet, lors d'une réplication, le serveur reçoit les informations suivantes : 1. L'objet qui effectue la transition 2. L'état précédent la transition (que l'on appellera état précédent) Detection Such a contentious case is detected during the replication of the transition of the object 02 from the state S1 to the state S4, the cause of which is due to an object not shared. Indeed, during a replication, the server receives the following information: 1. The object that makes the transition 2. The state preceding the transition (that will be called previous state)

<Desc/Clms Page number 223><Desc / Clms Page number 223>

3. L'état courant après la transition (que l'on appellera état courant) 4. Le temps logique correspondant à cette transition chez le client qui en est à l'origine 5. Le temps logique correspondant à la transition précédente chez le client qui en est à l'origine.  3. The current state after the transition (which will be called current state) 4. The logical time corresponding to this transition at the customer who is at the origin 5. The logical time corresponding to the previous transition at the customer who is at the origin.

Les informations 1 et 3 permettent au serveur de trouver quel objet il doit faire transitionner et dans quel état. L'information 4 va permettre la détection d'un cas litigieux (si le serveur a déjà associé ce temps logique à un put, il y a conflit). Enfin l'information 5 va servir à repositionner le curseur du traitement dans le cas où une opération de retour en arrière est nécessaire. Information 1 and 3 allow the server to find which object to transition to and in which state. The information 4 will allow the detection of a litigious case (if the server has already associated this logical time with a put, there is conflict). Finally, the information 5 will be used to reposition the processing cursor in the case where a backward operation is necessary.

Dans le même exemple, le serveur va savoir que la transition de l'objet 02 vers l'état S4 correspond au temps logique 127 pour le client clientl. Or le serveur a déjà, par calcul, associé au temps logique 127 une transition qui est différente, puisqu'elle concerne le passage de l'objet 04 vers l'état SI). Un retour en arrière doit donc être effectué. In the same example, the server will know that the transition from the object 02 to the state S4 corresponds to the logical time 127 for the client clientl. Now the server has already, by calculation, associated with logical time 127 a transition that is different, since it concerns the passage of the object 04 to the state SI). A backtrack must be made.

Etapes du retour en arrière Le retour en arrière s'effectue par la succession d'étapes suivante : 1. Trouver dans la trace la dernière position stable avant le cas litigieux (point à partir duquel le séquenceur va reprendre son traitement) 2. Déterminer dans l'historique quelles sont les entrées qui doivent être défaites 3. Déterminer quels sont les objets touchés et dans quel état ils doivent être restaurés, et les restaurer sur le serveur et chez tous les clients passifs qui les possèdent réellement Reversal steps Reversal is carried out by the following sequence of steps: 1. Find in the trace the last stable position before the litigious case (point from which the sequencer will resume its treatment) 2. Determine in what are the entries that need to be undone 3. Determine which objects are affected and in which state they should be restored, and restore them to the server and to all passive clients who actually own them

<Desc/Clms Page number 224><Desc / Clms Page number 224>

4. Répliquer la transition qui a permis de détecter le conflit (ici le passage de l'objet
02 de l'état SI à l'état S4) 5. Reprendre le traitement du séquenceur à partir de la dernière position stable.
4. Replicate the transition that made it possible to detect the conflict (here the passage of the object
02 from SI to S4) 5. Resume sequencer processing from the last stable position.

Détail des étapes - Etape 1 Une situation de conflit peut être schématisé par le diagramme d'état-transition de la figure 234. Step Detail - Step 1 A conflict situation can be schematized by the state-transition diagram of Figure 234.

La solution au conflit consiste à ramener l'objet qui pose problème au dernier de ses états pour lequel à la fois le client et serveur sont en accord. Plutôt que de rechercher cet état dans la trace du client, l'objet peut lui-même renseigner quel est le temps logique auquel il était entré dans l'état précédent. Ce temps logique est celui du dernier état pour lequel client et serveur sont en accord pour l'objet qui pose problème : ce temps logique est alors transmis au serveur pour que celui-ci puisse s'y ramener. The solution to the conflict is to bring the problem object back to the last of its states for which both the client and server are in agreement. Rather than searching for this state in the client's trace, the object itself can tell what the logical time it was in the previous state was. This logical time is that of the last state for which client and server are in agreement for the object that poses a problem: this logical time is then transmitted to the server so that it can be reduced to it.

A chaque fois qu'ils effectuent une transition, les objets stockent pour quel temps logique du client ils changent d'état. Ainsi, lorsqu'une transition est répliquée, le serveur peut recevoir le temps logique auquel l'objet était entré dans l'état précédent. Whenever they make a transition, the objects store for what logical time of the client they change state. Thus, when a transition is replicated, the server can receive the logical time at which the object was entered in the previous state.

Donc, lors de la réplication de la transition au temps logique 127, le serveur reçoit le temps logique du client clientl correspondant à la précédente transition de l'objet 02 : ce temps logique est 124. Thus, during the replication of the transition to the logical time 127, the server receives the logical time of the client client corresponding to the previous transition of the object 02: this logical time is 124.

Le serveur repositionne donc le curseur du séquenceur au temps logique 124 du client clientl, comme illustré sur la figure 235. The server therefore repositions the cursor of the sequencer to the logical time 124 of the client client, as illustrated in FIG.

<Desc/Clms Page number 225> <Desc / Clms Page number 225>

- Etape 2 Chercher dans la trace du serveur ce qui doit être défait revient à déterminer quelle a été la première transition à avoir été effectuée à tort. C'est à partir de cette transition que ce qui a été effectué en avance sur le serveur doit être défait. - Step 2 Finding in the server trace what needs to be undone is to determine what was the first transition to be done wrongly. It is from this transition that what has been done in advance on the server must be undone.

Cette transition est la première transition de l'objet qui pose problème (ici l'objet 02) située en aval (au sens du temps logique) du curseur de traitement (tel qu'il a été replacé à l'étape a). This transition is the first transition of the problematic object (here the object 02) located downstream (in the sense of the logical time) of the processing cursor (as it was replaced in step a).

Dans l'exemple, il s'agit de la transition au temps logiquel26. C'est donc là qu'est repositionné le curseur d'écriture. Cette transition correspond à la réaction de l'objet 02 à un message Next du séquenceur. Si le serveur avait été en adéquation avec le client clientl, ce Next aurait dû être obsolète. In the example, this is the transition to logical time26. This is where the write cursor is repositioned. This transition corresponds to the reaction of the object 02 to a message Next of the sequencer. If the server had been in line with the client client, this Next should have been obsolete.

Comme nous l'avons vu, l'objet 02 se trouve encore dans l'état SI lorsqu'il reçoit le message Next, et celui-ci provoque donc une transition. As we have seen, the object 02 is still in the SI state when it receives the message Next, and this therefore causes a transition.

La situation correspondante est illustrée sur la figure 236. The corresponding situation is illustrated in Figure 236.

Comme on va le voir, seules les transitions figurant à partir du curseur d'écriture sur la figure 236 doivent être annulées, alors que le traitement reprend à partir de la nouvelle position du curseur de traitement. Ceci est justifié par le fait que les conséquences des transitions figurant entre le curseur de traitement et le curseur d'écriture se trouvent forcément après la nouvelle position du curseur d'écriture : elles sont donc défaites. C'est pourquoi les transitions qui en sont à l'origine (donc celles qui figurent à partir du curseur de traitement jusqu'au curseur d'écriture exclu) doivent être conservées pour poursuivre le processus en lieu et place de ce qui a été défait. As will be seen, only transitions from the write cursor in Fig. 236 should be canceled, while processing resumes from the new position of the processing cursor. This is justified by the fact that the consequences of the transitions appearing between the processing cursor and the writing cursor are necessarily after the new position of the writing cursor: they are thus undone. This is why the transitions that are causing it (ie those that appear from the processing cursor to the excluded write cursor) must be kept to continue the process in place of what has been undone. .

- Etape 3 - Step 3

<Desc/Clms Page number 226><Desc / Clms Page number 226>

A partir du curseur d'écriture, il faut parcourir la trace pour déterminer quels sont les objets qui ont effectué à tort des transitions.  From the write cursor, you have to go through the trace to determine which objects have incorrectly transitions.

La trace porte, pour chaque entrée, quel objet a effectué une transition et quel était son état précédent. Il suffit donc de récupérer la première entrée à partir du curseur d'écriture pour chaque objet : on y trouve l'état précédent dans lequel l'objet doit être restauré. The trace carries, for each entry, which object made a transition and what was its previous state. It is therefore sufficient to recover the first entry from the writing cursor for each object: there is the previous state in which the object must be restored.

Dans l'exemple, seul l'objet 04 possède une entrée sous le curseur d'écriture : il doit être restauré dans l'état SO. In the example, only object 04 has an entry under the write cursor: it must be restored to the state SO.

Les transitions effectuées en avance et à tort par le serveur doivent être annulées. Elles doivent également être annulées chez tous les clients qui les ont passivement répliquées et qui les possèdent réellement ces objets (au sens du mécanisme de chargement progressif décrit plus haut). Transitions made in advance and wrongly by the server must be canceled. They must also be canceled in all customers who passively replicate them and who actually own them (in the sense of the progressive loading mechanism described above).

Pour ce faire, tous les objets devant l'être sont restaurés dans leur état précédent. Ces transitions forcées sont au passage répliquées chez les clients qui possèdent réellement ces objets en utilisant le procédé de réplication déjà décrit (Etape 4.). To do this, all objects to be restored to their previous state. These forced transitions are replicated by customers who actually own these objects by using the replication method already described (Step 4.).

Une fois ceci réalisé, toutes les entrées de l'historique qui figurent en aval (au sens du temps logique) du curseur d'écriture sont supprimées, comme illustré sur la figure 237. Once this is done, all history entries that appear downstream (in the sense of the logical time) of the write cursor are removed, as shown in Figure 237.

- Etape 4 Une fois que les transitions effectuées à tort ont été défaites, il faut réhomogénéiser l'ensemble du système. Pour ce faire, on fait en sorte que la transition répliquée qui a permis de détecter le cas litigieux ait aussi lieu sur le serveur. Le mécanisme de - Step 4 Once the wrong transitions have been undone, you have to re-homogenize the whole system. To do this, we make sure that the replicated transition that detected the contentious case also takes place on the server. The mechanism of

<Desc/Clms Page number 227><Desc / Clms Page number 227>

séquencement fait alors que les informations correspondant à cette transition soient reportées dans la trace à partir du curseur de trace. Ceci est illustré sur la figure 238.  sequencing then makes the information corresponding to this transition be reported in the trace from the trace cursor. This is illustrated in Figure 238.

Bien sûr, cette transition est propagée chez tous les clients qui possèdent réellement l'objet (au sens du mécanisme de chargement progressif). Of course, this transition is propagated to all customers who actually own the object (in the sense of the progressive loading mechanism).

- Etape 5 Une fois la transition répliquée, le séquenceur peut reprendre la main pour gérer les activités en cours des objets. Il reprend son traitement à partir du curseur de traitement. - Step 5 Once the transition is replicated, the sequencer can take over to manage the ongoing activities of the objects. It resumes processing from the processing slider.

Dans l'exemple, sa première tâche sera d'envoyer le message Next à l'objet 02. In the example, his first task will be to send the message Next to object 02.

Cependant, l'objet 02 se trouvant maintenant dans l'état S4, le Next qu'il reçoit est obsolète et est donc ignoré. However, since the object 02 is now in state S4, the Next it receives is obsolete and is therefore ignored.

Bien entendu, la présente invention n'est nullement limitée aux formes de réalisations décrites et représentées, mais l'homme du métier saura y apporter toute variante ou modification conforme à son esprit. En particulier, les caractéristiques de l'invention énoncées dans les différents chapitres et les différentes sections de ces chapitres peuvent être combinées de manières très diverses. Of course, the present invention is not limited to the embodiments described and shown, but the skilled person will be able to make any variant or modification within his mind. In particular, the features of the invention set forth in the different chapters and sections of these chapters can be combined in a wide variety of ways.

<Desc/Clms Page number 228> <Desc / Clms Page number 228>

ANNEXE Composant BEHAVIOR <PUBLIC:ATTACH EVENT="ondragstart" ONEVENT="InitiateDrag"/> <PUBLIC:ATTACH EVENT="ondrop" ONEVENT="FinishDrag"/> <PUBLIC:ATTACH EVENT="ondragenter" ONEVENT="DragEnter"/> <PUBLIC:ATTACH EVENT="ondragleave" ONEVENT="DragLeave"/> <SCRIPT LANGUAGE="JScript"> // ------------------------------------------------------ // gestion du drag'n drop // ->L'utilisateur commence à déplacer la poignée...  APPENDIX Component BEHAVIOR <PUBLIC: ATTACH EVENT = "ondragstart" ONEVENT = "InitiateDrag" /> <PUBLIC: ATTACH EVENT = "ondrop" ONEVENT = "FinishDrag" /> <PUBLIC: ATTACH EVENT = "ondragenter" ONEVENT = "DragEnter" / <PUBLIC: ATTACH EVENT = "ondragleave" ONEVENT = "DragLeave" /> <SCRIPT LANGUAGE = "JScript"> // ----------------------- ------------------------------- // manage the drag'n drop // -> The user starts to move the handle...

// Met en mémoire l'identifiant du Container source. function InitiateDrag() var caid = event.srcElement.containerid ; var ceid = event.srcElement.contentid ; event.dataTransfer.setData("Text", "#contentid="+ceid +"#containerid="+caid) ; event.dataTransfer.effectAllowed = "copy" ; } // ->L'utilisateur place la poignée sur une autre... // Store the identifier of the source container. function InitiateDrag () var caid = event.srcElement.containerid; var ceid = event.srcElement.contentid; event.dataTransfer.setData ("Text", "#contentid =" + ceid + "# containerid =" + caid); event.dataTransfer.effectAllowed = "copy"; } // -> The user places the handle on another ...

// Modifie le style pour montrer l'interaction de la cible. function DragEnter() { event.dataTransfer.dropEffect='copy' ; style.backgroundColor='red' ; style.color='white' ; event.returnValue=false ; } // ->L'utilisateur éloigne la poignée de l'autre... // Modify the style to show the interaction of the target. function DragEnter () {event.dataTransfer.dropEffect = 'copy'; style.backgroundColor = 'red'; style.color = 'white'; event.returnValue = false; } // -> The user moves the handle away from the other ...

// Re-modifie le style pour remettre la cible à un état normal. function DragLeave() { style.backgroundColor='' ; style.color=' ' ; } // Re-modify the style to return the target to a normal state. function DragLeave () {style.backgroundColor = ''; style.color = ''; }

<Desc/Clms Page number 229><Desc / Clms Page number 229>

// ->L'utilisateur lache la poignée sur l'autre...  // -> The user drops the handle on the other ...

// Récupère l'identifiant du Container source et de la cible. // Get the identifier of the source container and the target.

// Transmet l'action par événement au système . function FinishDrag() { style.backgroundColor='' ; style.color='' ; // Diffusion de l'événement "onderive"... var oEvent createEventObject() ; oEvent.cible = event.srcElement.containerid ; oEvent.source = event.dataTransfer.getData("Text") fire("onderive",oEvent) ; } // Fin de gestion du drag'n drop // ------------------------------------------------------ </SCRIPT> // Pass event action to the system. function FinishDrag () {style.backgroundColor = ''; style.color = ''; // Broadcast the "onderive" event ... var oEvent createEventObject (); oEvent.cible = event.srcElement.containerid; oEvent.source = event.dataTransfer.getData ("Text") fire ("onderive", oEvent); } // End of drag'n drop management // ------------------------------------- ----------------- </ SCRIPT>

Claims (18)

REVENDICATIONS 1. Système de traitement de données, comprenant des moyens de traitement exécutant une application orientée objets réactive et dans laquelle il peut exister des instants où les comportements d'objets différents sont vus par un utilisateur comme se produisant en parallèle, et dans laquelle au moins certains des objets présentent des états dans lesquels s'exécutent respectivement un ensemble ininterruptible d'une ou plusieurs premières actions et/ou un ensemble interruptible d'une ou plusieurs secondes actions, caractérisé en ce que chaque état de chaque objet est décomposé en un premier sous-état le cas échéant, dans lequel s'exécutent les seules premières actions, et en un ou plusieurs seconds sous-états le cas échéant, dans lesquels s'exécutent respectivement les secondes actions, et en ce qu'il est prévu en association avec les seconds sous-états un moyen de séquencement apte à communiquer de façon bidirectionnelle avec les objets dans chacun de leurs seconds sous-états pour organiser de façon séquentielle et reproductible le déroulement des secondes actions dans lesdits seconds sous-états tout en conservant la vision parallèle des comportements des objets pour l'utilisateur.  1. A data processing system, comprising processing means executing a reactive object-oriented application and in which there may exist times when the behaviors of different objects are seen by a user as occurring in parallel, and wherein at least some of the objects have states in which an uninterruptible set of one or more first actions and / or an interruptible set of one or more second actions respectively execute, respectively, characterized in that each state of each object is decomposed into one first sub-state, where applicable, in which the first actions execute only, and in one or more second sub-states, if any, in which the second actions execute respectively, and in that it is provided in association with the second sub-states a sequencing means adapted to communicate bidirectionally with the objects in ch acun of their second sub-states to sequentially and reproducibly organize the flow of the second actions in said second sub-states while maintaining the parallel view of the object behaviors for the user. 2. Système selon la revendication 1, caractérisé en ce qu'une transition d'un objet vers un état dans lequel s'exécutent une ou plusieurs premières actions amène ledit objet dans le premier sous-état dudit état de façon automatique. 2. System according to claim 1, characterized in that a transition from an object to a state in which one or more first actions execute brings said object into the first sub-state of said state automatically. 3. Système selon l'une des revendications 1 et 2, caractérisé en ce que chaque objet possédant des secondes actions présente un premier sous-état dans lequel s'exécute, en sus des éventuelles premières actions, un envoi au moyen de séquencement d'un message de demande de déclenchement, par ledit moyen de séquencement, de l'exécution de la ou des secondes actions. 3. System according to one of claims 1 and 2, characterized in that each object having second actions has a first sub-state in which executes, in addition to possible first actions, a sending by means of sequencing. a request message for triggering, by said sequencing means, the execution of the second action or actions. 4. Système selon la revendication 3, caractérisé en ce que chaque objet possède une transition automatique du premier sous-état vers un état sous-état intermédiaire d'attente d'un événement de déclenchement d'exécution de la part du moyen de 4. System according to claim 3, characterized in that each object has an automatic transition from the first sub-state to an intermediate sub-state state waiting for an execution trigger event on the part of the <Desc/Clms Page number 231><Desc / Clms Page number 231> séquencement, apte à provoquer une transition de l'objet vers l'un des seconds sous- états.  sequencing, able to cause a transition from the object to one of the second sub-states. 5. Système selon la revendication 3, caractérisé en ce que la transition dudit sous-état intermédiaire vers l'un des seconds sous-états, de même que la transition d'un second sous-état vers un autre second sous-état, s'effectuent en réponse à un même événement (Next). 5. System according to claim 3, characterized in that the transition from said intermediate sub-state to one of the second sub-states, as well as the transition from a second sub-state to another second sub-state, perform in response to the same event (Next). 6. Système selon l'une des revendication 1 à 5, caractérisé en ce que chaque objet est apte à adresser au moyen de séquencement un message de demande d'activité (Put(next,...)) indiquant qu'il existe dans ce même objet un ensemble interruptible d'une ou plusieurs secondes actions, et en ce que le moyen de séquencement comprend un moyen de mémorisation des messages reçus, et un moyen pour parcourir les messages mémorisés dans l'ordre de leur arrivée. 6. System according to one of claims 1 to 5, characterized in that each object is adapted to address by means of sequencing an activity request message (Put (next, ...)) indicating that it exists in the same object an interruptible set of one or more second actions, and in that the sequencing means comprises means for storing the received messages, and means for traversing the messages stored in the order of their arrival. 7. Système selon la revendication 6, caractérisée en ce que chaque message de demande d'activité émis par un objet contient au moins une identification de l'objet. 7. System according to claim 6, characterized in that each activity request message sent by an object contains at least one identification of the object. 8 Système selon l'une des revendications 6 et 7, caractérisé en ce que chaque objet comprend un compteur d'envois de messages de demande de déclenchement d'exécution apte à permettre de déterminer l'éventuelle caducité d'un événement de déclenchement d'exécution correspondant délivré par le moyen de séquencement. 8 System according to one of claims 6 and 7, characterized in that each object comprises an execution request message sending counter capable of allowing to determine the possible lapse of a trigger event of corresponding execution delivered by the sequencing means. 9. Système selon la revendication 8, caractérisé en ce que chaque objet possède un moyen de comparaison de la valeur contenue dans ledit compteur avec une valeur contenue dans un événement de déclenchement d'exécution reçu par ledit objet pour entrer dans ledit second sous-état donné. 9. System according to claim 8, characterized in that each object has a means for comparing the value contained in said counter with a value contained in an execution trigger event received by said object to enter said second sub-state. given. 10. Système selon l'une des revendications 6 à 9, caractérisé en ce que le moyen de mémorisation est également apte à conserver la trace des actions effectuées par lesdits objets. 10. System according to one of claims 6 to 9, characterized in that the storage means is also able to keep track of the actions performed by said objects. <Desc/Clms Page number 232><Desc / Clms Page number 232> 11. Système selon la revendication 10, caractérisé en ce que le moyen de mémorisation est également apte à mémoriser une succession de messages de trace reçus par le moyen de séquencement et comprenant chacun: - une identification de l'objet effectuant une transition ; et - une identification de l'origine de l'événement qui a déclenché ladite transition.  11. System according to claim 10, characterized in that the storage means is also able to store a succession of trace messages received by the sequencing means and each comprising: an identification of the object effecting a transition; and an identification of the origin of the event that triggered said transition. 12. Système selon la revendication 11, caractérisé en ce que chaque message de trace comprend en outre une identification de l'état dudit objet avant cette transition. 12. System according to claim 11, characterized in that each trace message further comprises an identification of the state of said object before this transition. 13. Système selon les revendications 11 et 12, caractérisé en ce que chaque message susceptible d'être reçu par le moyen de séquencement comprend une information de type (next/trace) permettant de distinguer un message de trace d'un message de demande d'activité. 13. System according to claims 11 and 12, characterized in that each message that can be received by the sequencing means comprises a type of information (next / trace) for distinguishing a trace message from a request message. 'activity. 14. Système selon la revendication 13, caractérisé en ce que le moyen de mémorisation est apte à mémoriser les messages de trace avec les messages de demande d'activité selon une séquence correspondant à leur succession temporelle, et en ce que le moyen de séquencement comprend en outre un curseur de traitement apte à parcourir, dans le sens de la séquence, les seuls messages de demande d'activité en vue de leur traitement. 14. System according to claim 13, characterized in that the storage means is able to store the trace messages with the activity request messages in a sequence corresponding to their temporal succession, and in that the sequencing means comprises in addition, a processing cursor capable of traversing, in the sense of the sequence, the only activity request messages with a view to processing them. 15. Système selon l'une des revendications 11 à 14, caractérisé en ce qu'à chaque message est associée une information représentative de sa position dans le moyen de mémorisation. 15. System according to one of claims 11 to 14, characterized in that each message is associated information representative of its position in the storage means. 16. Système selon l'une des revendications 1 à 15, caractérisé en ce que le moyen de séquencement est également apte à organiser de façon séquentielle le déroulement de premières actions causées par des événements extérieurs au système. 16. System according to one of claims 1 to 15, characterized in that the sequencing means is also able to organize sequentially the course of first actions caused by events outside the system. <Desc/Clms Page number 233> <Desc / Clms Page number 233> 17. Système selon l'une des revendications 1 à 16, caractérisé en ce qu' il existe des objets aptes à exécuter une première action dite premier cycle en réponse à un événement extérieur au système, notamment provoqué par l'utilisateur, en ce que chacun de ces objets est apte à adresser au moyen de séquencement, une demande d'activité correspondante (BOFC), et en ce que le moyen de séquencement est apte à délivrer à l'objet effectuant une telle demande un message d'autorisation correspondance (Proceed) seulement lorsqu'il n'existe pas un autre premier cycle en cours d'exécution. 17. System according to one of claims 1 to 16, characterized in that there are objects able to perform a first action called first cycle in response to an event outside the system, in particular caused by the user, in that each of these objects is capable of addressing, by means of sequencing, a corresponding activity request (BOFC), and in that the sequencing means is able to deliver to the object making such a request a corresponding authorization message ( Proceed) only when there is not another first cycle running. 18. Système selon la revendication 17, caractérisé en ce que chaque objet apte à effectuer un premier cycle est apte, lors de la fin de l'exécution de celui-ci, à adresser au moyen de séquencement un message de fin de premier cycle (EOFC), de manière à ce que le moyen de séquencement puisse ensuite le cas échéant autoriser (Proceed) un autre premier cycle.18. System according to claim 17, characterized in that each object capable of performing a first cycle is capable, at the end of the execution thereof, of addressing by means of sequencing an end-of-cycle message ( EOFC), so that the sequencing means can then optionally allow (Proceed) another first cycle.
FR0007250A 1999-11-10 2000-06-06 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data Withdrawn FR2805378A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0007250A FR2805378A1 (en) 1999-11-10 2000-06-06 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
PCT/FR2001/001730 WO2001095231A2 (en) 2000-06-06 2001-06-05 Object-oriented data processing system with gradual loading

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9914151A FR2805373A1 (en) 1999-11-10 1999-11-10 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR0004207A FR2807179A1 (en) 2000-04-03 2000-04-03 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR0007250A FR2805378A1 (en) 1999-11-10 2000-06-06 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data

Publications (1)

Publication Number Publication Date
FR2805378A1 true FR2805378A1 (en) 2001-08-24

Family

ID=27248642

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0007250A Withdrawn FR2805378A1 (en) 1999-11-10 2000-06-06 System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data

Country Status (1)

Country Link
FR (1) FR2805378A1 (en)

Similar Documents

Publication Publication Date Title
JP6510624B2 (en) Method and system for intentional computing
US20220075812A1 (en) Using content
Vossen et al. Unleashing Web 2.0: From concepts to creativity
Moens et al. Mining user generated content
Rogers The end of the virtual: Digital methods
Rogers Digital methods
WO2005045698A2 (en) Method of producing a current view from at least one variable source information object in a computer environment
WO2006108865A9 (en) Methods for granting access to resources modifiable by users in a computer environment, and resources structured therefor
FR2805375A1 (en) SYSTEM FOR SHARING INFORMATION ON A COMPUTER NETWORK
AU2004213986A1 (en) Semantic knowledge retrieval management and presentation
EP2727028A1 (en) Organizing search history into collections
FR2762460A1 (en) SYSTEM INTENDED TO PROVIDE AN ENHANCED ENVIRONMENT AND USER INTERFACE FOR ONLINE DISCUSSION TECHNOLOGIES
Ciaburro et al. Hands-on machine learning on google cloud platform: Implementing smart and efficient analytics using cloud ml engine
Abu-Salih et al. Social big data analytics
US20230100501A1 (en) Dynamically generated knowledge graphs
Trivedi How to Speak Tech
FR2807182A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR2805378A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
Abela et al. Behaviour mining for automatic task-keeping and visualisations for task-refinding
FR2805379A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR2805376A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR2807181A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR2805374A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data
FR2806184A1 (en) Navigation in an information system to access pages provided by servers in a computer network, uses storage of link information to allow inverse linking
FR2807180A1 (en) System for sharing data between two or more users of computer system, uses organization of data into first and second containers, with communication between them, and uses XML documents for structuring data

Legal Events

Date Code Title Description
ST Notification of lapse