Contraintes
Par rapport à des systèmes de transformées opérationnelles classiques, l'édition de commentaires dans le graphe à travers ses transformations en documents HTML pose plusieurs contraintes.
Système centralisé
Les systèmes de transformées sont fondés sur un usage distribué. L'objet du système de commentaires distribué est de visualiser et éditer des commentaires dans le graphe. Seule la chaîne éditoriale a accès en lecture et écriture sur le graphe. Il est donc nécessaire de s'appuyer sur une architecture centralisée : la chaîne éditoriale au centre, chaque site correspondant à une copie locale d'une partie des commentaires du graphe. En cas de conflit, c'est systématiquement la version centralisée qui primera. Chaque site se retrouve donc en communication exclusive avec le serveur. Aucune opération générée depuis un site ne peut être directement transmise aux autres.
Structures éditées hétérogènes
Deux structures de données différentes sont éditées sur un site. En ajoutant ou en supprimant un fil de commentaires, des éléments XML sont ajoutés ou supprimés des fichiers matérialisant les fragments, modifiant ainsi les chemins profonds. En ajoutant ou supprimant un commentaire dans un fil de discussion, des éléments XML sont ajoutés ou supprimés du fil, modifiant ainsi les numéros des commentaires dans leurs fils respectifs.
Soit par exemple le fichier XML suivant :
<sc:item xmlns:sc="http://www.utc.fr/ics/scenari/v3/core">
<of:section xmlns:of="scpf.org:office" xmlns:sp="http://www.utc.fr/ics/scenari/v3/primitive">
<of:sectionM>
<sp:title>La rééditorialisation documentaire, du document au fragment</sp:title>
</of:sectionM>
<sp:sec sc:refUri="id:A3"/>
<sp:sec sc:refUri="id:A4">
<!--<comment xmlns="scenari.eu:comment:1.0" type="thread">
<comment creationTime="1405687267908">
La notion d'ingénierie documentaire n'est pas assez présente dans cette section.
À reprendre.
</comment>
<comment creationTime="1405687276904">
Ok, c'est noté.
</comment>
</comment>-->
</sp:sec>
</of:section>
</sc:item>
Ce fichier peut être représenté sous la forme de l'arbre suivant :
![](../res/tree_comment.png)
L'ajout d'un nouveau fil de discussion en premier fils de l'élément of:section décale l'ensemble des chemins profonds.
![](../res/tree_commented.png)
Éditeur XML de la chaîne éditoriale
Le service de commentaires effectuant le traitement des requêtes de chacun des sites permet la définition d'opérateurs génériques et de lister de façon fine les opérations d'ajout, de suppression ou de modification de commentaires effectuées sur un fragment. En revanche, les fragments restent éditables dans l'éditeur XML de la chaîne éditoriale. L'architecture de cet éditeur ne mémorise pas les opérations effectuées sur le fragment. La seule information valable correspond à une modification du fragment source. Cette modification peut concerner un caractère sur un élément XML aussi bien que l'ensemble du fichier.
Hétérogénéité des données stockées par chaque site
Enfin, dernière contrainte à prendre en compte, chaque site ne partage pas les mêmes données. Un site correspond à la transformation à la volée d'une partie du graphe en une page HTML. Plusieurs sites pourront avoir des portions de graphe se recouvrant intégralement, partiellement, ou pas du tout.